');var src=_.escape(this.$target.data('oe-expression')||this.$target.data('src'));var m=src.match(/^(?:https?:)?\/\/([^/?#]+)/);if(!m){return;}
var domain=m[1].replace(/^www\./,'');var supportedDomains=['youtu.be','youtube.com','youtube-nocookie.com','instagram.com','vine.co','player.vimeo.com','vimeo.com','dailymotion.com','player.youku.com','youku.com'];if(!_.contains(supportedDomains,domain)){return;}
const iframeEl=$('',{src:src,frameborder:'0',allowfullscreen:'allowfullscreen',})[0];this.$target.append(iframeEl);return iframeEl;},});registry.backgroundVideo=publicWidget.Widget.extend(MobileYoutubeAutoplayMixin,{selector:'.o_background_video',xmlDependencies:['/website/static/src/xml/website.background.video.xml'],disabledInEditableMode:false,start:function(){var proms=[this._super(...arguments)];this.videoSrc=this.el.dataset.bgVideoSrc;this.iframeID=_.uniqueId('o_bg_video_iframe_');proms.push(this._setupAutoplay(this.videoSrc));if(this.isYoutubeVideo&&this.isMobileEnv&&!this.videoSrc.includes('enablejsapi=1')){this.videoSrc+='&enablejsapi=1';}
var throttledUpdate=_.throttle(()=>this._adjustIframe(),50);var $dropdownMenu=this.$el.closest('.dropdown-menu');if($dropdownMenu.length){this.$dropdownParent=$dropdownMenu.parent();this.$dropdownParent.on('shown.bs.dropdown.backgroundVideo',throttledUpdate);}
$(window).on('resize.'+this.iframeID,throttledUpdate);const $modal=this.$target.closest('.modal');if($modal.length){$modal.on('show.bs.modal',()=>{const videoContainerEl=this.$target[0].querySelector('.o_bg_video_container');videoContainerEl.classList.add('d-none');});$modal.on('shown.bs.modal',()=>{this._adjustIframe();const videoContainerEl=this.$target[0].querySelector('.o_bg_video_container');videoContainerEl.classList.remove('d-none');});}
return Promise.all(proms).then(()=>this._appendBgVideo());},destroy:function(){this._super.apply(this,arguments);if(this.$dropdownParent){this.$dropdownParent.off('.backgroundVideo');}
$(window).off('resize.'+this.iframeID);if(this.$bgVideoContainer){this.$bgVideoContainer.remove();}},_adjustIframe:function(){if(!this.$iframe){return;}
this.$iframe.removeClass('show');var wrapperWidth=this.$target.innerWidth();var wrapperHeight=this.$target.innerHeight();var relativeRatio=(wrapperWidth/wrapperHeight)/(16/9);var style={};if(relativeRatio>=1.0){style['width']='100%';style['height']=(relativeRatio*100)+'%';style['left']='0';style['top']=(-(relativeRatio-1.0)/2*100)+'%';}else{style['width']=((1/relativeRatio)*100)+'%';style['height']='100%';style['left']=(-((1/relativeRatio)-1.0)/2*100)+'%';style['top']='0';}
this.$iframe.css(style);void this.$iframe[0].offsetWidth;this.$iframe.addClass('show');},_appendBgVideo:function(){var $oldContainer=this.$bgVideoContainer||this.$('> .o_bg_video_container');this.$bgVideoContainer=$(qweb.render('website.background.video',{videoSrc:this.videoSrc,iframeID:this.iframeID,}));this.$iframe=this.$bgVideoContainer.find('.o_bg_video_iframe');this.$iframe.one('load',()=>{this.$bgVideoContainer.find('.o_bg_video_loading').remove();});this.$bgVideoContainer.prependTo(this.$target);$oldContainer.remove();this._adjustIframe();this._triggerAutoplay(this.$iframe[0]);},});registry.socialShare=publicWidget.Widget.extend({selector:'.oe_social_share',xmlDependencies:['/website/static/src/xml/website.share.xml'],events:{'mouseenter':'_onMouseEnter',},_bindSocialEvent:function(){this.$('.oe_social_facebook').click($.proxy(this._renderSocial,this,'facebook'));this.$('.oe_social_twitter').click($.proxy(this._renderSocial,this,'twitter'));this.$('.oe_social_linkedin').click($.proxy(this._renderSocial,this,'linkedin'));},_render:function(){this.$el.popover({content:qweb.render('website.social_hover',{medias:this.socialList}),placement:'bottom',container:this.$el,html:true,trigger:'manual',animation:false,}).popover("show");this.$el.off('mouseleave.socialShare').on('mouseleave.socialShare',function(){var self=this;setTimeout(function(){if(!$(".popover:hover").length){$(self).popover('dispose');}},200);});},_renderSocial:function(social){var url=this.$el.data('urlshare')||document.URL.split(/[?#]/)[0];url=encodeURIComponent(url);var title=document.title.split(" | ")[0];var hashtags=' #'+document.title.split(" | ")[1].replace(' ','')+' '+this.hashtags;var socialNetworks={'facebook':'https://www.facebook.com/sharer/sharer.php?u='+url,'twitter':'https://twitter.com/intent/tweet?original_referer='+url+'&text='+encodeURIComponent(title+hashtags+' - ')+url,'linkedin':'https://www.linkedin.com/sharing/share-offsite/?url='+url,};if(!_.contains(_.keys(socialNetworks),social)){return;}
var wHeight=500;var wWidth=500;window.open(socialNetworks[social],'','menubar=no, toolbar=no, resizable=yes, scrollbar=yes, height='+wHeight+',width='+wWidth);},_onMouseEnter:function(){var social=this.$el.data('social');this.socialList=social?social.split(','):['facebook','twitter','linkedin'];this.hashtags=this.$el.data('hashtags')||'';this._render();this._bindSocialEvent();},});registry.anchorSlide=publicWidget.Widget.extend({selector:'a[href^="/"][href*="#"], a[href^="#"]',events:{'click':'_onAnimateClick',},async _scrollTo($el,scrollValue='true'){return dom.scrollTo($el[0],{duration:scrollValue==='true'?500:0,extraOffset:this._computeExtraOffset(),});},_computeExtraOffset(){return 0;},_onAnimateClick:function(ev){if(this.$target[0].pathname!==window.location.pathname){return;}
var hash=this.$target[0].hash;if(hash==='#top'||hash==='#bottom'){dom.scrollTo(hash,{duration:500,extraOffset:this._computeExtraOffset(),});return;}
if(!hash.length){return;}
hash='#'+$.escapeSelector(hash.substring(1));var $anchor=$(hash);const scrollValue=$anchor.attr('data-anchor');if(!$anchor.length||!scrollValue){return;}
ev.preventDefault();this._scrollTo($anchor,scrollValue);},});registry.FullScreenHeight=publicWidget.Widget.extend({selector:'.o_full_screen_height',disabledInEditableMode:false,start(){this.inModal=!!this.el.closest('.modal');if(this.$el.is(':not(:visible)')||this.$el.outerHeight()>this._computeIdealHeight()){this._adaptSize();$(window).on('resize.FullScreenHeight',_.debounce(()=>this._adaptSize(),250));}
return this._super(...arguments);},destroy(){this._super(...arguments);$(window).off('.FullScreenHeight');this.el.style.setProperty('min-height','');},_adaptSize(){const height=this._computeIdealHeight();this.el.style.setProperty('min-height',`${height}px`,'important');},_computeIdealHeight(){const windowHeight=$(window).outerHeight();if(this.inModal){return(windowHeight-$('#wrapwrap').position().top);}
const firstContentEl=$('#wrapwrap > main > :first-child')[0];const mainTopPos=firstContentEl.getBoundingClientRect().top+dom.closestScrollable(firstContentEl.parentNode).scrollTop;return(windowHeight-mainTopPos);},});registry.ScrollButton=registry.anchorSlide.extend({selector:'.o_scroll_button',_onAnimateClick:function(ev){ev.preventDefault();const currentSectionEl=this.el.closest('section');let nextEl=currentSectionEl.nextElementSibling;while(nextEl){if($(nextEl).is(':visible')){this._scrollTo($(nextEl));return;}
nextEl=nextEl.nextElementSibling;}},});registry.FooterSlideout=publicWidget.Widget.extend({selector:'#wrapwrap:has(.o_footer_slideout)',disabledInEditableMode:false,async start(){const $main=this.$('> main');const slideoutEffect=$main.outerHeight()>=$(window).outerHeight();this.el.classList.toggle('o_footer_effect_enable',slideoutEffect);this.__pixelEl=document.createElement('div');this.__pixelEl.style.width=`1px`;this.__pixelEl.style.height=`1px`;this.__pixelEl.style.marginTop=`-1px`;if(this.el.classList.contains("o_safari_browser")){this.__pixelEl.style.backgroundColor="transparent";this.__pixelEl.style.backgroundAttachment="fixed";this.__pixelEl.style.backgroundImage="url(/website/static/src/img/website_logo.png)";}
this.el.appendChild(this.__pixelEl);return this._super(...arguments);},destroy(){this._super(...arguments);this.el.classList.remove('o_footer_effect_enable');this.__pixelEl.remove();},});registry.TopMenuCollapse=publicWidget.Widget.extend({selector:"header #top_menu_collapse",async start(){this.throttledResize=_.throttle(()=>this._onResize(),25);window.addEventListener("resize",this.throttledResize);return this._super(...arguments);},destroy(){this._super(...arguments);window.removeEventListener("resize",this.throttledResize);},_onResize(){if(this.el.classList.contains("show")){const togglerEl=this.el.closest("nav").querySelector(".navbar-toggler");if(getComputedStyle(togglerEl).display==="none"){this.$el.collapse("hide");}}},});registry.HeaderHamburgerFull=publicWidget.Widget.extend({selector:'header:has(.o_header_hamburger_full_toggler):not(:has(.o_offcanvas_menu_toggler))',events:{'click .o_header_hamburger_full_toggler':'_onToggleClick',},_onToggleClick(){document.body.classList.add('overflow-hidden');setTimeout(()=>$(window).trigger('scroll'),100);},});registry.BottomFixedElement=publicWidget.Widget.extend({selector:'#wrapwrap',async start(){this.$scrollingElement=$().getScrollingElement();this.__hideBottomFixedElements=_.debounce(()=>this._hideBottomFixedElements(),500);this.$scrollingElement.on('scroll.bottom_fixed_element',this.__hideBottomFixedElements);$(window).on('resize.bottom_fixed_element',this.__hideBottomFixedElements);return this._super(...arguments);},destroy(){this._super(...arguments);this.$scrollingElement.off('.bottom_fixed_element');$(window).off('.bottom_fixed_element');$('.o_bottom_fixed_element').removeClass('o_bottom_fixed_element_hidden');},_hideBottomFixedElements(){const $bottomFixedElements=$('.o_bottom_fixed_element');if(!$bottomFixedElements.length){return;}
$bottomFixedElements.removeClass('o_bottom_fixed_element_hidden');if((this.$scrollingElement[0].offsetHeight+this.$scrollingElement[0].scrollTop)>=(this.$scrollingElement[0].scrollHeight-2)){const buttonEls=[...this.$('.btn:visible')];for(const el of $bottomFixedElements){if(buttonEls.some(button=>dom.areColliding(button,el))){el.classList.add('o_bottom_fixed_element_hidden');}}}},});registry.ImagesLazyLoading=publicWidget.Widget.extend({selector:'#wrapwrap',start(){const imgEls=this.$target[0].querySelectorAll('img[loading="lazy"]');for(const imgEl of imgEls){imgEl.dataset.lazyLoadingInitialMinHeight=imgEl.style.minHeight;imgEl.style.minHeight='1px';wUtils.onceAllImagesLoaded($(imgEl)).then(()=>{if(this.isDestroyed()){return;}
this._restoreImage(imgEl);});}
return this._super(...arguments);},destroy(){this._super(...arguments);const imgEls=this.$target[0].querySelectorAll('img[data-lazy-loading-initial-min-height]');for(const imgEl of imgEls){this._restoreImage(imgEl);}},_restoreImage(imgEl){imgEl.style.minHeight=imgEl.dataset.lazyLoadingInitialMinHeight;delete imgEl.dataset.lazyLoadingInitialMinHeight;},});registry.ZoomedBackgroundShape=publicWidget.Widget.extend({selector:'.o_we_shape',disabledInEditableMode:false,start(){this._onBackgroundShapeResize();this.throttledShapeResize=_.throttle(()=>this._onBackgroundShapeResize(),25);window.addEventListener('resize',this.throttledShapeResize);return this._super(...arguments);},destroy(){this._updateShapePosition();window.removeEventListener('resize',this.throttledShapeResize);this._super(...arguments);},_updateShapePosition(offset=''){this.el.style.left=offset;this.el.style.right=offset;},_onBackgroundShapeResize(){this._updateShapePosition();let decimalPart=this.el.getBoundingClientRect().width%1;decimalPart=Math.round((decimalPart+Number.EPSILON)*100)/100;if(decimalPart>0){let offset=(decimalPart<0.5?decimalPart:decimalPart-1)/2;this._updateShapePosition(offset+'px');}},});return{Widget:publicWidget.Widget,Animation:Animation,registry:registry,Class:Animation,};});;
/* /website/static/src/js/menu/navbar.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('website.navbar',function(require){'use strict';var core=require('web.core');var dom=require('web.dom');var publicWidget=require('web.public.widget');var concurrency=require('web.concurrency');var Widget=require('web.Widget');var websiteRootData=require('website.root');var websiteNavbarRegistry=new publicWidget.RootWidgetRegistry();var WebsiteNavbar=publicWidget.RootWidget.extend({xmlDependencies:['/website/static/src/xml/website.xml'],events:_.extend({},publicWidget.RootWidget.prototype.events||{},{'click [data-action]':'_onActionMenuClick','mouseover > ul > li.dropdown:not(.show)':'_onMenuHovered','click .o_mobile_menu_toggle':'_onMobileMenuToggleClick','mouseenter #oe_applications:not(:has(.dropdown-item))':'_onOeApplicationsHovered','show.bs.dropdown #oe_applications:not(:has(.dropdown-item))':'_onOeApplicationsShow',}),custom_events:_.extend({},publicWidget.RootWidget.prototype.custom_events||{},{'action_demand':'_onActionDemand','edit_mode':'_onEditMode','readonly_mode':'_onReadonlyMode','ready_to_save':'_onSave',}),init:function(){this._super.apply(this,arguments);var self=this;var initPromise=new Promise(function(resolve){self.resolveInit=resolve;});this._widgetDefs=[initPromise];},start:function(){var self=this;dom.initAutoMoreMenu(this.$('ul.o_menu_sections'),{maxWidth:function(){return self.$el.width()
-(self.$('.o_menu_systray').outerWidth(true)||0)
-(self.$('ul#oe_applications').outerWidth(true)||0)
-(self.$('.o_menu_toggle').outerWidth(true)||0)
-(self.$('.o_menu_brand').outerWidth(true)||0);},});return this._super.apply(this,arguments).then(function(){self.resolveInit();});},_attachComponent:function(){var def=this._super.apply(this,arguments);this._widgetDefs.push(def);return def;},_getRegistry:function(){return websiteNavbarRegistry;},_handleAction:function(actionName,params,_i){var self=this;return this._whenReadyForActions().then(function(){var defs=[];_.each(self._widgets,function(w){if(!w.handleAction){return;}
var def=w.handleAction(actionName,params);if(def!==null){defs.push(def);}});if(!defs.length){if(_i>50){console.warn(_.str.sprintf("Action '%s' was not able to be handled.",actionName));return Promise.reject();}
return concurrency.delay(100).then(function(){return self._handleAction(actionName,params,(_i||0)+1);});}
return Promise.all(defs).then(function(values){if(values.length===1){return values[0];}
return values;});});},async _loadAppMenus(){if(!this._loadAppMenusProm){this._loadAppMenusProm=this._rpc({model:'ir.ui.menu',method:'load_menus_root',args:[],});const result=await this._loadAppMenusProm;const menus=core.qweb.render('website.oe_applications_menu',{'menu_data':result,});this.$('#oe_applications .dropdown-menu').html(menus);}
return this._loadAppMenusProm;},_whenReadyForActions:function(){return Promise.all(this._widgetDefs);},_onOeApplicationsHovered:function(){this._loadAppMenus();},_onOeApplicationsShow:function(){this._loadAppMenus();},_onActionMenuClick:function(ev){const restore=dom.addButtonLoadingEffect(ev.currentTarget);this._handleAction($(ev.currentTarget).data('action')).then(restore).guardedCatch(restore);},_onActionDemand:function(ev){var def=this._handleAction(ev.data.actionName,ev.data.params);if(ev.data.onSuccess){def.then(ev.data.onSuccess);}
if(ev.data.onFailure){def.guardedCatch(ev.data.onFailure);}},_onEditMode:function(){this.$el.addClass('editing_mode');this.do_hide();},_onMenuHovered:function(ev){var $opened=this.$('> ul > li.dropdown.show');if($opened.length){$opened.find('.dropdown-toggle').dropdown('toggle');$(ev.currentTarget).find('.dropdown-toggle').dropdown('toggle');}},_onMobileMenuToggleClick:function(){this.$el.parent().toggleClass('o_mobile_menu_opened');},_onReadonlyMode:function(){this.$el.removeClass('editing_mode');this.do_show();},_onSave:function(ev){ev.data.defs.push(this._handleAction('on_save'));},});var WebsiteNavbarActionWidget=Widget.extend({actions:{},handleAction:function(actionName,params){var action=this[this.actions[actionName]];if(action){return Promise.resolve(action.apply(this,params||[]));}
return null;},});websiteRootData.websiteRootRegistry.add(WebsiteNavbar,'#oe_main_menu_navbar');return{WebsiteNavbar:WebsiteNavbar,websiteNavbarRegistry:websiteNavbarRegistry,WebsiteNavbarActionWidget:WebsiteNavbarActionWidget,};});;
/* /website/static/src/js/show_password.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('website.show_password',function(require){'use strict';var publicWidget=require('web.public.widget');publicWidget.registry.ShowPassword=publicWidget.Widget.extend({selector:'#showPass',events:{'mousedown':'_onShowText','touchstart':'_onShowText',},destroy:function(){this._super(...arguments);$('body').off(".ShowPassword");},_onShowPassword:function(){this.$el.closest('.input-group').find('#password').attr('type','password');},_onShowText:function(){$('body').one('mouseup.ShowPassword touchend.ShowPassword',this._onShowPassword.bind(this));this.$el.closest('.input-group').find('#password').attr('type','text');},});return publicWidget.registry.ShowPassword;});;
/* /website/static/src/js/post_link.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('website.post_link',function(require){'use strict';const publicWidget=require('web.public.widget');const wUtils=require('website.utils');publicWidget.registry.postLink=publicWidget.Widget.extend({selector:'.post_link',events:{'click':'_onClickPost',},start(){this.el.classList.add('o_post_link_js_loaded');return this._super(...arguments);},destroy(){this._super(...arguments);this.el.classList.remove('o_post_link_js_loaded');},_onClickPost:function(ev){ev.preventDefault();const url=this.el.dataset.post||this.el.href;let data={};for(let[key,value]of Object.entries(this.el.dataset)){if(key.startsWith('post_')){data[key.slice(5)]=value;}}
wUtils.sendRequest(url,data);},});});;
/* /website/static/src/js/user_custom_javascript.js defined in bundle 'web.assets_frontend_lazy' */
;
/* /website/static/src/snippets/s_share/000.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('website.s_share',function(require){'use strict';const publicWidget=require('web.public.widget');const ShareWidget=publicWidget.Widget.extend({selector:'.s_share, .oe_share',start:function(){const urlRegex=/(\?(?:|.*&)(?:u|url|body)=)(.*?)(&|#|$)/;const titleRegex=/(\?(?:|.*&)(?:title|text|subject|description)=)(.*?)(&|#|$)/;const mediaRegex=/(\?(?:|.*&)(?:media)=)(.*?)(&|#|$)/;const url=encodeURIComponent(window.location.href);const title=encodeURIComponent($('title').text());const media=encodeURIComponent($('meta[property="og:image"]').attr('content'));this.$('a').each((index,element)=>{const $a=$(element);$a.attr('href',(i,href)=>{return href.replace(urlRegex,(match,a,b,c)=>{return a+url+c;}).replace(titleRegex,function(match,a,b,c){if($a.hasClass('s_share_whatsapp')){return a+title+url+c;}
return a+title+c;}).replace(mediaRegex,(match,a,b,c)=>{return a+media+c;});});if($a.attr('target')&&$a.attr('target').match(/_blank/i)&&!$a.closest('.o_editable').length){$a.on('click',function(){window.open(this.href,'','menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=550,width=600');return false;});}});return this._super.apply(this,arguments);},});publicWidget.registry.share=ShareWidget;return ShareWidget;});;
/* /website/static/src/snippets/s_facebook_page/000.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('website.s_facebook_page',function(require){'use strict';var publicWidget=require('web.public.widget');var utils=require('web.utils');const FacebookPageWidget=publicWidget.Widget.extend({selector:'.o_facebook_page',disabledInEditableMode:false,start:function(){var def=this._super.apply(this,arguments);const params=_.pick(this.$el.data(),'href','id','height','tabs','small_header','hide_cover','show_facepile');if(!params.href){return def;}
if(params.id){params.href=`https://www.facebook.com/${params.id}`;}
delete params.id;params.width=utils.confine(Math.floor(this.$el.width()),180,500);var src=$.param.querystring('https://www.facebook.com/plugins/page.php',params);this.$iframe=$('',{src:src,class:'o_temp_auto_element',width:params.width,height:params.height,css:{border:'none',overflow:'hidden',},scrolling:'no',frameborder:'0',allowTransparency:'true',});this.$el.append(this.$iframe);return def;},destroy:function(){this._super.apply(this,arguments);if(this.$iframe){this.$iframe.remove();}},});publicWidget.registry.facebookPage=FacebookPageWidget;return FacebookPageWidget;});;
/* /website/static/src/snippets/s_image_gallery/000.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('website.s_image_gallery',function(require){'use strict';var core=require('web.core');var publicWidget=require('web.public.widget');var qweb=core.qweb;const GalleryWidget=publicWidget.Widget.extend({selector:'.s_image_gallery:not(.o_slideshow)',xmlDependencies:['/website/static/src/snippets/s_image_gallery/000.xml'],events:{'click img':'_onClickImg',},_onClickImg:function(ev){if(this.$modal||ev.currentTarget.matches("a > img")){return;}
var self=this;var $cur=$(ev.currentTarget);var $images=$cur.closest('.s_image_gallery').find('img');var size=0.8;var dimensions={min_width:Math.round(window.innerWidth*size*0.9),min_height:Math.round(window.innerHeight*size),max_width:Math.round(window.innerWidth*size*0.9),max_height:Math.round(window.innerHeight*size),width:Math.round(window.innerWidth*size*0.9),height:Math.round(window.innerHeight*size)};var $img=($cur.is('img')===true)?$cur:$cur.closest('img');const milliseconds=$cur.closest('.s_image_gallery').data('interval')||false;this.$modal=$(qweb.render('website.gallery.slideshow.lightbox',{images:$images.get(),index:$images.index($img),dim:dimensions,interval:milliseconds||0,id:_.uniqueId('slideshow_'),}));this.$modal.modal({keyboard:true,backdrop:true,});this.$modal.on('hidden.bs.modal',function(){$(this).hide();$(this).siblings().filter('.modal-backdrop').remove();$(this).remove();self.$modal=undefined;});this.$modal.find('.modal-content, .modal-body.o_slideshow').css('height','100%');this.$modal.appendTo(document.body);this.$modal.one('shown.bs.modal',function(){self.trigger_up('widgets_start_request',{editableMode:false,$target:self.$modal.find('.modal-body.o_slideshow'),});});},});const GallerySliderWidget=publicWidget.Widget.extend({selector:'.o_slideshow',xmlDependencies:['/website/static/src/snippets/s_image_gallery/000.xml'],disabledInEditableMode:false,start:function(){var self=this;this.$carousel=this.$target.is('.carousel')?this.$target:this.$target.find('.carousel');this.$indicator=this.$carousel.find('.carousel-indicators');this.$prev=this.$indicator.find('li.o_indicators_left').css('visibility','');this.$next=this.$indicator.find('li.o_indicators_right').css('visibility','');var $lis=this.$indicator.find('li[data-slide-to]');let indicatorWidth=this.$indicator.width();if(indicatorWidth===0){const $indicatorParent=this.$indicator.parents().not(':visible').last();if(!$indicatorParent[0].style.display){$indicatorParent[0].style.display='block';indicatorWidth=this.$indicator.width();$indicatorParent[0].style.display='';}}
let nbPerPage=Math.floor(indicatorWidth/$lis.first().outerWidth(true))-3;var realNbPerPage=nbPerPage||1;var nbPages=Math.ceil($lis.length/realNbPerPage);var index;var page;update();function hide(){$lis.each(function(i){$(this).toggleClass('d-none',i=(page+1)*nbPerPage);});if(page<=0){self.$prev.detach();}else{self.$prev.removeClass('d-none');self.$prev.prependTo(self.$indicator);}
if(page>=nbPages-1){self.$next.detach();}else{self.$next.removeClass('d-none');self.$next.appendTo(self.$indicator);}}
function update(){const active=$lis.filter('.active');index=active.length?$lis.index(active):0;page=Math.floor(index/realNbPerPage);hide();}
this.$carousel.on('slide.bs.carousel.gallery_slider',function(){setTimeout(function(){var $item=self.$carousel.find('.carousel-inner .carousel-item-prev, .carousel-inner .carousel-item-next');var index=$item.index();$lis.removeClass('active').filter('[data-slide-to="'+index+'"]').addClass('active');},0);});this.$indicator.on('click.gallery_slider','> li:not([data-slide-to])',function(){page+=($(this).hasClass('o_indicators_left')?-1:1);page=Math.max(0,Math.min(nbPages-1,page));self.$carousel.carousel(page*realNbPerPage);if(!self.editableMode){hide();}});this.$carousel.on('slid.bs.carousel.gallery_slider',update);return this._super.apply(this,arguments);},destroy:function(){this._super.apply(this,arguments);if(!this.$indicator){return;}
this.$prev.prependTo(this.$indicator);this.$next.appendTo(this.$indicator);this.$carousel.off('.gallery_slider');this.$indicator.off('.gallery_slider');},});publicWidget.registry.gallery=GalleryWidget;publicWidget.registry.gallerySlider=GallerySliderWidget;return{GalleryWidget:GalleryWidget,GallerySliderWidget:GallerySliderWidget,};});;
/* /website/static/src/snippets/s_countdown/000.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('website.s_countdown',function(require){'use strict';const{ColorpickerWidget}=require('web.Colorpicker');const core=require('web.core');const publicWidget=require('web.public.widget');const weUtils=require('web_editor.utils');const qweb=core.qweb;const _t=core._t;const CountdownWidget=publicWidget.Widget.extend({selector:'.s_countdown',xmlDependencies:['/website/static/src/snippets/s_countdown/000.xml'],disabledInEditableMode:false,defaultColor:'rgba(0, 0, 0, 255)',start:function(){this.$wrapper=this.$('.s_countdown_canvas_wrapper');this.hereBeforeTimerEnds=false;this.endAction=this.el.dataset.endAction;this.endTime=parseInt(this.el.dataset.endTime);this.size=parseInt(this.el.dataset.size);this.display=this.el.dataset.display;this.layout=this.el.dataset.layout;this.layoutBackground=this.el.dataset.layoutBackground;this.progressBarStyle=this.el.dataset.progressBarStyle;this.progressBarWeight=this.el.dataset.progressBarWeight;this.textColor=this._ensureCssColor(this.el.dataset.textColor);this.layoutBackgroundColor=this._ensureCssColor(this.el.dataset.layoutBackgroundColor);this.progressBarColor=this._ensureCssColor(this.el.dataset.progressBarColor);this.onlyOneUnit=this.display==='d';this.width=parseInt(this.size);if(this.layout==='boxes'){this.width/=1.75;}
this._initTimeDiff();this._render();this.setInterval=setInterval(this._render.bind(this),1000);return this._super(...arguments);},destroy:function(){this.$('.s_countdown_end_redirect_message').remove();this.$('canvas').remove();this.$('.s_countdown_end_message').addClass('d-none');this.$('.s_countdown_text_wrapper').remove();this.$('.s_countdown_canvas_wrapper').removeClass('d-none');clearInterval(this.setInterval);this._super(...arguments);},_ensureCssColor:function(color){if(ColorpickerWidget.isCSSColor(color)){return color;}
return weUtils.getCSSVariableValue(color)||this.defaultColor;},_getDelta:function(){const currentTimestamp=Date.now()/1000;return this.endTime-currentTimestamp;},_handleEndCountdownAction:function(){if(this.endAction==='redirect'){const redirectUrl=this.el.dataset.redirectUrl||'/';if(this.hereBeforeTimerEnds){setTimeout(()=>window.location=redirectUrl,500);}else{if(!this.$('.s_countdown_end_redirect_message').length){const $container=this.$('> .container, > .container-fluid, > .o_container_small');$container.append($(qweb.render('website.s_countdown.end_redirect_message',{redirectUrl:redirectUrl,})));}}}else if(this.endAction==='message'){this.$('.s_countdown_end_message').removeClass('d-none');}},_initTimeDiff:function(){const delta=this._getDelta();this.diff=[];if(this._isUnitVisible('d')&&!(this.onlyOneUnit&&delta<86400)){this.diff.push({canvas:$('',{class:'o_temp_auto_element'}).appendTo(this.$wrapper)[0],total:15,label:_t("Days"),nbSeconds:86400,});}
if(this._isUnitVisible('h')||(this.onlyOneUnit&&delta<86400&&delta>3600)){this.diff.push({canvas:$('',{class:'o_temp_auto_element'}).appendTo(this.$wrapper)[0],total:24,label:_t("Hours"),nbSeconds:3600,});}
if(this._isUnitVisible('m')||(this.onlyOneUnit&&delta<3600&&delta>60)){this.diff.push({canvas:$('',{class:'o_temp_auto_element'}).appendTo(this.$wrapper)[0],total:60,label:_t("Minutes"),nbSeconds:60,});}
if(this._isUnitVisible('s')||(this.onlyOneUnit&&delta<60)){this.diff.push({canvas:$('',{class:'o_temp_auto_element'}).appendTo(this.$wrapper)[0],total:60,label:_t("Seconds"),nbSeconds:1,});}},_isUnitVisible:function(unit){return this.display.includes(unit);},_render:function(){if(this.onlyOneUnit&&this._getDelta()').attr({class:'s_countdown_text_wrapper d-none',});this.$textWrapper.text(_t("Countdown ends in"));this.$textWrapper.append($('').attr({class:'s_countdown_text ml-1',}));this.$textWrapper.appendTo(this.$wrapper);}
this.$textWrapper.toggleClass('d-none',hideCountdown);const countdownText=this.diff.map(e=>e.nb+' '+e.label).join(', ');this.$('.s_countdown_text').text(countdownText.toLowerCase());}else{for(const val of this.diff){const canvas=val.canvas;const ctx=canvas.getContext("2d");ctx.canvas.width=this.width;ctx.canvas.height=this.size;this._clearCanvas(ctx);$(canvas).toggleClass('d-none',hideCountdown);if(hideCountdown){continue;}
if(this.layoutBackground!=='none'){this._drawBgShape(ctx,this.layoutBackground==='plain');}
this._drawText(canvas,val.nb,val.label,this.layoutBackground==='plain');if(this.progressBarStyle==='surrounded'){this._drawProgressBarBg(ctx,this.progressBarWeight==='thin');}
if(this.progressBarStyle!=='none'){this._drawProgressBar(ctx,val.nb,val.total,this.progressBarWeight==='thin');}
$(canvas).toggleClass('mx-2',this.layout==='boxes');}}
if(this.isFinished){clearInterval(this.setInterval);if(!this.editableMode){this._handleEndCountdownAction();}}},_updateTimeDiff:function(){let delta=this._getDelta();this.isFinished=delta<0;if(this.isFinished){for(const unitData of this.diff){unitData.nb=0;}
return;}
this.hereBeforeTimerEnds=true;for(const unitData of this.diff){unitData.nb=Math.floor(delta/unitData.nbSeconds);delta-=unitData.nb*unitData.nbSeconds;}},_clearCanvas:function(ctx){ctx.clearRect(0,0,this.size,this.size);},_drawText:function(canvas,textNb,textUnit,full=false){const ctx=canvas.getContext("2d");const nbSize=this.size/4;ctx.font=`${nbSize}px Arial`;ctx.fillStyle=this.textColor;ctx.textAlign='center';ctx.textBaseline='middle';ctx.fillText(textNb,canvas.width/2,canvas.height/2);const unitSize=this.size/12;ctx.font=`${unitSize}px Arial`;ctx.fillText(textUnit,canvas.width/2,canvas.height/2+nbSize/1.5,this.width);if(this.layout==='boxes'&&this.layoutBackground!=='none'&&this.progressBarStyle==='none'){let barWidth=this.size/(this.progressBarWeight==='thin'?31:10);if(full){barWidth=0;}
ctx.beginPath();ctx.moveTo(barWidth,this.size/2);ctx.lineTo(this.width-barWidth,this.size/2);ctx.stroke();}},_drawBgShape:function(ctx,full=false){ctx.fillStyle=this.layoutBackgroundColor;ctx.beginPath();if(this.layout==='circle'){let rayon=this.size/2;if(this.progressBarWeight==='thin'){rayon-=full?this.size/29:this.size/15;}else{rayon-=full?0:this.size/10;}
ctx.arc(this.size/2,this.size/2,rayon,0,Math.PI*2);ctx.fill();}else if(this.layout==='boxes'){let barWidth=this.size/(this.progressBarWeight==='thin'?31:10);if(full){barWidth=0;}
ctx.fillStyle=this.layoutBackgroundColor;ctx.rect(barWidth,barWidth,this.width-barWidth*2,this.size-barWidth*2);ctx.fill();const gradient=ctx.createLinearGradient(0,this.width,0,0);gradient.addColorStop(0,'#ffffff24');gradient.addColorStop(1,this.layoutBackgroundColor);ctx.fillStyle=gradient;ctx.rect(barWidth,barWidth,this.width-barWidth*2,this.size-barWidth*2);ctx.fill();$(ctx.canvas).css({'border-radius':'8px'});}},_drawProgressBar:function(ctx,nbUnit,totalUnit,thinLine){ctx.strokeStyle=this.progressBarColor;ctx.lineWidth=thinLine?this.size/35:this.size/10;if(this.layout==='circle'){ctx.beginPath();ctx.arc(this.size/2,this.size/2,this.size/2-this.size/20,Math.PI/-2,(Math.PI*2)*(nbUnit/totalUnit)+(Math.PI/-2));ctx.stroke();}else if(this.layout==='boxes'){ctx.lineWidth*=2;let pc=nbUnit/totalUnit*100;const linesCoordFuncs=[(linePc)=>[0+ctx.lineWidth/2,0,(this.width-ctx.lineWidth/2)*linePc/25+ctx.lineWidth/2,0],(linePc)=>[this.width,0+ctx.lineWidth/2,this.width,(this.size-ctx.lineWidth/2)*linePc/25+ctx.lineWidth/2],(linePc)=>[this.width-((this.width-ctx.lineWidth/2)*linePc/25)-ctx.lineWidth/2,this.size,this.width-ctx.lineWidth/2,this.size],(linePc)=>[0,this.size-((this.size-ctx.lineWidth/2)*linePc/25)-ctx.lineWidth/2,0,this.size-ctx.lineWidth/2],];while(pc>0&&linesCoordFuncs.length){const linePc=Math.min(pc,25);const lineCoord=(linesCoordFuncs.shift())(linePc);ctx.beginPath();ctx.moveTo(lineCoord[0],lineCoord[1]);ctx.lineTo(lineCoord[2],lineCoord[3]);ctx.stroke();pc-=linePc;}}},_drawProgressBarBg:function(ctx,thinLine){ctx.strokeStyle=this.progressBarColor;ctx.globalAlpha=0.2;ctx.lineWidth=thinLine?this.size/35:this.size/10;if(this.layout==='circle'){ctx.beginPath();ctx.arc(this.size/2,this.size/2,this.size/2-this.size/20,0,Math.PI*2);ctx.stroke();}else if(this.layout==='boxes'){ctx.lineWidth*=2;const points=[[0+ctx.lineWidth/2,0,this.width,0],[this.width,0+ctx.lineWidth/2,this.width,this.size],[0,this.size,this.width-ctx.lineWidth/2,this.size],[0,0,0,this.size-ctx.lineWidth/2],];while(points.length){const point=points.shift();ctx.beginPath();ctx.moveTo(point[0],point[1]);ctx.lineTo(point[2],point[3]);ctx.stroke();}}
ctx.globalAlpha=1;},});publicWidget.registry.countdown=CountdownWidget;return CountdownWidget;});;
/* /website/static/src/snippets/s_popup/000.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('website.s_popup',function(require){'use strict';const config=require('web.config');const dom=require('web.dom');const publicWidget=require('web.public.widget');const utils=require('web.utils');const PopupWidget=publicWidget.Widget.extend({selector:'.s_popup',events:{'click .js_close_popup':'_onCloseClick','hide.bs.modal':'_onHideModal','show.bs.modal':'_onShowModal',},start:function(){this._popupAlreadyShown=!!utils.get_cookie(this.$el.attr('id'));if(!this._popupAlreadyShown){this._bindPopup();}
return this._super(...arguments);},destroy:function(){this._super.apply(this,arguments);$(document).off('mouseleave.open_popup');this.$target.find('.modal').modal('hide');clearTimeout(this.timeout);},_bindPopup:function(){const $main=this.$target.find('.modal');let display=$main.data('display');let delay=$main.data('showAfter');if(config.device.isMobile){if(display==='mouseExit'){display='afterDelay';delay=5000;}
this.$('.modal').removeClass('s_popup_middle').addClass('s_popup_bottom');}
if(display==='afterDelay'){this.timeout=setTimeout(()=>this._showPopup(),delay);}else{$(document).on('mouseleave.open_popup',()=>this._showPopup());}},_hidePopup:function(){this.$target.find('.modal').modal('hide');},_showPopup:function(){if(this._popupAlreadyShown){return;}
this.$target.find('.modal').modal('show');},_onCloseClick:function(){this._hidePopup();},_onHideModal:function(){const nbDays=this.$el.find('.modal').data('consentsDuration');utils.set_cookie(this.$el.attr('id'),true,nbDays*24*60*60);this._popupAlreadyShown=true;this.$target.find('.media_iframe_video iframe').each((i,iframe)=>{iframe.src='';});},_onShowModal(){this.el.querySelectorAll('.media_iframe_video').forEach(media=>{const iframe=media.querySelector('iframe');iframe.src=media.dataset.oeExpression||media.dataset.src;});},});publicWidget.registry.popup=PopupWidget;function _updateScrollbar(ev){const context=ev.data;const isOverflowing=dom.hasScrollableContent(context._element);if(context._isOverflowingWindow!==isOverflowing){context._isOverflowingWindow=isOverflowing;context._checkScrollbar();context._setScrollbar();if(isOverflowing){document.body.classList.add('modal-open');}else{document.body.classList.remove('modal-open');context._resetScrollbar();}}}
const _baseShowElement=$.fn.modal.Constructor.prototype._showElement;$.fn.modal.Constructor.prototype._showElement=function(){_baseShowElement.apply(this,arguments);if(this._element.classList.contains('s_popup_no_backdrop')){$(this._element).on('content_changed.update_scrollbar',this,_updateScrollbar);$(window).on('resize.update_scrollbar',this,_updateScrollbar);this._odooLoadEventCaptureHandler=_.debounce(()=>_updateScrollbar({data:this},100));this._element.addEventListener('load',this._odooLoadEventCaptureHandler,true);_updateScrollbar({data:this});}};const _baseHideModal=$.fn.modal.Constructor.prototype._hideModal;$.fn.modal.Constructor.prototype._hideModal=function(){_baseHideModal.apply(this,arguments);this._element.classList.remove('s_popup_overflow_page');$(this._element).off('content_changed.update_scrollbar');$(window).off('resize.update_scrollbar');if(this._odooLoadEventCaptureHandler){this._element.removeEventListener('load',this._odooLoadEventCaptureHandler,true);delete this._odooLoadEventCaptureHandler;}};const _baseSetScrollbar=$.fn.modal.Constructor.prototype._setScrollbar;$.fn.modal.Constructor.prototype._setScrollbar=function(){if(this._element.classList.contains('s_popup_no_backdrop')){this._element.classList.toggle('s_popup_overflow_page',!!this._isOverflowingWindow);if(!this._isOverflowingWindow){return;}}
return _baseSetScrollbar.apply(this,arguments);};const _baseGetScrollbarWidth=$.fn.modal.Constructor.prototype._getScrollbarWidth;$.fn.modal.Constructor.prototype._getScrollbarWidth=function(){if(this._element.classList.contains('s_popup_no_backdrop')&&!this._isOverflowingWindow){return 0;}
return _baseGetScrollbarWidth.apply(this,arguments);};return PopupWidget;});;
/* /website/static/src/snippets/s_table_of_content/000.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('website.s_table_of_content',function(require){'use strict';const publicWidget=require('web.public.widget');const{extraMenuUpdateCallbacks}=require('website.content.menu');const TableOfContent=publicWidget.Widget.extend({selector:'section .s_table_of_content_navbar_sticky',disabledInEditableMode:false,async start(){await this._super(...arguments);this.$scrollingElement=this.$target.closest(".s_table_of_content").closestScrollable();this.previousPosition=-1;this._updateTableOfContentNavbarPosition();this.boundUpdateNavbar=this._updateTableOfContentNavbarPosition.bind(this);extraMenuUpdateCallbacks.push(this.boundUpdateNavbar);},destroy(){const indexOfCallback=extraMenuUpdateCallbacks.indexOf(this.boundUpdateNavbar);extraMenuUpdateCallbacks.splice(indexOfCallback,1);this.$target.css('top','');this.$target.find('.s_table_of_content_navbar').css({top:'',maxHeight:''});this._super(...arguments);},_updateTableOfContentNavbarPosition(){let position=0;const $fixedElements=$('.o_top_fixed_element');_.each($fixedElements,el=>position+=$(el).outerHeight());const isHorizontalNavbar=this.$target.hasClass('s_table_of_content_horizontal_navbar');this.$target.css('top',isHorizontalNavbar?position:'');this.$target.find('.s_table_of_content_navbar').css('top',isHorizontalNavbar?'':position+20);const $mainNavBar=$('#oe_main_menu_navbar');const mainNavBarHidden=document.body.classList.contains('o_fullscreen')||this.editableMode;position+=!mainNavBarHidden&&$mainNavBar.length?$mainNavBar.outerHeight():0;position+=isHorizontalNavbar?this.$target.outerHeight():0;this.$target.find('.s_table_of_content_navbar').css('maxHeight',isHorizontalNavbar?'':`calc(100vh - ${position + 40}px)`);if(this.previousPosition!==position){if(this.$scrollingElement.data('bs.scrollspy')){this.$scrollingElement.scrollspy('dispose');}
this.$scrollingElement.scrollspy({target:'.s_table_of_content_navbar',method:'offset',offset:position+100,alwaysKeepFirstActive:true,});this.previousPosition=position;}},});publicWidget.registry.anchorSlide.include({_computeExtraOffset(){let extraOffset=this._super(...arguments);if(this.$el.hasClass('table_of_content_link')){const tableOfContentNavbarEl=this.$el.closest('.s_table_of_content_navbar_sticky.s_table_of_content_horizontal_navbar');if(tableOfContentNavbarEl.length>0){extraOffset+=$(tableOfContentNavbarEl).outerHeight();}}
return extraOffset;},});publicWidget.registry.snippetTableOfContent=TableOfContent;return TableOfContent;});;
/* /website/static/src/snippets/s_chart/000.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('website.s_chart',function(require){'use strict';const publicWidget=require('web.public.widget');const weUtils=require('web_editor.utils');const ChartWidget=publicWidget.Widget.extend({selector:'.s_chart',disabledInEditableMode:false,jsLibs:['/web/static/lib/Chart/Chart.js',],init:function(parent,options){this._super.apply(this,arguments);this.style=window.getComputedStyle(document.documentElement);},start:function(){const data=JSON.parse(this.el.dataset.data);data.datasets.forEach(el=>{if(Array.isArray(el.backgroundColor)){el.backgroundColor=el.backgroundColor.map(el=>this._convertToCssColor(el));el.borderColor=el.borderColor.map(el=>this._convertToCssColor(el));}else{el.backgroundColor=this._convertToCssColor(el.backgroundColor);el.borderColor=this._convertToCssColor(el.borderColor);}
el.borderWidth=this.el.dataset.borderWidth;});const chartData={type:this.el.dataset.type,data:data,options:{legend:{display:this.el.dataset.legendPosition!=='none',position:this.el.dataset.legendPosition,},tooltips:{enabled:this.el.dataset.tooltipDisplay==='true',},title:{display:!!this.el.dataset.title,text:this.el.dataset.title,},},};if(this.el.dataset.type==='radar'){chartData.options.scale={ticks:{beginAtZero:true,}};}else if(['pie','doughnut'].includes(this.el.dataset.type)){chartData.options.tooltips.callbacks={label:(tooltipItem,data)=>{const label=data.datasets[tooltipItem.datasetIndex].label;const secondLabel=data.labels[tooltipItem.index];let final=label;if(label){if(secondLabel){final=label+' - '+secondLabel;}}else if(secondLabel){final=secondLabel;}
return final+':'+data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];},};}else{chartData.options.scales={xAxes:[{stacked:this.el.dataset.stacked==='true',ticks:{beginAtZero:true},}],yAxes:[{stacked:this.el.dataset.stacked==='true',ticks:{beginAtZero:true},}],};}
if(this.editableMode){chartData.options.animation={duration:0,};}
const canvas=this.el.querySelector('canvas');this.chart=new window.Chart(canvas,chartData);return this._super.apply(this,arguments);},destroy:function(){if(this.chart){this.chart.destroy();this.el.querySelectorAll('.chartjs-size-monitor').forEach(el=>el.remove());}
this._super.apply(this,arguments);},_convertToCssColor:function(color){if(!color){return'transparent';}
return weUtils.getCSSVariableValue(color,this.style)||color;},});publicWidget.registry.chart=ChartWidget;return ChartWidget;});;
/* /website/static/src/snippets/s_google_map/000.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('website.s_google_map',function(require){'use strict';const publicWidget=require('web.public.widget');publicWidget.registry.GoogleMap=publicWidget.Widget.extend({selector:'.s_google_map',disabledInEditableMode:false,mapColors:{lightMonoMap:[{"featureType":"administrative.locality","elementType":"all","stylers":[{"hue":"#2c2e33"},{"saturation":7},{"lightness":19},{"visibility":"on"}]},{"featureType":"landscape","elementType":"all","stylers":[{"hue":"#ffffff"},{"saturation":-100},{"lightness":100},{"visibility":"simplified"}]},{"featureType":"poi","elementType":"all","stylers":[{"hue":"#ffffff"},{"saturation":-100},{"lightness":100},{"visibility":"off"}]},{"featureType":"road","elementType":"geometry","stylers":[{"hue":"#bbc0c4"},{"saturation":-93},{"lightness":31},{"visibility":"simplified"}]},{"featureType":"road","elementType":"labels","stylers":[{"hue":"#bbc0c4"},{"saturation":-93},{"lightness":31},{"visibility":"on"}]},{"featureType":"road.arterial","elementType":"labels","stylers":[{"hue":"#bbc0c4"},{"saturation":-93},{"lightness":-2},{"visibility":"simplified"}]},{"featureType":"road.local","elementType":"geometry","stylers":[{"hue":"#e9ebed"},{"saturation":-90},{"lightness":-8},{"visibility":"simplified"}]},{"featureType":"transit","elementType":"all","stylers":[{"hue":"#e9ebed"},{"saturation":10},{"lightness":69},{"visibility":"on"}]},{"featureType":"water","elementType":"all","stylers":[{"hue":"#e9ebed"},{"saturation":-78},{"lightness":67},{"visibility":"simplified"}]}],lillaMap:[{elementType:"labels",stylers:[{saturation:-20}]},{featureType:"poi",elementType:"labels",stylers:[{visibility:"off"}]},{featureType:'road.highway',elementType:'labels',stylers:[{visibility:"off"}]},{featureType:"road.local",elementType:"labels.icon",stylers:[{visibility:"off"}]},{featureType:"road.arterial",elementType:"labels.icon",stylers:[{visibility:"off"}]},{featureType:"road",elementType:"geometry.stroke",stylers:[{visibility:"off"}]},{featureType:"transit",elementType:"geometry.fill",stylers:[{hue:'#2d313f'},{visibility:"on"},{lightness:5},{saturation:-20}]},{featureType:"poi",elementType:"geometry.fill",stylers:[{hue:'#2d313f'},{visibility:"on"},{lightness:5},{saturation:-20}]},{featureType:"poi.government",elementType:"geometry.fill",stylers:[{hue:'#2d313f'},{visibility:"on"},{lightness:5},{saturation:-20}]},{featureType:"poi.sport_complex",elementType:"geometry.fill",stylers:[{hue:'#2d313f'},{visibility:"on"},{lightness:5},{saturation:-20}]},{featureType:"poi.attraction",elementType:"geometry.fill",stylers:[{hue:'#2d313f'},{visibility:"on"},{lightness:5},{saturation:-20}]},{featureType:"poi.business",elementType:"geometry.fill",stylers:[{hue:'#2d313f'},{visibility:"on"},{lightness:5},{saturation:-20}]},{featureType:"transit",elementType:"geometry.fill",stylers:[{hue:'#2d313f'},{visibility:"on"},{lightness:5},{saturation:-20}]},{featureType:"transit.station",elementType:"geometry.fill",stylers:[{hue:'#2d313f'},{visibility:"on"},{lightness:5},{saturation:-20}]},{featureType:"landscape",stylers:[{hue:'#2d313f'},{visibility:"on"},{lightness:5},{saturation:-20}]},{featureType:"road",elementType:"geometry.fill",stylers:[{hue:'#2d313f'},{visibility:"on"},{lightness:5},{saturation:-20}]},{featureType:"road.highway",elementType:"geometry.fill",stylers:[{hue:'#2d313f'},{visibility:"on"},{lightness:5},{saturation:-20}]},{featureType:"water",elementType:"geometry",stylers:[{hue:'#2d313f'},{visibility:"on"},{lightness:5},{saturation:-20}]}],blueMap:[{stylers:[{hue:"#00ffe6"},{saturation:-20}]},{featureType:"road",elementType:"geometry",stylers:[{lightness:100},{visibility:"simplified"}]},{featureType:"road",elementType:"labels",stylers:[{visibility:"off"}]}],retroMap:[{"featureType":"administrative","elementType":"all","stylers":[{"visibility":"on"},{"lightness":33}]},{"featureType":"landscape","elementType":"all","stylers":[{"color":"#f2e5d4"}]},{"featureType":"poi.park","elementType":"geometry","stylers":[{"color":"#c5dac6"}]},{"featureType":"poi.park","elementType":"labels","stylers":[{"visibility":"on"},{"lightness":20}]},{"featureType":"road","elementType":"all","stylers":[{"lightness":20}]},{"featureType":"road.highway","elementType":"geometry","stylers":[{"color":"#c5c6c6"}]},{"featureType":"road.arterial","elementType":"geometry","stylers":[{"color":"#e4d7c6"}]},{"featureType":"road.local","elementType":"geometry","stylers":[{"color":"#fbfaf7"}]},{"featureType":"water","elementType":"all","stylers":[{"visibility":"on"},{"color":"#acbcc9"}]}],flatMap:[{"stylers":[{"visibility":"off"}]},{"featureType":"road","stylers":[{"visibility":"on"},{"color":"#ffffff"}]},{"featureType":"road.arterial","stylers":[{"visibility":"on"},{"color":"#fee379"}]},{"featureType":"road.highway","stylers":[{"visibility":"on"},{"color":"#fee379"}]},{"featureType":"landscape","stylers":[{"visibility":"on"},{"color":"#f3f4f4"}]},{"featureType":"water","stylers":[{"visibility":"on"},{"color":"#7fc8ed"}]},{},{"featureType":"road","elementType":"labels","stylers":[{"visibility":"on"}]},{"featureType":"poi.park","elementType":"geometry.fill","stylers":[{"visibility":"on"},{"color":"#83cead"}]},{"elementType":"labels","stylers":[{"visibility":"on"}]},{"featureType":"landscape.man_made","elementType":"geometry","stylers":[{"weight":0.9},{"visibility":"off"}]}],cobaltMap:[{"featureType":"all","elementType":"all","stylers":[{"invert_lightness":true},{"saturation":10},{"lightness":30},{"gamma":0.5},{"hue":"#435158"}]}],cupertinoMap:[{"featureType":"water","elementType":"geometry","stylers":[{"color":"#a2daf2"}]},{"featureType":"landscape.man_made","elementType":"geometry","stylers":[{"color":"#f7f1df"}]},{"featureType":"landscape.natural","elementType":"geometry","stylers":[{"color":"#d0e3b4"}]},{"featureType":"landscape.natural.terrain","elementType":"geometry","stylers":[{"visibility":"off"}]},{"featureType":"poi.park","elementType":"geometry","stylers":[{"color":"#bde6ab"}]},{"featureType":"poi","elementType":"labels","stylers":[{"visibility":"off"}]},{"featureType":"poi.medical","elementType":"geometry","stylers":[{"color":"#fbd3da"}]},{"featureType":"poi.business","stylers":[{"visibility":"off"}]},{"featureType":"road","elementType":"geometry.stroke","stylers":[{"visibility":"off"}]},{"featureType":"road","elementType":"labels","stylers":[{"visibility":"off"}]},{"featureType":"road.highway","elementType":"geometry.fill","stylers":[{"color":"#ffe15f"}]},{"featureType":"road.highway","elementType":"geometry.stroke","stylers":[{"color":"#efd151"}]},{"featureType":"road.arterial","elementType":"geometry.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"road.local","elementType":"geometry.fill","stylers":[{"color":"black"}]},{"featureType":"transit.station.airport","elementType":"geometry.fill","stylers":[{"color":"#cfb2db"}]}],carMap:[{"featureType":"administrative","stylers":[{"visibility":"off"}]},{"featureType":"poi","stylers":[{"visibility":"simplified"}]},{"featureType":"road","stylers":[{"visibility":"simplified"}]},{"featureType":"water","stylers":[{"visibility":"simplified"}]},{"featureType":"transit","stylers":[{"visibility":"simplified"}]},{"featureType":"landscape","stylers":[{"visibility":"simplified"}]},{"featureType":"road.highway","stylers":[{"visibility":"off"}]},{"featureType":"road.local","stylers":[{"visibility":"on"}]},{"featureType":"road.highway","elementType":"geometry","stylers":[{"visibility":"on"}]},{"featureType":"water","stylers":[{"color":"#84afa3"},{"lightness":52}]},{"stylers":[{"saturation":-77}]},{"featureType":"road"}],bwMap:[{stylers:[{hue:"#00ffe6"},{saturation:-100}]},{featureType:"road",elementType:"geometry",stylers:[{lightness:100},{visibility:"simplified"}]},{featureType:"road",elementType:"labels",stylers:[{visibility:"off"}]}],},async start(){await this._super(...arguments);if(typeof google!=='object'||typeof google.maps!=='object'){await new Promise(resolve=>{this.trigger_up('gmap_api_request',{editableMode:this.editableMode,onSuccess:()=>resolve(),});});return;}
const std=[];new google.maps.StyledMapType(std,{name:"Std Map"});const myOptions={zoom:12,center:new google.maps.LatLng(50.854975,4.3753899),mapTypeId:google.maps.MapTypeId.ROADMAP,panControl:false,zoomControl:false,mapTypeControl:false,streetViewControl:false,scrollwheel:false,mapTypeControlOptions:{mapTypeIds:[google.maps.MapTypeId.ROADMAP,'map_style']}};const mapC=this.$('.map_container');const map=new google.maps.Map(mapC.get(0),myOptions);const p=this.el.dataset.mapGps.substring(1).slice(0,-1).split(',');const gps=new google.maps.LatLng(p[0],p[1]);map.setCenter(gps);window.addEventListener('resize',()=>{map.setCenter(gps);});const markerOptions={map:map,animation:google.maps.Animation.DROP,position:new google.maps.LatLng(p[0],p[1])};if(this.el.dataset.pinStyle==='flat'){markerOptions.icon='/website/static/src/img/snippets_thumbs/s_google_map_marker.png';}
new google.maps.Marker(markerOptions);map.setMapTypeId(google.maps.MapTypeId[this.el.dataset.mapType]);map.setZoom(parseInt(this.el.dataset.mapZoom));const mapColorAttr=this.el.dataset.mapColor;if(mapColorAttr){const mapColor=this.mapColors[mapColorAttr];map.mapTypes.set('map_style',new google.maps.StyledMapType(mapColor,{name:"Styled Map"}));map.setMapTypeId('map_style');}},});});;
/* /website/static/src/snippets/s_dynamic_snippet/000.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('website.s_dynamic_snippet',function(require){'use strict';const core=require('web.core');const config=require('web.config');const publicWidget=require('web.public.widget');const DynamicSnippet=publicWidget.Widget.extend({selector:'.s_dynamic_snippet',xmlDependencies:['/website/static/src/snippets/s_dynamic_snippet/000.xml'],read_events:{'click [data-url]':'_onCallToAction',},disabledInEditableMode:false,init:function(){this._super.apply(this,arguments);this.data=[];this.renderedContent='';this.isDesplayedAsMobile=config.device.isMobile;this.uniqueId=_.uniqueId('s_dynamic_snippet_');this.template_key='website.s_dynamic_snippet.grid';},willStart:function(){return this._super.apply(this,arguments).then(()=>Promise.all([this._fetchData(),this._manageWarningMessageVisibility()]));},start:function(){return this._super.apply(this,arguments).then(()=>{this._setupSizeChangedManagement(true);this._render();this._toggleVisibility(true);});},destroy:function(){this._toggleVisibility(false);this._setupSizeChangedManagement(false);this._clearContent();this._super.apply(this,arguments);},_clearContent:function(){const $templateArea=this.$el.find('.dynamic_snippet_template');this.trigger_up('widgets_stop_request',{$target:$templateArea,});$templateArea.html('');},_isConfigComplete:function(){return this.$el.get(0).dataset.filterId!==undefined&&this.$el.get(0).dataset.templateKey!==undefined;},_getSearchDomain:function(){return[];},_fetchData:function(){if(this._isConfigComplete()){return this._rpc({'route':'/website/snippet/filters','params':{'filter_id':parseInt(this.$el.get(0).dataset.filterId),'template_key':this.$el.get(0).dataset.templateKey,'limit':parseInt(this.$el.get(0).dataset.numberOfRecords),'search_domain':this._getSearchDomain()},}).then((data)=>{this.data=data;});}else{return new Promise((resolve)=>{this.data=[];resolve();});}},_mustMessageWarningBeHidden:function(){return this._isConfigComplete()||!this.editableMode;},_manageWarningMessageVisibility:async function(){this.$el.find('.missing_option_warning').toggleClass('d-none',this._mustMessageWarningBeHidden());},_prepareContent:function(){if(this.$target[0].dataset.numberOfElements&&this.$target[0].dataset.numberOfElementsSmallDevices){this.renderedContent=core.qweb.render(this.template_key,this._getQWebRenderOptions());}else{this.renderedContent='';}},_getQWebRenderOptions:function(){return{chunkSize:parseInt(config.device.isMobile?this.$target[0].dataset.numberOfElementsSmallDevices:this.$target[0].dataset.numberOfElements),data:this.data,uniqueId:this.uniqueId};},_render:function(){if(this.data.length){this._prepareContent();}else{this.renderedContent='';}
this._renderContent();},_renderContent:function(){const $templateArea=this.$el.find('.dynamic_snippet_template');this.trigger_up('widgets_stop_request',{$target:$templateArea,});$templateArea.html(this.renderedContent);this.trigger_up('widgets_start_request',{$target:$templateArea,editableMode:this.editableMode,});},_setupSizeChangedManagement:function(enable){if(enable===true){config.device.bus.on('size_changed',this,this._onSizeChanged);}else{config.device.bus.off('size_changed',this,this._onSizeChanged);}},_toggleVisibility:function(visible){this.$el.toggleClass('d-none',!visible);},_onCallToAction:function(ev){window.location=$(ev.currentTarget).attr('data-url');},_onSizeChanged:function(size){if(this.isDesplayedAsMobile!==config.device.isMobile){this.isDesplayedAsMobile=config.device.isMobile;this._render();}},});publicWidget.registry.dynamic_snippet=DynamicSnippet;return DynamicSnippet;});;
/* /website/static/src/snippets/s_dynamic_snippet_carousel/000.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('website.s_dynamic_snippet_carousel',function(require){'use strict';const config=require('web.config');const core=require('web.core');const publicWidget=require('web.public.widget');const DynamicSnippet=require('website.s_dynamic_snippet');const DynamicSnippetCarousel=DynamicSnippet.extend({selector:'.s_dynamic_snippet_carousel',xmlDependencies:(DynamicSnippet.prototype.xmlDependencies||[]).concat(['/website/static/src/snippets/s_dynamic_snippet_carousel/000.xml']),init:function(){this._super.apply(this,arguments);this.template_key='website.s_dynamic_snippet.carousel';},_getQWebRenderOptions:function(){return Object.assign(this._super.apply(this,arguments),{interval:parseInt(this.$target[0].dataset.carouselInterval),},);},_getQWebRenderParams:function(){return Object.assign(this._super.apply(this,arguments),{interval:parseInt(this.$target[0].dataset.carouselInterval),},);},});publicWidget.registry.dynamic_snippet_carousel=DynamicSnippetCarousel;return DynamicSnippetCarousel;});;
/* /website_sale/static/src/snippets/s_dynamic_snippet_products/000.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('website_sale.s_dynamic_snippet_products',function(require){'use strict';const config=require('web.config');const core=require('web.core');const publicWidget=require('web.public.widget');const DynamicSnippetCarousel=require('website.s_dynamic_snippet_carousel');const DynamicSnippetProducts=DynamicSnippetCarousel.extend({selector:'.s_dynamic_snippet_products',_isConfigComplete:function(){return this._super.apply(this,arguments)&&this.$el.get(0).dataset.productCategoryId!==undefined;},_mustMessageWarningBeHidden:function(){const isInitialDrop=this.$el.get(0).dataset.templateKey===undefined;return isInitialDrop||this._super.apply(this,arguments);},_getSearchDomain:function(){const searchDomain=this._super.apply(this,arguments);const productCategoryId=parseInt(this.$el.get(0).dataset.productCategoryId);if(productCategoryId>=0){searchDomain.push(['public_categ_ids','child_of',productCategoryId]);}
return searchDomain;},});publicWidget.registry.dynamic_snippet_products=DynamicSnippetProducts;return DynamicSnippetProducts;});;
/* /website_form/static/src/snippets/s_website_form/000.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('website_form.s_website_form',function(require){'use strict';var core=require('web.core');var time=require('web.time');const{ReCaptcha}=require('google_recaptcha.ReCaptchaV3');var ajax=require('web.ajax');var publicWidget=require('web.public.widget');const dom=require('web.dom');const session=require('web.session');var _t=core._t;var qweb=core.qweb;publicWidget.registry.s_website_form=publicWidget.Widget.extend({selector:'.s_website_form form, form.s_website_form',xmlDependencies:['/website_form/static/src/xml/website_form.xml'],events:{'click .s_website_form_send, .o_website_form_send':'send',},init:function(){this._super(...arguments);this._recaptcha=new ReCaptcha();this.__started=new Promise(resolve=>this.__startResolve=resolve);},willStart:function(){const res=this._super(...arguments);if(!this.$target[0].classList.contains('s_website_form_no_recaptcha')){this._recaptchaLoaded=true;this._recaptcha.loadLibs();}
return res;},start:function(){var self=this;var datepickers_options={minDate:moment({y:1000}),maxDate:moment({y:9999,M:11,d:31}),calendarWeeks:true,icons:{time:'fa fa-clock-o',date:'fa fa-calendar',next:'fa fa-chevron-right',previous:'fa fa-chevron-left',up:'fa fa-chevron-up',down:'fa fa-chevron-down',},locale:moment.locale(),format:time.getLangDatetimeFormat(),};this.$target.find('.s_website_form_datetime, .o_website_form_datetime').datetimepicker(datepickers_options);datepickers_options.format=time.getLangDateFormat();this.$target.find('.s_website_form_date, .o_website_form_date').datetimepicker(datepickers_options);var $values=$('[data-for='+this.$target.attr('id')+']');if($values.length){const values=JSON.parse($values.data('values').replace(/([,:\[]\s*)True/g,'$1true').replace(/([,:\[]\s*)(False|None)/g,'$1""').replace(/'(\s*[,:\]}])/g,'"$1').replace(/([{\[:,]\s*)'/g,'$1"'));var fields=_.pluck(this.$target.serializeArray(),'name');_.each(fields,function(field){if(_.has(values,field)){var $field=self.$target.find('input[name="'+field+'"], textarea[name="'+field+'"]');if(!$field.val()){$field.val(values[field]);$field.data('website_form_original_default_value',$field.val());}}});}
return this._super(...arguments).then(()=>this.__startResolve());},destroy:function(){this._super.apply(this,arguments);this.$target.find('button').off('click');this.$target[0].reset();this.$target.find('.o_has_error').removeClass('o_has_error').find('.form-control, .custom-select').removeClass('is-invalid');this.$target.find('#s_website_form_result, #o_website_form_result').empty();this.$target.removeClass('d-none');this.$target.parent().find('.s_website_form_end_message').addClass('d-none');},send:async function(e){e.preventDefault();this.$target.find('.s_website_form_send, .o_website_form_send').addClass('disabled').attr('disabled','disabled');var self=this;self.$target.find('#s_website_form_result, #o_website_form_result').empty();if(!self.check_error_fields({})){self.update_status('error',_t("Please fill in the form correctly."));return false;}
this.form_fields=this.$target.serializeArray();$.each(this.$target.find('input[type=file]'),function(outer_index,input){$.each($(input).prop('files'),function(index,file){self.form_fields.push({name:input.name+'['+outer_index+']['+index+']',value:file});});});var form_values={};_.each(this.form_fields,function(input){if(input.name in form_values){if(Array.isArray(form_values[input.name])){form_values[input.name].push(input.value);}else{form_values[input.name]=[form_values[input.name],input.value];}}else{if(input.value!==''){form_values[input.name]=input.value;}}});this.$target.find('.s_website_form_field:not(.s_website_form_custom)').find('.s_website_form_date, .s_website_form_datetime').each(function(){const $input=$(this).find('input');if(!$input.val()){return;}
var date=$(this).datetimepicker('viewDate').clone().locale('en');var format='YYYY-MM-DD';if($(this).hasClass('s_website_form_datetime')){date=date.utc();format='YYYY-MM-DD HH:mm:ss';}
form_values[$input.attr('name')]=date.format(format);});if(this._recaptchaLoaded){const tokenObj=await this._recaptcha.getToken('website_form');if(tokenObj.token){form_values['recaptcha_token_response']=tokenObj.token;}else if(tokenObj.error){self.update_status('error',tokenObj.error);return false;}}
ajax.post(this.$target.attr('action')+(this.$target.data('force_action')||this.$target.data('model_name')),form_values).then(function(result_data){self.$target.find('.s_website_form_send, .o_website_form_send').removeAttr('disabled').removeClass('disabled');result_data=JSON.parse(result_data);if(!result_data.id){self.update_status('error',result_data.error?result_data.error:false);if(result_data.error_fields){self.check_error_fields(result_data.error_fields);}}else{let successMode=self.$target[0].dataset.successMode;let successPage=self.$target[0].dataset.successPage;if(!successMode){successPage=self.$target.attr('data-success_page');successMode=successPage?'redirect':'nothing';}
switch(successMode){case'redirect':{let hashIndex=successPage.indexOf("#");if(hashIndex>0){let currentUrlPath=window.location.pathname;if(!currentUrlPath.endsWith("/")){currentUrlPath=currentUrlPath+"/";}
if(!successPage.includes("/#")){successPage=successPage.replace("#","/#");hashIndex++;}
if([successPage,"/"+session.lang_url_code+successPage].some(link=>link.startsWith(currentUrlPath+'#'))){successPage=successPage.substring(hashIndex);}}
if(successPage.charAt(0)==="#"){const successAnchorEl=document.getElementById(successPage.substring(1));if(successAnchorEl){dom.scrollTo(successAnchorEl,{duration:500,extraOffset:0,});}}else{$(window.location).attr('href',successPage);}
break;}
case'message':self.$target[0].classList.add('d-none');self.$target[0].parentElement.querySelector('.s_website_form_end_message').classList.remove('d-none');break;default:self.update_status('success');break;}
self.$target[0].reset();}}).guardedCatch(function(){self.update_status('error');});},check_error_fields:function(error_fields){var self=this;var form_valid=true;this.$target.find('.form-field, .s_website_form_field').each(function(k,field){var $field=$(field);var field_name=$field.find('.col-form-label').attr('for');var inputs=$field.find('.s_website_form_input, .o_website_form_input').not('#editable_select');var invalid_inputs=inputs.toArray().filter(function(input,k,inputs){if(input.required&&input.type==='checkbox'){var checkboxes=_.filter(inputs,function(input){return input.required&&input.type==='checkbox';});return!_.any(checkboxes,checkbox=>checkbox.checked);}else if($(input).hasClass('s_website_form_date')||$(input).hasClass('o_website_form_date')){if(!self.is_datetime_valid(input.value,'date')){return true;}}else if($(input).hasClass('s_website_form_datetime')||$(input).hasClass('o_website_form_datetime')){if(!self.is_datetime_valid(input.value,'datetime')){return true;}}
return!input.checkValidity();});$field.removeClass('o_has_error').find('.form-control, .custom-select').removeClass('is-invalid');if(invalid_inputs.length||error_fields[field_name]){$field.addClass('o_has_error').find('.form-control, .custom-select').addClass('is-invalid');if(_.isString(error_fields[field_name])){$field.popover({content:error_fields[field_name],trigger:'hover',container:'body',placement:'top'});$field.data("bs.popover").config.content=error_fields[field_name];$field.popover('show');}
form_valid=false;}});return form_valid;},is_datetime_valid:function(value,type_of_date){if(value===""){return true;}else{try{this.parse_date(value,type_of_date);return true;}catch(e){return false;}}},parse_date:function(value,type_of_date,value_if_empty){var date_pattern=time.getLangDateFormat(),time_pattern=time.getLangTimeFormat();var date_pattern_wo_zero=date_pattern.replace('MM','M').replace('DD','D'),time_pattern_wo_zero=time_pattern.replace('HH','H').replace('mm','m').replace('ss','s');switch(type_of_date){case'datetime':var datetime=moment(value,[date_pattern+' '+time_pattern,date_pattern_wo_zero+' '+time_pattern_wo_zero],true);if(datetime.isValid()){return time.datetime_to_str(datetime.toDate());}
throw new Error(_.str.sprintf(_t("'%s' is not a correct datetime"),value));case'date':var date=moment(value,[date_pattern,date_pattern_wo_zero],true);if(date.isValid()){return time.date_to_str(date.toDate());}
throw new Error(_.str.sprintf(_t("'%s' is not a correct date"),value));}
return value;},update_status:function(status,message){if(status!=='success'){this.$target.find('.s_website_form_send, .o_website_form_send').removeAttr('disabled').removeClass('disabled');}
var $result=this.$('#s_website_form_result, #o_website_form_result');if(status==='error'&&!message){message=_t("An error has occured, the form has not been sent.");}
this.__started.then(()=>$result.replaceWith(qweb.render(`website_form.status_${status}`,{message:message,})));},});});;
/* /website_links/static/src/js/website_links.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('website_links.website_links',function(require){'use strict';var core=require('web.core');var publicWidget=require('web.public.widget');var _t=core._t;var SelectBox=publicWidget.Widget.extend({events:{'change':'_onChange',},init:function(parent,obj,placeholder){this._super.apply(this,arguments);this.obj=obj;this.placeholder=placeholder;},willStart:function(){var self=this;var defs=[this._super.apply(this,arguments)];defs.push(this._rpc({model:this.obj,method:'search_read',params:{fields:['id','name'],},}).then(function(result){self.objects=_.map(result,function(val){return{id:val.id,text:val.name};});}));return Promise.all(defs);},start:function(){var self=this;this.$el.select2({placeholder:self.placeholder,allowClear:true,createSearchChoice:function(term){if(self._objectExists(term)){return null;}
return{id:term,text:_.str.sprintf("Create '%s'",term)};},createSearchChoicePosition:'bottom',multiple:false,data:self.objects,minimumInputLength:self.objects.length>100?3:0,});},_objectExists:function(query){return _.find(this.objects,function(val){return val.text.toLowerCase()===query.toLowerCase();})!==undefined;},_createObject:function(name){var self=this;var args={name:name};if(this.obj==="utm.campaign"){args.is_website=true;}
return this._rpc({model:this.obj,method:'create',args:[args],}).then(function(record){self.$el.attr('value',record);self.objects.push({'id':record,'text':name});});},_onChange:function(ev){if(!ev.added||!_.isString(ev.added.id)){return;}
this._createObject(ev.added.id);},});var RecentLinkBox=publicWidget.Widget.extend({template:'website_links.RecentLink',xmlDependencies:['/website_links/static/src/xml/recent_link.xml'],events:{'click .btn_shorten_url_clipboard':'_toggleCopyButton','click .o_website_links_edit_code':'_editCode','click .o_website_links_ok_edit':'_onLinksOkClick','click .o_website_links_cancel_edit':'_onLinksCancelClick','submit #o_website_links_edit_code_form':'_onSubmitCode',},init:function(parent,obj){this._super.apply(this,arguments);this.link_obj=obj;this.animating_copy=false;},start:function(){new ClipboardJS(this.$('.btn_shorten_url_clipboard').get(0));return this._super.apply(this,arguments);},_toggleCopyButton:function(){if(this.animating_copy){return;}
var self=this;this.animating_copy=true;var top=this.$('.o_website_links_short_url').position().top;this.$('.o_website_links_short_url').clone().css('position','absolute').css('left',15).css('top',top-2).css('z-index',2).removeClass('o_website_links_short_url').addClass('animated-link').insertAfter(this.$('.o_website_links_short_url')).animate({opacity:0,top:'-=20',},500,function(){self.$('.animated-link').remove();self.animating_copy=false;});},_notification:function(message){this.$('.notification').append(''+message+'');},_editCode:function(){var initCode=this.$('#o_website_links_code').html();this.$('#o_website_links_code').html('');this.$('.o_website_links_edit_code').hide();this.$('.copy-to-clipboard').hide();this.$('.o_website_links_edit_tools').show();},_cancelEdit:function(){this.$('.o_website_links_edit_code').show();this.$('.copy-to-clipboard').show();this.$('.o_website_links_edit_tools').hide();this.$('.o_website_links_code_error').hide();var oldCode=this.$('#o_website_links_edit_code_form #init_code').val();this.$('#o_website_links_code').html(oldCode);this.$('#code-error').remove();this.$('#o_website_links_code form').remove();},_submitCode:function(){var self=this;var initCode=this.$('#o_website_links_edit_code_form #init_code').val();var newCode=this.$('#o_website_links_edit_code_form #new_code').val();if(newCode===''){self.$('.o_website_links_code_error').html(_t("The code cannot be left empty"));self.$('.o_website_links_code_error').show();return;}
function showNewCode(newCode){self.$('.o_website_links_code_error').html('');self.$('.o_website_links_code_error').hide();self.$('#o_website_links_code form').remove();var host=self.$('#o_website_links_host').html();self.$('#o_website_links_code').html(newCode);self.$('.btn_shorten_url_clipboard').attr('data-clipboard-text',host+newCode);self.$('.o_website_links_edit_code').show();self.$('.copy-to-clipboard').show();self.$('.o_website_links_edit_tools').hide();}
if(initCode===newCode){showNewCode(newCode);}else{this._rpc({route:'/website_links/add_code',params:{init_code:initCode,new_code:newCode,},}).then(function(result){showNewCode(result[0].code);},function(){self.$('.o_website_links_code_error').show();self.$('.o_website_links_code_error').html(_t("This code is already taken"));});}},_onLinksOkClick:function(ev){ev.preventDefault();this._submitCode();},_onLinksCancelClick:function(ev){ev.preventDefault();this._cancelEdit();},_onSubmitCode:function(ev){ev.preventDefault();this._submitCode();},});var RecentLinks=publicWidget.Widget.extend({getRecentLinks:function(filter){var self=this;return this._rpc({route:'/website_links/recent_links',params:{filter:filter,limit:20,},}).then(function(result){_.each(result.reverse(),function(link){self._addLink(link);});self._updateNotification();},function(){var message=_t("Unable to get recent links");self.$el.append('
'+message+'
');});},_addLink:function(link){var nbLinks=this.getChildren().length;var recentLinkBox=new RecentLinkBox(this,link);recentLinkBox.prependTo(this.$el);$('.link-tooltip').tooltip();if(nbLinks===0){this._updateNotification();}},removeLinks:function(){_.invoke(this.getChildren(),'destroy');},_updateNotification:function(){if(this.getChildren().length===0){var message=_t("You don't have any recent links.");$('.o_website_links_recent_links_notification').html('