';}
var wysiwyg=new Wysiwyg(parent,options);return wysiwyg.attachTo(textarea).then(()=>{if(loading){loading.parentNode.removeChild(loading);}
return wysiwyg;});}
return{load:load,};});;
/* /portal/static/src/js/portal.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('portal.portal',function(require){'use strict';var publicWidget=require('web.public.widget');publicWidget.registry.portalDetails=publicWidget.Widget.extend({selector:'.o_portal_details',events:{'change select[name="country_id"]':'_onCountryChange',},start:function(){var def=this._super.apply(this,arguments);this.$state=this.$('select[name="state_id"]');this.$stateOptions=this.$state.filter(':enabled').find('option:not(:first)');this._adaptAddressForm();return def;},_adaptAddressForm:function(){var $country=this.$('select[name="country_id"]');var countryID=($country.val()||0);this.$stateOptions.detach();var $displayedState=this.$stateOptions.filter('[data-country_id='+countryID+']');var nb=$displayedState.appendTo(this.$state).show().length;this.$state.parent().toggle(nb>=1);},_onCountryChange:function(){this._adaptAddressForm();},});publicWidget.registry.portalSearchPanel=publicWidget.Widget.extend({selector:'.o_portal_search_panel',events:{'click .search-submit':'_onSearchSubmitClick','click .dropdown-item':'_onDropdownItemClick','keyup input[name="search"]':'_onSearchInputKeyup',},start:function(){var def=this._super.apply(this,arguments);this._adaptSearchLabel(this.$('.dropdown-item.active'));return def;},_adaptSearchLabel:function(elem){var $label=$(elem).clone();$label.find('span.nolabel').remove();this.$('input[name="search"]').attr('placeholder',$label.text().trim());},_search:function(){var search=$.deparam(window.location.search.substring(1));search['search_in']=this.$('.dropdown-item.active').attr('href').replace('#','');search['search']=this.$('input[name="search"]').val();window.location.search=$.param(search);},_onSearchSubmitClick:function(){this._search();},_onDropdownItemClick:function(ev){ev.preventDefault();var $item=$(ev.currentTarget);$item.closest('.dropdown-menu').find('.dropdown-item').removeClass('active');$item.addClass('active');this._adaptSearchLabel(ev.currentTarget);},_onSearchInputKeyup:function(ev){if(ev.keyCode===$.ui.keyCode.ENTER){this._search();}},});});;
/* /portal/static/src/js/portal_chatter.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('portal.chatter',function(require){'use strict';var core=require('web.core');var publicWidget=require('web.public.widget');var time=require('web.time');var portalComposer=require('portal.composer');var qweb=core.qweb;var _t=core._t;var PortalChatter=publicWidget.Widget.extend({template:'portal.Chatter',xmlDependencies:['/portal/static/src/xml/portal_chatter.xml'],events:{"click .o_portal_chatter_pager_btn":'_onClickPager',},init:function(parent,options){var self=this;this.options={};this._super.apply(this,arguments);_.each(options,function(val,key){self.options[_.str.underscored(key)]=val;});this.options=_.defaults(this.options,{'allow_composer':true,'display_composer':false,'csrf_token':odoo.csrf_token,'message_count':0,'pager_step':10,'pager_scope':5,'pager_start':1,'is_user_public':true,'is_user_publisher':false,'hash':false,'pid':false,'domain':[],});this.set('messages',[]);this.set('message_count',this.options['message_count']);this.set('pager',{});this.set('domain',this.options['domain']);this._currentPage=this.options['pager_start'];},willStart:function(){return Promise.all([this._super.apply(this,arguments),this._chatterInit()]);},start:function(){this.on("change:messages",this,this._renderMessages);this.on("change:message_count",this,function(){this._renderMessageCount();this.set('pager',this._pager(this._currentPage));});this.on("change:pager",this,this._renderPager);this.on("change:domain",this,this._onChangeDomain);this.set('message_count',this.options['message_count']);this.set('messages',this.preprocessMessages(this.result['messages']));var defs=[];defs.push(this._super.apply(this,arguments));if(this.options['display_composer']){this._composer=new portalComposer.PortalComposer(this,this.options);defs.push(this._composer.replace(this.$('.o_portal_chatter_composer')));}
return Promise.all(defs);},messageFetch:function(domain){var self=this;return this._rpc({route:'/mail/chatter_fetch',params:self._messageFetchPrepareParams(),}).then(function(result){self.set('messages',self.preprocessMessages(result['messages']));self.set('message_count',result['message_count']);});},preprocessMessages:function(messages){_.each(messages,function(m){m['author_avatar_url']=_.str.sprintf('/web/image/%s/%s/author_avatar/50x50','mail.message',m.id);m['published_date_str']=_.str.sprintf(_t('Published on %s'),moment(time.str_to_datetime(m.date)).format('MMMM Do YYYY, h:mm:ss a'));});return messages;},_chatterInit:function(){var self=this;return this._rpc({route:'/mail/chatter_init',params:this._messageFetchPrepareParams()}).then(function(result){self.result=result;self.options=_.extend(self.options,self.result['options']||{});return result;});},_changeCurrentPage:function(page,domain){this._currentPage=page;var d=domain?domain:_.clone(this.get('domain'));this.set('domain',d);},_messageFetchPrepareParams:function(){var self=this;var data={'res_model':this.options['res_model'],'res_id':this.options['res_id'],'limit':this.options['pager_step'],'offset':(this._currentPage-1)*this.options['pager_step'],'allow_composer':this.options['allow_composer'],};if(self.options['token']){data['token']=self.options['token'];}
if(this.get('domain')){data['domain']=this.get('domain');}
return data;},_pager:function(page){page=page||1;var total=this.get('message_count');var scope=this.options['pager_scope'];var step=this.options['pager_step'];var pageCount=Math.ceil(parseFloat(total)/step);page=Math.max(1,Math.min(parseInt(page),pageCount));scope-=1;var pmin=Math.max(page-parseInt(Math.floor(scope/2)),1);var pmax=Math.min(pmin+scope,pageCount);if(pmax-scope>0){pmin=pmax-scope;}else{pmin=1;}
var pages=[];_.each(_.range(pmin,pmax+1),function(index){pages.push(index);});return{"page_count":pageCount,"offset":(page-1)*step,"page":page,"page_start":pmin,"page_previous":Math.max(pmin,page-1),"page_next":Math.min(pmax,page+1),"page_end":pmax,"pages":pages};},_renderMessages:function(){this.$('.o_portal_chatter_messages').html(qweb.render("portal.chatter_messages",{widget:this}));},_renderMessageCount:function(){this.$('.o_message_counter').replaceWith(qweb.render("portal.chatter_message_count",{widget:this}));},_renderPager:function(){this.$('.o_portal_chatter_pager').replaceWith(qweb.render("portal.pager",{widget:this}));},_onChangeDomain:function(){var self=this;this.messageFetch().then(function(){var p=self._currentPage;self.set('pager',self._pager(p));});},_onClickPager:function(ev){ev.preventDefault();var page=$(ev.currentTarget).data('page');this._changeCurrentPage(page);},});publicWidget.registry.portalChatter=publicWidget.Widget.extend({selector:'.o_portal_chatter',start:function(){var self=this;var defs=[this._super.apply(this,arguments)];var chatter=new PortalChatter(this,this.$el.data());defs.push(chatter.appendTo(this.$el));return Promise.all(defs).then(function(){if(window.location.hash==='#'+self.$el.attr('id')){$('html, body').scrollTop(self.$el.offset().top);}});},});return{PortalChatter:PortalChatter,};});;
/* /portal/static/src/js/portal_composer.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('portal.composer',function(require){'use strict';var ajax=require('web.ajax');var core=require('web.core');var publicWidget=require('web.public.widget');var qweb=core.qweb;var _t=core._t;var PortalComposer=publicWidget.Widget.extend({template:'portal.Composer',xmlDependencies:['/portal/static/src/xml/portal_chatter.xml'],events:{'change .o_portal_chatter_file_input':'_onFileInputChange','click .o_portal_chatter_attachment_btn':'_onAttachmentButtonClick','click .o_portal_chatter_attachment_delete':'async _onAttachmentDeleteClick','click .o_portal_chatter_composer_btn':'async _onSubmitButtonClick',},init:function(parent,options){this._super.apply(this,arguments);this.options=_.defaults(options||{},{'allow_composer':true,'display_composer':false,'csrf_token':odoo.csrf_token,'token':false,'res_model':false,'res_id':false,});this.attachments=[];},start:function(){var self=this;this.$attachmentButton=this.$('.o_portal_chatter_attachment_btn');this.$fileInput=this.$('.o_portal_chatter_file_input');this.$sendButton=this.$('.o_portal_chatter_composer_btn');this.$attachments=this.$('.o_portal_chatter_composer_form .o_portal_chatter_attachments');this.$attachmentIds=this.$('.o_portal_chatter_attachment_ids');this.$attachmentTokens=this.$('.o_portal_chatter_attachment_tokens');return this._super.apply(this,arguments).then(function(){if(self.options.default_attachment_ids){self.attachments=self.options.default_attachment_ids||[];_.each(self.attachments,function(attachment){attachment.state='done';});self._updateAttachments();}
return Promise.resolve();});},_onAttachmentButtonClick:function(){this.$fileInput.click();},_onAttachmentDeleteClick:function(ev){var self=this;var attachmentId=$(ev.currentTarget).closest('.o_portal_chatter_attachment').data('id');var accessToken=_.find(this.attachments,{'id':attachmentId}).access_token;ev.preventDefault();ev.stopPropagation();this.$sendButton.prop('disabled',true);return this._rpc({route:'/portal/attachment/remove',params:{'attachment_id':attachmentId,'access_token':accessToken,},}).then(function(){self.attachments=_.reject(self.attachments,{'id':attachmentId});self._updateAttachments();self.$sendButton.prop('disabled',false);});},_onFileInputChange:function(){var self=this;this.$sendButton.prop('disabled',true);return Promise.all(_.map(this.$fileInput[0].files,function(file){return new Promise(function(resolve,reject){var data={'name':file.name,'file':file,'res_id':self.options.res_id,'res_model':self.options.res_model,'access_token':self.options.token,};ajax.post('/portal/attachment/add',data).then(function(attachment){attachment.state='pending';self.attachments.push(attachment);self._updateAttachments();resolve();}).guardedCatch(function(error){self.displayNotification({title:_t("Something went wrong."),message:_.str.sprintf(_t("The file %s could not be saved."),_.escape(file.name)),type:'warning',sticky:true,});resolve();});});})).then(function(){self.$sendButton.prop('disabled',false);});},_onSubmitButtonClick:function(){return new Promise(function(resolve,reject){});},_updateAttachments:function(){this.$attachmentIds.val(_.pluck(this.attachments,'id'));this.$attachmentTokens.val(_.pluck(this.attachments,'access_token'));this.$attachments.html(qweb.render('portal.Chatter.Attachments',{attachments:this.attachments,showDelete:true,}));},});return{PortalComposer:PortalComposer,};});;
/* /portal/static/src/js/portal_signature.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('portal.signature_form',function(require){'use strict';var core=require('web.core');var publicWidget=require('web.public.widget');var NameAndSignature=require('web.name_and_signature').NameAndSignature;var qweb=core.qweb;var _t=core._t;var SignatureForm=publicWidget.Widget.extend({template:'portal.portal_signature',xmlDependencies:['/portal/static/src/xml/portal_signature.xml'],events:{'click .o_portal_sign_submit':'async _onClickSignSubmit',},custom_events:{'signature_changed':'_onChangeSignature',},init:function(parent,options){this._super.apply(this,arguments);this.csrf_token=odoo.csrf_token;this.callUrl=options.callUrl||'';this.rpcParams=options.rpcParams||{};this.sendLabel=options.sendLabel||_t("Accept & Sign");this.nameAndSignature=new NameAndSignature(this,options.nameAndSignatureOptions||{});},start:function(){var self=this;this.$confirm_btn=this.$('.o_portal_sign_submit');this.$controls=this.$('.o_portal_sign_controls');var subWidgetStart=this.nameAndSignature.replace(this.$('.o_web_sign_name_and_signature'));return Promise.all([subWidgetStart,this._super.apply(this,arguments)]).then(function(){self.nameAndSignature.resetSignature();});},focusName:function(){this.nameAndSignature.focusName();},resetSignature:function(){return this.nameAndSignature.resetSignature();},_onClickSignSubmit:function(ev){var self=this;ev.preventDefault();if(!this.nameAndSignature.validateSignature()){return;}
var name=this.nameAndSignature.getName();var signature=this.nameAndSignature.getSignatureImage()[1];return this._rpc({route:this.callUrl,params:_.extend(this.rpcParams,{'name':name,'signature':signature,}),}).then(function(data){if(data.error){self.$('.o_portal_sign_error_msg').remove();self.$controls.prepend(qweb.render('portal.portal_signature_error',{widget:data}));}else if(data.success){var $success=qweb.render('portal.portal_signature_success',{widget:data});self.$el.empty().append($success);}
if(data.force_refresh){if(data.redirect_url){window.location=data.redirect_url;}else{window.location.reload();}
return new Promise(function(){});}});},_onChangeSignature:function(){var isEmpty=this.nameAndSignature.isSignatureEmpty();this.$confirm_btn.prop('disabled',isEmpty);},});publicWidget.registry.SignatureForm=publicWidget.Widget.extend({selector:'.o_portal_signature_form',start:function(){var hasBeenReset=false;var callUrl=this.$el.data('call-url');var nameAndSignatureOptions={defaultName:this.$el.data('default-name'),mode:this.$el.data('mode'),displaySignatureRatio:this.$el.data('signature-ratio'),signatureType:this.$el.data('signature-type'),};var sendLabel=this.$el.data('send-label');var form=new SignatureForm(this,{callUrl:callUrl,nameAndSignatureOptions:nameAndSignatureOptions,sendLabel:sendLabel,});this.$el.closest('.modal').on('shown.bs.modal',function(ev){if(!hasBeenReset){hasBeenReset=true;form.resetSignature();}else{form.focusName();}});return Promise.all([this._super.apply(this,arguments),form.appendTo(this.$el)]);},});return{SignatureForm:SignatureForm,};});;
/* /portal/static/src/js/portal_sidebar.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('portal.PortalSidebar',function(require){'use strict';var core=require('web.core');var publicWidget=require('web.public.widget');var time=require('web.time');var _t=core._t;var PortalSidebar=publicWidget.Widget.extend({start:function(){this._setDelayLabel();return this._super.apply(this,arguments);},_setDelayLabel:function(){var $sidebarTimeago=this.$el.find('.o_portal_sidebar_timeago');_.each($sidebarTimeago,function(el){var dateTime=moment(time.auto_str_to_date($(el).attr('datetime'))),today=moment().startOf('day'),diff=dateTime.diff(today,'days',true),displayStr;if(diff===0){displayStr=_t('Due today');}else if(diff>0){displayStr=_.str.sprintf(_t('Due in %d days'),Math.abs(diff));}else{displayStr=_.str.sprintf(_t('%d days overdue'),Math.abs(diff));}
$(el).text(displayStr);});},_printIframeContent:function(href){if($.browser.mozilla){window.open(href,'_blank');return;}
if(!this.printContent){this.printContent=$('');this.$el.append(this.printContent);this.printContent.on('load',function(){$(this).get(0).contentWindow.print();});}else{this.printContent.get(0).contentWindow.print();}},});return PortalSidebar;});;
/* /website/static/src/js/set_view_track.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('website.set_view_track',function(require){"use strict";var CustomizeMenu=require('website.customizeMenu');var Widget=require('web.Widget');var TrackPage=Widget.extend({template:'website.track_page',xmlDependencies:['/website/static/src/xml/track_page.xml'],events:{'change #switch-track-page':'_onTrackChange',},start:function(){this.$input=this.$('#switch-track-page');this._isTracked().then((data)=>{if(data[0]['track']){this.track=true;this.$input.attr('checked','checked');}else{this.track=false;}});},_isTracked:function(val){var viewid=$('html').data('viewid');if(!viewid){return Promise.reject();}else{return this._rpc({model:'ir.ui.view',method:'read',args:[[viewid],['track']],});}},_onTrackChange:function(ev){var checkboxValue=this.$input.is(':checked');if(checkboxValue!==this.track){this.track=checkboxValue;this._trackPage(checkboxValue);}},_trackPage:function(val){var viewid=$('html').data('viewid');if(!viewid){return Promise.reject();}else{return this._rpc({model:'ir.ui.view',method:'write',args:[[viewid],{track:val}],});}},});CustomizeMenu.include({_loadCustomizeOptions:function(){var self=this;var def=this._super.apply(this,arguments);return def.then(function(){if(!self.__trackpageLoaded){self.__trackpageLoaded=true;self.trackPage=new TrackPage(self);self.trackPage.appendTo(self.$el.children('.dropdown-menu'));}});},});});;
/* /website/static/lib/jstz.min.js defined in bundle 'web.assets_frontend_lazy' */
!function(e){var a=function(){"use strict";var e="s",s={DAY:864e5,HOUR:36e5,MINUTE:6e4,SECOND:1e3,BASELINE_YEAR:2014,MAX_SCORE:864e6,AMBIGUITIES:{"America/Denver":["America/Mazatlan"],"Europe/London":["Africa/Casablanca"],"America/Chicago":["America/Mexico_City"],"America/Asuncion":["America/Campo_Grande","America/Santiago"],"America/Montevideo":["America/Sao_Paulo","America/Santiago"],"Asia/Beirut":["Asia/Amman","Asia/Jerusalem","Europe/Helsinki","Asia/Damascus","Africa/Cairo","Asia/Gaza","Europe/Minsk"],"Pacific/Auckland":["Pacific/Fiji"],"America/Los_Angeles":["America/Santa_Isabel"],"America/New_York":["America/Havana"],"America/Halifax":["America/Goose_Bay"],"America/Godthab":["America/Miquelon"],"Asia/Dubai":["Asia/Yerevan"],"Asia/Jakarta":["Asia/Krasnoyarsk"],"Asia/Shanghai":["Asia/Irkutsk","Australia/Perth"],"Australia/Sydney":["Australia/Lord_Howe"],"Asia/Tokyo":["Asia/Yakutsk"],"Asia/Dhaka":["Asia/Omsk"],"Asia/Baku":["Asia/Yerevan"],"Australia/Brisbane":["Asia/Vladivostok"],"Pacific/Noumea":["Asia/Vladivostok"],"Pacific/Majuro":["Asia/Kamchatka","Pacific/Fiji"],"Pacific/Tongatapu":["Pacific/Apia"],"Asia/Baghdad":["Europe/Minsk","Europe/Moscow"],"Asia/Karachi":["Asia/Yekaterinburg"],"Africa/Johannesburg":["Asia/Gaza","Africa/Cairo"]}},i=function(e){var a=-e.getTimezoneOffset();return null!==a?a:0},r=function(){var a=i(new Date(s.BASELINE_YEAR,0,2)),r=i(new Date(s.BASELINE_YEAR,5,2)),n=a-r;return 0>n?a+",1":n>0?r+",1,"+e:a+",0"},n=function(){var e,a;if("undefined"!=typeof Intl&&"undefined"!=typeof Intl.DateTimeFormat&&(e=Intl.DateTimeFormat(),"undefined"!=typeof e&&"undefined"!=typeof e.resolvedOptions))return a=e.resolvedOptions().timeZone,a&&(a.indexOf("/")>-1||"UTC"===a)?a:void 0},o=function(e){for(var a=new Date(e,0,1,0,0,1,0).getTime(),s=new Date(e,12,31,23,59,59).getTime(),i=a,r=new Date(i).getTimezoneOffset(),n=null,o=null;s-864e5>i;){var t=new Date(i),A=t.getTimezoneOffset();A!==r&&(r>A&&(n=t),A>r&&(o=t),r=A),i+=864e5}return n&&o?{s:u(n).getTime(),e:u(o).getTime()}:!1},u=function l(e,a,i){"undefined"==typeof a&&(a=s.DAY,i=s.HOUR);for(var r=new Date(e.getTime()-a).getTime(),n=e.getTime()+a,o=new Date(r).getTimezoneOffset(),u=r,t=null;n-i>u;){var A=new Date(u),c=A.getTimezoneOffset();if(c!==o){t=A;break}u+=i}return a===s.DAY?l(t,s.HOUR,s.MINUTE):a===s.HOUR?l(t,s.MINUTE,s.SECOND):t},t=function(e,a,s,i){if("N/A"!==s)return s;if("Asia/Beirut"===a){if("Africa/Cairo"===i.name&&13983768e5===e[6].s&&14116788e5===e[6].e)return 0;if("Asia/Jerusalem"===i.name&&13959648e5===e[6].s&&14118588e5===e[6].e)return 0}else if("America/Santiago"===a){if("America/Asuncion"===i.name&&14124816e5===e[6].s&&1397358e6===e[6].e)return 0;if("America/Campo_Grande"===i.name&&14136912e5===e[6].s&&13925196e5===e[6].e)return 0}else if("America/Montevideo"===a){if("America/Sao_Paulo"===i.name&&14136876e5===e[6].s&&1392516e6===e[6].e)return 0}else if("Pacific/Auckland"===a&&"Pacific/Fiji"===i.name&&14142456e5===e[6].s&&13961016e5===e[6].e)return 0;return s},A=function(e,i){for(var r=function(a){for(var r=0,n=0;n=a.rules[n].s&&e[n].e<=a.rules[n].e)){r="N/A";break}if(r=0,r+=Math.abs(e[n].s-a.rules[n].s),r+=Math.abs(a.rules[n].e-e[n].e),r>s.MAX_SCORE){r="N/A";break}}return r=t(e,i,r,a)},n={},o=a.olson.dst_rules.zones,u=o.length,A=s.AMBIGUITIES[i],c=0;u>c;c++){var m=o[c],l=r(o[c]);"N/A"!==l&&(n[m.name]=l)}for(var f in n)if(n.hasOwnProperty(f))for(var d=0;d',{html:(data.data?data.data.arguments[1]:data.statusText)
+' '
+_.str.sprintf(_t('It might be possible to edit the relevant items or fix the issue in the classic Odoo interface'),'/web#model='+$data.data('object')+'&id='+$data.data('id')),}),}).open();});},_onWebsiteSwitch:function(ev){var websiteId=ev.currentTarget.getAttribute('website-id');var websiteDomain=ev.currentTarget.getAttribute('domain');var url=window.location.href;if(websiteDomain&&window.location.hostname!==websiteDomain){var path=window.location.pathname+window.location.search+window.location.hash;url=websiteDomain+path;}
window.location.href=$.param.querystring(url,{'fw':websiteId});},_onModalShown:function(ev){$(ev.target).addClass('modal_shown');},});return{WebsiteRoot:WebsiteRoot,websiteRootRegistry:websiteRootRegistry,};});;
/* /website/static/src/js/content/compatibility.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('website.content.compatibility',function(require){'use strict';require('web.dom_ready');var browser=_.findKey($.browser,function(v){return v===true;});if($.browser.mozilla&&+$.browser.version.replace(/^([0-9]+\.[0-9]+).*/,'\$1')<20){browser='msie';}
browser+=(','+$.browser.version);var mobileRegex=/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i;if(mobileRegex.test(window.navigator.userAgent.toLowerCase())){browser+=',mobile';}
document.documentElement.setAttribute('data-browser',browser);var htmlStyle=document.documentElement.style;var isFlexSupported=(('flexWrap'in htmlStyle)||('WebkitFlexWrap'in htmlStyle)||('msFlexWrap'in htmlStyle));if(!isFlexSupported){document.documentElement.setAttribute('data-no-flex','');}
return{browser:browser,isFlexSupported:isFlexSupported,};});;
/* /website/static/src/js/content/lazy_template_call.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('website.content.lazy_template_call',function(require){'use strict';var publicWidget=require('web.public.widget');publicWidget.registry.LazyTemplateRenderer=publicWidget.Widget.extend({selector:'#wrapwrap:has([data-oe-call])',start:function(){var def=this._super.apply(this,arguments);var $oeCalls=this.$('[data-oe-call]');var oeCalls=_.uniq($oeCalls.map(function(){return $(this).data('oe-call');}).get());if(!oeCalls.length){return def;}
var renderDef=this._rpc({route:'/website/multi_render',params:{'ids_or_xml_ids':oeCalls,},}).then(function(data){_.each(data,function(d,k){var $data=$(d).addClass('o_block_'+k);$oeCalls.filter('[data-oe-call="'+k+'"]').each(function(){$(this).replaceWith($data.clone());});});});return Promise.all([def,renderDef]);},});});;
/* /website/static/src/js/content/menu.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('website.content.menu',function(require){'use strict';var dom=require('web.dom');var publicWidget=require('web.public.widget');var wUtils=require('website.utils');publicWidget.registry.affixMenu=publicWidget.Widget.extend({selector:'header.o_affix_enabled',start:function(){var def=this._super.apply(this,arguments);var self=this;this.$headerClone=this.$target.clone().addClass('o_header_affix affix').removeClass('o_affix_enabled').removeAttr('id');this.$headerClone.insertAfter(this.$target);this.$headers=this.$target.add(this.$headerClone);this.$dropdowns=this.$headers.find('.dropdown');this.$dropdownMenus=this.$headers.find('.dropdown-menu');this.$navbarCollapses=this.$headers.find('.navbar-collapse');this._adaptDefaultOffset();wUtils.onceAllImagesLoaded(this.$headerClone).then(function(){self._adaptDefaultOffset();});_.each(this.$headerClone.find('[data-toggle="collapse"]'),function(el){var $source=$(el);var targetIDSelector=$source.attr('data-target');var $target=self.$headerClone.find(targetIDSelector);$source.attr('data-target',targetIDSelector+'_clone');$target.attr('id',targetIDSelector.substr(1)+'_clone');});this.$headerClone.find('div.navbar-collapse').on('show.bs.collapse',function(){$(document.body).addClass('overflow-hidden');}).on('hide.bs.collapse',function(){$(document.body).removeClass('overflow-hidden');});$(window).on('resize.affixMenu scroll.affixMenu',_.throttle(this._onWindowUpdate.bind(this),200));setTimeout(this._onWindowUpdate.bind(this),0);return def.then(function(){self.trigger_up('widgets_start_request',{$target:self.$headerClone,});});},destroy:function(){if(this.$headerClone){this.$headerClone.remove();$(window).off('.affixMenu');}
this._super.apply(this,arguments);},_adaptDefaultOffset:function(){var bottom=this.$target.offset().top+this._getHeaderHeight();this.$headerClone.css('margin-top',Math.min(-200,-bottom)+'px');},_getHeaderHeight:function(){return this.$headerClone.outerHeight();},_onWindowUpdate:function(){if(this.$navbarCollapses.hasClass('show')){return;}
var wOffset=$(window).scrollTop();var hOffset=this.$target.scrollTop();this.$headerClone.toggleClass('affixed',wOffset>(hOffset+300));this.$dropdowns.add(this.$dropdownMenus).removeClass('show');this.$navbarCollapses.removeClass('show').attr('aria-expanded',false);},});publicWidget.registry.autohideMenu=publicWidget.Widget.extend({selector:'header #top_menu',start:function(){var self=this;var defs=[this._super.apply(this,arguments)];this.noAutohide=this.$el.closest('.o_no_autohide_menu').length;if(!this.noAutohide){var $navbar=this.$el.closest('.navbar');defs.push(wUtils.onceAllImagesLoaded($navbar));var $window=$(window);$window.on('load.autohideMenu',function(){$window.trigger('resize');});}
return Promise.all(defs).then(function(){if(!self.noAutohide){dom.initAutoMoreMenu(self.$el,{unfoldable:'.divider, .divider ~ li'});}
self.$el.removeClass('o_menu_loading');});},destroy:function(){this._super.apply(this,arguments);if(!this.noAutohide){$(window).off('.autohideMenu');dom.destroyAutoMoreMenu(this.$el);}},});publicWidget.registry.menuDirection=publicWidget.Widget.extend({selector:'header .navbar .nav',events:{'show.bs.dropdown':'_onDropdownShow',},start:function(){this.defaultAlignment=this.$el.is('.ml-auto, .ml-auto ~ *')?'right':'left';return this._super.apply(this,arguments);},_checkOpening:function(alignment,liOffset,liWidth,menuWidth,windowWidth){if(alignment==='left'){return(liOffset+menuWidth<=windowWidth);}else{return(liOffset+liWidth-menuWidth>=0);}},_onDropdownShow:function(ev){var $li=$(ev.target);var $menu=$li.children('.dropdown-menu');var liOffset=$li.offset().left;var liWidth=$li.outerWidth();var menuWidth=$menu.outerWidth();var windowWidth=$(window).outerWidth();$menu.removeClass('dropdown-menu-left dropdown-menu-right');var alignment=this.defaultAlignment;if($li.nextAll(':visible').length===0){alignment='right';}
for(var i=0;i<2;i++){if(!this._checkOpening(alignment,liOffset,liWidth,menuWidth,windowWidth)){alignment=(alignment==='left'?'right':'left');}}
$menu.addClass('dropdown-menu-'+alignment);},});});;
/* /website/static/src/js/content/snippets.animation.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('website.content.snippets.animation',function(require){'use strict';var Class=require('web.Class');var config=require('web.config');var core=require('web.core');var mixins=require('web.mixins');var publicWidget=require('web.public.widget');var utils=require('web.utils');var qweb=core.qweb;window.requestAnimationFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame;window.cancelAnimationFrame=window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.msCancelAnimationFrame||window.oCancelAnimationFrame;if(!window.performance||!window.performance.now){window.performance={now:function(){return Date.now();}};}
publicWidget.Widget.include({disabledInEditableMode:true,edit_events:null,read_events:null,init:function(parent,options){this._super.apply(this,arguments);this.editableMode=this.options.editableMode||false;var extraEvents=this.editableMode?this.edit_events:this.read_events;if(extraEvents){this.events=_.extend({},this.events||{},extraEvents);}},});var AnimationEffect=Class.extend(mixins.ParentedMixin,{init:function(parent,updateCallback,startEvents,$startTarget,options){mixins.ParentedMixin.init.call(this);this.setParent(parent);options=options||{};this._minFrameTime=1000/(options.maxFPS||100);this._updateCallback=updateCallback;this.startEvents=startEvents||'scroll';this.$startTarget=$($startTarget||window);if(options.getStateCallback){this._getStateCallback=options.getStateCallback;}else if(this.startEvents==='scroll'&&this.$startTarget[0]===window){this._getStateCallback=function(){return window.pageYOffset;};}else if(this.startEvents==='resize'&&this.$startTarget[0]===window){this._getStateCallback=function(){return{width:window.innerWidth,height:window.innerHeight,};};}else{this._getStateCallback=function(){return undefined;};}
this.endEvents=options.endEvents||false;this.$endTarget=options.$endTarget?$(options.$endTarget):this.$startTarget;this._updateCallback=this._updateCallback.bind(parent);this._getStateCallback=this._getStateCallback.bind(parent);this._uid='_animationEffect'+_.uniqueId();this.startEvents=_processEvents(this.startEvents,this._uid);if(this.endEvents){this.endEvents=_processEvents(this.endEvents,this._uid);}
function _processEvents(events,namespace){events=events.split(' ');return _.each(events,function(e,index){events[index]+=('.'+namespace);}).join(' ');}},destroy:function(){mixins.ParentedMixin.destroy.call(this);this.stop();},start:function(){this._paused=false;this._rafID=window.requestAnimationFrame((function(t){this._update(t);this._paused=true;}).bind(this));if(this.endEvents){this.$startTarget.on(this.startEvents,(function(e){if(this._paused){_.defer(this.play.bind(this,e));}}).bind(this));this.$endTarget.on(this.endEvents,(function(){if(!this._paused){_.defer(this.pause.bind(this));}}).bind(this));}else{var pauseTimer=null;this.$startTarget.on(this.startEvents,_.throttle((function(e){this.play(e);clearTimeout(pauseTimer);pauseTimer=_.delay((function(){this.pause();pauseTimer=null;}).bind(this),2000);}).bind(this),250,{trailing:false}));}},stop:function(){this.$startTarget.off(this.startEvents);if(this.endEvents){this.$endTarget.off(this.endEvents);}
this.pause();},play:function(e){this._newEvent=e;if(!this._paused){return;}
this._paused=false;this._rafID=window.requestAnimationFrame(this._update.bind(this));this._lastUpdateTimestamp=undefined;},pause:function(){if(this._paused){return;}
this._paused=true;window.cancelAnimationFrame(this._rafID);this._lastUpdateTimestamp=undefined;},_update:function(timestamp){if(this._paused){return;}
this._rafID=window.requestAnimationFrame(this._update.bind(this));var elapsedTime=0;if(this._lastUpdateTimestamp){elapsedTime=timestamp-this._lastUpdateTimestamp;if(elapsedTimemaxHeight){maxHeight=height;}
$item.toggleClass('active',isActive);});_.each($items,function(el){$(el).css('min-height',maxHeight);});},_onEditionSlide:function(){this._computeHeights();},_onImageLoaded:function(){this._computeHeights();},});registry.parallax=Animation.extend({selector:'.parallax',disabledInEditableMode:false,effects:[{startEvents:'scroll',update:'_onWindowScroll',}],start:function(){this._rebuild();$(window).on('resize.animation_parallax',_.debounce(this._rebuild.bind(this),500));return this._super.apply(this,arguments);},destroy:function(){this._super.apply(this,arguments);$(window).off('.animation_parallax');},_rebuild:function(){if(!this.$bg||!this.$bg.length){this.$bg=this.$('> .s_parallax_bg');if(!this.$bg.length){this.$bg=$('',{class:'s_parallax_bg'+(this.$target.hasClass('oe_custom_bg')?' oe_custom_bg':''),}).prependTo(this.$target);}}
var urlTarget=this.$target.css('background-image');if(urlTarget!=='none'){this.$bg.css('background-image',urlTarget);}
this.$target.css('background-image','none');this.speed=parseFloat(this.$target.attr('data-scroll-background-ratio')||0);this.$target.toggleClass('s_parallax_is_fixed',this.speed===1);if(this.speed===0||this.speed===1){this.$bg.css({transform:'',top:'',bottom:''});return;}
this.viewport=document.body.clientHeight-$('#wrapwrap').position().top;this.visibleArea=[this.$target.offset().top];this.visibleArea.push(this.visibleArea[0]+this.$target.innerHeight()+this.viewport);this.ratio=this.speed*(this.viewport/10);this.$bg.css({top:-this.ratio,bottom:-this.ratio,});},_onWindowScroll:function(scrollOffset){if(this.speed===0||this.speed===1){return;}
var vpEndOffset=scrollOffset+this.viewport;if(vpEndOffset>=this.visibleArea[0]&&vpEndOffset<=this.visibleArea[1]){this.$bg.css('transform','translateY('+_getNormalizedPosition.call(this,vpEndOffset)+'px)');}
function _getNormalizedPosition(pos){var r=(pos-this.visibleArea[1])/(this.visibleArea[0]-this.visibleArea[1]);return Math.round(this.ratio*(2*r-1));}},});registry.share=publicWidget.Widget.extend({selector:'.s_share, .oe_share',start:function(){var urlRegex=/(\?(?:|.*&)(?:u|url|body)=)(.*?)(&|#|$)/;var titleRegex=/(\?(?:|.*&)(?:title|text|subject)=)(.*?)(&|#|$)/;var url=encodeURIComponent(window.location.href);var title=encodeURIComponent($('title').text());this.$('a').each(function(){var $a=$(this);$a.attr('href',function(i,href){return href.replace(urlRegex,function(match,a,b,c){return a+url+c;}).replace(titleRegex,function(match,a,b,c){return a+title+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);},});registry.mediaVideo=publicWidget.Widget.extend({selector:'.media_iframe_video',start:function(){var def=this._super.apply(this,arguments);if(this.$target.children('iframe').length){return def;}
this.$target.empty();this.$target.append('
'+'
');this.$target.append($('',{src:_.escape(this.$target.data('oe-expression')||this.$target.data('src')),frameborder:'0',allowfullscreen:'allowfullscreen',sandbox:'allow-scripts allow-same-origin',}));return def;},});registry.backgroundVideo=publicWidget.Widget.extend({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_');this.isYoutubeVideo=this.videoSrc.indexOf('youtube')>=0;this.isMobileEnv=config.device.size_class<=config.device.SIZES.LG&&config.device.touch;if(this.isYoutubeVideo&&this.isMobileEnv){this.videoSrc=this.videoSrc+"&enablejsapi=1";if(!window.YT){proms.push(new Promise(resolve=>{window.onYouTubeIframeAPIReady=()=>resolve();}));$('',{src:'https://www.youtube.com/iframe_api',}).appendTo('head');}}
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);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(){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();if(this.isMobileEnv&&this.isYoutubeVideo){new window.YT.Player(this.iframeID,{events:{onReady:ev=>ev.target.playVideo(),}});}},});registry.ul=publicWidget.Widget.extend({selector:'ul.o_ul_folded, ol.o_ul_folded',events:{'click .o_ul_toggle_next':'_onToggleNextClick','click .o_ul_toggle_self':'_onToggleSelfClick',},_onToggleNextClick:function(ev){ev.preventDefault();var $target=$(ev.currentTarget);$target.toggleClass('o_open');$target.closest('li').next().toggleClass('o_close');},_onToggleSelfClick:function(ev){ev.preventDefault();var $target=$(ev.currentTarget);$target.toggleClass('o_open');$target.closest('li').find('ul,ol').toggleClass('o_close');},});registry.gallery=publicWidget.Widget.extend({selector:'.o_gallery:not(.o_slideshow)',xmlDependencies:['/website/static/src/xml/website.gallery.xml'],events:{'click img':'_onClickImg',},_onClickImg:function(ev){var self=this;var $cur=$(ev.currentTarget);var urls=[];var idx=undefined;var milliseconds=undefined;var params=undefined;var $images=$cur.closest('.o_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)};$images.each(function(){urls.push($(this).attr('src'));});var $img=($cur.is('img')===true)?$cur:$cur.closest('img');idx=urls.indexOf($img.attr('src'));milliseconds=$cur.closest('.o_gallery').data('interval')||false;var $modal=$(qweb.render('website.gallery.slideshow.lightbox',{srcs:urls,index:idx,dim:dimensions,interval:milliseconds,id:_.uniqueId('slideshow_'),}));$modal.modal({keyboard:true,backdrop:true,});$modal.on('hidden.bs.modal',function(){$(this).hide();$(this).siblings().filter('.modal-backdrop').remove();$(this).remove();});$modal.find('.modal-content, .modal-body.o_slideshow').css('height','100%');$modal.appendTo(document.body);$modal.one('shown.bs.modal',function(){self.trigger_up('widgets_start_request',{editableMode:false,$target:$modal.find('.modal-body.o_slideshow'),});});},});registry.gallerySlider=publicWidget.Widget.extend({selector:'.o_slideshow',xmlDependencies:['/website/static/src/xml/website.gallery.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]');var nbPerPage=Math.floor(this.$indicator.width()/$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(self.editableMode){return;}
if(page<=0){self.$prev.detach();}else{self.$prev.prependTo(self.$indicator);}
if(page>=nbPages-1){self.$next.detach();}else{self.$next.appendTo(self.$indicator);}}
function update(){index=$lis.index($lis.filter('.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);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');},});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/shareArticle?mini=true&url='+url+'&title='+encodeURIComponent(title),};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.facebookPage=publicWidget.Widget.extend({selector:'.o_facebook_page',disabledInEditableMode:false,start:function(){var def=this._super.apply(this,arguments);var params=_.pick(this.$el.data(),'href','height','tabs','small_header','hide_cover','show_facepile');if(!params.href){return def;}
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,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();}},});registry.anchorSlide=publicWidget.Widget.extend({selector:'a[href^="/"][href*="#"], a[href^="#"]',events:{'click':'_onAnimateClick',},_onAnimateClick:function(ev){if(this.$target[0].pathname!==window.location.pathname){return;}
var hash=this.$target[0].hash;if(!utils.isValidAnchor(hash)){return;}
var $anchor=$(hash);if(!$anchor.length||!$anchor.attr('data-anchor')){return;}
ev.preventDefault();$('html, body').animate({scrollTop:$anchor.offset().top,},500);},});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 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({events:_.extend({},publicWidget.RootWidget.prototype.events||{},{'click [data-action]':'_onActionMenuClick','mouseover > ul > li.dropdown:not(.show)':'_onMenuHovered','click .o_mobile_menu_toggle':'_onMobileMenuToggleClick',}),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;});});},_whenReadyForActions:function(){return Promise.all(this._widgetDefs);},_onActionMenuClick:function(ev){var $button=$(ev.currentTarget);$button.prop('disabled',true);var always=function(){$button.prop('disabled',false);};this._handleAction($button.data('action')).then(always).guardedCatch(always);},_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/visitor_timezone.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('website.visitor_timezone',function(require){'use strict';var ajax=require('web.ajax');var utils=require('web.utils');var publicWidget=require('web.public.widget');publicWidget.registry.visitorTimezone=publicWidget.Widget.extend({selector:'#wrapwrap',start:function(){if(!localStorage.getItem('website.found_visitor_timezone')){var timezone=jstz.determine().name();this._rpc({route:'/website/update_visitor_timezone',params:{'timezone':timezone,},}).then(function(result){if(result){localStorage.setItem('website.found_visitor_timezone',true);}});}
return this._super.apply(this,arguments);},});return publicWidget.registry.visitorTimezone;});;
/* /website/static/src/js/user_custom_javascript.js defined in bundle 'web.assets_frontend_lazy' */
;
/* /website_form/static/src/js/website_form.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('website_form.animation',function(require){'use strict';var core=require('web.core');var time=require('web.time');var ajax=require('web.ajax');var publicWidget=require('web.public.widget');var _t=core._t;var qweb=core.qweb;publicWidget.registry.form_builder_send=publicWidget.Widget.extend({selector:'.s_website_form',willStart:function(){var prom;if(!$.fn.datetimepicker){prom=ajax.loadJS("/web/static/lib/tempusdominus/tempusdominus.js");}
return Promise.all([this._super.apply(this,arguments),prom]);},start:function(editable_mode){if(editable_mode){this.stop();return;}
var self=this;this.templates_loaded=ajax.loadXML('/website_form/static/src/xml/website_form.xml',qweb);this.$target.find('.o_website_form_send').on('click',function(e){self.send(e);});var l10n=_t.database.parameters;var datepickers_options={minDate:moment({y:1900}),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('.o_website_form_datetime').datetimepicker(datepickers_options);datepickers_options.format=time.getLangDateFormat();this.$target.find('.o_website_form_date').datetimepicker(datepickers_options);var $values=$('[data-for='+this.$target.attr('id')+']');if($values.length){var values=JSON.parse($values.data('values').replace('False','""').replace('None','""').replace(/'/g,'"'));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]);}}});}
return this._super.apply(this,arguments);},destroy:function(){this._super.apply(this,arguments);this.$target.find('button').off('click');},send:function(e){e.preventDefault();this.$target.find('.o_website_form_send').off().addClass('disabled');var self=this;self.$target.find('#o_website_form_result').empty();if(!self.check_error_fields({})){self.update_status('invalid');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;}}});ajax.post(this.$target.attr('action')+(this.$target.data('force_action')||this.$target.data('model_name')),form_values).then(function(result_data){result_data=JSON.parse(result_data);if(!result_data.id){self.update_status('error');if(result_data.error_fields){self.check_error_fields(result_data.error_fields);}}else{var success_page=self.$target.attr('data-success_page');if(success_page){$(window.location).attr('href',success_page);}
else{self.update_status('success');}
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').each(function(k,field){var $field=$(field);var field_name=$field.find('.col-form-label').attr('for');var inputs=$field.find('.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,function(checkbox){return checkbox.checked;});}else if($(input).hasClass('o_website_form_date')){if(!self.is_datetime_valid(input.value,'date')){return true;}}else if($(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").options.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){var self=this;if(status!=='success'){this.$target.find('.o_website_form_send').on('click',function(e){self.send(e);}).removeClass('disabled');}
var $result=this.$('#o_website_form_result');this.templates_loaded.then(function(){$result.replaceWith(qweb.render("website_form.status_"+status));});},});});;
/* /website_mail/static/src/js/follow.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('website_mail.follow',function(require){'use strict';var publicWidget=require('web.public.widget');publicWidget.registry.follow=publicWidget.Widget.extend({selector:'.js_follow',disabledInEditableMode:false,start:function(){var self=this;this.is_user=false;var always=function(data){self.is_user=data.is_user;self.email=data.email;self.toggle_subscription(data.is_follower,data.email);self.$target.removeClass('d-none');};this._rpc({route:'/website_mail/is_follower',params:{model:this.$target.data('object'),res_id:this.$target.data('id'),},}).then(always).guardedCatch(always);if(!this.editableMode){$('.js_follow > .input-group-append.d-none').removeClass('d-none');this.$target.find('.js_follow_btn, .js_unfollow_btn').on('click',function(event){event.preventDefault();self._onClick();});}
return this._super.apply(this,arguments);},_onClick:function(){var self=this;var $email=this.$target.find(".js_follow_email");if($email.length&&!$email.val().match(/.+@.+/)){this.$target.addClass('o_has_error').find('.form-control, .custom-select').addClass('is-invalid');return false;}
this.$target.removeClass('o_has_error').find('.form-control, .custom-select').removeClass('is-invalid');var email=$email.length?$email.val():false;if(email||this.is_user){this._rpc({route:'/website_mail/follow',params:{'id':+this.$target.data('id'),'object':this.$target.data('object'),'message_is_follower':this.$target.attr("data-follow")||"off",'email':email,},}).then(function(follow){self.toggle_subscription(follow,email);});}},toggle_subscription:function(follow,email){follow=follow||(!email&&this.$target.attr('data-unsubscribe'));if(follow){this.$target.find(".js_follow_btn").addClass('d-none');this.$target.find(".js_unfollow_btn").removeClass('d-none');}
else{this.$target.find(".js_follow_btn").removeClass('d-none');this.$target.find(".js_unfollow_btn").addClass('d-none');}
this.$target.find('input.js_follow_email').val(email||"").attr("disabled",email&&(follow||this.is_user)?"disabled":false);this.$target.attr("data-follow",follow?'on':'off');},});});;
/* /website_mail/static/src/js/portal_chatter.js defined in bundle 'web.assets_frontend_lazy' */
odoo.define('website_mail.thread',function(require){'use strict';var portalChatter=require('portal.chatter');portalChatter.PortalChatter.include({xmlDependencies:(portalChatter.PortalChatter.prototype.xmlDependencies||[]).concat(['/website_mail/static/src/xml/portal_chatter.xml']),});});;
/* /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',}).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,});},_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('