PageSourceSearch

https://remotive.com/web/content/5251730-eafb41d/1/web.assets_frontend.js

js remotive.com collected 2026-09-25 04:08:23 UTC 268,602 bytes, 680 lines download raw bytes

1
2/* /web/static/src/js/services/session.js defined in bundle 'web.assets_frontend' */
3odoo.define('web.session',function(require){"use strict";var Session=require('web.Session');var modules=odoo._modules;var session=new Session(undefined,undefined,{modules:modules,use_cors:false});session.is_bound=session.session_bind();return session;});;
4
5/* /website/static/src/js/content/website_root.js defined in bundle 'web.assets_frontend' */
6odoo.define('root.widget',function(require){'use strict';require('web.dom_ready');var websiteRootData=require('website.WebsiteRoot');var websiteRoot=new websiteRootData.WebsiteRoot(null);return websiteRoot.attachTo(document.body).then(function(){return websiteRoot;});});odoo.define('website.WebsiteRoot',function(require){'use strict';var ajax=require('web.ajax');var core=require('web.core');var Dialog=require('web.Dialog');var utils=require('web.utils');var BodyManager=require('web_editor.BodyManager');var weContext=require('web_editor.context');var rootWidget=require('web_editor.root_widget');var sAnimation=require('website.content.snippets.animation');require("website.content.zoomodoo");var _t=core._t;var websiteRootRegistry=new rootWidget.RootWidgetRegistry();var lang=utils.get_cookie('frontend_lang')||weContext.get().lang;var localeDef=ajax.loadJS('/web/webclient/locale/'+lang.replace('-','_'));var WebsiteRoot=BodyManager.extend({events:_.extend({},BodyManager.prototype.events||{},{'click .js_change_lang':'_onLangChangeClick','click .js_publish_management .js_publish_btn':'_onPublishBtnClick','submit .js_website_submit_form':'_onWebsiteFormSubmit','click .js_disable_on_click':'_onDisableOnClick','click .js_multi_website_switch':'_multiWebsiteSwitch','click .js_multi_company_switch':'_multiCompanySwitch',}),custom_events:_.extend({},BodyManager.prototype.custom_events||{},{animation_start_demand:'_onAnimationStartDemand',animation_stop_demand:'_onAnimationStopDemand',main_object_request:'_onMainObjectRequest',ready_to_clean_for_save:'_onAnimationStopDemand',}),init:function(){this._super.apply(this,arguments);this.animations=[];},willStart:function(){return $.when(this._super.apply(this,arguments),localeDef);},start:function(){var defs=[this._super.apply(this,arguments)];defs.push(this._startAnimations());if(!this.$('.js_change_lang').length){var $links=this.$('ul.js_language_selector li a:not([data-oe-id])');var m=$(_.min($links,function(l){return $(l).attr('href').length;})).attr('href');$links.each(function(){var $link=$(this);var t=$link.attr('href');var l=(t===m)?"default":t.split('/')[1];$link.data('lang',l).addClass('js_change_lang');});}
7this.$(".o_image[data-mimetype^='image']").each(function(){var $img=$(this);if(/gif|jpe|jpg|png/.test($img.data('mimetype'))&&$img.data('src')){$img.css('background-image',"url('"+$img.data('src')+"')");}});this.$('.zoomable img[data-zoom]').zoomOdoo();if(window.location.hash.indexOf("scrollTop=")>-1){this.el.scrollTop=+window.location.hash.match(/scrollTop=([0-9]+)/)[1];}
8if($.fn.placeholder){$('input, textarea').placeholder();}
9return $.when.apply($,defs);},_getRegistry:function(){return websiteRootRegistry;},_startAnimations:function(editableMode,$from){var self=this;editableMode=editableMode||false;if($from===undefined){$from=this.$('#wrapwrap');}
10this._stopAnimations($from);var defs=_.map(sAnimation.registry,function(Animation,animationName){var selector=Animation.prototype.selector||'';var $target=$from.find(selector).addBack(selector);var defs=_.map($target,function(el){var animation=new Animation(self,editableMode);self.animations.push(animation);return animation.attachTo($(el));});return $.when.apply($,defs);});return $.when.apply($,defs);},_stopAnimations:function($from){var removedAnimations=_.map(this.animations,function(animation){if(!$from||$from.filter(animation.el).length||$from.find(animation.el).length){animation.destroy();return animation;}
11return null;});this.animations=_.difference(this.animations,removedAnimations);},_onAnimationStartDemand:function(ev){this._startAnimations(ev.data.editableMode,ev.data.$target).done(ev.data.onSuccess).fail(ev.data.onFailure);},_onAnimationStopDemand:function(ev){this._stopAnimations(ev.data.$target);},_onLangChangeClick:function(ev){ev.preventDefault();var $target=$(ev.target);var redirect={lang:$target.data('lang'),url:encodeURIComponent($target.attr('href').replace(/[&?]edit_translations[^&?]+/,'')),hash:encodeURIComponent(window.location.hash)};
11window.location.href=_.str.sprintf("/website/lang/%(lang)s?r=%(url)s%(hash)s",redirect);},_onMainObjectRequest:function(ev){var repr=$('html').data('main-object');var m=repr.match(/(.+)\((\d+),(.*)\)/);ev.data.callback({model:m[1],id:m[2]|0,});},_onPublishBtnClick:function(ev){ev.preventDefault();var self=this;var $data=$(ev.currentTarget).parents(".js_publish_management:first");this._rpc({route:$data.data('controller')||'/website/publish',params:{id:+$data.data('id'),object:$data.data('object'),},}).done(function(result){$data.toggleClass("css_unpublished css_published");$data.find('input').prop("checked",result);$data.parents("[data-publish]").attr("data-publish",+result?'on':'off');}).fail(function(err,data){return new Dialog(self,{title:data.data?data.data.arguments[0]:"",$content:$('<div/>',{html:(data.data?data.data.arguments[1]:data.statusText)
12+'<br/>'
13+_.str.sprintf(_t('It might be possible to edit the relevant items or fix the issue in <a href="%s">the classic Odoo interface</a>'),'/web#return_label=Website&model='+$data.data('object')+'&id='+$data.data('id')),}),}).open();});},_onWebsiteFormSubmit:function(ev){var $buttons=$(ev.currentTarget).find('button[type="submit"], a.a-submit');_.each($buttons,function(btn){var $btn=$(btn);$btn.attr('data-loading-text','<i class="fa fa-spinner fa-spin"></i> '+$(btn).text());$btn.button('loading');});},_onDisableOnClick:function(ev){$(ev.currentTarget).addClass('disabled');},_multiWebsiteSwitch:function(ev){var website_id_to_switch_to=ev.currentTarget.getAttribute('website-id');var website_domain=ev.currentTarget.getAttribute('domain');var url=$.param.querystring(window.location.href,{'fw':website_id_to_switch_to});if(website_domain&&window.location.hostname!==website_domain){url=new URL(url);url.hostname=website_domain;}
14window.location.href=url;},_multiCompanySwitch:function(ev){var company_id_to_switch_to=ev.currentTarget.getAttribute('company-id');this._rpc({model:'res.users',method:'write',args:[odoo.session_info.user_id,{'company_id':parseInt(company_id_to_switch_to,10)}],}).then(function(){window.location.reload(true);});},});return{WebsiteRoot:WebsiteRoot,websiteRootRegistry:websiteRootRegistry,};});;
15
16/* /web_editor/static/src/js/content/body_manager.js defined in bundle 'web.assets_frontend' */
17odoo.define('web_editor.BodyManager',function(require){'use strict';var weContext=require('web_editor.context');var rootWidget=require('web_editor.root_widget');var ServiceProviderMixin=require('web.ServiceProviderMixin');var session=require('web.session');var BodyManager=rootWidget.RootWidget.extend(ServiceProviderMixin,{init:function(){this._super.apply(this,arguments);ServiceProviderMixin.init.call(this);},willStart:function(){return $.when(this._super.apply(this,arguments),session.is_bound);},_call_service:function(event){if(event.data.service==='ajax'&&event.data.method==='rpc'){var route=event.data.args[0];if(_.str.startsWith(route,'/web/dataset/call_kw/')){var params=event.data.args[1];var options=event.data.args[2];params.kwargs.context=_.extend({},weContext.get(),params.kwargs.context||{});if(options){params.kwargs.context=_.omit(params.kwargs.context,options.noContextKeys);event.data.args[2]=_.omit(options,'noContextKeys');}
18params.kwargs.context=JSON.parse(JSON.stringify(params.kwargs.context));}}
19return ServiceProviderMixin._call_service.apply(this,arguments);},});return BodyManager;});;
20
21/* /web_editor/static/src/js/root_widget.js defined in bundle 'web.assets_frontend' */
22odoo.define('web_editor.root_widget',function(require){'use strict';var Class=require('web.Class');var dom=require('web.dom');var mixins=require('web.mixins');var session=require('web.session');var Widget=require('web.Widget');var RootWidget=Widget.extend({custom_events:_.extend({},Widget.prototype.custom_events||{},{registry_update:'_onRegistryUpdate',get_session:'_onGetSession',}),init:function(){this._super.apply(this,arguments);this._widgets=[];this._listenToUpdates=false;this._getRegistry().setParent(this);},start:function(){var defs=[this._super.apply(this,arguments)];defs.push(this._attachComponents());this._listenToUpdates=true;return $.when.apply($,defs);},_attachComponent:function(childInfo,$from){var self=this;var $elements=dom.cssFind($from||this.$el,childInfo.selector);var defs=_.map($elements,function(element){var w=new childInfo.Widget(self);self._widgets.push(w);return w.attachTo(element);});return $.when.apply($,defs);},_attachComponents:function($from){var self=this;var childInfos=this._getRegistry().get();var defs=_.map(childInfos,function(childInfo){return self._attachComponent(childInfo,$from);});return $.when.apply($,defs);},_getRegistry:function(){},_onGetSession:function(event){if(event.data.callback){event.data.callback(session);}},_onRegistryUpdate:function(ev){ev.stopPropagation();if(this._listenToUpdates){this._attachComponent(ev.data);}},});var RootWidgetRegistry=Class.extend(mixins.EventDispatcherMixin,{init:function(){mixins.EventDispatcherMixin.init.call(this);this._registry=[];},add:function(Widget,selector){var registryInfo={Widget:Widget,selector:selector,};this._registry.push(registryInfo);this.trigger_up('registry_update',registryInfo);},get:function(){return this._registry;},});return{RootWidget:RootWidget,RootWidgetRegistry:RootWidgetRegistry,};});;
23
24/* /portal/static/src/js/portal.js defined in bundle 'web.assets_frontend' */
25odoo.define('portal.portal',function(require){'use strict';require('web.dom_ready');if(!$('.o_portal').length){return $.Deferred().reject("DOM doesn't contain '.o_portal'");}
26if($('.o_portal_details').length){var state_options=$("select[name='state_id']:enabled o
26ption:not(:first)");$('.o_portal_details').on('change',"select[name='country_id']",function(){var select=$("select[name='state_id']");state_options.detach();var displayed_state=state_options.filter("[data-country_id="+($(this).val()||0)+"]");var nb=displayed_state.appendTo(select).show().size();select.parent().toggle(nb>=1);});$('.o_portal_details').find("select[name='country_id']").change();}
27if($('.o_portal_search_panel').length){$('.o_portal_search_panel .search-submit').click(function(){var search=$.deparam(window.location.search.substring(1));search.search_in=$(".o_portal_search_panel .dropdown-item.active").attr("href").replace("#","");search.search=$(".o_portal_search_panel input[name='search']").val();window.location.search=$.param(search);});$('.o_portal_search_panel .dropdown-menu').find('.dropdown-item').click(function(e){e.preventDefault();$(this).parents('.dropdown-menu').find('.dropdown-item').removeClass('active');$(this).closest('.dropdown-item').addClass('active');var label=$(this).clone();label.find('span.nolabel').remove();$(".o_portal_search_panel span#search_label").text(label.text());});$('.o_portal_search_panel .dropdown-menu').find('.dropdown-item.active').trigger('click');$(".o_portal_search_panel input[name='search']").on('keyup',function(e){if(e.keyCode===13){$('.o_portal_search_panel .search-submit').trigger('click');}});}});;
28
29/* /portal/static/src/js/portal_tour.js defined in bundle 'web.assets_frontend' */
30odoo.define('portal.tour',function(require){'use strict';var tour=require("web_tour.tour");tour.register('portal_load_homepage',{test:true,url:'/my',},[{content:"Check portal is loaded",trigger:'a[href*="/my/account"]:contains("Edit"):first',},{content:"Load my account details",trigger:'input[value="Joel Willis"]'}]);});;
31
32/* /portal/static/src/js/portal_chatter.js defined in bundle 'web.assets_frontend' */
33odoo.define('portal.chatter',function(require){'use strict';var base=require('web_editor.base');var ajax=require('web.ajax');var core=require('web.core');var Widget=require('web.Widget');var rpc=require('web.rpc');var time=require('web.time');var qweb=core.qweb;var _t=core._t;var PortalChatter=Widget.extend({template:'portal.chatter',events:{"click .o_portal_chatter_pager_btn":'_onClickPager'},init:function(parent,options){this._super.apply(this,arguments);this.options=_.defaults(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,'domain':[],});this.set('messages',[]);this.set('message_count',this.options['message_count']);this.set('pager',{});this.set('domain',this.options['domain']);this._current_page=this.options['pager_start'];},willStart:function(){var self=this;return $.when(rpc.query({route:'/mail/chatter_init',params:this._messageFetchPrepareParams()}),this._loadTemplates()).then(function(result){self.result=result;self.options=_.extend(self.options,self.result['options']||{});return result;});},start:function(){this.on("change:messages",this,this._renderMessages);this.on("change:message_count",this,function(){this._renderMessageCount();this.set('pager',this._pager(this._current_page));});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']));return this._super.apply(this,arguments);},messageFetch:function(domain){var self=this;return rpc.query({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;},_changeCurrentPage:function(page,domain){this._current_page=page;var d=domain?domain:_.clone(this.get('domain'));this.set('domain',d);},_loadTemplates:function(){return ajax.loadXML('/portal/static/src/xml/portal_chatter.xml',qweb);},_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._current_page-1)*this.options['pager_step'],'allow_composer':this.options['allow_composer'],};if(self.options['token']){data['token']=self.options['token'];}
34if(this.get('domain')){data['domain']=this.get('domain');}
35return data;},_pager:function(page){var page=page||1;var total=this.get('message_count');var scope=this.options['pager_scope'];var step=this.options['pager_step'];var page_count=Math.ceil(parseFloat(total)/step);var page=Math.max(1,Math.min(parseInt(page),page_count));scope-=1;var pmin=Math.max(page-parseInt(Math.floor(scope/2)),1);var pmax=Math.min(pmin+scope,page_count);if(pmax-scope>0){pmin=pmax-scope;}else{pmin=1;}
36var pages=[];_.each(_.range(pmin,pmax+1),function(index){pages.push(index);});return{"page_count":page_count,"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._current_page;self.set('pager',self._pager(p));});},_onClickPager:function(ev){ev.preventDefault();var page=$(ev.currentTarget).data('page');this._changeCurrentPage(page);},});base.ready().then(function(){$('.o_portal_chatter').each(function(index){var $elem=$(this);var mail_thread=new PortalChatter(null,$elem.data());mail_thread.appendTo($elem);});});return{PortalChatter:PortalChatter,};});;
37
38/* /portal/static/src/js/portal_signature.js defined in bundle 'web.assets_frontend' */
39odoo.define('portal.signature_form',function(require){"use strict";require('web_editor.ready');var ajax=require('web.ajax');var base=require('web_editor.base');var core=require('web.core');
39var Widget=require("web.Widget");var rpc=require("web.rpc");var qweb=core.qweb;var SignatureForm=Widget.extend({template:'portal.portal_signature',events:{'click #o_portal_sign_clear':'clearSign','click .o_portal_sign_submit':'submitSign','init #o_portal_sign_accept':'initSign',},init:function(parent,options){this._super.apply(this,arguments);this.options=_.extend(options||{},{csrf_token:odoo.csrf_token,});},willStart:function(){return this._loadTemplates();},start:function(){this.initSign();},initSign:function(){this.$("#o_portal_signature").empty().jSignature({'decor-color':'#D1D0CE','color':'#000','background-color':'#fff','height':'142px','width':'100%',});this.empty_sign=this.$("#o_portal_signature").jSignature('getData','image');},clearSign:function(){this.$("#o_portal_signature").jSignature('reset');},submitSign:function(ev){ev.preventDefault();var self=this;var $confirm_btn=self.$el.find('button[type="submit"]');var partner_name=self.$("#o_portal_sign_name").val();var signature=self.$("#o_portal_signature").jSignature('getData','image');var is_empty=signature?this.empty_sign[1]===signature[1]:true;this.$('#o_portal_sign_name').parent().toggleClass('o_has_error',!partner_name).find('.form-control, .custom-select').toggleClass('is-invalid',!partner_name);this.$('#o_portal_sign_draw').toggleClass('bg-danger text-white',is_empty);if(is_empty||!partner_name){return false;}
40$confirm_btn.prepend('<i class="fa fa-spinner fa-spin"></i> ');$confirm_btn.attr('disabled',true);return rpc.query({route:this.options.callUrl,params:{'res_id':this.options.resId,'access_token':this.options.accessToken,'partner_name':partner_name,'signature':signature?signature[1]:false,},}).then(function(data){self.$('.fa-spinner').remove();if(data.error){self.$('.o_portal_sign_error_msg').remove();$confirm_btn.before(qweb.render('portal.portal_signature_error',{message:data.error}));$confirm_btn.attr('disabled',false);}
41else if(data.success){$confirm_btn.remove();var $success=qweb.render("portal.portal_signature_success",{widget:data});self.$('#o_portal_sign_draw').parent().replaceWith($success);}
42if(data.force_refresh){if(data.redirect_url){window.location=data.redirect_url;}else{window.location.reload();}}});},_loadTemplates:function(){return ajax.loadXML('/portal/static/src/xml/portal_signature.xml',qweb);},});base.ready().then(function(){$('.o_portal_signature_form').each(function(){var $elem=$(this);var form=new SignatureForm(null,$elem.data());form.appendTo($elem);});$('.o_portal_signature_form').parents('.modal').on('shown.bs.modal',function(ev){$('.o_portal_signature_form').trigger('resize');});});return{SignatureForm:SignatureForm,};});;
43
44/* /portal/static/src/js/portal_sidebar.js defined in bundle 'web.assets_frontend' */
45odoo.define('portal.PortalSidebar',function(require){"use strict";var config=require('web.config');var core=require('web.core');var Widget=require('web.Widget');var time=require('web.time');var _t=core._t;var PortalSidebar=Widget.extend({start:function(){var self=this;this._super.apply(this,arguments);this._setDelayLabel();},_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));}
46$(el).text(displayStr);});},_printIframeContent:function(href){if($.browser.mozilla){window.open(href,'_blank');return;}
47if(!this.printContent){this.printContent=$('<iframe id="print_iframe_content" src="'+href+'" style="display:none"></iframe>');this.$el.append(this.printContent);this.printContent.on('load',function(){$(this).get(0).contentWindow.print();});}else{this.printContent.get(0).contentWindow.print();}},});return PortalSidebar;});;
48
49/* /auth_signup/static/src/js/signup.js defined in bundle 'web.assets_frontend' */
50odoo.define('auth_signup.signup',function(require){'use strict';var base=require('web_editor.base');base.ready().then(function(){if($('.oe_signup_form').length>0){$('.oe_signup_form').on('submit',function(){$('.o_signup_btn').attr('disabled','disabled');$('.o_signup_btn').prepend('<i class="fa fa-refresh fa-spin"/> ');});}});});;
51
52/* /website/static/src/js/utils.js defined in bundle 'web.assets_frontend' */
53odoo.define('website.utils',function(require){'use strict';var ajax=require('web.ajax');var core=require('web.core');var qweb=core.qweb;function autocompleteWithPages(self,$input){$input.autocomplete({source:function(request,response){return self._rpc({model:'website',method:'search_pages',args:[null,request.term],kwargs:{limit:15,},}).then(function(exists){var rs=_.map(exists,function(r){return r.loc;});response(rs);});},});}
54function prompt(options,_qweb){if(typeof options==='string'){options={text:options};}
55var xmlDef;if(_.isUndefined(_qweb)){_qweb='website.prompt';xmlDef=ajax.loadXML('/website/static/src/xml/website.xml',core.qweb);}
56options=_.extend({window_title:'',field_name:'','default':'',init:function(){},},options||{});var type=_.intersection(Object.keys(options),['input','textarea','select']);type=type.length?type[0]:'input';options.field_type=type;options.field_name=options.field_name||options[type];var def=$.Deferred();$.when(xmlDef).then(function(){var dialog=$(qweb.render(_qweb,options)).appendTo('body');options.$dialog=dialog;var field=dialog.find(options.field_type).first();field.val(options['default']);field.fillWith=function(data){if(field.is('select')){var select=field[0];data.forEach(function(item){select.options[select.options.length]=new window.Option(item[1],item[0]);});}else{field.val(data);}};var init=options.init(field,dialog);$.when(init).then(function(fill){if(fill){field.fillWith(fill);}
57dialog.modal('show');field.focus();dialog.on('click','.btn-primary',function(){var backdrop=$('.modal-backdrop');def.resolve(field.val(),field,dialog);dialog.modal('hide').remove();backdrop.remove();});});dialog.on('hidden.bs.modal',function(){var backdrop=$('.modal-backdrop');def.reject();dialog.remove();backdrop.remove();});if(field.is('input[type="text"], select')){field.keypress(function(e){if(e.which===13){e.preventDefault();dialog.find('.btn-primary').trigger('click');}});}});return def;}
58return{autocompleteWithPages:autocompleteWithPages,prompt:prompt,};});;
59
60/* /website/static/src/js/website.js defined in bundle 'web.assets_frontend' */
61odoo.define('website.website',function(require){'use strict';var weContext=require('web_editor.context');var weGetContext=weContext.get;weContext.get=function(context){var html=document.documentElement;return _.extend({website_id:html.getAttribute('data-website-id')|0,},weGetContext(context),context);};});odoo.define('website.website_modal',function(require){'use strict';require('web.dom_ready');$('body').on('shown.bs.modal',function(e){$(e.target).addClass('modal_shown');});});;
62
63/* /website/static/src/js/content/compatibility.js defined in bundle 'web.assets_frontend' */
64odoo.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';}
65browser+=(','+$.browser.version);var mobileRegex=/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i;if(mobileRegex.test(window.navigator.userAgent.toLowerCase())){browser+=',mobile';}
66document.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','');}
67return{browser:browser,isFlexSupported:isFlexSupported,};});;
68
69/* /website/static/src/js/content/lazy_template_call.js defined in bundle 'web.assets_frontend' */
70odoo.define('website.content.lazy_template_call',function(require){'use strict';var Widget=require('web.Widget');var websiteRootData=require('website.WebsiteRoot');var LazyTemplateRenderer=Widget.extend({start:function(){var $oeCalls=this.$('[data-oe-call]');var oeCalls=_.uniq($oeCalls.map(function(){return $(this).data('oe-call');}).get());if(!oeCalls.length){return $.when(this._super.apply(this,arguments));}
71var def=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 $.when(this._super.apply(this,arguments),def);},});websiteRootData.websiteRootRegistry.add(LazyTemplateRenderer,'#wrapwrap');return LazyTemplateRenderer;});;
72
73/* /remotive_website_layout/static/src/js/menu.js defined in bundle 'web.assets_frontend' */
74odoo.define('website.content.menu',function(require){'use strict';var dom=require('web.dom');var sAnimation=require('website.content.snippets.animation');sAnimation.registry.affixMenu=sAnimation.Class.extend({selector:'header.o_affix_enabled',start:function(){var def=this._super.apply(this,arguments);if(this.editableMode){return def;}
75var self=this;this.$dropdowns=this.$headers.find('.dropdown');this.$navbarCollapses=this.$headers.find('.navbar-collapse');$(window).on('resize.affixMenu scroll.affixMenu',_.throttle(this._onWindowUpdate.bind(this),200));setTimeout(this._onWindowUpdate.bind(this),0);return def;},destroy:function(){if(this.$headerClone){this.$headerClone.remove();$(window).off('.affixMenu');}
76this._super.apply(this,arguments);},_onWindowUpdate:function(){var wOffset=$(window).scrollTop();var hOffset=this.$target.scrollTop();this.$dropdowns.removeClass('show');this.$navbarCollapses.removeClass('show').attr('aria-expanded',false);},});sAnimation.registry.autohideMenu=sAnimation.Class.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');_.each($navbar.find('img'),function(img){if(img.complete){return;}
77var def=$.Deferred();defs.push(def);$(img).one('load',function(){def.resolve();});});var $window=$(window);$window.on('load.autohideMenu',function(){$window.trigger('resize');});}
78return $.when.apply($,defs).then(function(){if(!self.noAutohide){dom.initAutoMoreMenu(self.$el,{unfoldable:'.divider, .divider ~ li'});}
79self.$el.removeClass('o_menu_loading');});},destroy:function(){this._super.apply(this,arguments);if(!this.noAutohide){$(window).off('.autohideMenu');dom.destroyAutoMoreMenu(this.$el);}},});sAnimation.registry.menuDirection=sAnimation.Class.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';}
80for(var i=0;i<2;i++){if(!this._checkOpening(alignment,liOffset,liWidth,menuWidth,windowWidth)){alignment=(alignment==='left'?'right':'left');}}
81$menu.addClass('dropdown-menu-'+alignment);},});});;
82
83/* /website/static/src/js/content/snippets.animation.js defined in bundle 'web.assets_frontend' */
84odoo.define('website.content.snippets.animation',function(require){'use strict';var Class=require('web.Class');var core=require('web.core');var mixins=require('web.mixins');var utils=require('web.utils');var Widget=require('web.Widget');var qweb=core.qweb;window.requestAnimationFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||function(callback){setTimeout(callback,10);};window.cancelAnimationFrame=window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.msCancelAnimationFrame||window.oCancelAnimationFrame||function(id){clearTimeout(id);};if(!window.performance||!window.performance.now){window.performance={now:function(){return Date.now();}};}
85var 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);this._getStateCallback=options.getStateCallback||((this.startEvents==='scroll'&&this.$startTarget[0]===window)?function(){return window.pageYOffset;}:false)||((this.startEvents==='resize'&&this.$startTarget[0]===window)?function(){return{width:window.innerWidth,height:window.innerHeight};}:false)||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);}
86function _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);}
87this.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;
87if(this._lastUpdateTimestamp){elapsedTime=timestamp-this._lastUpdateTimestamp;if(elapsedTime<this._minFrameTime)return;}
88var animationState=this._getStateCallback(elapsedTime,this._newEvent);if(!this._newEvent&&animationState!==undefined&&_.isEqual(animationState,this._animationLastState)){return;}
89this._animationLastState=animationState;this._updateCallback(this._animationLastState,elapsedTime,this._newEvent);this._lastUpdateTimestamp=timestamp;this._newEvent=undefined;},});var Animation=Widget.extend({selector:false,edit_events:{},read_events:{},maxFPS:100,effects:[],init:function(parent,editableMode){this._super.apply(this,arguments);this.editableMode=editableMode;if(editableMode){this.events=_.extend({},this.events||{},this.edit_events||{});}else{this.events=_.extend({},this.events||{},this.read_events||{});}},start:function(){this._prepareEffects();_.each(this._animationEffects,function(effect){effect.start();});return this._super.apply(this,arguments);},destroy:function(){var $oldel=this.$el;this.setElement(null);this._super.apply(this,arguments);this.$el=$oldel;this.el=$oldel[0];this.$target=this.$el;this.target=this.el;},setElement:function(){this._super.apply(this,arguments);this.$target=this.$el;this.target=this.el;},_prepareEffects:function(){this._animationEffects=[];var self=this;_.each(this.effects,function(desc){self._addEffect(self[desc.update],desc.startEvents,_findTarget(desc.startTarget),{getStateCallback:desc.getState&&self[desc.getState],endEvents:desc.endEvents||undefined,$endTarget:_findTarget(desc.endTarget),maxFPS:self.maxFPS,});function _findTarget(selector){if(selector){if(selector==='selector'){return self.$target;}
90return self.$(selector);}
91return undefined;}});},_addEffect:function(updateCallback,startEvents,$startTarget,options){this._animationEffects.push(new AnimationEffect(this,updateCallback,startEvents,$startTarget,options));},});var registry={};registry.slider=Animation.extend({selector:'.carousel',edit_events:{'slid.bs.carousel':'_onEditionSlide',},start:function(){if(!this.editableMode){this.$('img').on('load.slider',this._onImageLoaded.bind(this));this._computeHeights();}
92this.$target.carousel();return this._super.apply(this,arguments);},destroy:function(){this._super.apply(this,arguments);this.$('img').off('.slider');this.$target.carousel('pause');this.$target.removeData('bs.carousel');_.each(this.$('.carousel-item'),function(el){$(el).css('min-height','');});},_computeHeights:function(){var maxHeight=0;var $items=this.$('.carousel-item');_.each($items,function(el){var $item=$(el);var isActive=$item.hasClass('active');$item.addClass('active');var height=$item.outerHeight();if(height>maxHeight){maxHeight=height;}
93$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',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=$('<span/>',{class:'s_parallax_bg'+(this.$target.hasClass('oe_custom_bg')?' oe_custom_bg':''),}).prependTo(this.$target);}}
94var urlTarget=this.$target.css('background-image');if(urlTarget!=='none'){this.$bg.css('background-image',urlTarget);}
95this.$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;}
96this.viewport=document.body.clientHeight-$('#wrapwrap').position().top;this.visible_area=[this.$target.offset().top];this.visible_area.push(this.visible_area[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;}
97var vpEndOffset=scrollOffset+this.viewport;if(vpEndOffset>=this.visible_area[0]&&vpEndOffset<=this.visible_area[1]){this.$bg.css('transform','translateY('+_getNormalizedPosition.call(this,vpEndOffset)+'px)');}
98function _getNormalizedPosition(pos){var r=(pos-this.visible_area[1])/(this.visible_area[0]-this.visible_area[1]);return Math.round(this.ratio*(2*r-1));}},});registry.share=Animation.extend({selector:'.s_share, .oe_share',start:function(){var url_regex=/(\?(?:|.*&)(?:u|url|body)=)(.*?)(&|#|$)/;var title_regex=/(\?(?:|.*&)(?: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(url_regex,function(match,a,b,c){return a+url+c;}).replace(title_regex,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=Animation.extend({selector:'.media_iframe_video',
98start:function(){var def=this._super.apply(this,arguments);if(this.$target.children('iframe').length){return def;}
99this.$target.empty();this.$target.append('<div class="css_editable_mode_display">&nbsp;</div>'+'<div class="media_iframe_video_size">&nbsp;</div>');this.$target.append($('<iframe/>',{src:_.escape(this.$target.data('oe-expression')||this.$target.data('src')),frameborder:'0',allowfullscreen:'allowfullscreen',sandbox:'allow-scripts allow-same-origin',}));return def;},});registry.ul=Animation.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=Animation.extend({selector:'.o_gallery:not(.o_slideshow)',xmlDependencies:['/website/static/src/xml/website.gallery.xml'],read_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;params={srcs:urls,index:idx,dim:dimensions,interval:milliseconds,id:_.uniqueId('slideshow_')};var $modal=$(qweb.render('website.gallery.slideshow.lightbox',params));$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('animation_start_demand',{editableMode:false,$target:$modal.find('.modal-body.o_slideshow'),});});},});registry.gallerySlider=Animation.extend({selector:'.o_slideshow',xmlDependencies:['/website/static/src/xml/website.gallery.xml'],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*nbPerPage&&i<(page+1)*nbPerPage));});if(self.editableMode){return;}
100if(page<=0){self.$prev.detach();}else{self.$prev.prependTo(self.$indicator);}
101if(page>=nbPages-1){self.$next.detach();}else{self.$next.appendTo(self.$indicator);}}
102function update(){index=$lis.index($lis.filter('.active'))||0;page=Math.floor(index/realNbPerPage);hide();}
103this.$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);this.$prev.prependTo(this.$indicator);this.$next.appendTo(this.$indicator);this.$carousel.off('.gallery_slider');this.$indicator.off('.gallery_slider');},});registry.socialShare=Animation.extend({selector:'.oe_social_share',xmlDependencies:['/website/static/src/xml/website.share.xml'],read_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'));this.$('.oe_social_google-plus').click($.proxy(this._renderSocial,this,'google-plus'));},_render:function(){this.$target.popover({content:qweb.render('website.social_hover',{medias:this.socialList}),placement:'bottom',container:this.$target,html:true,trigger:'manual',animation:false,}).popover("show");
103this.$target.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=encodeURIComponent(document.URL.split(/[?#]/)[0]);var title=document.title.split(" | ")[0];var hashtags=' #'+document.title.split(" | ")[1].replace(' ','')+' '+this.hashtags;var social_network={'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),'google-plus':'https://plus.google.com/share?url='+url,};if(!_.contains(_.keys(social_network),social)){return;}
104var wHeight=500;var wWidth=500;window.open(social_network[social],'','menubar=no, toolbar=no, resizable=yes, scrollbar=yes, height='+wHeight+',width='+wWidth);},_onMouseEnter:function(){var social=this.$target.data('social');this.socialList=social?social.split(','):['facebook','twitter','linkedin','google-plus'];this.hashtags=this.$target.data('hashtags')||'';this._render();this._bindSocialEvent();},});registry.facebookPage=Animation.extend({selector:'.o_facebook_page',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;}
105params.width=utils.confine(this.$el.width(),180,500);var src=$.param.querystring('https://www.facebook.com/plugins/page.php',params);this.$iframe=$('<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._fixAppleCollapse=Animation.extend({selector:'.s_faq_collapse [data-toggle="collapse"]',events:{'click':function(){},},});return{Class:Animation,registry:registry,};});;
106
107/* /website/static/src/js/content/zoomodoo.js defined in bundle 'web.assets_frontend' */
108odoo.define('website.content.zoomodoo',function(require){'use strict';var dw,dh,rw,rh,lx,ly;var defaults={linkTag:'a',linkAttribute:'data-zoom-image',event:'click',preventClicks:true,disabledOnMobile:true,beforeShow:$.noop,beforeHide:$.noop,onShow:$.noop,onHide:$.noop,onMove:$.noop};function ZoomOdoo(target,options){this.$target=$(target);this.opts=$.extend({},defaults,options,this.$target.data());if(this.isOpen===undefined){this._init();}}
109ZoomOdoo.prototype._init=function(){if(window.outerWidth>467||!this.opts.disabledOnMobile){this.$link=this.$target.find(this.opts.linkTag).length&&this.$target.find(this.opts.linkTag)||this.$target;this.$image=this.$target.find('img').length&&this.$target.find('img')||this.$target;this.$flyout=$('<div class="zoomodoo-flyout" />');var $attach=this.$target;if(this.opts.attach!==undefined&&this.$target.parents(this.opts.attach).length){$attach=this.$target.parents(this.opts.attach);}
110$attach.parent().on('mousemove.zoomodoo touchmove.zoomodoo',$.proxy(this._onMove,this));$attach.parent().on('mouseleave.zoomodoo touchend.zoomodoo',$.proxy(this._onLeave,this));this.$target.on(this.opts.event+'.zoomodoo touchstart.zoomodoo',$.proxy(this._onEnter,this));if(this.opts.preventClicks){this.$target.on('click.zoomodoo',function(e){e.preventDefault();});}}};ZoomOdoo.prototype.show=function(e,testMouseOver){var w1,h1,w2,h2;var self=this;if(this.opts.beforeShow.call(this)===false)return;if(!this.isReady){return this._loadImage(this.$link.attr(this.opts.linkAttribute),function(){if(self.isMouseOver||!testMouseOver){self.show(e);}});}
111var $attach=this.$target;if(this.opts.attach!==undefined&&this.$target.parents(this.opts.attach).length){$attach=this.$target.parents(this.opts.attach);}
112$attach.parent().append(this.$flyout);w1=this.$target.width();h1=this.$target.height();w2=this.$flyout.width();h2=this.$flyout.height();dw=this.$zoom.width()-w2;dh=this.$zoom.height()-h2;if(dw<0)dw=0;if(dh<0)dh=0;rw=dw/w1;rh=dh/h1;this.isOpen=true;this.opts.onShow.call(this);if(e){this._move(e);}};ZoomOdoo.prototype._onEnter=function(e){var touches=e.originalEvent.touches;this.isMouseOver=true;if(!touches||touches.length===1){e.preventDefault();this.show(e,true);}};ZoomOdoo.prototype._onMove=function(e){if(!this.isOpen)return;e.preventDefault();this._move(e);};ZoomOdoo.prototype._onLeave=function(){this.isMouseOver=false;if(this.isOpen){this.hide();}};ZoomOdoo.prototype._onLoad=function(e){if(!e.currentTarget.width)return;this.isReady=true;this.$flyout.html(this.$zoom);if(e.data.call){e.data();}};ZoomOdoo.prototype._loadImage=function(href,callback){var zoom=new Image();this.$zoom=$(zoom).on('load',callback,$.proxy(this._onLoad,this));zoom.style.position='absolute';zoom.src=href;};ZoomOdoo.prototype._move=function(e){if(e.type.indexOf('touch')===0){var touchlist=e.touches||e.originalEvent.touches;lx=touchlist[0].pageX;ly=touchlist[0].pageY;}else{lx=e.pageX||lx;ly=e.pageY||ly;}
113var offset=this.$target.offset();var pt=ly-offset.top;var pl=lx-offset.left;var xt=Math.ceil(pt*rh);var xl=Math.ceil(pl*rw);if(xl<0||xt<0||xl>dw||xt>dh){this.hide();}else{var top=xt*-1;var left=xl*-1;this.$zoom.css({top:top,left:left});this.opts.onMove.call(this,top,left);}};ZoomOdoo.prototype.hide=function(){if(!this.isOpen)return;if(this.opts.beforeHide.call(this)===false)return;this.$flyout.detach();this.isOpen=false;this.opts.onHide.call(this);};$.fn.zoomOdoo=function(options){return this.each(function(){var api=$.data(this,'zoomOdoo');if(!api){$.data(this,'zoomOdoo',new ZoomOdoo(this,options));}
113else if(api.isOpen===undefined){api._init();}});};});;
114
115/* /website/static/src/js/menu/navbar.js defined in bundle 'web.assets_frontend' */
116odoo.define('website.navbar',function(require){'use strict';var rootWidget=require('web_editor.root_widget');var concurrency=require('web.concurrency');var Widget=require('web.Widget');var websiteRootData=require('website.WebsiteRoot');var websiteNavbarRegistry=new rootWidget.RootWidgetRegistry();var WebsiteNavbar=rootWidget.RootWidget.extend({events:_.extend({},rootWidget.RootWidget.prototype.events||{},{'click [data-action]':'_onActionMenuClick','mouseover > ul > li.dropdown:not(.show)':'_onMenuHovered','click .o_mobile_menu_toggle':'_onMobileMenuToggleClick',}),custom_events:_.extend({},rootWidget.RootWidget.prototype.custom_events||{},{action_demand:'_onActionDemand',edit_mode:'_onEditMode',ready_to_save:'_onSave',}),init:function(){this._super.apply(this,arguments);this._widgetDefs=[$.Deferred()];},start:function(){var self=this;return this._super.apply(this,arguments).then(function(){self._widgetDefs[0].resolve();});},_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;}
117var 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 $.Deferred().reject();}
118return concurrency.delay(100).then(function(){return self._handleAction(actionName,params,(_i||0)+1);});}
119return $.when.apply($,defs);});},_whenReadyForActions:function(){return $.when.apply($,this._widgetDefs);},_onActionMenuClick:function(ev){var $button=$(ev.currentTarget);$button.prop('disabled',true);this._handleAction($button.data('action')).always(function(){$button.prop('disabled',false);});},_onActionDemand:function(ev){var def=this._handleAction(ev.data.actionName,ev.data.params);if(ev.data.onSuccess){def.done(ev.data.onSuccess);}
120if(ev.data.onFailure){def.fail(ev.data.onFailure);}},_onEditMode:function(){var self=this;this.$el.addClass('editing_mode');_.delay(function(){self.do_hide();},800);},_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');},_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 $.when(action.apply(this,params||[]));}
121return null;},});websiteRootData.websiteRootRegistry.add(WebsiteNavbar,'#oe_main_menu_navbar');return{WebsiteNavbar:WebsiteNavbar,websiteNavbarRegistry:websiteNavbarRegistry,WebsiteNavbarActionWidget:WebsiteNavbarActionWidget,};});;
122
123/* /website_mail/static/src/js/follow.js defined in bundle 'web.assets_frontend' */
124odoo.define('website_mail.follow',function(require){'use strict';var sAnimation=require('website.content.snippets.animation');sAnimation.registry.follow=sAnimation.Class.extend({selector:'.js_follow',start:function(){var self=this;this.is_user=false;this._rpc({route:'/website_mail/is_follower',params:{model:this.$target.data('object'),res_id:this.$target.data('id'),},}).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');});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();});}
125return 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;}
126this.$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:{'i
126d':+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');}
127else{this.$target.find(".js_follow_btn").removeClass('d-none');this.$target.find(".js_unfollow_btn").addClass('d-none');}
128this.$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');},});});;
129
130/* /website_mail/static/src/js/website_mail.js defined in bundle 'web.assets_frontend' */
131odoo.define('website_mail.thread',function(require){'use strict';var ajax=require('web.ajax');var core=require('web.core');var qweb=core.qweb;var PortalChatter=require('portal.chatter').PortalChatter;PortalChatter.include({_loadTemplates:function(){return $.when(this._super(),ajax.loadXML('/website_mail/static/src/xml/website_mail.xml',qweb));},});});;
132
133/* /remotive_website_job/static/src/js/website_form.js defined in bundle 'web.assets_frontend' */
134odoo.define('website_form.animation',function(require){'use strict';var core=require('web.core');var time=require('web.time');var ajax=require('web.ajax');var sAnimation=require('website.content.snippets.animation');var _t=core._t;var qweb=core.qweb;sAnimation.registry.form_builder_send=sAnimation.Class.extend({selector:'.s_website_form',willStart:function(){var def;if(!$.fn.datetimepicker){def=ajax.loadJS("/web/static/lib/tempusdominus/tempusdominus.js");}
135return $.when(this._super.apply(this,arguments),def);},start:function(editable_mode){if(editable_mode){this.stop();return;}
136var 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);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;}
137this.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;}}});for(var key in this.$target.data()){if(_.str.startsWith(key,'form_field_')){form_values[key.replace('form_field_','')]=this.$target.data(key);}}
138ajax.post(this.$target.attr('action')+(this.$target.data('force_action')||this.$target.data('model_name')),form_values).then(function(result_data){result_data=$.parseJSON(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');
138if(success_page){$(window.location).attr('href',success_page);}
139else{self.update_status('success');}
140self.$target[0].reset();}}).fail(function(result_data){self.update_status('error');});},check_error_fields:function(error_fields){var self=this;var form_valid=true;var location_error=$('#location-error')[0];location_error.classList.add("tw-hidden");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)[0].name=='quick_location_filter'){if($(input)[0].value=='other'&&$(input)[0].checked){if($('#location_div input:checked').length==0){location_error.classList.remove("tw-hidden");return true;}
141if($('#location_div input:checked').length==1&&$('#location_div input:checked')[0].name=='enter_custom_location'){if(!$('#location_div input[name="candidate_required_location"]')[0].value){location_error.classList.remove("tw-hidden");return true;}}}}
142if(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;}}
143return!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')
144if(_.isString(error_fields[field_name])){$field.popover({content:error_fields[field_name],trigger:'hover',container:'body',placement:'top'});if(!$field.data("bs.popover").options){$field.data("bs.popover").options={'content':error_fields[field_name]};}
145else{$field.data("bs.popover").options.content=error_fields[field_name];}
146$field.popover('show');}
147form_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())
148return 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())
149return time.date_to_str(date.toDate());throw new Error(_.str.sprintf(_t("'%s' is not a correct date"),value));}
150return value;},update_status:function(status){var self=this;if(status!=='success'){var $submit_target=this.$target.find('.o_website_form_send').on('click',function(e){self.send(e);})
151$submit_target.removeClass('disabled');$submit_target.prop("disabled",false);$submit_target.removeClass("tw-opacity-75")
152$submit_target.removeClass("tw-cursor-wait")
153$submit_target[0].firstElementChild.classList.add("tw-hidden")}
154var $result=this.$('#o_website_form_result');this.templates_loaded.done(function(){$result.replaceWith(qweb.render("website_form.status_"+status));});},});});;
155
156/* /website_crm_partner_assign/static/src/js/crm_partner_assign.js defined in bundle 'web.assets_frontend' */
157odoo.define('crm.partner_assign',function(require){'use strict';var rpc=require('web.rpc');var weContext=require('web_editor.context');require('web.dom_ready');var interested_form=$('.interested_partner_assign_form');var desinterested_form=$('.desinterested_partner_assign_form');var opp_stage_buttons=$('.opp-stage-button');var new_opp_form=$('.new_opp_form');if(!interested_form.length&&!desinterested_form.length&&!opp_stage_buttons.length&&!new_opp_form.length){return $.Deferred().reject("DOM doesn't contain website_crm_partner_assign elements");}
158$('.interested_partner_assign_confirm').on('click',function(e){var $btn=$(this);if($('.interested_partner_assign_form .comment_interested').val()&&$('.interested_partner_assign_form .contacted_interested').prop('checked')){$btn.prop('disabled',true);rpc.query({model:'crm.lead',method:"partner_interested",args:[[parseInt($('.interested_partner_assign_form .assign_lead_id').val())],$('.interested_partner_assign_form .comment_interested').val()],context:weContext.get(),}).then(function(){window.location.href='/my/leads';}).always(function(){$btn.prop('disabled',false);});}else{$('.interested_partner_assign_form .error_partner_assign_interested').css('display','block');}
159return false;});$('.desinterested_partner_assign_confirm').on('click',function(){var $btn=$(this);$btn.prop('disabled',true);rpc.query({model:'crm.lead',method:'partner_desinterested',args:[[parseInt($('.desinterested_partner_assign_form .assign_lead_id').val())],$('.desinterested_partner_assign_form .comment_desinterested').val(),$('.desinterested_partner_assign_form .contacted_desinterested').prop('checked'),$('.desinterested_partner_assign_form .customer_mark_spam').prop('checked'),],context:weContext.get(),}).then(function(){window.location.href='/my/leads';}).always(function(){$btn.prop('disabled',false);});return false;});opp_stage_buttons.on('click',function(e){var $btn=$(this);$btn.prop('disabled',true);rpc.query({model:'crm.lead',method:'write',args:[[parseInt(e.currentTarget.getAttribute('opp'))],{stage_id:parseInt(e.currentTarget.getAttribute('data')),},],context:_.extend({website_partner_assign:1},weContext.get()),}).fail(function(){$btn.prop('disabled',false);}).done(function(){window.location.reload();});});$('.edit_contact_form .country_id').on('change',function(){var country_id=$('.edit_contact_form .country_id').find(":selected").attr('value');$(".edit_contact_form .state[country!="+country_id+"]").css('display','none');$(".edit_contact_form .state[country="+country_id+"]").css('display','block');});$('.edit_contact_confirm').on('click',function(){var $btn=$(this);$btn.prop('disabled',true);rpc.query({model:'crm.lead',method:"write",args:[[parseInt($('.edit_contact_form .opportunity_id').val())],{partner_name:$('.edit_contact_form .partner_name').val(),phone:$('.edit_contact_form .phone').val(),mobile:$('.edit_contact_form .mobile').val(),email_from:$('.edit_contact_form .email_from').val(),street:$('.edit_contact_form .street').val(),street2:$('.edit_contact_form .street2').val(),city:$('.edit_contact_form .city').val(),zip:$('.edit_contact_form .zip').val(),state_id:parseInt($('.edit_contact_form .state_id').find(":selected").attr('value')),country_id:parseInt($('.edit_contact_form .country_id').find(":selected").attr('value')),}],context:weContext.get(),}).fail(function(){$btn.prop('disabled',false);}).done(function(){window.location.reload();});return false;});$('.new_opp_confirm').on('click',function(e){var $btn=$(this);$btn.prop('disabled',true);rpc.query({model:'crm.lead',method:'create_opp_portal',args:[{contact_name:$('.new_opp_form .contact_name').val(),title:$('.new_opp_form .t
159itle').val(),description:$('.new_opp_form .description').val(),}],context:weContext.get(),}).done(function(response){if(response.errors){$('#new-opp-dialog .alert').remove();$('#new-opp-dialog div:first').prepend("<div class='alert alert-danger'>"+response.errors+"</div>");$btn.prop('disabled',false);}
160else{window.location='/my/opportunity/'+response.id;}}).fail(function(){$btn.prop('disabled',false);});return false;});$('.edit_opp_confirm').on('click',function(){var $btn=$(this);$btn.prop('disabled',true);rpc.query({model:'crm.lead',method:'update_lead_portal',args:[[parseInt($('.edit_opp_form .opportunity_id').val())],{date_deadline:$('.edit_opp_form .date_deadline').val(),planned_revenue:parseFloat($('.edit_opp_form .planned_revenue').val()),probability:parseFloat($('.edit_opp_form .probability').val()),activity_type_id:parseInt($('.edit_opp_form .next_activity').find(":selected").attr('data')),activity_summary:$('.edit_opp_form .activity_summary').val(),activity_date_deadline:$('.edit_opp_form .activity_date_deadline').val(),priority:$('input[name="PriorityRadioOptions"]:checked').val(),}],context:weContext.get(),}).fail(function(){$btn.prop('disabled',false);}).done(function(){window.location.reload();});return false;});$('.edit_opp_form .next_activity').on('change',function(){var selected=$('.edit_opp_form .next_activity').find(":selected");if(selected.attr('activity_summary')){$('.edit_opp_form .activity_summary').val(selected.attr('activity_summary'));}
161if(selected.attr('days')){var date_now=moment();var days=parseInt(selected.attr('days'));var date=date_now.add(days,'days');$('.edit_opp_form .activity_date_deadline').val(date.format('YYYY-MM-DD'));}});$("div.input-group span.fa-calendar").on('click',function(e){$(e.currentTarget).closest("div.date").datetimepicker({icons:{time:'fa fa-clock-o',date:'fa fa-calendar',up:'fa fa-chevron-up',down:'fa fa-chevron-down'},});});});;
162
163/* /website_links/static/src/js/website_links.js defined in bundle 'web.assets_frontend' */
164odoo.define('website_links.website_links',function(require){'use strict';require('web.dom_ready');var ajax=require('web.ajax');var core=require('web.core');var rpc=require('web.rpc');var Widget=require('web.Widget');var base=require('web_editor.base');var weContext=require('web_editor.context');var qweb=core.qweb;var _t=core._t;var exports={};if(!$('.o_website_links_create_tracked_url').length){return $.Deferred().reject("DOM doesn't contain '.o_website_links_create_tracked_url'");}
165var SelectBox=Widget.extend({init:function(obj){this.obj=obj;},start:function(element,placeholder){var self=this;this.element=element;this.placeholder=placeholder;this.fetch_objects().then(function(results){self.objects=results;element.select2({placeholder:self.placeholder,allowClear:true,createSearchChoice:function(term){if(self.object_exists(term)){return null;}
166return{id:term,text:_.str.sprintf("Create '%s'",term)};},createSearchChoicePosition:'bottom',multiple:false,data:self.objects,});element.on('change',function(e){self.on_change(e);});});},fetch_objects:function(){return rpc.query({model:this.obj,method:'search_read',context:weContext.get(),}).then(function(result){return _.map(result,function(val){return{id:val.id,text:val.name};});});},object_exists:function(query){return _.find(this.objects,function(val){return val.text.toLowerCase()===query.toLowerCase();})!==undefined;},on_change:function(e){if(e.added&&_.isString(e.added.id)){this.create_object(e.added.id);}},create_object:function(name){var self=this;return rpc.query({model:this.obj,method:'create',args:[{name:name}],context:weContext.get(),}).then(function(record){self.element.attr('value',record);self.objects.push({'id':record,'text':name});});},});var RecentLinkBox=Widget.extend({template:'website_links.RecentLink',events:{'click .btn_shorten_url_clipboard':'toggle_copy_button','click .o_website_links_edit_code':'edit_code','click .o_website_links_ok_edit':function(e){e.preventDefault();this.submit_code();},'click .o_website_links_cancel_edit':function(e){e.preventDefault();this.cancel_edit();},'submit #o_website_links_edit_code_form':function(e){e.preventDefault();this.submit_code();},},init:function(parent,link_obj){this._super(parent);this.link_obj=link_obj;this.animating_copy=false;},start:function(){new ClipboardJS(this.$('.btn_shorten_url_clipboard').get(0));return this._super.apply(this,arguments);},toggle_copy_button:function(){var self=this;if(!this.animating_copy){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;});}},remove:function(){this.getParent().remove_link(this);},notification:function(message){this.$('.notification').append('<strong>'+message+'</strong>');},edit_code:function(){var init_code=this.$('#o_website_links_code').html();this.$('#o_website_links_code').html("<form style='display:inline;' id='o_website_links_edit_code_form'><input type='hidden' id='init_code' value='"+init_code+"'/><input type='text' id='new_code' value='"+init_code+"'/></form>");this.$('.o_website_links_edit_code').hide();
166this.$('.copy-to-clipboard').hide();this.$('.o_website_links_edit_tools').show();},cancel_edit: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 old_code=this.$('#o_website_links_edit_code_form #init_code').val();this.$('#o_website_links_code').html(old_code);this.$('#code-error').remove();this.$('#o_website_links_code form').remove();},submit_code:function(){var self=this;var init_code=this.$('#o_website_links_edit_code_form #init_code').val();var new_code=this.$('#o_website_links_edit_code_form #new_code').val();if(new_code===''){self.$('.o_website_links_code_error').html("The code cannot be left empty");self.$('.o_website_links_code_error').show();return;}
167function show_new_code(new_code){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(new_code);self.$('.btn_shorten_url_clipboard').attr('data-clipboard-text',host+new_code);self.$('.o_website_links_edit_code').show();self.$('.copy-to-clipboard').show();self.$('.o_website_links_edit_tools').hide();}
168if(init_code===new_code){show_new_code(new_code);}
169else{ajax.jsonRpc('/website_links/add_code','call',{'init_code':init_code,'new_code':new_code}).then(function(result){show_new_code(result[0].code);}).fail(function(){self.$('.o_website_links_code_error').show();self.$('.o_website_links_code_error').html("This code is already taken");});}},});var RecentLinks=Widget.extend({init:function(){this._super();},get_recent_links:function(filter){var self=this;ajax.jsonRpc('/website_links/recent_links','call',{'filter':filter,'limit':20}).then(function(result){_.each(result.reverse(),function(link){self.add_link(link);});self.update_notification();}).fail(function(){var message=_t("Unable to get recent links");self.$el.append("<div class='alert alert-danger'>"+message+"</div>");});},add_link:function(link){var nb_links=this.getChildren().length;var recent_link_box=new RecentLinkBox(this,link);recent_link_box.prependTo(this.$el);$('.link-tooltip').tooltip();if(nb_links===0){this.update_notification();}},remove_links:function(){_.invoke(this.getChildren(),'remove');},remove_link:function(link){link.destroy();},update_notification:function(){if(this.getChildren().length===0){var message=_t("You don't have any recent links.");$('.o_website_links_recent_links_notification').html("<div class='alert alert-info'>"+message+"</div>");}
170else{$('.o_website_links_recent_links_notification').empty();}},});ajax.loadXML('/website_links/static/src/xml/recent_link.xml',qweb);base.ready().done(function(){var campaign_select=new SelectBox('utm.campaign');campaign_select.start($("#campaign-select"),_t('e.g. Promotion of June, Winter Newsletter, ..'));var medium_select=new SelectBox('utm.medium');medium_select.start($("#channel-select"),_t('e.g. Newsletter, Social Network, ..'));var source_select=new SelectBox('utm.source');source_select.start($("#source-select"),_t('e.g. Search Engine, Website page, ..'));var recent_links=new RecentLinks();recent_links.appendTo($("#o_website_links_recent_links"));recent_links.get_recent_links('newest');$('#filter-newest-links').click(function(){recent_links.remove_links();recent_links.get_recent_links('newest');});$('#filter-most-clicked-links').click(function(){recent_links.remove_links();recent_links.get_recent_links('most-clicked');});$('#filter-recently-used-links').click(function(){recent_links.remove_links();recent_links.get_recent_links('recently-used');});new ClipboardJS($("#btn_shorten_url").get(0));$("#generated_tracked_link a").click(function(){$("#generated_tracked_link a").text("Copied").removeClass("btn-primary").addClass("btn-success");setTimeout(function(){$("#generated_tracked_link a").text("Copy").removeClass("btn-success").addClass("btn-primary");},'5000');});$('#url').on('keyup',function(e){if($('#btn_shorten_url').hasClass('btn-copy')&&e.which!==13){$('#btn_shorten_url').removeClass('btn-success btn-copy').addClass('btn-primary').html('Get tracked link');$('#generated_tracked_link').css('display','none');$('.o_website_links_utm_forms').show();}});var url_copy_animating=false;$('#btn_shorten_url').click(function(){if($('#btn_shorten_url').hasClass('btn-copy')){if(!url_copy_animating){url_copy_animating=true;$('#generated_tracked_link').clone().css('position','absolute').css('left','78px').css('bottom','8px').css('z-index',2).removeClass('#generated_tracked_link').addClass('url-animated-link').appendTo($('#generated_tracked_link')).animate({opacity:0,bottom:"+=20",},500,function(){$('.url-animated-link').remove();url_copy_animating=false;});}}});$("#o_website_links_link_tracker_form").submit(function(event){if($('#btn_shorten_url').hasClass('btn-copy')){event.preventDefault();return;}
171event.preventDefault();event.stopPropagation();var campaign_id=$('#campaign-select').attr('value');var medium_id=$('#channel-select').attr('value');var source_id=$('#source-select').attr('value');var params={};params.url=$("#url").val();if(campaign_id!==''){params.campaign_id=parseInt(campaign_id);}
172if(medium_id!==''){params.medium_id=parseInt(medium_id);}
173if(source_id!==''){params.source_id=parseInt(source_id);}
174$('#btn_shorten_url').text(_t('Generating link...'));ajax.jsonRpc("/website_links/new",'call',params).then(function(result){if('error'in result){if(result.error==='empty_url'){$('.notification').html("<div class='alert alert-danger'>The URL is empty.</div>");}
175else if(result.error==='url_not_found'){$('.notification').html("<div class='alert alert-danger'>URL not found (404)</div>");}
176else{$('.notification').html("<div class='alert alert-danger'>An error occur while trying to generate your link. Try again later.</div>");}}
177else{var link=result[0];$('#btn_shorten_url').removeClass('btn-primary').addClass('btn-success btn-copy').html('Copy');$('#btn_shorten_url').attr('data-clipboard-text',link.short_url);$('.notification').html('');$('#generated_tracked_link').html(link.short_url);$('#generated_tracked_link').css('display','inline');recent_links.add_link(link);$('#campaign-select').select2('val','');$('#channel-select').select2('val','');$('#source-select').select2('val','');$('.o_website_links_utm_forms').hide();}});});$(function(){$('[data-toggle="tooltip"]').tooltip();});});exports.SelectBox=SelectBox;exports.RecentLinkBox=RecentLinkBox;exports.RecentLinks=RecentLinks;return exports;});;
178
179/* /website_links/static/src/js/website_links_code_editor.js defined in bundle 'web.assets_frontend' */
180odoo.define('website_links.code_editor',function(require){'use strict';require('web.dom_ready');var ajax=require('web.ajax');if(!$('.o_website_links_edit_code').length){return $.Deferred().reject("DOM doesn't contain '.o_website_links_edit_code'");}
181$('.o_website_links_edit_code').on('click',function(e){e.preventDefault();var init_code=$('#o_website_links_code').html();$('#o_website_links_code').html("<form style='display:inline;' id='edit-code-form'><input type='hidden' id='init_code' value='"+init_code+"'/><input type='text' id='new_code' value='"+init_code+"'/></form>");$('.o_website_links_edit_code').hide();$('.copy-to-clipboard').hide();$('.o_website_links_edit_tools').show();$('.o_website_links_cancel_edit').on('click',function(e){e.preventDefault();$('.o_website_links_edit_code').show();$('.copy-to-clipboard').show();$('.o_website_links_edit_tools').hide();$('.o_website_links_code_error').hide();var old_code=$('#edit-code-form #init_code').val();$('#o_website_links_code').html(old_code);$('#code-error').remove();$('#o_website_links_code form').remove();});function submit_code(){var init_code=$('#edit-code-form #init_code').val();var new_code=$('#edit-code-form #new_code').val();if(new_code===''){self.$('.o_website_links_code_error').html("The code cannot be left empty");self.$('.o_website_links_code_error').show();return;}
182function show_new_code(new_code){$('.o_website_links_code_error').html('');$('.o_website_links_code_error').hide();$('#o_website_links_code form').remove();var host=$('#short-url-host').html();$('#o_website_links_code').html(new_code);$('.copy-to-clipboard').attr('data-clipboard-text',host+new_code);$('.o_website_links_edit_code').show();$('.copy-to-clipboard').show();$('.o_website_links_edit_tools').hide();}
183if(init_code===new_code){show_new_code(new_code);}
184else{ajax.jsonRpc('/website_links/add_code','call',{'init_code':init_code,'new_code':new_code}).then(function(result){show_new_code(result[0].code);}).fail(function(){$('.o_website_links_code_error').show();$('.o_website_links_code_error').html("This code is already taken");});}}
185$('#edit-code-form').submit(function(e){e.preventDefault();submit_code();});$('.o_website_links_ok_edit').click(function(e){e.preventDefault();submit_code();});});});;
186
187/* /website_links/static/src/js/website_links_charts.js defined in bundle 'web.assets_frontend' */
188odoo.define('website_links.charts',function(require){'use strict';require('web.dom_ready');var rpc=require('web.rpc');var Widget=require('web.Widget');var base=require('web_editor.base');var weContext=require('web_editor.context');var core=require('web.core');var _t=core._t;var exports={};if(!$('.o_website_links_chart').length){return $.Deferred().reject("DOM doesn't contain '.o_website_links_chart'");}
189var BarChart=Widget.extend({init:function($element,begin_date,end_date,dates){this.$element=$element;this.begin_date=begin_date;this.end_date=end_date;this.number_of_days=this.end_date.diff(this.begin_date,'days')+2;this.dates=dates;},start:function(){var self=this;function getDate(d){return new Date(d[0]);}
190function getNbClicks(d){return d[1];}
191function getPrunedTickValues(ticks,nb_desired_ticks){var nb_values=ticks.length;var keep_one_of=Math.max(1,Math.floor(nb_values/nb_desired_ticks));return _.filter(ticks,function(d,i){return i%keep_one_of===0;});}
192var clicks_array=[];var begin_date_copy=this.begin_date;for(var i=0;i<this.number_of_days;i++){var date_key=begin_date_copy.format('YYYY-MM-DD');clicks_array.push([date_key,(date_key in this.dates)?this.dates[date_key]:0]);begin_date_copy.add(1,'days');}
193var nb_clicks=_.reduce(clicks_array,function(total,val){return total+val[1];},0);$(this.$element+' .title').html(nb_clicks+_t(' clicks'));var chart_data=[{}];chart_data[0]['key']=_t('# of clicks');chart_data[0]['values']=clicks_array;nv.addGraph(function(){var chart=nv.models.lineChart().x(function(d){return getDate(d);}).y(function(d){return getNbClicks(d);}).margin({top:10,right:60,bottom:60,left:60}).showYAxis(true).showXAxis(true);var tick_values=getPrunedTickValues(chart_data[0]['values'],10);chart.xAxis.tickFormat(function(d){return d3.time.format("%d/%m/%y")(new Date(d));}).tickValues(_.map(tick_values,function(d){return getDate(d).getTime();})).rotateLabels(55);chart.yAxis.tickFormat(d3.format("d")).ticks(Math.min(chart_data[0]['values'].length-1,10));d3.select(self.$element+' svg').datum(chart_data).call(chart);return self.chart=chart;});},});var PieChart=Widget.extend({init:function($element,data){this.data=data;this.$element=$element;},start:function(){var self=this;var processed_data=[];for(var i=0;i<this.data.length;i++){var country_name=this.data[i]['country_id']?this.data[i]['country_id'][1]:_t('Undefined');processed_data.push({'label':country_name+' ('+this.data[i]['country_id_count']+')','value':this.data[i]['country_id_count']});}
194$(this.$element+' .title').html(this.data.length+_t(' countries'));nv.addGraph(function(){var chart=nv.models.pieChart().x(function(d){return d.label;}).y(function(d){return d.value;}).showLabels(false);d3.select(self.$element+' svg').datum(processed_data).transition().duration(1200).call(chart);return self.chart=chart;});},});base.ready().done(function(){var charts={};$(".graph-tabs li a").click(function(e){e.preventDefault();$(this).tab('show');_.chain(charts).pluck('chart').invoke('update');});var link_id=$('#link_id').val();
194var links_domain=['link_id','=',parseInt(link_id)];var total_clicks=function(){return rpc.query({model:'link.tracker.click',method:'search_count',args:[[links_domain]],context:weContext.get(),});};var clicks_by_day=function(){return rpc.query({model:'link.tracker.click',method:'read_group',args:[[links_domain],['create_date']],kwargs:{groupby:'create_date:day'},context:weContext.get(),});};var clicks_by_country=function(){return rpc.query({model:'link.tracker.click',method:'read_group',args:[[links_domain],['country_id']],kwargs:{groupby:'country_id'},context:weContext.get(),});};var last_week_clicks_by_country=function(){var interval=moment().subtract(7,'days').format("YYYY-MM-DD");return rpc.query({model:'link.tracker.click',method:'read_group',args:[[links_domain,['create_date','>',interval]],['country_id']],kwargs:{groupby:'country_id'},context:weContext.get(),});};var last_month_clicks_by_country=function(){var interval=moment().subtract(30,'days').format("YYYY-MM-DD");return rpc.query({model:'link.tracker.click',method:'read_group',args:[[links_domain,['create_date','>',interval]],['country_id']],kwargs:{groupby:'country_id'},context:weContext.get(),});};$.when(total_clicks(),clicks_by_day(),clicks_by_country(),last_week_clicks_by_country(),last_month_clicks_by_country()).done(function(total_clicks,clicks_by_day,clicks_by_country,last_week_clicks_by_country,last_month_clicks_by_country){if(total_clicks){var formatted_clicks_by_day={};var begin_date,end_date;for(var i=0;i<clicks_by_day.length;i++){var date=moment(clicks_by_day[i]['create_date:day'],"DD MMMM YYYY");if(i===0){begin_date=date;}
195if(i===clicks_by_day.length-1){end_date=date;}
196formatted_clicks_by_day[date.format("YYYY-MM-DD")]=clicks_by_day[i]['create_date_count'];}
197var now=moment();charts.all_time_bar=new BarChart('#all_time_clicks_chart',begin_date,now,formatted_clicks_by_day);begin_date=moment().subtract(30,'days');charts.last_month_bar=new BarChart('#last_month_clicks_chart',begin_date,now,formatted_clicks_by_day);begin_date=moment().subtract(7,'days');charts.last_week_bar=new BarChart('#last_week_clicks_chart',begin_date,now,formatted_clicks_by_day);charts.all_time_pie=new PieChart('#all_time_countries_charts',clicks_by_country);charts.last_month_pie=new PieChart('#last_month_countries_charts',last_month_clicks_by_country);charts.last_week_pie=new PieChart('#last_week_countries_charts',last_week_clicks_by_country);var row_width=$('#all_time_countries_charts').parent().width();var charts_svg=$('#all_time_countries_charts,last_month_countries_charts,last_week_countries_charts').find('svg');charts_svg.css('height',Math.max(clicks_by_country.length*(row_width>750?1:2),20)+'em');_.invoke(charts,'start');nv.utils.windowResize(function(){_.chain(charts).pluck('chart').invoke('update');});}
198else{$('#all_time_charts').prepend(_t('There is no data to show'));$('#last_month_charts').prepend(_t('There is no data to show'));$('#last_week_charts').prepend(_t('There is no data to show'));}});new ClipboardJS($('.copy-to-clipboard')[0]);var animating_copy=false;$('.copy-to-clipboard').on('click',function(e){e.preventDefault();if(!animating_copy){animating_copy=true;$('.o_website_links_short_url').clone().css('position','absolute').css('left','15px').css('bottom','10px').css('z-index',2).removeClass('.o_website_links_short_url').addClass('animated-link').appendTo($('.o_website_links_short_url')).animate({opacity:0,bottom:"+=20",},500,function(){$('.animated-link').remove();animating_copy=false;});}});});exports.BarChart=BarChart;exports.PieChart=PieChart;return exports;});;
199
200/* /website_mass_mailing/static/src/js/website_mass_mailing.js defined in bundle 'web.assets_frontend' */
201odoo.define('mass_mailing.website_integration',function(require){"use strict";var utils=require('web.utils');var sAnimation=require('website.content.snippets.animation');sAnimation.registry.subscribe=sAnimation.Class.extend({selector:".js_subscribe",start:function(){var self=this;self.$target.find("input").removeClass('d-none');this._rpc({route:'/website_mass_mailing/is_subscriber',params:{list_id:this.$target.data('list-id'),},}).always(function(data){self.$target.find('input.js_subscribe_email').val(data.email?data.email:"").attr("disabled",data.is_subscriber&&data.email.length?"disabled":false);self.$target.attr("data-subscribe",data.is_subscriber?'on':'off');self.$target.find('a.js_subscribe_btn').attr("disabled",data.is_subscriber&&data.email.length?"disabled":false);self.$target.removeClass('d-none');self.$target.find('.js_subscribe_btn').toggleClass('d-none',!!data.is_subscriber);
201self.$target.find('.js_subscribed_btn').toggleClass('d-none',!data.is_subscriber);});if(!this.editableMode){$('.js_subscribe > .alert').addClass('d-none');$('.js_subscribe > .input-group-append.d-none').removeClass('d-none');this.$target.find('.js_subscribe_btn').on('click',function(event){event.preventDefault();self._onClick();});}},_onClick:function(){var self=this;var $email=this.$target.find(".js_subscribe_email:visible");if($email.length&&!$email.val().match(/.+@.+/)){this.$target.addClass('o_has_error').find('.form-control, .custom-select').addClass('is-invalid');return false;}
202this.$target.removeClass('o_has_error').find('.form-control, .custom-select').removeClass('is-invalid');this._rpc({route:'/website_mass_mailing/subscribe',params:{'list_id':this.$target.data('list-id'),'email':$email.length?$email.val():false,},}).then(function(subscribe){self.$target.find(".js_subscribe_email, .input-group-append").addClass('d-none');self.$target.find(".alert").removeClass('d-none');self.$target.find('input.js_subscribe_email').attr("disabled",subscribe?"disabled":false);self.$target.attr("data-subscribe",subscribe?'on':'off');});},});sAnimation.registry.newsletter_popup=sAnimation.Class.extend({selector:".o_newsletter_popup",start:function(){var self=this;var $modal=this.$('.modal');if($modal.is('.modal-dialog')){$modal.removeClass('modal-md modal-dialog');var $modalContent=$modal.find('.modal-content');$modalContent.wrapAll($('<div/>',{class:'modal-dialog'}));}
203var popupcontent=self.$target.find(".o_popup_content_dev").empty();if(!self.$target.data('list-id')){return;}
204this._rpc({route:'/website_mass_mailing/get_content',params:{newsletter_id:self.$target.data('list-id'),},}).then(function(data){if(data.content){$('<div></div>').append(data.content).appendTo(popupcontent);}
205self.$target.find('input.popup_subscribe_email').val(data.email||"");self.redirect_url=data.redirect_url;if(!self.editableMode&&!data.is_subscriber){$(document).on('mouseleave',_.bind(self.show_banner,self));self.$target.find('.popup_subscribe_btn').on('click',function(event){event.preventDefault();self._onClickSubscribe();});}else{$(document).off('mouseleave');}});},_onClickSubscribe:function(){var self=this;var $email=self.$target.find(".popup_subscribe_email:visible");if($email.length&&!$email.val().match(/.+@.+/)){this.$target.addClass('o_has_error').find('.form-control, .custom-select').addClass('is-invalid');return false;}
206this.$target.removeClass('o_has_error').find('.form-control, .custom-select').removeClass('is-invalid');this._rpc({route:'/website_mass_mailing/subscribe',params:{'list_id':self.$target.data('list-id'),'email':$email.length?$email.val():false,},}).then(function(subscribe){self.$target.find('#o_newsletter_popup').modal('hide');$(document).off('mouseleave');if(self.redirect_url){if(_.contains(self.redirect_url.split('/'),window.location.host)||self.redirect_url.indexOf('/')===0){window.location.href=self.redirect_url;}else{window.open(self.redirect_url,'_blank');}}});},show_banner:function(){var self=this;if(!utils.get_cookie("newsletter-popup-"+self.$target.data('list-id'))&&self.$target){$('#o_newsletter_popup:first').modal('show').css({'margin-top':'70px','position':'fixed'});document.cookie="newsletter-popup-"+self.$target.data('list-id')+"="+true+";path=/";}}});});;
207
208/* /website_rating/static/src/js/website_mail.js defined in bundle 'web.assets_frontend' */
209odoo.define('website_rating.thread',function(require){'use strict';var ajax=require('web.ajax');var core=require('web.core');var Widget=require('web.Widget');var qweb=core.qweb;var _t=core._t;var PortalChatter=require('portal.chatter').PortalChatter;PortalChatter.include({events:_.extend({},PortalChatter.prototype.events,{"mousemove .stars i":"_onMoveStar","mouseleave .stars i":"_onMoveOutStar","click .stars":"_onClickStar","mouseleave .stars":"_onMouseleaveStar","click .o_website_rating_select":"_onClickStarDomain","click .o_website_rating_select_text":"_onClickStarDomainReset",}),init:function(parent,options){this._super.apply(this,arguments);if(!_.contains(this.options,'display_rating')){this.options=_.defaults(this.options,{'display_rating':false,'rating_default_value':0.0,});}
210this.set('rating_card_values',{});this.set('rating_value',false);this.on("change:rating_value",this,this._onChangeRatingDomain);this.labels={'0':"",'1':_t("I hate it"),'2':_t("I don't like it"),'3':_t("It's okay"),'4':_t("I like it"),'5':_t("I love it"),};this.user_click=false;this.set("star_value",this.options.rating_default_value);this.on("change:star_value",this,this._onChangeStarValue);},willStart:function(){var self=this;return this._super.apply(this,arguments).then(function(result){if(result['rating_stats']){var rating_data={'avg':self.round_to_half(result['rating_stats']['avg']),'percent':[],};_.each(_.keys(result['rating_stats']['percent']),function(rating){if(0<rating&&rating<=5){rating_data['percent'].push({'num':rating,'percent':result['rating_stats']['percent'][rating],});}});self.set('rating_card_values',rating_data);}});},start:function(){var self=this;return this._super.apply(this,arguments).then(function(){self.$input=self.$('input[name="rating_value"]');self.$star_list=self.$('.stars').find('i');self.set("star_value",self.options.rating_default_value);});},preprocessMessages:function(messages){var self=this;var messages=this._super.apply(this,arguments);if(this.options['display_rating']){_.each(messages,function(m){m['rating_value']=self.round_to_half(m['rating_value']);});}
211return messages;},round_to_half:function(value){var converted=parseFloat(value);var decimal=(converted-parseInt(converted,10));decimal=Math.round(decimal*10);if(decimal===5){return(parseInt(converted,10)+0.5);}
212if((decimal<3)||(decimal>7)){return Math.round(converted);}else{return(parseInt(converted,10)+0.5);}},_loadTemplates:function(){return $.when(this._super(),ajax.loadXML('/website_rating/static/src/xml/website_mail.xml',qweb));},_messageFetchPrepareParams:function(){var params=this._super.apply(this,arguments);if(this.options['display_rating']){params['rating_include']=true;}
213return params;},_onClickStar:function(e){this.user_click=true;this.$input.val(this.get("star_value"));},_onClickStarDomain:function(e){var $tr=this.$(e.currentTarget);var num=$tr.data('star');if($tr.css('opacity')==1){this.set('rating_value',num);this.$('.o_website_rating_select').css({'opacity':0.5,});this.$('.o_website_rating_select_text[data-star="'+num+'"]').css({'visibility':'visible','opacity':1,});this.$('.o_website_rating_select[data-star="'+num+'"]').css({'opacity':1,});}},_onClickStarDomainReset:function(e){e.stopPropagation();this.set('rating_value',false);this.$('.o_website_rating_select_text').css('visibility','hidden');this.$('.o_website_rating_select').css({'opacity':1,});},_onChangeRatingDomain:function(){var domain=[];if(this.get('rating_value')){domain=[['rating_value','=',this.get('rating_value')
213]];}
214this._changeCurrentPage(1,domain);},_onChangeStarValue:function(){var val=this.get("star_value");var index=Math.floor(val);var decimal=val-index;this.$star_list.removeClass('fa-star fa-star-half-o').addClass('fa-star-o');this.$('.stars').find("i:lt("+index+")").removeClass('fa-star-o fa-star-half-o').addClass('fa-star');if(decimal){this.$('.stars').find("i:eq("+(index)+")").removeClass('fa-star-o fa-star fa-star-half-o').addClass('fa-star-half-o');}
215this.$('.rate_text .label').text(this.labels[index]);},_onMouseleaveStar:function(e){this.$('.rate_text').hide();},_onMoveStar:function(e){var index=this.$('.stars i').index(e.currentTarget);this.$('.rate_text').show();this.set("star_value",index+1);},_onMoveOutStar:function(){if(!this.user_click){this.set("star_value",parseInt(this.$input.val()));}
216this.user_click=false;},});});;
217
218/* /sale/static/src/js/product_configurator_mixin.js defined in bundle 'web.assets_frontend' */
219odoo.define('sale.ProductConfiguratorMixin',function(require){'use strict';var core=require('web.core');var utils=require('web.utils');var ajax=require('web.ajax');var _t=core._t;var ProductConfiguratorMixin={events:{'click .css_attribute_color input':'_onChangeColorAttribute','change .main_product:not(.in_cart) input.js_quantity':'onChangeAddQuantity','click button.js_add_cart_json':'onClickAddCartJSON','change [data-attribute_exclusions]':'onChangeVariant'},computePriceTotal:function(){if($('.js_price_total').length){var price=0;$('.js_product.in_cart').each(function(){var quantity=parseInt($('input[name="add_qty"]').first().val());price+=parseFloat($(this).find('.js_raw_price').html())*quantity;});$('.js_price_total .oe_currency_value').html(this._priceToStr(parseFloat(price)));}},onChangeVariant:function(ev){var self=this;var $component;if($(ev.currentTarget).closest('form').length>0){$component=$(ev.currentTarget).closest('form');}else if($(ev.currentTarget).closest('.oe_optional_products_modal').length>0){$component=$(ev.currentTarget).closest('.oe_optional_products_modal');}else{$component=$(ev.currentTarget).closest('.o_product_configurator');}
220var qty=$component.find('input[name="add_qty"]').val();var $parent=$(ev.target).closest('.js_product');var combination=this.getSelectedVariantValues($parent);self._checkExclusions($parent,combination);ajax.jsonRpc(this._getUri('/product_configurator/get_combination_info'),'call',{product_template_id:parseInt($parent.find('.product_template_id').val()),product_id:parseInt($parent.find('.product_id').val()),combination:combination,add_qty:parseInt(qty),pricelist_id:this.pricelistId}).then(function(combinationData){self._onChangeCombination(ev,$parent,combinationData);});},handleCustomValues:function($target){var $variantContainer;var $customInput=false;if($target.is('input[type=radio]')&&$target.is(':checked')){$variantContainer=$target.closest('ul').closest('li');$customInput=$target;}else if($target.is('select')){$variantContainer=$target.closest('li');$customInput=$target.find('option[value="'+$target.val()+'"]');}
221if($variantContainer){if($customInput&&$customInput.data('is_custom')){var attributeValueId=$customInput.data('value_id');var attributeValueName=$customInput.data('value_name');if($variantContainer.find('.variant_custom_value').length===0||$variantContainer.find('.variant_custom_value').data('attribute_value_id')!==parseInt(attributeValueId)){$variantContainer.find('.variant_custom_value_label').remove();$variantContainer.find('.variant_custom_value').remove();var $input=$('<input>',{type:'text','data-attribute_value_id':attributeValueId,'data-attribute_value_name':attributeValueName,class:'variant_custom_value form-control'});var isRadioInput=$target.is('input[type=radio]')&&$target.closest('label.css_attribute_color').length===0;if(isRadioInput){$input.addClass('custom_value_radio');$target.closest('div').after($input);}else{var $label=$('<label>',{html:attributeValueName+': ',class:'variant_custom_value_label'});$variantContainer.append($label).append($input);}}}else{$variantContainer.find('.variant_custom_value_label').remove();$variantContainer.find('.variant_custom_value').remove();}}},onClickAddCartJSON:function(ev){ev.preventDefault();var $link=$(ev.currentTarget);var $input=$link.closest('.input-group').find("input");var min=parseFloat($input.data("min")||0);var max=parseFloat($input.data("max")||Infinity);var quantity=($link.has(".fa-minus").length?-1:1)+parseFloat($input.val()||0,10);var newQty=quantity>min?(quantity<max?quantity:max):min;$input.val(newQty).trigger('change');return false;},onChangeAddQuantity:function(ev){var $parent;if($(ev.currentTarget).closest('.oe_optional_products_modal').length>0){$parent=$(ev.currentTarget).closest('.oe_optional_products_modal');}else if($(ev.currentTarget).closest('form').length>0){$parent=$(ev.currentTarget).closest('form');}else{$parent=$(ev.currentTarget).closest('.o_product_configurator');}
222this.triggerVariantChange($parent);},triggerVariantChange:function($container){var self=this;$container.find('ul[data-attribute_exclusions]').trigger('change');$container.find('input.js_variant_change:checked, select.js_variant_change').each(function(){self.handleCustomValues($(this));});},getCustomVariantValues:function($container){var variantCustomValues=[];$container.find('.variant_custom_value').each(function(){var $variantCustomValueInput=$(this);if($variantCustomValueInput.length!==0){variantCustomValues.push({'attribute_value_id':$variantCustomValueInput.data('attribute_value_id'),'attribute_value_name':$variantCustomValueInput.data('attribute_value_name'),'custom_value':$variantCustomValueInput.val(),});}});return variantCustomValues;},getNoVariantAttributeValues:function($container){var noVariantAttributeValues=[];var variantsValuesSelectors=['input.no_variant.js_variant_change:checked','select.no_variant.js_variant_change'];$container.find(variantsValuesSelectors.join(',')).each(function(){var $variantValueInput=$(this);if($variantValueInput.is('select')){$variantValueInput=$variantValueInput.find('option[value='+$variantValueInput.val()+']');}
223if($variantValueInput.length!==0){noVariantAttributeValues.push({'attribute_value_id':$variantValueInput.data('value_id'),'attribute_value_name':$variantValueInput.data('value_name'),'value':$variantValueInput.val(),'attribute_name':$variantValueInput.data('attribute_name'),'is_custom':$variantValueInput.data('is_custom')});}});return noVariantAttributeValues;},getSelectedVariantValues:function($container){var values=[];var unchangedValues=$container.find('div.oe_unchanged_value_ids').data('unchanged_value_ids')||[];var variantsValuesSelectors=['input.js_variant_change:checked','select.js_variant_change'];_.each($container.find(variantsValuesSelectors.join(', ')),function(el){values.push(+$(el).val());});return values.concat(unchangedValues);},selectOrCreateProduct:function($container,productId,productTemplateId,useAjax){var self=this;var productReady=$.Deferred();if(productId&&productId!=='0'){productReady.resolve(productId);}else{var params={model:'product.template',method:'create_product_variant',args:[productTemplateId,JSON.stringify(self.getSelectedVariantValues($container))]};if(useAjax){productReady=ajax.jsonRpc('/web/dataset/call','call',params);}else{productReady=this._rpc(params);}}
224return productReady;},_checkExclusions:function($parent,combination){var self=this;var combinationData=$parent.find('ul[data-attribute_exclusions]').data('attribute_exclusions');$parent.find('option, input, label').removeClass('css_not_available');var disable=false;if(combinationData.exclusions){_.each(combination,function(combinationValue){if(combinationData.exclusions&&combinationData.exclusions.hasOwnProperty(combinationValue)){_.each(combinationData.exclusions[combinationValue],function(exclusion){if(!disable&&combination.indexOf(exclusion)>-1){disable=true;}
225self._disableInput($parent,exclusion);});}});}
226if(combinationData.parent_exclusions){_.each(combinationData.parent_exclusions,function(exclusion){if(!disable&&combination.indexOf(exclusion)>-1){disable=true;}
227self._disableInput($parent,exclusion);});}
228if(combinationData.archived_combinations){_.each(combinationData.archived_combinations,function(archived_combination){if(disable){return;}
229disable=_.every(archived_combination,function(attribute_value){return combination.indexOf(attribute_value)>-1;});});}
230$parent.toggleClass('css_not_available',disable);$parent.find("#add_to_cart").toggleClass('disabled',disable);$parent.parents('.modal').find('.o_sale_product_configurator_add').toggleClass('disabled',disable);},_disableInput:function($parent,attributeValueId){var $input=$parent.find('option[value='+attributeValueId+'], input[value='+attributeValueId+']');$input.addClass('css_not_available');$input.closest('label').addClass('css_not_available');},_onChangeCombination:function(ev,$parent,combination){var self=this;var $price=$parent.find(".oe_price:first .oe_currency_value");var $default_price=$parent.find(".oe_default_price:first .oe_currency_value");var $optional_price=$parent.find(".oe_optional:first .oe_currency_value");$price.html(self._priceToStr(combination.price));$default_price.html(self._priceToStr(combination.list_price));if(combination.list_price-combination.price>=0.01){$default_price.closest('.oe_website_sale').addClass("discount");$optional_price.closest('.oe_optional').removeClass('d-none').css('text-decoration','line-through');$default_price.parent().removeClass('d-none');}else{$optional_price.closest('.oe_optional').addClass('d-none');$default_price.parent().addClass('d-none');}
231var rootComponentSelectors=['tr.js_product','.oe_website_sale','.o_product_configurator'];self._updateProductImage($parent.closest(rootComponentSelectors.join(', ')),combination.product_id,combination.product_template_id);$parent.find('.product_id').first().val(combination.product_id||0).trigger('change');$parent.find('.product_display_name').first().val(combination.display_name);$parent.find('.js_raw_price').first().html(combination.price);this.computePriceTotal();this.handleCustomValues($(ev.target));},_priceToStr:function(price){var l10n=_t.database.parameters;var precision=2;if($('.decimal_precision').length){precision=parseInt($('.decimal_precision').last().data('precision'));}
232var formatted=_.str.sprintf('%.'+precision+'f',price).split('.');formatted[0]=utils.insert_thousand_seps(formatted[0]);return formatted.join(l10n.decimal_point);}
232,_updateProductImage:function($productContainer,productId,productTemplateId){var $img;var model=productId?'product.product':'product.template';var modelId=productId||productTemplateId;var imageSrc='/web/image?model={0}&id={1}&field=image'.replace("{0}",model).replace("{1}",modelId);if($productContainer.find('#o-carousel-product').length){$img=$productContainer.find('img.js_variant_img');$img.attr("src",imageSrc);$img.parent().attr('data-oe-model',model).attr('data-oe-id',modelId).data('oe-model',model).data('oe-id',modelId);var $thumbnail=$productContainer.find('img.js_variant_img_small');if($thumbnail.length!==0){$thumbnail.attr("src","/web/image/{0}/{1}/image/90x90".replace('{0}',model).replace('{1}',modelId));$('.carousel').carousel(0);}}
233else{var imagesSelectors=['span[data-oe-model^="product."][data-oe-type="image"] img:first','img.product_detail_img','span.variant_image img'];$img=$productContainer.find(imagesSelectors.join(', '));$img.attr('src',imageSrc);$img.parent().attr('data-oe-model',model).attr('data-oe-id',modelId).data('oe-model',model).data('oe-id',modelId);}
234$img.filter('[data-zoom-image]').attr('data-zoom-image',$img.attr('src'));if($img.data('zoomOdoo')!==undefined){$img.data('zoomOdoo').isReady=false;}},_onChangeColorAttribute:function(ev){var $parent=$(ev.target).closest('.js_product');$parent.find('.css_attribute_color').removeClass("active").filter(':has(input:checked)').addClass("active");},_getUri:function(uri){if(this.isWebsite){return uri+'_website';}else{return uri;}}};return ProductConfiguratorMixin;});;
235
236/* /sale/static/src/js/product_configurator_modal.js defined in bundle 'web.assets_frontend' */
237odoo.define('sale.OptionalProductsModal',function(require){"use strict";var ajax=require('web.ajax');var Dialog=require('web.Dialog');var ServicesMixin=require('web.ServicesMixin');var ProductConfiguratorMixin=require('sale.ProductConfiguratorMixin');var weContext=require('web_editor.context');var productNameMap={};var optionalProductsMap={};var OptionalProductsModal=Dialog.extend(ServicesMixin,ProductConfiguratorMixin,{events:_.extend({},Dialog.prototype.events,ProductConfiguratorMixin.events,{'click a.js_add, a.js_remove':'_onAddOrRemoveOption','change .in_cart.main_product input.js_quantity':'_onChangeQuantity'}),init:function(parent,params){var self=this;this._super(parent,{size:'large',buttons:[{text:params.okButtonText,click:this._onConfirmButtonClick,classes:'btn-primary'},{text:params.cancelButtonText,click:this._onCancelButtonClick}],title:params.title});this.rootProduct=params.rootProduct;this.container=parent;this.pricelistId=params.pricelistId;this.isWebsite=params.isWebsite;this.dialogClass='oe_optional_products_modal'+(params.isWebsite?' oe_website_sale':'');if(this.isWebsite){delete this.events['change [data-attribute_exclusions]'];delete this.events['click button.js_add_cart_json'];}
238this._opened.then(function(){self.triggerVariantChange(self.$el);});},willStart:function(){var self=this;var uri=this._getUri("/product_configurator/show_optional_products");var getModalContent=ajax.jsonRpc(uri,'call',{product_id:self.rootProduct.product_id,variant_values:self.rootProduct.variant_values,pricelist_id:self.pricelistId,kwargs:{context:_.extend({'quantity':self.rootProduct.quantity},weContext.get()),}}).then(function(modalContent){if(modalContent){var $modalContent=$(modalContent);$modalContent=self._postProcessContent($modalContent);self.$content=$modalContent;}else{self.trigger('options_empty');self.preventOpening=true;}});var parentInit=self._super.apply(self,arguments);return $.when(getModalContent,parentInit);},open:function(options){$('.tooltip').remove();var self=this;this.appendTo($('<div/>')).then(function(){if(!self.preventOpening){self.$modal.find(".modal-body").replaceWith(self.$el);self.$modal.attr('open',true);self.$modal.removeAttr("aria-hidden");self.$modal.modal().appendTo(self.container);self._opened.resolve();}});if(options&&options.shouldFocusButtons){self._onFocusControlButton();}
239return self;},start:function(){this._super.apply(this,arguments);this.$el.find('input[name="add_qty"]').val(this.rootProduct.quantity);}
239,getSelectedProducts:function(){var self=this;var products=[this.rootProduct];this.$modal.find('.js_product.in_cart:not(.main_product)').each(function(){var quantity=0;var $item=$(this);if($item.find('input[name="add_qty"]').length){quantity=$item.find('input[name="add_qty"]').val();}else{quantity=parseInt($item.find('.optional_product_quantity span.add_qty').html().trim());}
240var productCustomVariantValues=self.getCustomVariantValues($(this));var noVariantAttributeValues=self.getNoVariantAttributeValues($(this));products.push({product_id:parseInt($item.find('input.product_id').val()),quantity:quantity,product_custom_attribute_values:productCustomVariantValues,no_variant_attribute_values:noVariantAttributeValues});});return products;},_postProcessContent:function($modalContent){var productId=this.rootProduct.product_id;$modalContent.find('img:first').attr("src","/web/image/product.product/"+productId+"/image_medium");if(this.rootProduct&&(this.rootProduct.product_custom_attribute_values||this.rootProduct.no_variant_attribute_values)){var $productDescription=$modalContent.find('.main_product').find('td.td-product_name div.text-muted.small');var description=$productDescription.html();$.each(this.rootProduct.product_custom_attribute_values,function(){description+='<br/>'+this.attribute_value_name+': '+this.custom_value;});$.each(this.rootProduct.no_variant_attribute_values,function(){if(this.is_custom!=='True'){description+='<br/>'+this.attribute_name+': '+this.attribute_value_name;}});$productDescription.html(description);}
241return $modalContent;},_onConfirmButtonClick:function(){this.trigger('confirm');this.close();},_onCancelButtonClick:function(){this.trigger('back');this.close();},_onAddOrRemoveOption:function(ev){ev.preventDefault();var self=this;var $target=$(ev.currentTarget);var $modal=$target.parents('.oe_optional_products_modal');var $parent=$target.parents('.js_product:first');$parent.find("a.js_add, span.js_remove").toggleClass('d-none');$parent.find("input.js_optional_same_quantity").val($target.hasClass("js_add")?1:0);$parent.find(".js_remove");var productTemplateId=$parent.find(".product_template_id").val();if($target.hasClass('js_add')){self._onAddOption($modal,$parent,productTemplateId);}else{self._onRemoveOption($modal,$parent,productTemplateId);}
242self.computePriceTotal();},_onAddOption:function($modal,$parent,productTemplateId){var self=this;var $main_product=$modal.find('.js_product:first');var $selectOptionsText=$modal.find('.o_select_options');$parent.addClass('in_cart');$parent.find('.td-qty').addClass('text-center');$parent.find('.td-qty').append($parent.find('.optional_product_quantity'));productNameMap[productTemplateId]=$parent.find(".product-name").html();$parent.find(".product-name").html($parent.find(".product_display_name").val());var productCustomVariantValues=self.getCustomVariantValues($parent);var noVariantAttributeValues=self.getNoVariantAttributeValues($parent);if(productCustomVariantValues||noVariantAttributeValues){var $productDescription=$parent.find('td.td-product_name div.float-left');var description='';$.each(productCustomVariantValues,function(){description+='<br/>'+this.attribute_value_name+': '+this.custom_value;});$.each(noVariantAttributeValues,function(){if(this.is_custom!=='True'){description+='<br/>'+this.attribute_name+': '+this.attribute_value_name;}});var $customAttributeValuesDescription=$('<div>',{class:'custom_attribute_values_description text-muted small',html:description});$productDescription.append($customAttributeValuesDescription);}
243var parentProductId=null;for(var productIdKey in optionalProductsMap){if(optionalProductsMap[productIdKey].indexOf(productTemplateId)!==-1){parentProductId=productIdKey;break;}
244$('tr:last').after($parent);}
245if(parentProductId){$modal.find('.product_template_id').filter(function(){return parentProductId===$(this).val();}).parents('.js_product:first').after($parent);}else{$main_product.after($parent);}
246var productReady=this.selectOrCreateProduct($parent,$parent.find('.product_id').val(),productTemplateId,true);productReady.done(function(productId){$parent.find('.product_id').val(productId);ajax.jsonRpc(self._getUri("/product_configurator/optional_product_items"),'call',{'product_id':productId,'pricelist_id':self.pricelistId}).then(function(addedItem){var $addedItem=$(addedItem);$modal.find('tr:last').after($addedItem);self.$el.find('input[name="add_qty"]').trigger('change');self.triggerVariantChange($addedItem);if($addedItem.find(".product_template_id").length>0){optionalProductsMap[productTemplateId]=$addedItem.find(".product_template_id").map(function(){return $(this).val();}).get();}
247if($selectOptionsText.nextAll('.js_product').length===0){$selectOptionsText.hide();}});});},_onRemoveOption:function($modal,$parent,productTemplateId){$parent.removeClass('in_cart');$parent.find('.td-qty').removeClass('text-center');$parent.find('.js_remove.d-none').prepend($parent.find('.optional_product_quantity'));$parent.find('.custom_attribute_values_description').remove();var $select_options_text=$modal.find('.o_select_options');$select_options_text.show();$parent.find(".product-name").html(productNameMap[productTemplateId]);delete productNameMap[productTemplateId];this._removeOptionOption($modal,productTemplateId);$('tr:last').after($parent);},_removeOptionOption:function($modal,optionId){var self=this;if(optionalProductsMap[optionId]){optionalProductsMap[optionId].forEac
247h(function(productId){$modal.find('.product_template_id').filter(function(){return productId===$(this).val();}).parents('.js_product:first').remove();self._removeOptionOption($modal,productId);});delete optionalProductsMap[optionId];}},_onChangeQuantity:function(ev){var $quantity=$(ev.currentTarget);var qty=parseFloat($quantity.val());var $modal=$quantity.parents('.oe_optional_products_modal');if(qty===1){$modal.find(".js_items").addClass('d-none').removeClass('add_qty');$modal.find(".js_item").removeClass('d-none').addClass('add_qty');}else{$modal.find(".js_items").removeClass('d-none').addClass('add_qty').text(qty);$modal.find(".js_item").addClass('d-none').removeClass('add_qty');}
248this.rootProduct.quantity=qty;if(!this.isWebsite){this.onChangeAddQuantity(ev);}
249this.trigger('update_quantity',qty);}});return OptionalProductsModal;});;
250
251/* /website_sale/static/src/js/website_sale.js defined in bundle 'web.assets_frontend' */
252odoo.define('website_sale.cart',function(require){'use strict';var sAnimations=require('website.content.snippets.animation');var core=require('web.core');var _t=core._t;var timeout;sAnimations.registry.websiteSaleCartLink=sAnimations.Class.extend({selector:'#top_menu a[href$="/shop/cart"]',read_events:{'mouseenter':'_onMouseEnter','mouseleave':'_onMouseLeave',},start:function(){var def=this._super.apply(this,arguments);if(this.editableMode){return def;}
253this.$el.popover({trigger:'manual',animation:true,html:true,title:function(){return _t("My Cart");},container:'body',placement:'auto',template:'<div class="popover mycart-popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'});return def;},_onMouseEnter:function(ev){var self=this;clearTimeout(timeout);$(this.selector).not(ev.currentTarget).popover('hide');timeout=setTimeout(function(){if(!self.$el.is(':hover')||$('.mycart-popover:visible').length){return;}
254$.get("/shop/cart",{type:'popover',}).then(function(data){self.$el.data("bs.popover").config.content=data;self.$el.popover("show");$('.popover').on('mouseleave',function(){self.$el.trigger('mouseleave');});});},100);},_onMouseLeave:function(ev){var self=this;setTimeout(function(){if($('.popover:hover').length){return;}
255if(!self.$el.is(':hover')){self.$el.popover('hide');}},1000);},});});odoo.define('website_sale.website_sale_category',function(require){'use strict';var sAnimations=require('website.content.snippets.animation');sAnimations.registry.websiteSaleCategory=sAnimations.Class.extend({selector:'#o_shop_collapse_category',read_events:{'click .fa-chevron-right':'_onOpenClick','click .fa-chevron-down':'_onCloseClick',},_onOpenClick:function(ev){var $fa=$(ev.currentTarget);$fa.parent().siblings().find('.fa-chevron-down:first').click();$fa.parents('li').find('ul:first').show('normal');$fa.toggleClass('fa-chevron-down fa-chevron-right');},_onCloseClick:function(ev){var $fa=$(ev.currentTarget);$fa.parent().find('ul:first').hide('normal');$fa.toggleClass('fa-chevron-down fa-chevron-right');},});});odoo.define('website_sale.website_sale',function(require){'use strict';var utils=require('web.utils');var ProductConfiguratorMixin=require('sale.ProductConfiguratorMixin');var core=require('web.core');var config=require('web.config');var sAnimations=require('website.content.snippets.animation');require("website.content.zoomodoo");var _t=core._t;sAnimations.registry.WebsiteSale=sAnimations.Class.extend(ProductConfiguratorMixin,{selector:'.oe_website_sale',read_events:{'change form .js_product:first input[name="add_qty"]':'_onChangeAddQuantity','mouseup .js_publish':'_onMouseupPublish','touchend .js_publish':'_onMouseupPublish','change .oe_cart input.js_quantity[data-product-id]':'_onChangeCartQuantity','click .oe_cart a.js_add_suggested_products':'_onClickSuggestedProduct','click a.js_add_cart_json':'_onClickAddCartJSON','click .a-submit':'_onClickSubmit','change form.js_attributes input, form.js_attributes select':'_onChangeAttribute','mouseup form.js_add_cart_json label':'_onMouseupAddCartLabel','touchend form.js_add_cart_json label':'_onMouseupAddCartLabel','change .css_attribute_color input':'_onChangeColorAttribute','click .show_coupon':'_onClickShowCoupon','submit .o_website_sale_search':'_onSubmitSaleSearch','change select[name="country_id"]':'_onChangeCountry','change #shipping_use_same':'_onChangeShippingUseSame','click .toggle_summary':'_onToggleSummary',},init:function(){this._super.apply(this,arguments);this._changeCartQuantity=_.debounce(this._changeCartQuantity.bind(this),500);this._changeCountry=_.debounce(this._changeCountry.bind(this),500);this.isWebsite=true;},start:function(){var def=this._super.apply(this,arguments);if(this.editableMode){return def;}
256_.each(this.$('div.js_product'),function(product){$('input.js_product_change',product).first().trigger('change');});this.triggerVariantChange(this.$el);this.$('select[name="country_id"]').change();this.$('#checkbox_cgv').trigger('change');core.bus.on('resize',this,function(){if(config.device.size_class===config.device.SIZES.XL){$('.toggle_summary_div').addClass('d-none d-xl-block');}});if(!config.device.isMobile){var autoZoom=$('.ecom-zoomable').data('ecom-zoom-auto')||false,factorZoom=parseFloat($('.ecom-zoomable').data('ecom-zoom-factor'))||1.5,attach='#o-carousel-product';_.each($('.ecom-zoomable img[data-zoom]'),function(el){onImageLoaded(el,function(){var $img=$(el);
256if(!_.str.endsWith(el.src,el.dataset.zoomImage)||el.naturalWidth>=$(attach).width()*factorZoom||el.naturalHeight>=$(attach).height()*factorZoom){$img.zoomOdoo({event:autoZoom?'mouseenter':'click',attach:attach});}else{$img.removeAttr('data-zoom');}});});}
257function onImageLoaded(img,callback){$(img).on('load',function(){callback();});if(img.complete){$(img).off('load');callback();}}
258return def;},_changeCartQuantity:function($input,value,$dom_optional,line_id,productIDs){_.each($dom_optional,function(elem){$(elem).find('.js_quantity').text(value);productIDs.push($(elem).find('span[data-product-id]').data('product-id'));});$input.data('update_change',true);this._rpc({route:"/shop/cart/update_json",params:{line_id:line_id,product_id:parseInt($input.data('product-id'),10),set_qty:value},}).then(function(data){$input.data('update_change',false);var check_value=parseInt($input.val()||0,10);if(isNaN(check_value)){check_value=1;}
259if(value!==check_value){$input.trigger('change');return;}
260var $q=$(".my_cart_quantity");if(data.cart_quantity){$q.parents('li:first').removeClass('d-none');}
261else{window.location='/shop/cart';}
262$q.html(data.cart_quantity).hide().fadeIn(600);$input.val(data.quantity);$('.js_quantity[data-line-id='+line_id+']').val(data.quantity).html(data.quantity);$(".js_cart_lines").first().before(data['website_sale.cart_lines']).end().remove();$(".js_cart_summary").first().before(data['website_sale.short_cart_summary']).end().remove();if(data.warning){var cart_alert=$('.oe_cart').parent().find('#data_warning');if(cart_alert.length===0){$('.oe_cart').prepend('<div class="alert alert-danger alert-dismissable" role="alert" id="data_warning">'+'<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button> '+data.warning+'</div>');}
263else{cart_alert.html('<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button> '+data.warning);}
264$input.val(data.quantity);}});},_changeCountry:function(){if(!$("#country_id").val()){return;}
265this._rpc({route:"/shop/country_infos/"+$("#country_id").val(),params:{mode:'shipping',},}).then(function(data){var selectStates=$("select[name='state_id']");if(selectStates.data('init')===0||selectStates.find('option').length===1){if(data.states.length){selectStates.html('');_.each(data.states,function(x){var opt=$('<option>').text(x[1]).attr('value',x[0]).attr('data-code',x[2]);selectStates.append(opt);});selectStates.parent('div').show();}else{selectStates.val('').parent('div').hide();}
266selectStates.data('init',0);}else{selectStates.data('init',0);}
267if(data.fields){if($.inArray('zip',data.fields)>$.inArray('city',data.fields)){$(".div_zip").before($(".div_city"));}else{$(".div_zip").after($(".div_city"));}
268var all_fields=["street","zip","city","country_name"];_.each(all_fields,function(field){$(".checkout_autoformat .div_"+field.split('_')[0]).toggle($.inArray(field,data.fields)>=0);});}});},_onClickAddCartJSON:function(ev){this.onClickAddCartJSON(ev);},_onChangeAddQuantity:function(ev){this.onChangeAddQuantity(ev);},_onMouseupPublish:function(ev){$(ev.currentTarget).parents('.thumbnail').toggleClass('disabled');},_onChangeCartQuantity:function(ev){var $input=$(ev.currentTarget);if($input.data('update_change')){return;}
269var value=parseInt($input.val()||0,10);if(isNaN(value)){value=1;}
270var $dom=$input.closest('tr');var $dom_optional=$dom.nextUntil(':not(.optional_product.info)');var line_id=parseInt($input.data('line-id'),10);var productIDs=[parseInt($input.data('product-id'),10)];this._changeCartQuantity($input,value,$dom_optional,line_id,productIDs);},_onClickSuggestedProduct:function(ev){$(ev.currentTarget).prev('input').val(1).trigger('change');},_onClickSubmit:function(ev,forceSubmit){if($(ev.currentTarget).is('#add_to_cart, #products_grid .a-submit')&&!forceSubmit){return;}
271var $aSubmit=$(ev.currentTarget);if(!ev.isDefaultPrevented()&&!$aSubmit.is(".disabled")){ev.preventDefault();$aSubmit.closest('form').submit();}
272if($aSubmit.hasClass('a-submit-disable')){$aSubmit.addClass("disabled");}
273if($aSubmit.hasClass('a-submit-loading')){var loading='<span class="fa fa-cog fa-spin"/>';var fa_span=$aSubmit.find('span[class*="fa"]');if(fa_span.length){fa_span.replaceWith(loading);}else{$aSubmit.append(loading);}}},_onChangeAttribute:function(ev){if(!ev.isDefaultPrevented()){ev.preventDefault();$(ev.currentTarget).closest("form").submit();}},_onMouseupAddCartLabel:function(ev){var $label=$(ev.currentTarget);var $price=$label.parents("form:first").find(".oe_price .oe_currency_value");if(!$price.data("price")){$price.data("price",parseFloat($price.text()));}
274var value=$price.data("price")+parseFloat($label.find(".badge span").text()||0);var dec=value%1;$price.html(value+(dec<0.01?".00":(dec<1?"0":"")));},_onChangeColorAttribute:function(ev){$('.css_attribute_color').removeClass("active").filter(':has(input:checked)').addClass("active");},_onClickShowCoupon:function(ev){$(ev.currentTarget).hide();$('.coupon_form').removeClass('d-none');},_onSubmitSaleSearch:function(ev){if(!this.$('.dropdown_sorty_by').length){return;}
275var $this=$(ev.currentTarget);if(!ev.isDefaultPrevented()&&!$this.is(".disabled")){ev.preventDefault();var oldurl=$this.attr('action');oldurl+=(oldurl.indexOf("?")===-1)?"?":"";var search=$this.find('input.search-query');window.location=oldurl+'&'+search.attr('name')+'='+encodeURIComponent(search.val());}},_onChangeCountry:function(ev){if(!this.$('.checkout_autoformat').length){return;}
276this._changeCountry();},_onChangeShippingUseSame:function(ev){$('.ship_to_other').toggle(!$(ev.currentTarget).prop('checked'));},_onToggleSummary:function(){$('.toggle_summary_div').toggleClass('d-none');$('.toggle_summary_div').removeClass('d-xl-block');},});sAnimations.registry.websiteSaleCart=sAnimations.Class.extend({selector:'.oe_website_sale .oe_cart',read_events:{'click .js_change_shipping':'_onClickChangeShipping','click .js_edit_address':'_onClickEditAddress','click .js_delete_product':'_onClickDeleteProduct',},_onClickChangeShipping:function(ev){var $old=$('.all_shipping').find('.card.border_primary');$old.find('.btn-ship').toggle();$old.addClass('js_change_shipping');$old.removeClass('border_primary');var $new=$(ev.currentTarget).parent('div.one_kanban').find('.card');$new.find('.btn-ship').toggle();$new.removeClass('js_change_shipping');$new.addClass('border_primary');var $form=$(ev.currentTarget).parent('div.one_kanban').find('form.d-none');$.post($form.attr('action'),$form.serialize()+'&xhr=1');},_onClickEditAddress:function(ev){ev.preventDefault();$(ev.currentTarget).closest('div.one_kanban').find('form.d-none').attr('action','/s
276hop/address').submit();},_onClickDeleteProduct:function(ev){ev.preventDefault();$(ev.currentTarget).closest('tr').find('.js_quantity').val(0).trigger('change');},});});;
277
278/* /website_sale/static/src/js/website_sale_utils.js defined in bundle 'web.assets_frontend' */
279odoo.define('website_sale.utils',function(require){'use strict';function animateClone($cart,$elem,offsetTop,offsetLeft){$cart.find('.o_animate_blink').addClass('o_red_highlight o_shadow_animation').delay(500).queue(function(){$(this).removeClass("o_shadow_animation").dequeue();}).delay(2000).queue(function(){$(this).removeClass("o_red_highlight").dequeue();});var $imgtodrag=$elem.find('img').eq(0);if($imgtodrag.length){var $imgclone=$imgtodrag.clone().offset({top:$imgtodrag.offset().top,left:$imgtodrag.offset().left}).addClass('o_website_sale_animate').appendTo(document.body).animate({top:$cart.offset().top+offsetTop,left:$cart.offset().left+offsetLeft,width:75,height:75,},1000,'easeInOutExpo');$imgclone.animate({width:0,height:0,},function(){$(this).detach();});}}
280return{animateClone:animateClone,};});;
281
282/* /website_sale/static/src/js/website_sale_payment.js defined in bundle 'web.assets_frontend' */
283odoo.define('website_sale.payment',function(require){'use strict';require('web.dom_ready');var $checkbox=$("#checkbox_cgv");if(!$checkbox.length){return;}
284$checkbox.on('change',function(ev){$('button#o_payment_form_pay').prop('disabled',!ev.target.checked);});$checkbox.change();});;
285
286/* /website_sale/static/src/js/website_sale_validate.js defined in bundle 'web.assets_frontend' */
287odoo.define('website_sale.validate',function(require){'use strict';var sAnimations=require('website.content.snippets.animation');sAnimations.registry.websiteSaleValidate=sAnimations.Class.extend({selector:'div.oe_website_sale_tx_status[data-order-id]',start:function(){var def=this._super.apply(this,arguments);if(this.editableMode){return def;}
288this._poll_nbr=0;this._paymentTransationPollStatus();return def;},_paymentTransationPollStatus:function(){var self=this;this._rpc({route:'/shop/payment/get_status/'+parseInt(this.$el.data('order-id')),}).then(function(result){self._poll_nbr+=1;if(result.recall){if(self._poll_nbr<20){setTimeout(function(){self._paymentTransationPollStatus();},Math.ceil(self._poll_nbr/3)*1000);}else{var $message=$(result.message);$message.find('span:first').prepend($("<i title='We are waiting the confirmation of the bank or payment provider' class='fa fa-warning' style='margin-right:10px;'>"));result.message=$message.html();}}
289self.$el.html(result.message);});},});});;
290
291/* /website_sale/static/src/js/website_sale_tour_buy.js defined in bundle 'web.assets_frontend' */
292odoo.define('website_sale.tour',function(require){'use strict';var tour=require("web_tour.tour");var base=require("web_editor.base");tour.register('shop_buy_product',{test:true,url:'/shop',wait_for:base.ready()},[{content:"search conference chair",trigger:'form input[name="search"]',run:"text conference chair",},{content:"search conference chair",trigger:'form:has(input[name="search"]) .oe_search_button',},{content:"select conference chair",trigger:'.oe_product_cart a:contains("Conference Chair")',},{content:"select Conference Chair Aluminium",extra_trigger:'#product_detail',trigger:'label:contains(Aluminium) input',},{content:"select Conference Chair Steel",extra_trigger:'#product_detail',trigger:'label:contains(Steel) input',},{content:"click on add to cart",extra_trigger:'label:contains(Steel) input:propChecked',trigger:'#product_detail form[action^="/shop/cart/update"] .btn-primary',},{content:"click in modal on 'Proceed to checkout' button",trigger:'button:contains("Proceed to Checkout")',},{content:"add suggested",extra_trigger:'#wrap:not(:has(#cart_products:contains("[A8767] Storage Box")))',trigger:'.oe_cart:has(tr:contains("Steel")) a:contains("Add to Cart")',},{content:"add one more",extra_trigger:'#cart_products tr:contains("Storage Box")',trigger:'#cart_products tr:contains("Steel") a.js_add_cart_json:eq(1)',},{content:"remove Headphones",extra_trigger:'#cart_products tr:contains("Steel") input.js_quantity:propValue(2)',trigger:'#cart_products tr:contains("Storage Box") a.js_add_cart_json:first',},{content:"set one",extra_trigger:'#wrap:not(:has(#cart_products tr:contains("Storage Box")))',trigger:'#cart_products input.js_quantity',run:'text 1',},{content:"go to checkout",extra_trigger:'#cart_products input.js_quantity:propValue(1)',trigger:'a[href*="/shop/checkout"]',},{content:"select payment",trigger:'#payment_method label:contains("Wire Transfer")',},{content:"Pay Now",extra_trigger:'#payment_method label:contains("Wire Transfer") input:checked,#payment_method:not(:has("input
292:radio:visible"))',trigger:'button[id="o_payment_form_pay"]:visible:not(:disabled)',},{content:"finish",trigger:'.oe_website_sale:contains("Pending... The order will be validated after the payment.")',timeout:30000,}]);});;
293
294/* /website_sale/static/src/js/website_sale_tracking.js defined in bundle 'web.assets_frontend' */
295odoo.define('website_sale.tracking',function(require){var sAnimations=require('website.content.snippets.animation');sAnimations.registry.websiteSaleTracking=sAnimations.Class.extend({selector:'.oe_website_sale',read_events:{'click form[action="/shop/cart/update"] a.a-submit':'_onAddProductIntoCart','click a[href="/shop/checkout"]':'_onCheckoutStart','click div.oe_cart a[href^="/web?redirect"][href$="/shop/checkout"]':'_onCustomerSignin','click form[action="/shop/confirm_order"] a.a-submit':'_onOrder','click form[target="_self"] button[type=submit]':'_onOrderPayment',},start:function(){var self=this;var def=this._super.apply(this,arguments);if(this.editableMode){return def;}
296if(this.$el.is('#product_detail')){var productID=this.$('input[name="product_id"]').attr('value');this._vpv('/stats/ecom/product_view/'+productID);}
297if(this.$('div.oe_website_sale_tx_status').length){this._trackGA('require','ecommerce');var orderID=this.$('div.oe_website_sale_tx_status').data('order-id');this._vpv('/stats/ecom/order_confirmed/'+orderID);this._rpc({route:'/shop/tracking_last_order/',}).then(function(o){self._trackGA('ecommerce:clear');if(o.transaction&&o.lines){self._trackGA('ecommerce:addTransaction',o.transaction);_.forEach(o.lines,function(line){self._trackGA('ecommerce:addItem',line);});}
298self._trackGA('ecommerce:send');});}
299return def;},_trackGA:function(){websiteGA=window.ga||function(){};websiteGA.apply(this,arguments);},_vpv:function(page){this._trackGA('send','pageview',{'page':page,'title':document.title,});},_onAddProductIntoCart:function(){var productID=this.$('input[name="product_id"]').attr('value');this._vpv('/stats/ecom/product_add_to_cart/'+productID);},_onCheckoutStart:function(){this._vpv('/stats/ecom/customer_checkout');},_onCustomerSignin:function(){this._vpv('/stats/ecom/customer_signin');},_onOrder:function(){if($('#top_menu [href="/web/login"]').length){this._vpv('/stats/ecom/customer_signup');}
300this._vpv('/stats/ecom/order_checkout');},_onOrderPayment:function(){var method=$('#payment_method input[name=acquirer]:checked').nextAll('span:first').text();this._vpv('/stats/ecom/order_payment/'+method);},});});;
301
302/* /website_sale/static/src/js/website_sale_tour_shop_customize.js defined in bundle 'web.assets_frontend' */
303odoo.define('website_sale.tour_shop_customize',function(require){'use strict';var tour=require("web_tour.tour");var base=require("web_editor.base");tour.register('shop_customize',{test:true,url:'/shop',wait_for:base.ready()},[{content:"open customize menu",trigger:'#customize-menu > a',},{content:"click on 'Product Attribute's Filters'",trigger:"#customize-menu a:contains(Product Attribute's Filters)",},{content:"select product attribute memory Steel",extra_trigger:'body:not(:has(#customize-menu:visible .dropdown-menu:visible))',trigger:'form.js_attributes label:contains(Steel) input:not(:checked)',},{content:"check the selection",trigger:'form.js_attributes label:contains(Steel) input:checked',run:function(){},},{content:"select product",extra_trigger:'body:not(:has(.oe_website_sale .oe_product_cart:eq(2)))',trigger:'.oe_product_cart a:contains("Customizable Desk")',},{content:"open customize menu",trigger:'#customize-menu',extra_trigger:"#product_detail",run:function(){$('body').addClass('notReady');var ajax=odoo.__DEBUG__.services['web.ajax'];var get_group_payload={model:'ir.model.data',method:'xmlid_to_res_id',args:['product.group_product_variant',false],kwargs:{}};ajax.jsonpRpc('/web/dataset/call_kw','call',get_group_payload).then(function(group_id){ajax.jsonpRpc('/web/dataset/call_kw','call',{model:'res.groups',method:'write',args:[group_id,{'users':[[4,1]]}],kwargs:{}}).then(function(){location.reload(true);});});},},{content:"open customize menu",trigger:'#customize-menu > a',extra_trigger:'body:not(.notReady)',},{content:"check page loaded after enable  variant group",trigger:'#customize-menu a:contains(List View of Variants)',run:function(){},},{content:"click on 'List View of Variants'",trigger:"#customize-menu a:contains(List View of Variants)",},{content:"check page loaded after list of variant customization enabled",trigger:'.js_product_change',run:function(){},}
303,{content:"check price is 750 and set quantity to 2",trigger:".js_product:first input.quantity:propValue(1)",extra_trigger:".product_price .oe_price .oe_currency_value:containsExact(750.00)",run:"text 2",},{content:"verify pricelist based on quantity has effect",trigger:".product_price .oe_price .oe_currency_value:containsExact(600.00)",run:function(){},},{content:"check pricelit has been applied and switch to Aluminium variant",trigger:".js_product label:contains('Aluminium')",},{content:"verify that price has changed when changing variant",trigger:".product_price .oe_price .oe_currency_value:not(:containsExact(600.00))",run:function(){},},{content:"open customize menu",trigger:'#customize-menu > a',},{content:"remove 'List View of Variants'",trigger:"#customize-menu a:contains(List View of Variants):has(input:checked)",},{content:"check page loaded after list of variant customization disabled",trigger:".js_product:not(:has(.js_product_change))",run:function(){},},{content:"check price is 750 and set quantity to 2",trigger:".js_product:first input.quantity:propValue(1)",extra_trigger:".product_price .oe_price .oe_currency_value:containsExact(750.00)",run:"text 2",},{content:"verify pricelist based on quantity has effect",trigger:".product_price .oe_price .oe_currency_value:containsExact(600.00)",run:function(){},},{content:"switch to Aluminium variant",trigger:".js_product label:contains('Aluminium')",},{content:"verify that price has changed when changing variant",trigger:".product_price .oe_price .oe_currency_value:not(:containsExact(600.00))",run:function(){},},{content:"switch back to Steel variant",trigger:".js_product label:contains('Steel')",},{content:"click on 'Add to Cart' button",trigger:"a:contains(Add to Cart)",},{content:"price is lowered by pricelist and not multiplied by quantity",trigger:"#product_confirmation .oe_price .oe_currency_value:containsExact(600.00)",extra_trigger:"#product_confirmation input.quantity:propValue(2)",run:function(){},},{content:"set quantity to 1",trigger:"#product_confirmation .js_add_cart_json .fa-minus",},{content:"check that product page has been updated",trigger:".js_product:first input.quantity:propValue(1)",extra_trigger:".product_price .oe_price .oe_currency_value:containsExact(750.00)",run:function(){},},{content:"check that add to cart modal has been updated",trigger:"#product_confirmation .oe_price .oe_currency_value:containsExact(750.00)",extra_trigger:"#product_confirmation input.quantity:propValue(1)",run:function(){},},{content:"add an optional Warranty",trigger:".js_product:contains(Warranty) a:contains(Add to Cart)",},{content:"click in modal on 'Proceed to checkout' button",extra_trigger:'body:has(.js_product:contains(Warranty) a:contains(Add to Cart):hidden)',trigger:'.modal-footer a:contains("Proceed to Checkout")',},{content:"check quantity",trigger:'.my_cart_quantity:containsExact(2),.o_extra_menu_items .fa-plus',run:function(){},},{content:"check optional product",trigger:'.optional_product',run:function(){},},{content:"remove large cabinet from cart",trigger:'#cart_products a.js_add_cart_json:first',},{content:"check optional product is removed",trigger:'#wrap:not(:has(.optional_product))',run:function(){},},{content:"click on shop",trigger:"a:contains(Continue Shopping)",extra_trigger:'body:not(:has(#products_grid_before .js_attributes))',},{content:"open customize menu bis",extra_trigger:'#products_grid_before .js_attributes',trigger:'#customize-menu > a',},{content:"remove 'Product Attribute's Filters'",trigger:"#customize-menu a:contains(Product Attribute's Filters):has(input:checked)",},{content:"finish",extra_trigger:'body:not(:has(#products_grid_before .js_attributes))',trigger:'#wrap:not(:has(li:has(.my_cart_quantity):visible))',run:function(){},},]);});;
304
305/* /website_sale/static/src/js/website_sale_tour_shop_custom_attribute_value.js defined in bundle 'web.assets_frontend' */
306odoo.define("website_sale.tour_shop_custom_attribute_value",function(require){"use strict";var tour=require("web_tour.tour");var base=require("web_editor.base");tour.register("shop_custom_attribute_value",{url:"/shop",test:true,wait_for:base.ready()},[{trigger:'img[src*="/product.template/9"]',run:'click'},{trigger:'li.js_attribute_value span:contains(Custom)',extra_trigger:'li.js_attribute_value',run:'click',},{trigger:'input.variant_custom_value',run:'text Wood',},{trigger:'a:contains(Add to Cart)',run:'click',},{trigger:'div:contains(Custom: Wood)',extra_trigger:'.js_product.in_cart.main_product',run:function(){}},{trigger:'button.js_add_cart_json:has(i.fa-plus)',run:'click',},{trigger:'div.oe_striked_price span:contains(750)',run:function(){},},{trigger:'span.oe_price span:contains(600)',run:function(){},},{trigger:'li.js_attribute_value span:contains(Aluminium)',extra_trigger:'.oe_optional_products_modal',run:'click'},{trigger:'.oe_price span:contains(22.9)',run:function(){},},{trigger:'.oe_optional_products_modal .js_product:has(strong:contains(Conference Chair)) .js_add',extra_trigger:'.oe_optional_products_modal .js_product:has(strong:contains(Conference Chair))',run:'click'},{trigger:'.oe_optional_products_modal .js_product:has(strong:contains(Chair floor protection)) .js_add',extra_trigger:'.oe_optional_products_modal .js_product:has(strong:contains(Chair floor protection))',run:'click'},{trigger:'span:contains(1,269.80)',run:function(){},},{trigger:'button:has(span:contains(Proceed to Checkout))',run:'click',},{trigger:'span:contains(Custom: Wood)',extra_trigger:'#cart_products',run:function(){},}]);});;
307
308/* /website_sale/static/src/js/website_sale_options.js defined in bundle 'web.assets_frontend' */
309odoo.define('website_sale_options.website_sale',function(require){'use strict';var core=require('web.core');var _t=core._t;var OptionalProductsModal=require('sale.OptionalProductsModal');var weContext=require('web_editor.context');var sAnimations=require('website.content.snippets.animation');var ProductConfiguratorMixin=require('sale.ProductConfiguratorMixin');require('website_sale.website_sale');sAnimations.registry.WebsiteSaleOptions=sAnimations.Class.extend(ProductConfiguratorMixin,{selector:'.oe_website_sale',read_events:{'click #add_to_cart, #products_grid .product_price .a-submit':'_onClickAdd',},init:function(){this._super.apply(this,arguments);this._handleAdd=_.debounce(this._handleAdd.bind(this),200,true);this.isWebsite=true;delete this.events['change [data-attribute_exclusions]'];delete this.events['change input.js_quantity'];delete this.events['click button.js_add_cart_json'];},_onClickAdd:function(ev){ev.preventDefault();this._handleAdd($(ev.currentTarget).closest('form'));},_handleAdd:function($form){var self=this;this.$form=$form;this.isWebsite=true;var productSelector=['input[type="hidden"][name="product_id"]','input[type="radio"][name="product_id"]:checked'];var productReady=this.selectOrCreateProduct($form,parseInt($form.find(productSelector.join(', ')).first().val(),10),$form.find('.product_template_id').val(),false);productReady.done(function(productId){$form.find(productSelector.join(', ')).val(productId);self.rootProduct={product_id:productId,quantity:parseFloat($form.find('input[name="add_qty"]').val()||1),product_custom_attribute_values:self.getCustomVariantValues($form.find('.js_product')),variant_values:self.getSelectedVariantValues($form.find('.js_product')),no_variant_attribute_values:self.getNoVariantAttributeValues($form.find('.js_product'))};self.optionalProductsModal=new OptionalProductsModal($form,{rootProduct:self.rootProduct,isWebsite:true,okButtonText:_t('Proceed to Checkout'),cancelButtonText:_t('Continue Shopping'),title:_t('Add to cart')}).open();self.optionalProductsModal.on('options_empty',null,self._onModalOptionsEmpty.bind(self));self.optionalProductsModal.on('update_quantity',null,self._onOptionsUpdateQuantity.bind(self));self.optionalProductsModal.on('confirm',null,self._onModalConfirm.bind(self));self.optionalProductsModal.on('back',null,self._onModalBack.bind(self));});},_onModalOptionsEmpty:function(){var $productCustomVariantValues=$('<input>',{name:'product_custom_attribute_values',type:"hidden",value:JSON.stringify(this.rootProduct.product_custom_attribute_values)});this.$form.append($productCustomVariantValues);var $productNoVariantAttributeValues=$('<input>',{name:'no_variant_attribute_values',type:"hidden",value:JSON.stringify(this.rootProduct.no_variant_attribute_values)});this.$form.append($productNoVariantAttributeValues);this.$form.trigger('submit',[true]);},_onOptionsUpdateQuantity:function(quantity){this.$form.find('input[name="add_qty"]').first().val(quantity).trigger('change');},_onModalBack:function(){this._onModalSubmit(false);},_onModalConfirm:function(){this._onModalSubmit(true);},_onModalSubmit:function(goToShop){var customValues=JSON.stringify(this.optionalProductsModal.getSelectedProducts());this.$form.ajaxSubmit({url:'/shop/cart/update_option',data:{lang:weContext.get().lang,custom_values:customValues},success:function(quantity){if(goToShop){var path=window.location.pathname.replace(/shop([\/?].*)?$/,"shop/cart");window.location.pathname=path;}
310var $quantity=$(".my_cart_quantity");$quantity.parent().parent().removeClass("d-none",!quantity);$quantity.html(quantity).hide().fadeIn(600);}});},});return sAnimations.registry.WebsiteSaleOptions;});;
311
312/* /website_twitter/static/src/js/website.twitter.animation.js defined in bundle 'web.assets_frontend' */
313odoo.define('website_twitter.animation',function(require){'use strict';var core=require('web.core');var sAnimation=require('website.content.snippets.animation');var qweb=core.qweb;sAnimation.registry.twitter=sAnimation.Class.extend({selector:'.twitter',xmlDependencies:['/website_twitter/static/src/xml/website.twitter.xml'],events:{'mouseenter .wrap-row':'_onEnterRow','mouseleave .wrap-row':'_onLeaveRow','click .twitter_timeline .tweet':'_onT
313weetClick',},start:function(){var self=this;var $timeline=this.$('.twitter_timeline');$timeline.append('<center><div><img src="/website_twitter/static/src/img/loadtweet.gif"></div></center>');var def=this._rpc({route:'/website_twitter/get_favorites'}).then(function(data){$timeline.empty();if(data.error){$timeline.append(qweb.render('website.Twitter.Error',{data:data}));return;}
314if(_.isEmpty(data)){return;}
315var tweets=_.map(data,function(tweet){if(_.isEmpty(tweet.created_at)){tweet.created_at='';}else{var v=tweet.created_at.split(' ');var d=new Date(Date.parse(v[1]+' '+v[2]+', '+v[5]+' '+v[3]+' UTC'));tweet.created_at=d.toDateString();}
316tweet.text=tweet.text.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&~\?\/.=]+/g,function(url){return _makeLink(url,url);}).replace(/[@]+[A-Za-z0-9_]+/g,function(screen_name){return _makeLink('http://twitter.com/'+screen_name.replace('@',''),screen_name);}).replace(/[#]+[A-Za-z0-9_]+/g,function(hashtag){return _makeLink('http://twitter.com/search?q='+hashtag.replace('#',''),hashtag);});return qweb.render('website.Twitter.Tweet',{tweet:tweet});function _makeLink(url,text){var c=$('<a/>',{text:text,href:url,target:'_blank',});return c.prop('outerHTML');}});var f=Math.floor(tweets.length/3);var tweetSlices=[tweets.slice(0,f).join(' '),tweets.slice(f,f*2).join(' '),tweets.slice(f*2,tweets.length).join(' ')];self.$scroller=$(qweb.render('website.Twitter.Scroller')).appendTo($timeline);_.each(self.$scroller.find('div[id^="scroller"]'),function(element,index){var $scrollWrapper=$('<div/>',{class:'scrollWrapper'});var $scrollableArea=$('<div/>',{class:'scrollableArea'});$scrollWrapper.append($scrollableArea).data('scrollableArea',$scrollableArea);$scrollableArea.append(tweetSlices[index]);$(element).append($scrollWrapper);var totalWidth=0;_.each($scrollableArea.children(),function(area){totalWidth+=$(area).outerWidth(true);});$scrollableArea.width(totalWidth);$scrollWrapper.scrollLeft(index*180);});self._startScrolling();});return $.when(this._super.apply(this,arguments),def);},destroy:function(){this._stopScrolling();this._super.apply(this,arguments);},_startScrolling:function(){if(!this.$scroller){return;}
317_.each(this.$scroller.find('.scrollWrapper'),function(el){var $wrapper=$(el);$wrapper.data('getNextElementWidth',true);$wrapper.data('autoScrollingInterval',setInterval(function(){$wrapper.scrollLeft($wrapper.scrollLeft()+1);if($wrapper.data('getNextElementWidth')){$wrapper.data('swapAt',$wrapper.data('scrollableArea').children(':first').outerWidth(true));$wrapper.data('getNextElementWidth',false);}
318if($wrapper.data('swapAt')<=$wrapper.scrollLeft()){var swap_el=$wrapper.data('scrollableArea').children(':first').detach();$wrapper.data('scrollableArea').append(swap_el);$wrapper.scrollLeft($wrapper.scrollLeft()-swap_el.outerWidth(true));$wrapper.data('getNextElementWidth',true);}},20));});},_stopScrolling:function(wrapper){if(!this.$scroller){return;}
319_.each(this.$scroller.find('.scrollWrapper'),function(el){var $wrapper=$(el);clearInterval($wrapper.data('autoScrollingInterval'));});},_onEnterRow:function(){this._stopScrolling();},_onLeaveRow:function(){this._startScrolling();},_onTweetClick:function(ev){if(ev.target.tagName==='A'){return;}
320var url=$(ev.currentTarget).data('url');if(url){window.open(url,'_blank');}},});});;
321
322/* /website_blog/static/src/js/contentshare.js defined in bundle 'web.assets_frontend' */
323(function(){$.fn.share=function(options){var option=$.extend($.fn.share.defaults,options);var selected_text="";$.extend($.fn.share,{init:function(shareable){var self=this;$.fn.share.defaults.shareable=shareable;$.fn.share.defaults.shareable.on('mouseup',function(){if($(this).parents('body.editor_enable').length===0){self.popOver();}});$.fn.share.defaults.shareable.on('mousedown',function(){self.destroy();});},getContent:function(){var popover_content='';if($('.blog_title, .blog_content').hasClass('js_comment')){selected_text=this.getSelection('string');popover_content+='<a class="o_share_comment mr12"><i class="fa fa-comment fa-lg mr4 ml4"/></a>';}
324if($('.blog_title, .blog_content').hasClass('js_tweet')){var tweet='"%s" - %s';var baseLength=tweet.replace(/%s/g,'').length;
324var selectedText=this.getSelection('string').substring(0,option.maxLength-baseLength-23);var text=encodeURIComponent(_.str.sprintf(tweet,selectedText,window.location.href));popover_content+='<a onclick="window.open(\''+option.shareLink+text+'\',\'_'+option.target+'\',\'location=yes,height=570,width=520,scrollbars=yes,status=yes\')"><i class="ml4 mr4 fa fa-twitter fa-lg"/></a>';}
325return popover_content;},commentEdition:function(){var positionComment=($('#comments').position()).top-50;$(".o_website_chatter_form textarea").val('"'+selected_text+'" ').focus();$('html, body').stop().animate({'scrollTop':positionComment},500,'swing',function(){window.location.hash='blog_post_comment_quote';});},getSelection:function(share){if(window.getSelection){if(share==='string'){return String(window.getSelection().getRangeAt(0)).replace(/\s{2,}/g,' ');}else{return window.getSelection().getRangeAt(0);}}
326else if(document.selection){if(share==='string'){return document.selection.createRange().text.replace(/\s{2,}/g,' ');}else{return document.selection.createRange();}}},popOver:function(){this.destroy();if(this.getSelection('string').length<option.minLength)
327return;var data=this.getContent();var range=this.getSelection();var newNode=document.createElement("span");range.insertNode(newNode);newNode.className=option.className;var $pop=$(newNode);$pop.popover({trigger:'manual',placement:option.placement,html:true,content:function(){return data;}}).popover('show');$('.o_share_comment').on('click',this.commentEdition);},destroy:function(){var $span=$('span.'+option.className);$span.popover('hide');$span.remove();}});$.fn.share.init(this);};$.fn.share.defaults={shareLink:"http://twitter.com/intent/tweet?text=",minLength:5,maxLength:140,target:"blank",className:"share",placement:"top",};}());;
328
329/* /website_blog/static/src/js/website_blog.js defined in bundle 'web.assets_frontend' */
330odoo.define('website_blog.website_blog',function(require){"use strict";function page_transist(event){event.preventDefault();var newLocation=$('.js_next')[0].href;var top=$('.cover_footer').offset().top;$('.cover_footer').animate({height:$(window).height()+'px'},300);$('html, body').animate({scrollTop:top},300,'swing',function(){window.location.href=newLocation;});}
331function animate(event){event.preventDefault();event.stopImmediatePropagation();var target=$(this.hash);$('html, body').stop().animate({'scrollTop':target.offset().top-32},500,'swing',function(){window.location.hash='blog_content';});}
332function shareArticle(event){var url='';if($(this).is('*[class*="_complete"]')){var blog_title_complete=$('#blog_post_name').html()||'';if($(this).hasClass('o_twitter_complete')){url='https://twitter.com/intent/tweet?tw_p=tweetbutton&text=Amazing blog article : '+blog_title_complete+"! Check it live: "+window.location.href;}else if($(this).hasClass('o_facebook_complete')){url='https://www.facebook.com/sharer/sharer.php?u='+window.location.href;}else if($(this).hasClass('o_linkedin_complete')){url='https://www.linkedin.com/shareArticle?mini=true&url='+window.location.href+'&title='+blog_title_complete;}else{url='https://plus.google.com/share?url='+window.location.href;}}
333else{var blog_post=$(this).parents("[name='blog_post']");var blog_post_title=blog_post.find('.o_blog_post_title').html()||'';var blog_article_link=blog_post.find('.o_blog_post_title').parent('a').attr('href');if($(this).hasClass('o_twitter')){url='https://twitter.com/intent/tweet?tw_p=tweetbutton&text=Amazing blog article : '+blog_post_title+"! "+window.location.host+blog_article_link;}else if($(this).hasClass('o_facebook')){url='https://www.facebook.com/sharer/sharer.php?u='+window.location.host+blog_article_link;}else if($(this).hasClass('o_linkedin')){url='https://www.linkedin.com/shareArticle?mini=true&url='+window.location.host+blog_article_link+'&title='+blog_post_title;}else if($(this).hasClass('o_google')){url='https://plus.google.com/share?url='+window.location.host+blog_article_link;}}
334window.open(url,"","menubar=no, width=500, height=400");}
335$(document).ready(function(){if($('.website_blog').length){$(".js_tweet, .js_comment").share({});$('.cover_footer').on('click',page_transist);$('a[href^="#blog_content"]').on('click',animate);$('.o_twitter, .o_facebook, .o_linkedin, .o_google, .o_twitter_complete, .o_facebook_complete, .o_linkedin_complete, .o_google_complete').on('click',shareArticle);
335$('.blog_post_year_collapse').on('click',function(){$(this).find('i.fa').toggleClass('fa-chevron-down fa-chevron-right');});var $activeYear=$('.blog_post_year li.active');if($activeYear.length){var id=$activeYear.closest('ul').attr('id');$("li.blog_post_year_collapse[data-target='#"+id+"']").click();}}
336$('div.o_blog_post_complete a').hover(function(){$('div.o_blog_post_complete a').not('#'+this.id).addClass('unhover');},function(){$('div.o_blog_post_complete a').not('#'+this.id).removeClass('unhover');});});});;
337
338/* /website_blog/static/src/js/s_latest_posts_frontend.js defined in bundle 'web.assets_frontend' */
339odoo.define('website_blog.s_latest_posts_frontend',function(require){'use strict';var core=require('web.core');var sAnimation=require('website.content.snippets.animation');var _t=core._t;sAnimation.registry.js_get_posts=sAnimation.Class.extend({selector:'.js_get_posts',start:function(){var self=this;var limit=self.$target.data('postsLimit')||3;var blogID=self.$target.data('filterByBlogId');var template=self.$target.data('template')||'website_blog.s_latest_posts_list_template';var loading=self.$target.data('loading');this.$target.empty();this.$target.attr('contenteditable','False');var domain=[['website_published','=',true]];if(blogID){domain.push(['blog_id','=',parseInt(blogID)]);}
340var def=$.Deferred();this._rpc({route:'/blog/render_latest_posts',params:{template:template,domain:domain,limit:limit,},}).then(function(posts){var $posts=$(posts).filter('.s_latest_posts_post');if(!$posts.length){self.$target.append($('<div/>',{class:'col-md-6 offset-md-3'}).append($('<div/>',{class:'alert alert-warning alert-dismissible text-center',text:_t("No blog post was found. Make sure your posts are published."),})));return;}
341if(loading&&loading===true){self._showLoading($posts);}else{self.$target.html($posts);}},function(e){if(self.editableMode){self.$target.append($('<p/>',{class:'text-danger',text:_t("An error occured with this latest posts block. If the problem persists, please consider deleting it and adding a new one"),}));}}).always(def.resolve.bind(def));return $.when(this._super.apply(this,arguments),def);},destroy:function(){this.$target.empty();this._super.apply(this,arguments);},_showLoading:function($posts){var self=this;_.each($posts,function(post){var $post=$(post);var $loadingContainer=$post.find('.loading_container');var $thumb=$post.find('.thumb .o_blog_cover_image');var $progress=$('<div/>',{class:'progress js-loading',}).append($('<div/>',{class:'progress-bar',role:'progressbar','aria-valuenow':'0','aria-valuemin':'0','aria-valuemax':'100',css:{width:0,},}));if(!$loadingContainer.length){$loadingContainer=$post;}
342if(!$thumb.length){$thumb=$post;}
343$post.addClass('js-loading');$progress.appendTo($loadingContainer);$post.appendTo(self.$target);var m=$thumb.css('background-image').match(/url\(["']?(.+)["']?\)/);var bg=m?m[1]:'none';var loaded=false;var $bar=$progress.find('.progress-bar');$bar.css('width','50%').attr('aria-valuenow','50');var $dummyImg=$('<img/>');var timer=setTimeout(function(){$dummyImg.remove();$post.removeClass('js-loading');$progress.hide();},5000);$dummyImg.load(function(){$bar.css('width','100%').attr('aria-valuenow','100');setTimeout(function(){$post.removeClass('js-loading');$progress.fadeOut(500);},500);$dummyImg.remove();clearTimeout(timer);});$dummyImg.attr('src',bg);});},});});;
344
345/* /remotive_website_job/static/src/js/many2many_widget.js defined in bundle 'web.assets_frontend' */
346odoo.define('remotive_website_job.many2many_widget',function(require){'use strict';require('web.dom_ready');var ajax=require('web.ajax');var core=require('web.core');var _t=core._t;var lastsearch;$('input.js_select2_job_form').select2({tags:true,tokenSeparators:[","," ","_"],maximumInputLength:35,minimumInputLength:0,maximumSelectionSize:5,lastsearch:[],formatResult:function(term){if(term.isNew){return'<span class="badge badge-primary">New</span> '+_.escape(term.text);}
347else{return _.escape(term.text);}},ajax:{url:'/remote-jobs/get_extra_tags',dataType:'json',data:function(term){return{q:term,l:50};},results:function(data){var ret=[];_.each(data,function(x){ret.push({id:x.id,text:x.name,isNew:false});});lastsearch=ret;return{results:ret};}},initSelection:function(element,callback){var data=[];_.each(element.data('init-value'),function(x){data.push({id:x.id,text:x.name,isNew:false});});element.val('');callback(data);},});});;
348
349/* /remotive_website_job/static/src/js/tagsinput/dist/bootstrap-tagsinput.min.js defined in bundle 'web.assets_frontend' */
350!function(a){"use strict";function b(b,c){this.itemsArray=[],this.$element=a(b),this.$element.hide(),this.isSelect="SELECT"===b.tagName,this.multiple=this.isSelect&&b.hasAttribute("multiple"),this.objectItems=c&&c.itemValue,this.placeholderText=b.hasAttribute("placeholder")?this.$element.attr("placeholder"):"",this.inputSize=Math.max(1,this.placeholderText.length),this.$container=a('<div class="bootstrap-tagsinput"></div>
350'),this.$input=a('<input type="text" placeholder="'+this.placeholderText+'"/>').appendTo(this.$container),this.$element.before(this.$container),this.build(c)}function c(a,b){if("function"!=typeof a[b]){var c=a[b];a[b]=function(a){return a[c]}}}function d(a,b){if("function"!=typeof a[b]){var c=a[b];a[b]=function(){return c}}}function e(a){return a?i.text(a).html():""}function f(a){var b=0;if(document.selection){a.focus();var c=document.selection.createRange();c.moveStart("character",-a.value.length),b=c.text.length}else(a.selectionStart||"0"==a.selectionStart)&&(b=a.selectionStart);return b}function g(b,c){var d=!1;return a.each(c,function(a,c){if("number"==typeof c&&b.which===c)return d=!0,!1;if(b.which===c.which){var e=!c.hasOwnProperty("altKey")||b.altKey===c.altKey,f=!c.hasOwnProperty("shiftKey")||b.shiftKey===c.shiftKey,g=!c.hasOwnProperty("ctrlKey")||b.ctrlKey===c.ctrlKey;if(e&&f&&g)return d=!0,!1}}),d}var h={tagClass:function(a){return"label label-info"},itemValue:function(a){return a?a.toString():a},itemText:function(a){return this.itemValue(a)},itemTitle:function(a){return null},freeInput:!0,addOnBlur:!0,maxTags:void 0,maxChars:void 0,confirmKeys:[13,44],delimiter:",",delimiterRegex:null,cancelConfirmKeysOnEmpty:!0,onTagExists:function(a,b){b.hide().fadeIn()},trimValue:!1,allowDuplicates:!1};b.prototype={constructor:b,add:function(b,c,d){var f=this;if(!(f.options.maxTags&&f.itemsArray.length>=f.options.maxTags)&&(b===!1||b)){if("string"==typeof b&&f.options.trimValue&&(b=a.trim(b)),"object"==typeof b&&!f.objectItems)throw"Can't add objects when itemValue option is not set";if(!b.toString().match(/^\s*$/)){if(f.isSelect&&!f.multiple&&f.itemsArray.length>0&&f.remove(f.itemsArray[0]),"string"==typeof b&&"INPUT"===this.$element[0].tagName){var g=f.options.delimiterRegex?f.options.delimiterRegex:f.options.delimiter,h=b.split(g);if(h.length>1){for(var i=0;i<h.length;i++)this.add(h[i],!0);return void(c||f.pushVal())}}var j=f.options.itemValue(b),k=f.options.itemText(b),l=f.options.tagClass(b),m=f.options.itemTitle(b),n=a.grep(f.itemsArray,function(a){return f.options.itemValue(a)===j})[0];if(!n||f.options.allowDuplicates){if(!(f.items().toString().length+b.length+1>f.options.maxInputLength)){var o=a.Event("beforeItemAdd",{item:b,cancel:!1,options:d});if(f.$element.trigger(o),!o.cancel){f.itemsArray.push(b);var p=a('<span class="tag '+e(l)+(null!==m?'" title="'+m:"")+'">'+e(k)+'<span data-role="remove"></span></span>');if(p.data("item",b),f.findInputWrapper().before(p),p.after(" "),f.isSelect&&!a('option[value="'+encodeURIComponent(j)+'"]',f.$element)[0]){var q=a("<option selected>"+e(k)+"</option>");q.data("item",b),q.attr("value",j),f.$element.append(q)}c||f.pushVal(),(f.options.maxTags===f.itemsArray.length||f.items().toString().length===f.options.maxInputLength)&&f.$container.addClass("bootstrap-tagsinput-max"),f.$element.trigger(a.Event("itemAdded",{item:b,options:d}))}}}else if(f.options.onTagExists){var r=a(".tag",f.$container).filter(function(){return a(this).data("item")===n});f.options.onTagExists(b,r)}}}},remove:function(b,c,d){var e=this;if(e.objectItems&&(b="object"==typeof b?a.grep(e.itemsArray,function(a){return e.options.itemValue(a)==e.options.itemValue(b)}):a.grep(e.itemsArray,function(a){return e.options.itemValue(a)==b}),b=b[b.length-1]),b){var f=a.Event("beforeItemRemove",{item:b,cancel:!1,options:d});if(e.$element.trigger(f),f.cancel)return;a(".tag",e.$container).filter(function(){return a(this).data("item")===b}).remove(),a("option",e.$element).filter(function(){return a(this).data("item")===b}).remove(),-1!==a.inArray(b,e.itemsArray)&&e.itemsArray.splice(a.inArray(b,e.itemsArray),1)}c||e.pushVal(),e.options.maxTags>e.itemsArray.length&&e.$container.removeClass("bootstrap-tagsinput-max"),e.$element.trigger(a.Event("itemRemoved",{item:b,options:d}))},removeAll:function(){var b=this;for(a(".tag",b.$container).remove(),a("option",b.$element).remove();b.itemsArray.length>0;)b.itemsArray.pop();b.pushVal()},refresh:function(){var b=this;a(".tag",b.$container).each(function(){var c=a(this),d=c.data("item"),f=b.options.itemValue(d),g=b.options.itemText(d),h=b.options.tagClass(d);if(c.attr("class",null),c.addClass("tag "+e(h)),c.contents().filter(function(){return 3==this.nodeType})[0].nodeValue=e(g),b.isSelect){var i=a("option",b.$element).filter(function(){return a(this).data("item")===d});i.attr("value",f)}})},items:function(){return this.itemsArray},pushVal:function(){var b=this,c=a.map(b.items(),function(a){return b.options.itemValue(a).toString()});b.$element.val(c,!0).trigger("change")},build:function(b){var e=this;if(e.options=a.extend({},h,b),e.objectItems&&(e.options.freeInput=!1),c(e.options,"itemValue"),c(e.options,"itemText"),d(e.options,"tagClass"),e.options.typeahead){var i=e.options.typeahead||{};d(i,"source"),e.$input.typeahead(a.extend({},i,{source:function(b,c){function d(a){for(var b=[],d=0;d<a.length;d++){var g=e.options.itemText(a[d]);f[g]=a[d],b.push(g)}c(b)}this.map={};var f=this.map,g=i.source(b);a.isFunction(g.success)?g.success(d):a.isFunction(g.then)?g.then(d):a.when(g).then(d)},updater:function(a){return e.add(this.map[a]),this.map[a]},matcher:function(a){return-1!==a.toLowerCase().indexOf(this.query.trim().toLowerCase())},sorter:function(a){return a.sort()},highlighter:function(a){var b=new RegExp("("+this.query+")","gi");return a.replace(b,"<strong>$1</strong>")}}
350))}if(e.options.typeaheadjs){var j=null,k={},l=e.options.typeaheadjs;a.isArray(l)?(j=l[0],k=l[1]):k=l,e.$input.typeahead(j,k).on("typeahead:selected",a.proxy(function(a,b){k.valueKey?e.add(b[k.valueKey]):e.add(b),e.$input.typeahead("val","")},e))}e.$container.on("click",a.proxy(function(a){e.$element.attr("disabled")||e.$input.removeAttr("disabled"),e.$input.focus()},e)),e.options.addOnBlur&&e.options.freeInput&&e.$input.on("focusout",a.proxy(function(b){0===a(".typeahead, .twitter-typeahead",e.$container).length&&(e.add(e.$input.val()),e.$input.val(""))},e)),e.$container.on("keydown","input",a.proxy(function(b){var c=a(b.target),d=e.findInputWrapper();if(e.$element.attr("disabled"))return void e.$input.attr("disabled","disabled");switch(b.which){case 8:if(0===f(c[0])){var g=d.prev();g.length&&e.remove(g.data("item"))}break;case 46:if(0===f(c[0])){var h=d.next();h.length&&e.remove(h.data("item"))}break;case 37:var i=d.prev();0===c.val().length&&i[0]&&(i.before(d),c.focus());break;case 39:var j=d.next();0===c.val().length&&j[0]&&(j.after(d),c.focus())}var k=c.val().length;Math.ceil(k/5);c.attr("size",Math.max(this.inputSize,c.val().length))},e)),e.$container.on("keypress","input",a.proxy(function(b){var c=a(b.target);if(e.$element.attr("disabled"))return void e.$input.attr("disabled","disabled");var d=c.val(),f=e.options.maxChars&&d.length>=e.options.maxChars;e.options.freeInput&&(g(b,e.options.confirmKeys)||f)&&(0!==d.length&&(e.add(f?d.substr(0,e.options.maxChars):d),c.val("")),e.options.cancelConfirmKeysOnEmpty===!1&&b.preventDefault());var h=c.val().length;Math.ceil(h/5);c.attr("size",Math.max(this.inputSize,c.val().length))},e)),e.$container.on("click","[data-role=remove]",a.proxy(function(b){e.$element.attr("disabled")||e.remove(a(b.target).closest(".tag").data("item"))},e)),e.options.itemValue===h.itemValue&&("INPUT"===e.$element[0].tagName?e.add(e.$element.val()):a("option",e.$element).each(function(){e.add(a(this).attr("value"),!0)}))},destroy:function(){var a=this;a.$container.off("keypress","input"),a.$container.off("click","[role=remove]"),a.$container.remove(),a.$element.removeData("tagsinput"),a.$element.show()},focus:function(){this.$input.focus()},input:function(){return this.$input},findInputWrapper:function(){for(var b=this.$input[0],c=this.$container[0];b&&b.parentNode!==c;)b=b.parentNode;return a(b)}},a.fn.tagsinput=function(c,d,e){var f=[];return this.each(function(){var g=a(this).data("tagsinput");if(g)if(c||d){if(void 0!==g[c]){if(3===g[c].length&&void 0!==e)var h=g[c](d,null,e);else var h=g[c](d);void 0!==h&&f.push(h)}}else f.push(g);else g=new b(this,c),a(this).data("tagsinput",g),f.push(g),"SELECT"===this.tagName&&a("option",a(this)).attr("selected","selected"),a(this).val(a(this).val())}),"string"==typeof c?f.length>1?f:f[0]:f},a.fn.tagsinput.Constructor=b;var i=a("<div />");a(function(){a("input[data-role=tagsinput], select[multiple][data-role=tagsinput]").tagsinput()})}(window.jQuery);;
351
352/* /remotive_website_job/static/src/js/typeahead.js defined in bundle 'web.assets_frontend' */
353(function(root,factory){if(typeof define==="function"&&define.amd){define("bloodhound",["jquery"],function(a0){return root["Bloodhound"]=factory(a0);});}else if(typeof exports==="object"){module.exports=factory(require("jquery"));}else{root["Bloodhound"]=factory(jQuery);}})(this,function($){var _=function(){"use strict";return{isMsie:function(){return/(msie|trident)/i.test(navigator.userAgent)?navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2]:false;},isBlankString:function(str){return!str||/^\s*$/.test(str);},escapeRegExChars:function(str){return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");},isString:function(obj){return typeof obj==="string";},isNumber:function(obj){return typeof obj==="number";},isArray:$.isArray,isFunction:$.isFunction,isObject:$.isPlainObject,isUndefined:function(obj){return typeof obj==="undefined";},isElement:function(obj){return!!(obj&&obj.nodeType===1);},isJQuery:function(obj){return obj instanceof $;},toStr:function toStr(s){return _.isUndefined(s)||s===null?"":s+"";},bind:$.proxy,each:function(collection,cb){$.each(collection,reverseArgs);function reverseArgs(index,value){return cb(value,index);}},map:$.map,filter:$.grep,every:function(obj,test){var result=true;if(!obj){return result;}
354$.each(obj,function(key,val){if(!(result=test.call(null,val,key,obj))){return false;}});return!!result;},some:function(obj,test){var result=false;if(!obj){return result;}
355$.each(obj,function(key,val){if(result=test.call(null,val,key,obj)){return false;}});return!!result;},mixin:$.extend,identity:function(x){return x;},clone:function(obj){return $.extend(true,{},obj);},getIdGenerator:function(){var counter=0;return function(){return counter++;};},templatify:function templatify(obj){return $.isFunction(obj)?obj:template;function template(){return String(obj);}},defer:function(fn){setTimeout(fn,0);},debounce:function(func,wait,immediate){var timeout,result;return function(){var context=this,args=arguments,later,callNow;later=function(){timeout=null;if(!immediate){result=func.apply(context,args);}};callNow=immediate&&!timeout;clearTimeout(timeout);timeout=setTimeout(later,wait);if(callNow){result=func.apply(context,args);}
356return result;};},throttle:function(func,wait){var context,args,timeout,result,previous,later;previous=0;later=function(){previous=new Date();timeout=null;result=func.apply(context,args);};return function(){var now=new Date(),remaining=wait-(now-previous);context=this;args=arguments;if(remaining<=0){clearTimeout(timeout);timeout=null;previous=now;result=func.apply(context,args);}else if(!timeout){timeout=setTimeout(later,remaining);}
357return result;};},stringify:function(val){return _.isString(val)?val:JSON.stringify(val);},noop:function(){}};}();var VERSION="0.11.1";var tokenizers=function(){"use strict";return{nonword:nonword,whitespace:whitespace,obj:{nonword:getObjTokenizer(nonword),whitespace:getObjTokenizer(whitespace)}};function whitespace(str){str=_.toStr(str);return str?str.split(/\s+/):[];}
358function nonword(str){str=_.toStr(str);return str?str.split(/\W+/):[];}
359function getObjTokenizer(tokenizer){return function setKey(keys){keys=_.isArray(keys)?keys:[].slice.call(arguments,0);return function tokenize(o){var tokens=[];_.each(keys,function(k){tokens=tokens.concat(tokenizer(_.toStr(o[k])));});return tokens;};};}}();var LruCache=function(){"use strict";function LruCache(maxSize){this.maxSize=_.isNumber(maxSize)?maxSize:100;this.reset();if(this.maxSize<=0){this.set=this.get=$.noop;}}
360_.mixin(LruCache.prototype,{set:function set(key,val){var tailItem=this.list.tail,node;if(this.size>=this.maxSize){this.list.remove(tailItem);delete this.hash[tailItem.key];this.size--;}
361if(node=this.hash[key]){node.val=val;this.list.moveToFront(node);}
vendor: 12,082 bytes, lines 361-409
361else{node=new Node(key,val);this.list.add(node);this.hash[key]=node;this.size++;}},get:function get(key){var node=this.hash[key];if(node){this.list.moveToFront(node);return node.val;}},reset:function reset(){this.size=0;this.hash={};this.list=new List();}});function List(){this.head=this.tail=null;}
362_.mixin(List.prototype,{add:function add(node){if(this.head){node.next=this.head;this.head.prev=node;}
363this.head=node;this.tail=this.tail||node;},remove:function remove(node){node.prev?node.prev.next=node.next:this.head=node.next;node.next?node.next.prev=node.prev:this.tail=node.prev;},moveToFront:function(node){this.remove(node);this.add(node);}});function Node(key,val){this.key=key;this.val=val;this.prev=this.next=null;}
364return LruCache;}();var PersistentStorage=function(){"use strict";var LOCAL_STORAGE;try{LOCAL_STORAGE=window.localStorage;LOCAL_STORAGE.setItem("~~~","!");LOCAL_STORAGE.removeItem("~~~");}catch(err){LOCAL_STORAGE=null;}
365function PersistentStorage(namespace,override){this.prefix=["__",namespace,"__"].join("");this.ttlKey="__ttl__";this.keyMatcher=new RegExp("^"+_.escapeRegExChars(this.prefix));this.ls=override||LOCAL_STORAGE;!this.ls&&this._noop();}
366_.mixin(PersistentStorage.prototype,{_prefix:function(key){return this.prefix+key;},_ttlKey:function(key){return this._prefix(key)+this.ttlKey;},_noop:function(){this.get=this.set=this.remove=this.clear=this.isExpired=_.noop;},_safeSet:function(key,val){try{this.ls.setItem(key,val);}catch(err){if(err.name==="QuotaExceededError"){this.clear();this._noop();}}},get:function(key){if(this.isExpired(key)){this.remove(key);}
367return decode(this.ls.getItem(this._prefix(key)));},set:function(key,val,ttl){if(_.isNumber(ttl)){this._safeSet(this._ttlKey(key),encode(now()+ttl));}else{this.ls.removeItem(this._ttlKey(key));}
368return this._safeSet(this._prefix(key),encode(val));},remove:function(key){this.ls.removeItem(this._ttlKey(key));this.ls.removeItem(this._prefix(key));return this;},clear:function(){var i,keys=gatherMatchingKeys(this.keyMatcher);for(i=keys.length;i--;){this.remove(keys[i]);}
369return this;},isExpired:function(key){var ttl=decode(this.ls.getItem(this._ttlKey(key)));return _.isNumber(ttl)&&now()>ttl?true:false;}});return PersistentStorage;function now(){return new Date().getTime();}
370function encode(val){return JSON.stringify(_.isUndefined(val)?null:val);}
371function decode(val){return $.parseJSON(val);}
372function gatherMatchingKeys(keyMatcher){var i,key,keys=[],len=LOCAL_STORAGE.length;for(i=0;i<len;i++){if((key=LOCAL_STORAGE.key(i)).match(keyMatcher)){keys.push(key.replace(keyMatcher,""));}}
373return keys;}}();var Transport=function(){"use strict";var pendingRequestsCount=0,pendingRequests={},maxPendingRequests=6,sharedCache=new LruCache(10);function Transport(o){o=o||{};this.cancelled=false;this.lastReq=null;this._send=o.transport;this._get=o.limiter?o.limiter(this._get):this._get;this._cache=o.cache===false?new LruCache(0):sharedCache;}
374Transport.setMaxPendingRequests=function setMaxPendingRequests(num){maxPendingRequests=num;};Transport.resetCache=function resetCache(){sharedCache.reset();};_.mixin(Transport.prototype,{_fingerprint:function fingerprint(o){o=o||{};return o.url+o.type+$.param(o.data||{});},_get:function(o,cb){var that=this,fingerprint,jqXhr;fingerprint=this._fingerprint(o);if(this.cancelled||fingerprint!==this.lastReq){return;}
375if(jqXhr=pendingRequests[fingerprint]){jqXhr.done(done).fail(fail);}else if(pendingRequestsCount<maxPendingRequests){pendingRequestsCount++;pendingRequests[fingerprint]=this._send(o).done(done).fail(fail).always(always);}else{this.onDeckRequestArgs=[].slice.call(arguments,0);}
376function done(resp){cb(null,resp);that._cache.set(fingerprint,resp);}
377function fail(){cb(true);}
378function always(){pendingRequestsCount--;delete pendingRequests[fingerprint];if(that.onDeckRequestArgs){that._get.apply(that,that.onDeckRequestArgs);that.onDeckRequestArgs=null;}}},get:function(o,cb){var resp,fingerprint;cb=cb||$.noop;o=_.isString(o)?{url:o}:o||{};fingerprint=this._fingerprint(o);this.cancelled=false;this.lastReq=fingerprint;if(resp=this._cache.get(fingerprint)){cb(null,resp);}else{this._get(o,cb);}},cancel:function(){this.cancelled=true;}});return Transport;}();var SearchIndex=window.SearchIndex=function(){"use strict";var CHILDREN="c",IDS="i";function SearchIndex(o){o=o||{};if(!o.datumTokenizer||!o.queryTokenizer){$.error("datumTokenizer and queryTokenizer are both required");}
379this.identify=o.identify||_.stringify;this.datumTokenizer=o.datumTokenizer;this.queryTokenizer=o.queryTokenizer;this.reset();}
380_.mixin(SearchIndex.prototype,{bootstrap:function bootstrap(o){this.datums=o.datums;this.trie=o.trie;},add:function(data){var that=this;data=_.isArray(data)?data:[data];_.each(data,function(datum){var id,tokens;that.datums[id=that.identify(datum)]=datum;tokens=normalizeTokens(that.datumTokenizer(datum));_.each(tokens,function(token){var node,chars,ch;node=that.trie;chars=token.split("");while(ch=chars.shift()){node=node[CHILDREN][ch]||(node[CHILDREN][ch]=newNode());node[IDS].push(id);}});});},get:function get(ids){var that=this;return _.map(ids,function(id){return that.datums[id];});},search:function search(query){var that=this,tokens,matches;tokens=normalizeTokens(this.queryTokenizer(query));_.each(tokens,function(token){var node,chars,ch,ids;if(matches&&matches.length===0){return false;}
381node=that.trie;chars=token.split("");while(node&&(ch=chars.shift())){node=node[CHILDREN][ch];}
382if(node&&chars.length===0){ids=node[IDS].slice(0);matches=matches?getIntersection(matches,ids):ids;}else{matches=[];return false;}});return matches?_.map(unique(matches),function(id){return that.datums[id];}):[];},all:function all(){var values=[];for(var key in this.datums){values.push(this.datums[key]);}
383return values;},reset:function reset(){this.datums={};this.trie=newNode();},serialize:function serialize(){return{datums:this.datums,trie:this.trie};}});return SearchIndex;function normalizeTokens(tokens){tokens=_.filter(tokens,function(token){return!!token;});tokens=_.map(tokens,function(token){return token.toLowerCase();});return tokens;}
384function newNode(){var node={};node[IDS]=[];node[CHILDREN]={};return node;}
385function unique(array){var seen={},uniques=[];for(var i=0,len=array.length;i<len;i++){if(!seen[array[i]]){seen[array[i]]=true;uniques.push(array[i]);}}
386return uniques;}
387function getIntersection(arrayA,arrayB){var ai=0,bi=0,intersection=[];arrayA=arrayA.sort();arrayB=arrayB.sort();var lenArrayA=arrayA.length,lenArrayB=arrayB.length;while(ai<lenArrayA&&bi<lenArrayB){if(arrayA[ai]<arrayB[bi]){ai++;}else if(arrayA[ai]>arrayB[bi]){bi++;}else{intersection.push(arrayA[ai]);ai++;bi++;}}
388return intersection;}}();var Prefetch=function(){"use strict";var keys;keys={data:"data",protocol:"protocol",thumbprint:"thumbprint"};function Prefetch(o){this.url=o.url;this.ttl=o.ttl;this.cache=o.cache;this.prepare=o.prepare;this.transform=o.transform;this.transport=o.transport;this.thumbprint=o.thumbprint;this.storage=new PersistentStorage(o.cacheKey);}
389_.mixin(Prefetch.prototype,{_settings:function settings(){return{url:this.url,type:"GET",dataType:"json"};},store:function store(data){if(!this.cache){return;}
390this.storage.set(keys.data,data,this.ttl);this.storage.set(keys.protocol,location.protocol,this.ttl);this.storage.set(keys.thumbprint,this.thumbprint,this.ttl);},fromCache:function fromCache(){var stored={},isExpired;if(!this.cache){return null;}
391stored.data=this.storage.get(keys.data);stored.protocol=this.storage.get(keys.protocol);stored.thumbprint=this.storage.get(keys.thumbprint);isExpired=stored.thumbprint!==this.thumbprint||stored.protocol!==location.protocol;return stored.data&&!isExpired?stored.data:null;},fromNetwork:function(cb){var that=this,settings;if(!cb){return;}
392settings=this.prepare(this._settings());this.transport(settings).fail(onError).done(onResponse);function onError(){cb(true);}
393function onResponse(resp){cb(null,that.transform(resp));}},clear:function clear(){this.storage.clear();return this;}});return Prefetch;}();var Remote=function(){"use strict";function Remote(o){this.url=o.url;this.prepare=o.prepare;this.transform=o.transform;this.transport=new Transport({cache:o.cache,limiter:o.limiter,transport:o.transport});}
394_.mixin(Remote.prototype,{_settings:function settings(){return{url:this.url,type:"GET",dataType:"json"};},get:function get(query,cb){var that=this,settings;if(!cb){return;}
395query=query||"";settings=this.prepare(query,this._settings());return this.transport.get(settings,onResponse);function onResponse(err,resp){err?cb([]):cb(that.transform(resp));}},cancelLastRequest:function cancelLastRequest(){this.transport.cancel();}});return Remote;}();var oParser=function(){"use strict";return function parse(o){var defaults,sorter;defaults={initialize:true,identify:_.stringify,datumTokenizer:null,queryTokenizer:null,sufficient:5,sorter:null,local:[],prefetch:null,remote:null};o=_.mixin(defaults,o||{});!o.datumTokenizer&&$.error("datumTokenizer is required");!o.queryTokenizer&&$.error("queryTokenizer is required");sorter=o.sorter;o.sorter=sorter?function(x){return x.sort(sorter);}:_.identity;o.local=_.isFunction(o.local)?o.local():o.local;o.prefetch=parsePrefetch(o.prefetch);o.remote=parseRemote(o.remote);return o;};function parsePrefetch(o){var defaults;if(!o){return null;}
396defaults={url:null,ttl:24*60*60*1e3,cache:true,cacheKey:null,thumbprint:"",prepare:_.identity,transform:_.identity,transport:null};o=_.isString(o)?{url:o}:o;o=_.mixin(defaults,o);!o.url&&$.error("prefetch requires url to be set");o.transform=o.filter||o.transform;o.cacheKey=o.cacheKey||o.url;o.thumbprint=VERSION+o.thumbprint;o.transport=o.transport?callbackToDeferred(o.transport):$.ajax;return o;}
397function parseRemote(o){var defaults;if(!o){return;}
398defaults={url:null,cache:true,prepare:null,replace:null,wildcard:null,limiter:null,rateLimitBy:"debounce",rateLimitWait:300,transform:_.identity,transport:null};o=_.isString(o)?{url:o}:o;o=_.mixin(defaults,o);!o.url&&$.error("remote requires url to be set");o.transform=o.filter||o.transform;o.prepare=toRemotePrepare(o);o.limiter=toLimiter(o);o.transport=o.transport?callbackToDeferred(o.transport):$.ajax;delete o.replace;delete o.wildcard;delete o.rateLimitBy;delete o.rateLimitWait;return o;}
399function toRemotePrepare(o){var prepare,replace,wildcard;prepare=o.prepare;replace=o.replace;wildcard=o.wildcard;if(prepare){return prepare;}
400if(replace){prepare=prepareByReplace;}else if(o.wildcard){prepare=prepareByWildcard;}else{prepare=idenityPrepare;}
401return prepare;function prepareByReplace(query,settings){settings.url=replace(settings.url,query);return settings;}
402function prepareByWildcard(query,settings){settings.url=settings.url.replace(wildcard,encodeURIComponent(query));return settings;}
403function idenityPrepare(query,settings){return settings;}}
404function toLimiter(o){var limiter,method,wait;limiter=o.limiter;method=o.rateLimitBy;wait=o.rateLimitWait;if(!limiter){limiter=/^throttle$/i.test(method)?throttle(wait):debounce(wait);}
405return limiter;function debounce(wait){return function debounce(fn){return _.debounce(fn,wait);};}
406function throttle(wait){return function throttle(fn){return _.throttle(fn,wait);};}}
407function callbackToDeferred(fn){return function wrapper(o){var deferred=$.Deferred();fn(o,onSuccess,onError);return deferred;function onSuccess(resp){_.defer(function(){deferred.resolve(resp);});}
408function onError(err){_.defer(function(){deferred.reject(err);});}};}}();var Bloodhound=function(){"use strict";var old;old=window&&window.Bloodhound;function Bloodhound(o){o=oParser(o);this.sorter=o.sorter;this.identify=o.identify;this.sufficient=o.sufficient;this.local=o.local;this.remote=o.remote?new Remote(o.remote):null;this.prefetch=o.prefetch?new Prefetch(o.prefetch):null;this.index=new SearchIndex({identify:this.identify,datumTokenizer:o.datumTokenizer,queryTokenizer:o.queryTokenizer});o.initialize!==false&&this.initialize();}
409Bloodhound.noConflict=function noConflict(){window&&(window.Bloodhound=old);return Bloodhound;};Bloodhound.tokenizers=tokenizers;
vendor: 37,971 bytes, lines 409-482
409_.mixin(Bloodhound.prototype,{__ttAdapter:function ttAdapter(){var that=this;return this.remote?withAsync:withoutAsync;function withAsync(query,sync,async){return that.search(query,sync,async);}
410function withoutAsync(query,sync){return that.search(query,sync);}},_loadPrefetch:function loadPrefetch(){var that=this,deferred,serialized;deferred=$.Deferred();if(!this.prefetch){deferred.resolve();}else if(serialized=this.prefetch.fromCache()){this.index.bootstrap(serialized);deferred.resolve();}else{this.prefetch.fromNetwork(done);}
411return deferred.promise();function done(err,data){if(err){return deferred.reject();}
412that.add(data);that.prefetch.store(that.index.serialize());deferred.resolve();}},_initialize:function initialize(){var that=this,deferred;this.clear();(this.initPromise=this._loadPrefetch()).done(addLocalToIndex);return this.initPromise;function addLocalToIndex(){that.add(that.local);}},initialize:function initialize(force){return!this.initPromise||force?this._initialize():this.initPromise;},add:function add(data){this.index.add(data);return this;},get:function get(ids){ids=_.isArray(ids)?ids:[].slice.call(arguments);return this.index.get(ids);},search:function search(query,sync,async){var that=this,local;local=this.sorter(this.index.search(query));sync(this.remote?local.slice():local);if(this.remote&&local.length<this.sufficient){this.remote.get(query,processRemote);}else if(this.remote){this.remote.cancelLastRequest();}
413return this;function processRemote(remote){var nonDuplicates=[];_.each(remote,function(r){!_.some(local,function(l){return that.identify(r)===that.identify(l);})&&nonDuplicates.push(r);});async&&async(nonDuplicates);}},all:function all(){return this.index.all();},clear:function clear(){this.index.reset();return this;},clearPrefetchCache:function clearPrefetchCache(){this.prefetch&&this.prefetch.clear();return this;},clearRemoteCache:function clearRemoteCache(){Transport.resetCache();return this;},ttAdapter:function ttAdapter(){return this.__ttAdapter();}});return Bloodhound;}();return Bloodhound;});(function(root,factory){if(typeof define==="function"&&define.amd){define("typeahead.js",["jquery"],function(a0){return factory(a0);});}else if(typeof exports==="object"){module.exports=factory(require("jquery"));}else{factory(jQuery);}})(this,function($){var _=function(){"use strict";return{isMsie:function(){return/(msie|trident)/i.test(navigator.userAgent)?navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2]:false;},isBlankString:function(str){return!str||/^\s*$/.test(str);},escapeRegExChars:function(str){return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");},isString:function(obj){return typeof obj==="string";},isNumber:function(obj){return typeof obj==="number";},isArray:$.isArray,isFunction:$.isFunction,isObject:$.isPlainObject,isUndefined:function(obj){return typeof obj==="undefined";},isElement:function(obj){return!!(obj&&obj.nodeType===1);},isJQuery:function(obj){return obj instanceof $;},toStr:function toStr(s){return _.isUndefined(s)||s===null?"":s+"";},bind:$.proxy,each:function(collection,cb){$.each(collection,reverseArgs);function reverseArgs(index,value){return cb(value,index);}},map:$.map,filter:$.grep,every:function(obj,test){var result=true;if(!obj){return result;}
414$.each(obj,function(key,val){if(!(result=test.call(null,val,key,obj))){return false;}});return!!result;},some:function(obj,test){var result=false;if(!obj){return result;}
415$.each(obj,function(key,val){if(result=test.call(null,val,key,obj)){return false;}});return!!result;},mixin:$.extend,identity:function(x){return x;},clone:function(obj){return $.extend(true,{},obj);},getIdGenerator:function(){var counter=0;return function(){return counter++;};},templatify:function templatify(obj){return $.isFunction(obj)?obj:template;function template(){return String(obj);}},defer:function(fn){setTimeout(fn,0);},debounce:function(func,wait,immediate){var timeout,result;return function(){var context=this,args=arguments,later,callNow;later=function(){timeout=null;if(!immediate){result=func.apply(context,args);}};callNow=immediate&&!timeout;clearTimeout(timeout);timeout=setTimeout(later,wait);if(callNow){result=func.apply(context,args);}
416return result;};},throttle:function(func,wait){var context,args,timeout,result,previous,later;previous=0;later=function(){previous=new Date();timeout=null;result=func.apply(context,args);};return function(){var now=new Date(),remaining=wait-(now-previous);context=this;args=arguments;if(remaining<=0){clearTimeout(timeout);timeout=null;previous=now;result=func.apply(context,args);}else if(!timeout){timeout=setTimeout(later,remaining);}
417return result;};},stringify:function(val){return _.isString(val)?val:JSON.stringify(val);},noop:function(){}};}();var WWW=function(){"use strict";var defaultClassNames={wrapper:"twitter-typeahead",input:"tt-input",hint:"tt-hint",menu:"tt-menu",dataset:"tt-dataset",suggestion:"tt-suggestion",selectable:"tt-selectable",empty:"tt-empty",open:"tt-open",cursor:"tt-cursor",highlight:"tt-highlight"};return build;function build(o){var www,classes;classes=_.mixin({},defaultClassNames,o);www={css:buildCss(),classes:classes,html:buildHtml(classes),selectors:buildSelectors(classes)};return{css:www.css,html:www.html,classes:www.classes,selectors:www.selectors,mixin:function(o){_.mixin(o,www);}};}
418function buildHtml(c){return{wrapper:'<span class="'+c.wrapper+'"></span>',menu:'<div class="'+c.menu+'"></div>'};}
419function buildSelectors(classes){var selectors={};_.each(classes,function(v,k){selectors[k]="."+v;});return selectors;}
420function buildCss(){var css={wrapper:{position:"relative",display:"inline-block"},hint:{position:"absolute",top:"0",left:"0",borderColor:"transparent",boxShadow:"none",opacity:"1"},input:{position:"relative",verticalAlign:"top",backgroundColor:"transparent"},inputWithNoHint:{position:"relative",verticalAlign:"top"},menu:{position:"absolute",top:"100%",left:"0",zIndex:"100",display:"none"},ltr:{left:"0",right:"auto"},rtl:{left:"auto",right:" 0"}};if(_.isMsie()){_.mixin(css.input,{backgroundImage:"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)"});}
421return css;}}();var EventBus=function(){"use strict";var namespace,deprecationMap;namespace="typeahead:";deprecationMap={render:"rendered",cursorchange:"cursorchanged",select:"selected",autocomplete:"autocompleted"};function EventBus(o){if(!o||!o.el){$.error("EventBus initialized without el");}
422this.$el=$(o.el);}
423_.mixin(EventBus.prototype,{_trigger:function(type,args){var $e;$e=$.Event(namespace+type);(args=args||[]).unshift($e);this.$el.trigger.apply(this.$el,args);return $e;},before:function(type){var args,$e;args=[].slice.call(arguments,1);$e=this._trigger("before"+type,args);return $e.isDefaultPrevented();},trigger:function(type){var deprecatedType;this._trigger(type,[].slice.call(arguments,1));if(deprecatedType=deprecationMap[type]){this._trigger(deprecatedType,[].slice.call(arguments,1));}}});return EventBus;}();var EventEmitter=function(){"use strict";var splitter=/\s+/,nextTick=getNextTick();return{onSync:onSync,onAsync:onAsync,off:off,trigger:trigger};function on(method,types,cb,context){var type;if(!cb){return this;}
424types=types.split(splitter);cb=context?bindContext(cb,context):cb;this._callbacks=this._callbacks||{};while(type=types.shift()){this._callbacks[type]=this._callbacks[type]||{sync:[],async:[]};this._callbacks[type][method].push(cb);}
425return this;}
426function onAsync(types,cb,context){return on.call(this,"async",types,cb,context);}
427function onSync(types,cb,context){return on.call(this,"sync",types,cb,context);}
428function off(types){var type;if(!this._callbacks){return this;}
429types=types.split(splitter);while(type=types.shift()){delete this._callbacks[type];}
430return this;}
431function trigger(types){var type,callbacks,args,syncFlush,asyncFlush;if(!this._callbacks){return this;}
432types=types.split(splitter);args=[].slice.call(arguments,1);while((type=types.shift())&&(callbacks=this._callbacks[type])){syncFlush=getFlush(callbacks.sync,this,[type].concat(args));asyncFlush=getFlush(callbacks.async,this,[type].concat(args));syncFlush()&&nextTick(asyncFlush);}
433return this;}
434function getFlush(callbacks,context,args){return flush;function flush(){var cancelled;for(var i=0,len=callbacks.length;!cancelled&&i<len;i+=1){cancelled=callbacks[i].apply(context,args)===false;}
435return!cancelled;}}
436function getNextTick(){var nextTickFn;if(window.setImmediate){nextTickFn=function nextTickSetImmediate(fn){setImmediate(function(){fn();});};}else{nextTickFn=function nextTickSetTimeout(fn){setTimeout(function(){fn();},0);};}
437return nextTickFn;}
438function bindContext(fn,context){return fn.bind?fn.bind(context):function(){fn.apply(context,[].slice.call(arguments,0));};}}();var highlight=function(doc){"use strict";var defaults={node:null,pattern:null,tagName:"strong",className:null,wordsOnly:false,caseSensitive:false};return function hightlight(o){var regex;o=_.mixin({},defaults,o);if(!o.node||!o.pattern){return;}
439o.pattern=_.isArray(o.pattern)?o.pattern:[o.pattern];regex=getRegex(o.pattern,o.caseSensitive,o.wordsOnly);traverse(o.node,hightlightTextNode);function hightlightTextNode(textNode){var match,patternNode,wrapperNode;if(match=regex.exec(textNode.data)){wrapperNode=doc.createElement(o.tagName);o.className&&(wrapperNode.className=o.className);patternNode=textNode.splitText(match.index);patternNode.splitText(match[0].length);wrapperNode.appendChild(patternNode.cloneNode(true));textNode.parentNode.replaceChild(wrapperNode,patternNode);}
440return!!match;}
441function traverse(el,hightlightTextNode){var childNode,TEXT_NODE_TYPE=3;for(var i=0;i<el.childNodes.length;i++){childNode=el.childNodes[i];if(childNode.nodeType===TEXT_NODE_TYPE){i+=hightlightTextNode(childNode)?1:0;}else{traverse(childNode,hightlightTextNode);}}}};function getRegex(patterns,caseSensitive,wordsOnly){var escapedPatterns=[],regexStr;for(var i=0,len=patterns.length;i<len;i++){escapedPatterns.push(_.escapeRegExChars(patterns[i]));}
442regexStr=wordsOnly?"\\b("+escapedPatterns.join("|")+")\\b":"("+escapedPatterns.join("|")+")";return caseSensitive?new RegExp(regexStr):new RegExp(regexStr,"i");}}(window.document);var Input=function(){"use strict";var specialKeyCodeMap;specialKeyCodeMap={9:"tab",27:"esc",37:"left",39:"right",13:"enter",38:"up",40:"down"};function Input(o,www){o=o||{};if(!o.input){$.error("input is missing");}
443www.mixin(this);this.$hint=$(o.hint);this.$input=$(o.input);this.query=this.$input.val();this.queryWhenFocused=this.hasFocus()?this.query:null;this.$overflowHelper=buildOverflowHelper(this.$input);this._checkLanguageDirection();if(this.$hint.length===0){this.setHint=this.getHint=this.clearHint=this.clearHintIfInvalid=_.noop;}}
444Input.normalizeQuery=function(str){return _.toStr(str).replace(/^\s*/g,"").replace(/\s{2,}/g," ");};_.mixin(Input.prototype,EventEmitter,{_onBlur:function onBlur(){this.resetInputValue();this.trigger("blurred");},_onFocus:function onFocus(){this.queryWhenFocused=this.query;this.trigger("focused");},_onKeydown:function onKeydown($e){var keyName=specialKeyCodeMap[$e.which||$e.keyCode];this._managePreventDefault(keyName,$e);if(keyName&&this._shouldTrigger(keyName,$e)){this.trigger(keyName+"Keyed",$e);}},_onInput:function onInput(){this._setQuery(this.getInputValue());this.clearHintIfInvalid();this._checkLanguageDirection();},_managePreventDefault:function managePreventDefault(keyName,$e){var preventDefault;switch(keyName){case"up":case"down":preventDefault=!withModifier($e);break;default:preventDefault=false;}
445preventDefault&&$e.preventDefault();},_shouldTrigger:function shouldTrigger(keyName,$e){var trigger;switch(keyName){case"tab":trigger=!withModifier($e);break;default:trigger=true;}
446return trigger;},_checkLanguageDirection:function checkLanguageDirection(){var dir=(this.$input.css("direction")||"ltr").toLowerCase();if(this.dir!==dir){this.dir=dir;this.$hint.attr("dir",dir);this.trigger("langDirChanged",dir);}},_setQuery:function setQuery(val,silent){var areEquivalent,hasDifferentWhitespace;areEquivalent=areQueriesEquivalent(val,this.query);hasDifferentWhitespace=areEquivalent?this.query.length!==val.length:false;this.query=val;if(!silent&&!areEquivalent){this.trigger("queryChanged",this.query);}else if(!silent&&hasDifferentWhitespace){this.trigger("whitespaceChanged",this.query);}},bind:function(){var that=this,onBlur,onFocus,onKeydown,onInput;onBlur=_.bind(this._onBlur,this);onFocus=_.bind(this._onFocus,this);onKeydown=_.bind(this._onKeydown,this);onInput=_.bind(this._onInput,this);this.$input.on("blur.tt",onBlur).on("focus.tt",onFocus).on("keydown.tt",onKeydown);if(!_.isMsie()||_.isMsie()>9){this.$input.on("input.tt",onInput);}else{this.$input.on("keydown.tt keypress.tt cut.tt paste.tt",function($e){if(specialKeyCodeMap[$e.which||$e.keyCode]){return;}
447_.defer(_.bind(that._onInput,that,$e));});}
448return this;},focus:function focus(){this.$input.focus();},blur:function blur(){this.$input.blur();},getLangDir:function getLangDir(){return this.dir;},getQuery:function getQuery(){return this.query||"";},setQuery:function setQuery(val,silent){this.setInputValue(val);this._setQuery(val,silent);},hasQueryChangedSinceLastFocus:function hasQueryChangedSinceLastFocus(){return this.query!==this.queryWhenFocused;},getInputValue:function getInputValue(){return this.$input.val();},setInputValue:function setInputValue(value){this.$input.val(value);this.clearHintIfInvalid();this._checkLanguageDirection();},resetInputValue:function resetInputValue(){this.setInputValue(this.query);},getHint:function getHint(){return this.$hint.val();},setHint:function setHint(value){this.$hint.val(value);},clearHint:function clearHint(){this.setHint("");},clearHintIfInvalid:function clearHintIfInvalid(){var val,hint,valIsPrefixOfHint,isValid;val=this.getInputValue();hint=this.getHint();valIsPrefixOfHint=val!==hint&&hint.indexOf(val)===0;isValid=val!==""&&valIsPrefixOfHint&&!this.hasOverflow();!isValid&&this.clearHint();},hasFocus:function hasFocus(){return this.$input.is(":focus");},hasOverflow:function hasOverflow(){var constraint=this.$input.width()-2;this.$overflowHelper.text(this.getInputValue());return this.$overflowHelper.width()>=constraint;},isCursorAtEnd:function(){var valueLength,selectionStart,range;valueLength=this.$input.val().length;selectionStart=this.$input[0].selectionStart;if(_.isNumber(selectionStart)){return selectionStart===valueLength;}else if(document.selection){range=document.selection.createRange();range.moveStart("character",-valueLength);return valueLength===range.text.length;}
449return true;},destroy:function destroy(){this.$hint.off(".tt");this.$input.off(".tt");this.$overflowHelper.remove();this.$hint=this.$input=this.$overflowHelper=$("<div>");}});return Input;function buildOverflowHelper($input){return $('<pre aria-hidden="true"></pre>').css({position:"absolute",visibility:"hidden",whiteSpace:"pre",fontFamily:$input.css("font-family"),fontSize:$input.css("font-size"),fontStyle:$input.css("font-style"),fontVariant:$input.css("font-variant"),fontWeight:$input.css("font-weight"),wordSpacing:$input.css("word-spacing"),letterSpacing:$input.css("letter-spacing"),textIndent:$input.css("text-indent"),textRendering:$input.css("text-rendering"),textTransform:$input.css("text-transform")}).insertAfter($input);}
450function areQueriesEquivalent(a,b){return Input.normalizeQuery(a)===Input.normalizeQuery(b);}
451function withModifier($e){return $e.altKey||$e.ctrlKey||$e.metaKey||$e.shiftKey;}}();var Dataset=function(){"use strict";var keys,nameGenerator;keys={val:"tt-selectable-display",obj:"tt-selectable-object"};nameGenerator=_.getIdGenerator();function Dataset(o,www){o=o||{};o.templates=o.templates||{};o.templates.notFound=o.templates.notFound||o.templates.empty;if(!o.source){$.error("missing source");}
452if(!o.node){$.error("missing node");}
453if(o.name&&!isValidName(o.name)){$.error("invalid dataset name: "+o.name);}
454www.mixin(this);this.highlight=!!o.highlight;this.name=o.name||nameGenerator();this.limit=o.limit||5;this.displayFn=getDisplayFn(o.display||o.displayKey);this.templates=getTemplates(o.templates,this.displayFn);this.source=o.source.__ttAdapter?o.source.__ttAdapter():o.source;this.async=_.isUndefined(o.async)?this.source.length>2:!!o.async;this._resetLastSuggestion();this.$el=$(o.node).addClass(this.classes.dataset).addClass(this.classes.dataset+"-"+this.name);}
455Dataset.extractData=function extractData(el){var $el=$(el);if($el.data(keys.obj)){return{val:$el.data(keys.val)||"",obj:$el.data(keys.obj)||null};}
456return null;};_.mixin(Dataset.prototype,EventEmitter,{_overwrite:function overwrite(query,suggestions){suggestions=suggestions||[];if(suggestions.length){this._renderSuggestions(query,suggestions);}else if(this.async&&this.templates.pending){this._renderPending(query);}else if(!this.async&&this.templates.notFound){this._renderNotFound(query);}else{this._empty();}
457this.trigger("rendered",this.name,suggestions,false);},_append:function append(query,suggestions){suggestions=suggestions||[];if(suggestions.length&&this.$lastSuggestion.length){this._appendSuggestions(query,suggestions);}else if(suggestions.length){this._renderSuggestions(query,suggestions);}else if(!this.$lastSuggestion.length&&this.templates.notFound){this._renderNotFound(query);}
458this.trigger("rendered",this.name,suggestions,true);},_renderSuggestions:function renderSuggestions(query,suggestions){var $fragment;$fragment=this._getSuggestionsFragment(query,suggestions);this.$lastSuggestion=$fragment.children().last();this.$el.html($fragment).prepend(this._getHeader(query,suggestions)).append(this._getFooter(query,suggestions));},_appendSuggestions:function appendSuggestions(query,suggestions){var $fragment,$lastSuggestion;$fragment=this._getSuggestionsFragment(query,suggestions);$lastSuggestion=$fragment.children().last();this.$lastSuggestion.after($fragment);this.$lastSuggestion=$lastSuggestion;},_renderPending:function renderPending(query){var template=this.templates.pending;this._resetLastSuggestion();template&&this.$el.html(template({query:query,dataset:this.name}));},_renderNotFound:function renderNotFound(query){var template=this.templates.notFound;this._resetLastSuggestion();template&&this.$el.html(template({query:query,dataset:this.name}));},_empty:function empty(){this.$el.empty();this._resetLastSuggestion();},_getSuggestionsFragment:function getSuggestionsFragment(query,suggestions){var that=this,fragment;fragment=document.createDocumentFragment();_.each(suggestions,function getSuggestionNode(suggestion){var $el,context;context=that._injectQuery(query,suggestion);$el=$(that.templates.suggestion(context)).data(keys.obj,suggestion).data(keys.val,that.displayFn(suggestion)).addClass(that.classes.suggestion+" "+that.classes.selectable);fragment.appendChild($el[0]);});this.highlight&&highlight({className:this.classes.highlight,node:fragment,pattern:query});return $(fragment);},_getFooter:function getFooter(query,suggestions){return this.templates.footer?this.templates.footer({query:query,suggestions:suggestions,dataset:this.name}):null;},_getHeader:function getHeader(query,suggestions){return this.templates.header?this.templates.header({query:query,suggestions:suggestions,dataset:this.name}):null;},_resetLastSuggestion:function resetLastSuggestion(){this.$lastSuggestion=$();},_injectQuery:function injectQuery(query,obj){return _.isObject(obj)?_.mixin({_query:query},obj):obj;},update:function update(query){var that=this,canceled=false,syncCalled=false,rendered=0;this.cancel();this.cancel=function cancel(){canceled=true;that.cancel=$.noop;that.async&&that.trigger("asyncCanceled",query);};this.source(query,sync,async);!syncCalled&&sync([]);function sync(suggestions){if(syncCalled){return;}
459syncCalled=true;suggestions=(suggestions||[]).slice(0,that.limit);rendered=suggestions.length;that._overwrite(query,suggestions);if(rendered<that.limit&&that.async){that.trigger("asyncRequested",query);}}
460function async(suggestions){suggestions=suggestions||[];if(!canceled&&rendered<that.limit){that.cancel=$.noop;rendered+=suggestions.length;that._append(query,suggestions.slice(0,that.limit-rendered));that.async&&that.trigger("asyncReceived",query);}}},cancel:$.noop,clear:function clear(){this._empty();this.cancel();this.trigger("cleared");},isEmpty:function isEmpty(){return this.$el.is(":empty");},destroy:function destroy(){this.$el=$("<div>");}});return Dataset;function getDisplayFn(display){display=display||_.stringify;return _.isFunction(display)?display:displayFn;function displayFn(obj){return obj[display];}}
461function getTemplates(templates,displayFn){return{notFound:templates.notFound&&_.templatify(templates.notFound),pending:templates.pending&&_.templatify(templates.pending),header:templates.header&&_.templatify(templates.header),footer:templates.footer&&_.templatify(templates.footer),suggestion:templates.suggestion||suggestionTemplate};function suggestionTemplate(context){return $("<div>").text(displayFn(context));}}
462function isValidName(str){return/^[_a-zA-Z0-9-]+$/.test(str);}}();var Menu=function(){"use strict";function Menu(o,www){var that=this;o=o||{};if(!o.node){$.error("node is required");}
463www.mixin(this);this.$node=$(o.node);this.query=null;this.datasets=_.map(o.datasets,initializeDataset);function initializeDataset(oDataset){var node=that.$node.find(oDataset.node).first();oDataset.node=node.length?node:$("<div>").appendTo(that.$node);return new Dataset(oDataset,www);}}
464_.mixin(Menu.prototype,EventEmitter,{_onSelectableClick:function onSelectableClick($e){this.trigger("selectableClicked",$($e.currentTarget));},_onRendered:function onRendered(type,dataset,suggestions,async){this.$node.toggleClass(this.classes.empty,this._allDatasetsEmpty());this.trigger("datasetRendered",dataset,suggestions,async);},_onCleared:function onCleared(){this.$node.toggleClass(this.classes.empty,this._allDatasetsEmpty());this.trigger("datasetCleared");},_propagate:function propagate(){this.trigger.apply(this,arguments);},_allDatasetsEmpty:function allDatasetsEmpty(){return _.every(this.datasets,isDatasetEmpty);function isDatasetEmpty(dataset){return dataset.isEmpty();}},_getSelectables:function getSelectables(){return this.$node.find(this.selectors.selectable);},_removeCursor:function _removeCursor(){var $selectable=this.getActiveSelectable();$selectable&&$selectable.removeClass(this.classes.cursor);},_ensureVisible:function ensureVisible($el){var elTop,elBottom,nodeScrollTop,nodeHeight;elTop=$el.position().top;elBottom=elTop+$el.outerHeight(true);nodeScrollTop=this.$node.scrollTop();nodeHeight=this.$node.height()+parseInt(this.$node.css("paddingTop"),10)+parseInt(this.$node.css("paddingBottom"),10);if(elTop<0){this.$node.scrollTop(nodeScrollTop+elTop);}else if(nodeHeight<elBottom){this.$node.scrollTop(nodeScrollTop+(elBottom-nodeHeight));}},bind:function(){var that=this,onSelectableClick;onSelectableClick=_.bind(this._onSelectableClick,this);this.$node.on("click.tt",this.selectors.selectable,onSelectableClick);_.each(this.datasets,function(dataset){dataset.onSync("asyncRequested",that._propagate,that).onSync("asyncCanceled",that._propagate,that).onSync("asyncReceived",that._propagate,that).onSync("rendered",that._onRendered,that).onSync("cleared",that._onCleared,that);});return this;},isOpen:function isOpen(){return this.$node.hasClass(this.classes.open);},open:function open(){this.$node.addClass(this.classes.open);},close:function close(){this.$node.removeClass(this.classes.open);this._removeCursor();},setLanguageDirection:function setLanguageDirection(dir){this.$node.attr("dir",dir);},selectableRelativeToCursor:function selectableRelativeToCursor(delta){var $selectables,$oldCursor,oldIndex,newIndex;$oldCursor=this.getActiveSelectable();$selectables=this._getSelectables();oldIndex=$oldCursor?$selectables.index($oldCursor):-1;newIndex=oldIndex+delta;newIndex=(newIndex+1)%($selectables.length+1)-1;newIndex=newIndex<-1?$selectables.length-1:newIndex;return newIndex===-1?null:$selectables.eq(newIndex);},setCursor:function setCursor($selectable){this._removeCursor();if($selectable=$selectable&&$selectable.first()){$selectable.addClass(this.classes.cursor);this._ensureVisible($selectable);}},getSelectableData:function getSelectableData($el){return $el&&$el.length?Dataset.extractData($el):null;},getActiveSelectable:function getActiveSelectable(){var $selectable=this._getSelectables().filter(this.selectors.cursor).first();return $selectable.length?$selectable:null;},getTopSelectable:function getTopSelectable(){var $selectable=this._getSelectables().first();return $selectable.length?$selectable:null;},update:function update(query){var isValidUpdate=query!==this.query;if(isValidUpdate){this.query=query;_.each(this.datasets,updateDataset);}
465return isValidUpdate;function updateDataset(dataset){dataset.update(query);}},empty:function empty(){_.each(this.datasets,clearDataset);this.query=null;this.$node.addClass(this.classes.empty);function clearDataset(dataset){dataset.clear();}},destroy:function destroy(){this.$node.off(".tt");this.$node=$("<div>");_.each(this.datasets,destroyDataset);function destroyDataset(dataset){dataset.destroy();}}});return Menu;}();var DefaultMenu=function(){"use strict";var s=Menu.prototype;function DefaultMenu(){Menu.apply(this,[].slice.call(arguments,0));}
466_.mixin(DefaultMenu.prototype,Menu.prototype,{open:function open(){!this._allDatasetsEmpty()&&this._show();return s.open.apply(this,[].slice.call(arguments,0));},close:function close(){this._hide();return s.close.apply(this,[].slice.call(arguments,0));},_onRendered:function onRendered(){if(this._allDatasetsEmpty()){this._hide();}else{this.isOpen()&&this._show();}
467return s._onRendered.apply(this,[].slice.call(arguments,0));},_onCleared:function onCleared(){if(this._allDatasetsEmpty()){this._hide();}else{this.isOpen()&&this._show();}
468return s._onCleared.apply(this,[].slice.call(arguments,0));},setLanguageDirection:function setLanguageDirection(dir){this.$node.css(dir==="ltr"?this.css.ltr:this.css.rtl);return s.setLanguageDirection.apply(this,[].slice.call(arguments,0));},_hide:function hide(){this.$node.hide();},_show:function show(){this.$node.css("display","block");}});return DefaultMenu;}();var Typeahead=function(){"use strict";function Typeahead(o,www){var onFocused,onBlurred,onEnterKeyed,onTabKeyed,onEscKeyed,onUpKeyed,onDownKeyed,onLeftKeyed,onRightKeyed,onQueryChanged,onWhitespaceChanged;o=o||{};if(!o.input){$.error("missing input");}
469if(!o.menu){$.error("missing menu");}
470if(!o.eventBus){$.error("missing event bus");}
471www.mixin(this);this.eventBus=o.eventBus;this.minLength=_.isNumber(o.minLength)?o.minLength:1;this.input=o.input;this.menu=o.menu;this.enabled=true;this.active=false;this.input.hasFocus()&&this.activate();this.dir=this.input.getLangDir();this._hacks();this.menu.bind().onSync("selectableClicked",this._onSelectableClicked,this).onSync("asyncRequested",this._onAsyncRequested,this).onSync("asyncCanceled",this._onAsyncCanceled,this).onSync("asyncReceived",this._onAsyncReceived,this).onSync("datasetRendered",this._onDatasetRendered,this).onSync("datasetCleared",this._onDatasetCleared,this);onFocused=c(this,"activate","open","_onFocused");onBlurred=c(this,"deactivate","_onBlurred");onEnterKeyed=c(this,"isActive","isOpen","_onEnterKeyed");onTabKeyed=c(this,"isActive","isOpen","_onTabKeyed");onEscKeyed=c(this,"isActive","_onEscKeyed");onUpKeyed=c(this,"isActive","open","_onUpKeyed");onDownKeyed=c(this,"isActive","open","_onDownKeyed");onLeftKeyed=c(this,"isActive","isOpen","_onLeftKeyed");onRightKeyed=c(this,"isActive","isOpen","_onRightKeyed");onQueryChanged=c(this,"_openIfActive","_onQueryChanged");onWhitespaceChanged=c(this,"_openIfActive","_onWhitespaceChanged");this.input.bind().onSync("focused",onFocused,this).onSync("blurred",onBlurred,this).onSync("enterKeyed",onEnterKeyed,this).onSync("tabKeyed",onTabKeyed,this).onSync("escKeyed",onEscKeyed,this).onSync("upKeyed",onUpKeyed,this).onSync("downKeyed",onDownKeyed,this).onSync("leftKeyed",onLeftKeyed,this).onSync("rightKeyed",onRightKeyed,this).onSync("queryChanged",onQueryChanged,this).onSync("whitespaceChanged",onWhitespaceChanged,this).onSync("langDirChanged",this._onLangDirChanged,this);}
472_.mixin(Typeahead.prototype,{_hacks:function hacks(){var $input,$menu;$input=this.input.$input||$("<div>");$menu=this.menu.$node||$("<div>");$input.on("blur.tt",function($e){var active,isActive,hasActive;active=document.activeElement;isActive=$menu.is(active);hasActive=$menu.has(active).length>0;if(_.isMsie()&&(isActive||hasActive)){$e.preventDefault();$e.stopImmediatePropagation();_.defer(function(){$input.focus();});}});$menu.on("mousedown.tt",function($e){$e.preventDefault();});},_onSelectableClicked:function onSelectableClicked(type,$el){this.select($el);},_onDatasetCleared:function onDatasetCleared(){this._updateHint();},_onDatasetRendered:function onDatasetRendered(type,dataset,suggestions,async){this._updateHint();this.eventBus.trigger("render",suggestions,async,dataset);},_onAsyncRequested:function onAsyncRequested(type,dataset,query){this.eventBus.trigger("asyncrequest",query,dataset);},_onAsyncCanceled:function onAsyncCanceled(type,dataset,query){this.eventBus.trigger("asynccancel",query,dataset);},_onAsyncReceived:function onAsyncReceived(type,dataset,query){this.eventBus.trigger("asyncreceive",query,dataset);},_onFocused:function onFocused(){this._minLengthMet()&&this.menu.update(this.input.getQuery());},_onBlurred:function onBlurred(){if(this.input.hasQueryChangedSinceLastFocus()){this.eventBus.trigger("change",this.input.getQuery());}},_onEnterKeyed:function onEnterKeyed(type,$e){var $selectable;if($selectable=this.menu.getActiveSelectable()){this.select($selectable)&&$e.preventDefault();}},_onTabKeyed:function onTabKeyed(type,$e){var $selectable;if($selectable=this.menu.getActiveSelectable()){this.select($selectable)&&$e.preventDefault();}else if($selectable=this.menu.getTopSelectable()){this.autocomplete($selectable)&&$e.preventDefault();}},_onEscKeyed:function onEscKeyed(){this.close();},_onUpKeyed:function onUpKeyed(){this.moveCursor(-1);},_onDownKeyed:function onDownKeyed(){this.moveCursor(+1);},_onLeftKeyed:function onLeftKeyed(){if(this.dir==="rtl"&&this.input.isCursorAtEnd()){this.autocomplete(this.menu.getTopSelectable());}},_onRightKeyed:function onRightKeyed(){if(this.dir==="ltr"&&this.input.isCursorAtEnd()){this.autocomplete(this.menu.getTopSelectable());}},_onQueryChanged:function onQueryChanged(e,query){this._minLengthMet(query)?this.menu.update(query):this.menu.empty();},_onWhitespaceChanged:function onWhitespaceChanged(){this._updateHint();},_onLangDirChanged:function onLangDirChanged(e,dir){if(this.dir!==dir){this.dir=dir;this.menu.setLanguageDirection(dir);}},_openIfActive:function openIfActive(){this.isActive()&&this.open();},_minLengthMet:function minLengthMet(query){query=_.isString(query)?query:this.input.getQuery()||"";return query.length>=this.minLength;},_updateHint:function updateHint(){var $selectable,data,val,query,escapedQuery,frontMatchRegEx,match;$selectable=this.menu.getTopSelectable();data=this.menu.getSelectableData($selectable);val=this.input.getInputValue();if(data&&!_.isBlankString(val)&&!this.input.hasOverflow()){query=Input.normalizeQuery(val);escapedQuery=_.escapeRegExChars(query);frontMatchRegEx=new RegExp("^(?:"+escapedQuery+")(.+$)","i");match=frontMatchRegEx.exec(data.val);match&&this.input.setHint(val+match[1]);}else{this.input.clearHint();}},isEnabled:function isEnabled(){return this.enabled;},enable:function enable(){this.enabled=true;},disable:function disable(){this.enabled=false;},isActive:function isActive(){return this.active;},activate:function activate(){if(this.isActive()){return true;}else if(!this.isEnabled()||this.eventBus.before("active")){return false;}else{this.active=true;this.eventBus.trigger("active");return true;}},deactivate:function deactivate(){if(!this.isActive()){return true;}else if(this.eventBus.before("idle")){return false;}else{this.active=false;this.close();this.eventBus.trigger("idle");return true;}},isOpen:function isOpen(){return this.menu.isOpen();},open:function open(){if(!this.isOpen()&&!this.eventBus.before("open")){this.menu.open();this._updateHint();this.eventBus.trigger("open");}
473return this.isOpen();},close:function close(){if(this.isOpen()&&!this.eventBus.before("close")){this.menu.close();this.input.clearHint();this.input.resetInputValue();this.eventBus.trigger("close");}
474return!this.isOpen();},setVal:function setVal(val){this.input.setQuery(_.toStr(val));},getVal:function getVal(){return this.input.getQuery();},select:function select($selectable){var data=this.menu.getSelectableData($selectable);if(data&&!this.eventBus.before("select",data.obj)){this.input.setQuery(data.val,true);this.eventBus.trigger("select",data.obj);this.close();return true;}
475return false;},autocomplete:function autocomplete($selectable){var query,data,isValid;query=this.input.getQuery();data=this.menu.getSelectableData($selectable);isValid=data&&query!==data.val;if(isValid&&!this.eventBus.before("autocomplete",data.obj)){this.input.setQuery(data.val);this.eventBus.trigger("autocomplete",data.obj);return true;}
476return false;},moveCursor:function moveCursor(delta){var query,$candidate,data,payload,cancelMove;query=this.input.getQuery();$candidate=this.menu.selectableRelativeToCursor(delta);data=this.menu.getSelectableData($candidate);payload=data?data.obj:null;cancelMove=this._minLengthMet()&&this.menu.update(query);if(!cancelMove&&!this.eventBus.before("cursorchange",payload)){this.menu.setCursor($candidate);if(data){this.input.setInputValue(data.val);}else{this.input.resetInputValue();this._updateHint();}
477this.eventBus.trigger("cursorchange",payload);return true;}
478return false;},destroy:function destroy(){this.input.destroy();this.menu.destroy();}});return Typeahead;function c(ctx){var methods=[].slice.call(arguments,1);return function(){var args=[].slice.call(arguments);_.each(methods,function(method){return ctx[method].apply(ctx,args);});};}}();(function(){"use strict";var old,keys,methods;old=$.fn.typeahead;keys={www:"tt-www",attrs:"tt-attrs",typeahead:"tt-typeahead"};methods={initialize:function initialize(o,datasets){var www;datasets=_.isArray(datasets)?datasets:[].slice.call(arguments,1);o=o||{};www=WWW(o.classNames);return this.each(attach);function attach(){var $input,$wrapper,$hint,$menu,defaultHint,defaultMenu,eventBus,input,menu,typeahead,MenuConstructor;_.each(datasets,function(d){d.highlight=!!o.highlight;});$input=$(this);$wrapper=$(www.html.wrapper);$hint=$elOrNull(o.hint);$menu=$elOrNull(o.menu);defaultHint=o.hint!==false&&!$hint;defaultMenu=o.menu!==false&&!$menu;defaultHint&&($hint=buildHintFromInput($input,www));defaultMenu&&($menu=$(www.html.menu).css(www.css.menu));$hint&&$hint.val("");$input=prepInput($input,www);if(defaultHint||defaultMenu){$wrapper.css(www.css.wrapper);$input.css(defaultHint?www.css.input:www.css.inputWithNoHint);$input.wrap($wrapper).parent().prepend(defaultHint?$hint:null).append(defaultMenu?$menu:null);}
479MenuConstructor=defaultMenu?DefaultMenu:Menu;eventBus=new EventBus({el:$input});input=new Input({hint:$hint,input:$input},www);menu=new MenuConstructor({node:$menu,datasets:datasets},www);typeahead=new Typeahead({input:input,menu:menu,eventBus:eventBus,minLength:o.minLength},www);$input.data(keys.www,www);$input.data(keys.typeahead,typeahead);}},isEnabled:function isEnabled(){var enabled;ttEach(this.first(),function(t){enabled=t.isEnabled();});return enabled;},enable:function enable(){ttEach(this,function(t){t.enable();});return this;},disable:function disable(){ttEach(this,function(t){t.disable();});return this;},isActive:function isActive(){var active;ttEach(this.first(),function(t){active=t.isActive();});return active;},activate:function activate(){ttEach(this,function(t){t.activate();});return this;},deactivate:function deactivate(){ttEach(this,function(t){t.deactivate();});return this;},isOpen:function isOpen(){var open;ttEach(this.first(),function(t){open=t.isOpen();});return open;},open:function open(){ttEach(this,function(t){t.open();});return this;},close:function close(){ttEach(this,function(t){t.close();});return this;},select:function select(el){var success=false,$el=$(el);ttEach(this.first(),function(t){success=t.select($el);});return success;},autocomplete:function autocomplete(el){var success=false,$el=$(el);ttEach(this.first(),function(t){success=t.autocomplete($el);});return success;},moveCursor:function moveCursoe(delta){var success=false;ttEach(this.first(),function(t){success=t.moveCursor(delta);});return success;},val:function val(newVal){var query;if(!arguments.length){ttEach(this.first(),function(t){query=t.getVal();});return query;}else{ttEach(this,function(t){t.setVal(newVal);});return this;}},destroy:function destroy(){ttEach(this,function(typeahead,$input){revert($input);typeahead.destroy();});return this;}};$.fn.typeahead=function(method){if(methods[method]){return methods[method].apply(this,[].slice.call(arguments,1));}else{return methods.initialize.apply(this,arguments);}};$.fn.typeahead.noConflict=function noConflict(){$.fn.typeahead=old;return this;};function ttEach($els,fn){$els.each(function(){var $input=$(this),typeahead;(typeahead=$input.data(keys.typeahead))&&fn(typeahead,$input);});}
480function buildHintFromInput($input,www){return $input.clone().addClass(www.classes.hint).removeData().css(www.css.hint).css(getBackgroundStyles($input)).prop("readonly",true).removeAttr("id name placeholder required").attr({autocomplete:"off",spellcheck:"false",tabindex:-1});}
481function prepInput($input,www){$input.data(keys.attrs,{dir:$input.attr("dir"),autocomplete:$input.attr("autocomplete"),spellcheck:$input.attr("spellcheck"),style:$input.attr("style")});$input.addClass(www.classes.input).attr({autocomplete:"off",spellcheck:false});try{!$input.attr("dir")&&$input.attr("dir","auto");}catch(e){}
482return $input;}
483function getBackgroundStyles($el){return{backgroundAttachment:$el.css("background-attachment"),backgroundClip:$el.css("background-clip"),backgroundColor:$el.css("background-color"),backgroundImage:$el.css("background-image"),backgroundOrigin:$el.css("background-origin"),backgroundPosition:$el.css("background-position"),backgroundRepeat:$el.css("background-repeat"),backgroundSize:$el.css("background-size")};}
484function revert($input){var www,$wrapper;www=$input.data(keys.www);$wrapper=$input.parent().filter(www.selectors.wrapper);_.each($input.data(keys.attrs),function(val,key){_.isUndefined(val)?$input.removeAttr(key):$input.attr(key,val);});$input.removeData(keys.typeahead).removeData(keys.www).removeData(keys.attr).removeClass(www.classes.input);if($wrapper.length){$input.detach().insertAfter($wrapper);$wrapper.remove();}}
485function $elOrNull(obj){var isValid,$el;isValid=_.isJQuery(obj)||_.isElement(obj);$el=isValid?$(obj).first():[];return $el.length?$el:null;}})();});;
486
487/* /remotive_website_static_pages/static/src/js/common.js defined in bundle 'web.assets_frontend' */
488odoo.define('remotive_webiste_static_pages.common',function(require){"use strict";require('web.dom_ready');;(function(){const contextURL=window.location.href;const sectionItems=document.querySelectorAll('.section-item-toggle');const toggleSectionItem=(e)=>{e.stopPropagation();const target=e.target;let elm=target;while(elm&&!elm.classList.contains('section-item')){elm=elm.parentNode;}
489if(!elm.classList.contains('section-item--opened')){elm.classList.add('section-item--opened');}else{elm.classList.remove('section-item--opened');}}
490for(var i=0,len=sectionItems.length;i<len;i++){sectionItems[i].addEventListener('click',toggleSectionItem,true);}})();});;
491
492/* /stripe_recurring/static/src/js/custom_stripe.js defined in bundle 'web.assets_frontend' */
493odoo.define('payment_stripe_recurring.stripe',function(require){"use strict";var ajax=require('web.ajax');var core=require('web.core');var qweb=core.qweb;var _t=core._t;require('web.dom_ready');var checkoutButton=document.querySelector('#checkout-button');if(checkoutButton){checkoutButton.addEventListener('click',function(){var paymentForm=$('#stripe-recurring-form');var _getStripeInputValue=function(name){return paymentForm.find('input[name="'+name+'"]').val();};var stripe=Stripe(_getStripeInputValue('stripe_key'));stripe.redirectToCheckout({sessionId:_getStripeInputValue('stripe_session_id'),}).then(function(result){if(result.error){displayError(result.error.message);}});});}
494function displayError(message){var wizard=$(qweb.render('stripe.error',{'msg':message||_t('Payment error')}));wizard.appendTo($('body')).modal({'keyboard':true});if($.blockUI){$.unblockUI();}
495$("#checkout-button").removeAttr('disabled');}
496var updateButton=document.querySelector('#update-payment-method-button');if(updateButton){updateButton.addEventListener('click',function(){var paymentForm=$('#stripe-update-payment-method-form');var _getStripeInputValue=function(name){return paymentForm.find('input[name="'+name+'"]').val();};var stripe=Stripe(_getStripeInputValue('stripe_key'));stripe.redirectToCheckout({sessionId:_getStripeInputValue('stripe_session_update_payment_method_id'),}).then(function(result){if(result.error){displayErrorUpdate(result.error.message);}});});}
497function displayErrorUpdate(message){var wizard=$(qweb.render('stripe.error',{'msg':message||_t('Payment error')}));wizard.appendTo($('body')).modal({'keyboard':true});if($.blockUI){$.unblockUI();}
498$("#update-payment-method-button").removeAttr('disabled');}});;
499
500/* /remotive_leadership/static/src/js/leadership_page.js defined in bundle 'web.assets_frontend' */
501odoo.define('remotive_leadership.leadership_page',function(require){'use strict';var ajax=require('web.ajax');var config=require('web.config');var core=require('web.core');var dom=require('web.dom');var Dialog=require("web.Dialog");var Widget=require("web.Widget");var rpc=require("web.rpc");var _t=core._t;var qweb=core.qweb;require('web.dom_ready');var checkoutButtonLeadershipRecurringList=document.getElementsByClassName("checkout-button-leadership-recurring");if(checkoutButtonLeadershipRecurringList){for(let idx=0;idx<checkoutButtonLeadershipRecurringList.length;idx++){checkoutButtonLeadershipRecurringList[idx].addEventListener('click',function(e){var paymentForm=$('#recurring_payment');var required_fields_missing=false;var custom_required_fields=document.getElementsByClassName('o_payment_form_required_custom');for(let idx=0;idx<custom_required_fields.length;idx++){var element=custom_required_fields[idx];$(element).closest('div.form-group').removeClass('o_has_error').find('.form-control, .custom-select').removeClass('is-invalid');
501$(element).siblings(".o_invalid_field").remove();$(element).trigger("focusout");var re=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;var has_error=(element.value.length===0)||(element.type=='checkbox'&&!element.checked)||(element.type=='email'&&!re.test(element.value));if(has_error){$(element).closest('div.form-group').addClass('o_has_error').find('.form-control, .custom-select').addClass('is-invalid');$(element).closest('div.form-group').append('<div style="color: red" class="o_invalid_field" aria-invalid="true">'+_.str.escapeHTML(element.dataset.err_msg)+'</div>');required_fields_missing=true;}}
502if(required_fields_missing){return;}
503var email=paymentForm.find('input[name="email_recurring"]').val();var params={'email':email,'recurring_interval':e.target.dataset.recurringInterval};var prepare_leadership_recurring_order_url="/prepare_leadership_recurring_order";return ajax.jsonRpc(prepare_leadership_recurring_order_url,'call',params).then(function(res){if(res.error){handleError(res.error);return;}
504window.location.href=res;});});}}
505function handleError(message){if($.blockUI){$.unblockUI();}
506$("#checkout-button-leadership-recurring").removeAttr('disabled');window.alert(message);}});;
507
508/* /remotive_ats_api/static/src/js/remotive_ats.js defined in bundle 'web.assets_frontend' */
509odoo.define('remotive_ats_api.remotive_ats',function(require){'use strict';var ajax=require('web.ajax');var config=require('web.config');var core=require('web.core');var dom=require('web.dom');var Dialog=require("web.Dialog");var Widget=require("web.Widget");var rpc=require("web.rpc");var _t=core._t;var qweb=core.qweb;require('web.dom_ready');var magicImportButton=document.getElementById('magic-import-button');var atsChooseAtsButton=document.getElementById('choose-ats-button');var atsImportButton=document.getElementsByClassName('ats-import-button');magicImportButton.addEventListener('click',magic_import);if(atsImportButton){for(let idx=0;idx<atsImportButton.length;idx++){atsImportButton[idx].addEventListener('click',function(){var AtsForm=$('#ats-import-form-'+idx.toString());var required_fields_missing=false;var custom_required_fields=AtsForm.find('.o_ats_form_required_custom');for(let idx2=0;idx2<custom_required_fields.length;idx2++){var element=custom_required_fields[idx2];$(element).closest('div.form-group').removeClass('o_has_error').find('.form-control, .custom-select').removeClass('is-invalid');$(element).siblings(".o_invalid_field").remove();$(element).trigger("focusout");var has_error=(element.value.length===0);if(has_error){$(element).closest('div.form-group').addClass('o_has_error').find('.form-control, .custom-select').addClass('is-invalid');$(element).closest('div.form-group').append('<div style="color: red" class="o_invalid_field" aria-invalid="true">'+_.str.escapeHTML(element.dataset.err_msg)+'</div>');required_fields_missing=true;}}
510if(required_fields_missing){return;}
511var url=AtsForm.find('input[name="ats-url"]').val();var s=url.split('/');var url_issue=false;var redirect='';if(url.includes('greenhouse')){var ats_name="greenhouse"
512var ats_board_token=s[3];var ats_job_id=s[5];if(!ats_board_token||!ats_job_id){url_issue=true;}
513else{redirect='/job/post/import?ats='+ats_name+'&ats_board_token='+ats_board_token+'&ats_job_id='+ats_job_id;}}
514if(url.includes('lever')){var ats_name="lever"
515var ats_board_token=s[3];var ats_job_id=s[4];if(!ats_board_token||!ats_job_id){url_issue=true;}
516else{redirect='/job/post/import?ats='+ats_name+'&ats_board_token='+ats_board_token+'&ats_job_id='+ats_job_id;}}
517if(url.includes('workable')){var ats_name="workable"
518var ats_board_token=s[3];var ats_job_id=s[5];if(!ats_board_token||!ats_job_id){url_issue=true;}
519else{redirect='/job/post/import?ats='+ats_name+'&ats_board_token='+ats_board_token+'&ats_job_id='+ats_job_id;}}
520if(url.includes('recruitee')){var ats_name="recruitee"
521var domain=s[2];var ats_board_token=domain.split('.')[0];var ats_job_id=s[4];if(!ats_board_token||!ats_job_id){url_issue=true;}
522else{redirect='/job/post/import?ats='+ats_name+'&ats_board_token='+ats_board_token+'&ats_job_id='+ats_job_id;}}
523if(url.includes('recruiterbox')){var ats_name="recruiterbox"
524var domain=s[2];var ats_board_token=domain.split('.')[0];var ats_job_id=s[4];if(!ats_board_token||!ats_job_id){url_issue=true;}
525else{redirect='/job/post/import?ats='+ats_name+'&ats_board_token='+ats_board_token+'&ats_job_id='+ats_job_id;}}
526if(url.includes('smartrecruiters')){var ats_name="smartrecruiters"
527var ats_board_token=s[3];var ats_job_id=s[4];if(!ats_board_token||!ats_job_id){url_issue=true;}
528else{redirect='/job/post/import?ats='+ats_name+'&ats_board_token='+ats_board_token+'&ats_job_id='+ats_job_id;}}
529if(url_issue||!redirect){$(element).closest('div.form-group').append('<div style="color: red" class="o_invali
529d_field" aria-invalid="true">'+_.str.escapeHTML("ATS url not recognized.")+'</div>');}
530else{window.onbeforeunload=null;window.location=redirect;}});}}
531function magic_import(){var jobUrl=document.getElementById('job-url').value;var magicImportMessage=document.getElementById('import-feedback');if(jobUrl){magicImportButton.innerHTML="Getting job data...";magicImportButton.disabled=true;fetch(`/job/post/import-job-data`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/html",},body:JSON.stringify({jsonrpc:"2.0",method:"call",params:{"job_url":jobUrl},}),}).then((res)=>res.json()).then((data)=>{if(data.result.name){magicImportMessage.innerHTML="Done! Check your imported job data below.";magicImportMessage.style="color:green";document.querySelector('input[name=name]').value=data.result.name;if(data.result.company_name){document.querySelector('input[name=company_name]').value=data.result.company_name;}
532if(data.result.general_description){$('#general-description').trumbowyg('html',data.result.general_description);}
533if(data.result.job_type){document.querySelector('select[name=job_type]').value=data.result.job_type;}
534if(data.result.tag_id){document.querySelector('select[name=tag_id]').value=data.result.tag_id;}}
535else{magicImportMessage.innerHTML="Could not load job data, sorry!";magicImportMessage.style="color:red";}
536magicImportButton.innerHTML="🪄 Magic Import from url";magicImportButton.disabled=false;updateJobTilePreview({"title":data.result.name,"company_name":data.result.company_name,"category":data.result.tag_name})});}
537else{magicImportMessage.innerHTML="Please enter a valid job application URL.";magicImportMessage.style="color:red";}}});;
538
539/* /account/static/src/js/account_portal_sidebar.js defined in bundle 'web.assets_frontend' */
540odoo.define('account.AccountPortalSidebar.instance',function(require){"use strict";require('web.dom_ready');var AccountPortalSidebar=require('account.AccountPortalSidebar');if(!$('.o_portal_invoice_sidebar').length){return $.Deferred().reject("DOM doesn't contain '.o_portal_invoice_sidebar'");}
541var account_portal_sidebar=new AccountPortalSidebar();return account_portal_sidebar.attachTo($('.o_portal_invoice_sidebar')).then(function(){return account_portal_sidebar;});});odoo.define('account.AccountPortalSidebar',function(require){"use strict";var PortalSidebar=require('portal.PortalSidebar');var AccountPortalSidebar=PortalSidebar.extend({events:{'click .o_portal_invoice_print':'_onPrintInvoice',},start:function(){var self=this;this._super.apply(this,arguments);var $invoiceHtml=this.$el.find('iframe#invoice_html');var updateIframeSize=self._updateIframeSize.bind(self,$invoiceHtml);$invoiceHtml.on('load',updateIframeSize);$(window).on('resize',updateIframeSize);},_updateIframeSize:function($el){var $wrapwrap=$el.contents().find('div#wrapwrap');$el.height(0);$el.height($wrapwrap[0].scrollHeight);},_onPrintInvoice:function(ev){ev.preventDefault();var href=$(ev.currentTarget).attr('href');this._printIframeContent(href);},});return AccountPortalSidebar;});;
542
543/* /payment/static/lib/jquery.payment/jquery.payment.js defined in bundle 'web.assets_frontend' */
544(function(){var $,cardFromNumber,cardFromType,cards,defaultFormat,formatBackCardNumber,formatBackExpiry,formatCardNumber,formatExpiry,formatForwardExpiry,formatForwardSlash,hasTextSelected,luhnCheck,reFormatCardNumber,restrictCVC,restrictCardNumber,restrictExpiry,restrictNumeric,setCardType,__slice=[].slice,__indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++){if(i in this&&this[i]===item)return i;}return-1;},_this=this;$=jQuery;$.payment={};$.payment.fn={};$.fn.payment=function(){var args,method;method=arguments[0],args=2<=arguments.length?__slice.call(arguments,1):[];return $.payment.fn[method].apply(this,args);};defaultFormat=/(\d{1,4})/g;cards=[{type:'maestro',pattern:/^(5018|5020|5038|6304|6759|676[1-3])/,format:defaultFormat,length:[12,13,14,15,16,17,18,19],cvcLength:[3],luhn:true},{type:'dinersclub',pattern:/^(36|38|30[0-5])/,format:defaultFormat,length:[14],cvcLength:[3],luhn:true},{type:'laser',pattern:/^(6706|6771|6709)/,format:defaultFormat,length:[16,17,18,19],cvcLength:[3],luhn:true},{type:'jcb',pattern:/^35/,format:defaultFormat,length:[16],cvcLength:[3],luhn:true},{type:'unionpay',pattern:/^62/,format:defaultFormat,length:[16,17,18,19],cvcLength:[3],luhn:false},{type:'discover',pattern:/^(6011|65|64[4-9]|622)/,format:defaultFormat,length:[16],cvcLength:[3],luhn:true},{type:'mastercard',pattern:/^5[1-5]/,format:defaultFormat,length:[16],cvcLength:[3],luhn:true},{type:'amex',pattern:/^3[47]/,format:/(\d{1,4})(\d{1,6})?(\d{1,5})?/,length:[15],cvcLength:[3,4],luhn:true},{type:'visa',pattern:/^4/,format:defaultFormat,length:[13,14,15,16],cvcLength:[3],luhn:true}];cardFromNumber=function(num){var card,_i,_len;num=(num+'').replace(/\D/g,'');for(_i=0,_len=cards.length;_i<_len;_i++){card=cards[_i];if(card.pattern.test(num)){return card;}}};cardFromType=function(type){var card,_i,_len;for(_i=0,_len=cards.length;_i<_len;_i++){card=cards[_i];if(card.type===type){return card;}}};luhnCheck=function(num){var digit,digits,odd,sum,_i,_len;odd=true;sum=0;digits=(num+'').split('').reverse();for(_i=0,_len=digits.length;_i<_len;_i++){digit=digits[_i];digit=parseInt(digit,10);if((odd=!odd)){digit*=2;}
545if(digit>9){digit-=9;}
546sum+=digit;}
547return sum%10===0;};hasTextSelected=function($target){var _ref;if(($target.prop('selectionStart')!=null)&&$target.prop('selectionStart')!==$target.prop('selectionEnd')){return true;}
548if(typeof document!=="undefined"&&document!==null?(_ref=document.selection)!=null?typeof _ref.createRange==="function"?_ref.createRange().text:void 0:void 0:void 0){return true;}
549return false;};reFormatCardNumber=function(e){var _this=this;return setTimeout(function(){var $target,value;$target=$(e.currentTarget);value=$target.val();value=$.payment.formatCardNumber(value);return $target.val(value);});};formatCardNumber=function(e){var $target,card,digit,length,re,upperLength,value;digit=String.fromCharCode(e.which);if(!/^\d+$/.test(digit)){return;}
550$target=$(e.currentTarget);value=$target.val();card=cardFromNumber(value+digit);length=(value.replace(/\D/g,'')+digit).length;upperLength=16;if(card){upperLength=card.length[card.length.length-1];}
551if(length>=upperLength){return;}
552if(($target.prop('selectionStart')!=null)&&$target.prop('selectionStart')!==value.length){return;}
553if(card&&card.type==='amex'){re=/^(\d{4}|\d{4}\s\d{6})$/;}else{re=/(?:^|\s)(\d{4})$/;}
554if(re.test(value)){e.preventDefault();return $target.val(value+' '+digit);}else if(re.test(value+digit)){e.preventDefault();return $target.val(value+digit+' ');}};formatBackCardNumber=function(e){var $target,value;$target=$(e.currentTarget);value=$target.val();if(e.meta){return;}
555if(e.which!==8){return;}
556if(($target.prop('selectionStart')!=null)&&$target.prop('selectionStart')!==value.length){return;}
557if(/\d\s$/.test(value)){e.preventDefault();return $target.val(value.replace(/\d\s$/,''));}else if(/\s\d?$/.test(value)){e.preventDefault();return $target.val(value.replace(/\s\d?$/,''));}};formatExpiry=function(e){var $target,digit,val;digit=String.fromCharCode(e.which);if(!/^\d+$/.test(digit)){return;}
558$target=$(e.currentTarget);val=$target.val()+digit;if(/^\d$/.test(val)&&(val!=='0'&&val!=='1')){e.preventDefault();return $target.val("0"+val+" / ");}else if(/^\d\d$/.test(val)){e.preventDefault();return $target.val(""+val+" / ");}};formatForwardExpiry=function(e){var $target,digit,val;digit=String.fromCharCode(e.which);if(!/^\d+$/.test(digit)){return;}
559$target=$(e.currentTarget);val=$target.val();if(/^\d\d$/.test(val)){return $target.val(""+val+" / ");}};formatForwardSlash=function(e){var $target,slash,val;slash=String.fromCharCode(e.which);if(slash!=='/'){return;}
560$target=$(e.currentTarget);val=$target.val();if(/^\d$/.test(val)&&val!=='0'){return $target.val("0"+val+" / ");}};formatBackExpiry=function(e){var $target,value;if(e.meta){return;}
561$target=$(e.currentTarget);value=$target.val();if(e.which!==8){return;}
562if(($target.prop('selectionStart')!=null)&&$target.prop('selectionStart')!==value.length){return;}
563if(/\d(\s|\/)+$/.test(value)){e.preventDefault();return $target.val(value.replace(/\d(\s|\/)*$/,''));}else if(/\s\/\s?\d?$/.test(value)){e.preventDefault();return $target.val(value.replace(/\s\/\s?\d?$/,''));}};restrictNumeric=function(e){var input;if(e.metaKey||e.ctrlKey){return true;}
564if(e.which===32){return false;}
565if(e.which===0){return true;}
566if(e.which<33){return true;}
567input=String.fromCharCode(e.which);return!!/[\d\s]/.test(input);};restrictCardNumber=function(e){var $target,card,digit,value;$target=$(e.currentTarget);digit=String.fromCharCode(e.which);if(!/^\d+$/.test(digit)){return;}
568if(hasTextSelected($target)){return;}
569value=($target.val()+digit).replace(/\D/g,'');card=cardFromNumber(value);if(card){return value.length<=card.length[card.length.length-1];}else{return value.length<=16;}};restrictExpiry=function(e){var $target,digit,value;$target=$(e.currentTarget);digit=String.fromCharCode(e.which);if(!/^\d+$/.test(digit)){return;}
570if(hasTextSelected($target)){return;}
571value=$target.val()+digit;value=value.replace(/\D/g,'');if(value.length>6){return false;}};restrictCVC=function(e){var $target,digit,val;$target=$(e.currentTarget);digit=String.fromCharCode(e.which);if(!/^\d+$/.test(digit)){return;}
572val=$target.val()+digit;return val.length<=4;};setCardType=function(e){var $target,allTypes,card,cardType,val;$target=$(e.currentTarget);val=$target.val();cardType=$.payment.cardType(val)||'unknown';if(!$target.hasClass(cardType)){allTypes=(function(){var _i,_len,_results;_results=[];for(_i=0,_len=cards.length;_i<_len;_i++){card=cards[_i];_results.push(card.type);}
573return _results;})();$target.removeClass('unknown');$target.removeClass(allTypes.join(' '));$target.addClass(cardType);$target.toggleClass('identified',cardType!=='unknown');return $target.trigger('payment.cardType',cardType);}};$.payment.fn.formatCardCVC=function(){this.payment('restrictNumeric');this.on('keypress',restrictCVC);return this;};$.payment.fn.formatCardExpiry=function(){this.payment('restrictNumeric');this.on('keypress',restrictExpiry);this.on('keypress',formatExpiry);this.on('keypress',formatForwardSlash);this.on('keypress',formatForwardExpiry);this.on('keydown',formatBackExpiry);return this;};$.payment.fn.formatCardNumber=function(){this.payment('restrictNumeric');this.on('keypress',restrictCardNumber);this.on('keypress',formatCardNumber);this.on('keydown',formatBackCardNumber);this.on('keyup',setCardType);this.on('paste',reFormatCardNumber);return this;};$.payment.fn.restrictNumeric=function(){this.on('keypress',restrictNumeric);return this;};$.payment.fn.cardExpiryVal=function(){return $.payment.cardExpiryVal($(this).val());};$.payment.cardExpiryVal=function(value){var month,prefix,year,_ref;value=value.replace(/\s/g,'');_ref=value.split('/',2),month=_ref[0],year=_ref[1];
573if((year!=null?year.length:void 0)===2&&/^\d+$/.test(year)){prefix=(new Date).getFullYear();prefix=prefix.toString().slice(0,2);year=prefix+year;}
574month=parseInt(month,10);year=parseInt(year,10);return{month:month,year:year};};$.payment.validateCardNumber=function(num){var card,_ref;num=(num+'').replace(/\s+|-/g,'');if(!/^\d+$/.test(num)){return false;}
575card=cardFromNumber(num);if(!card){return false;}
576return(_ref=num.length,__indexOf.call(card.length,_ref)>=0)&&(card.luhn===false||luhnCheck(num));};$.payment.validateCardExpiry=function(month,year){var currentTime,expiry,prefix,_ref;if(typeof month==='object'&&'month'in month){_ref=month,month=_ref.month,year=_ref.year;}
577if(!(month&&year)){return false;}
578month=$.trim(month);year=$.trim(year);if(!/^\d+$/.test(month)){return false;}
579if(!/^\d+$/.test(year)){return false;}
580if(!(parseInt(month,10)<=12)){return false;}
581if(year.length===2){prefix=(new Date).getFullYear();prefix=prefix.toString().slice(0,2);year=prefix+year;}
582expiry=new Date(year,month);currentTime=new Date;expiry.setMonth(expiry.getMonth()-1);expiry.setMonth(expiry.getMonth()+1,1);return expiry>currentTime;};$.payment.validateCardCVC=function(cvc,type){var _ref,_ref1;cvc=$.trim(cvc);if(!/^\d+$/.test(cvc)){return false;}
583if(type){return _ref=cvc.length,__indexOf.call((_ref1=cardFromType(type))!=null?_ref1.cvcLength:void 0,_ref)>=0;}else{return cvc.length>=3&&cvc.length<=4;}};$.payment.cardType=function(num){var _ref;if(!num){return null;}
584return((_ref=cardFromNumber(num))!=null?_ref.type:void 0)||null;};$.payment.formatCardNumber=function(num){var card,groups,upperLength,_ref;card=cardFromNumber(num);if(!card){return num;}
585upperLength=card.length[card.length.length-1];num=num.replace(/\D/g,'');num=num.slice(0,+upperLength+1||9e9);if(card.format.global){return(_ref=num.match(card.format))!=null?_ref.join(' '):void 0;}else{groups=card.format.exec(num);if(groups!=null){groups.shift();}
586return groups!=null?groups.join(' '):void 0;}};}).call(this);;
587
588/* /payment/static/src/js/payment_portal.js defined in bundle 'web.assets_frontend' */
589$(document).ready(function(){$('input#cc_number').payment('formatCardNumber');$('input#cc_cvc').payment('formatCardCVC');$('input#cc_expiry').payment('formatCardExpiry')
590$('input#cc_number').on('focusout',function(e){var valid_value=$.payment.validateCardNumber(this.value);var card_type=$.payment.cardType(this.value);if(card_type){$(this).parent('.form-group').children('.card_placeholder').removeClass().addClass('card_placeholder '+card_type);$(this).parent('.form-group').children('input[name="cc_brand"]').val(card_type)}
591else{$(this).parent('.form-group').children('.card_placeholder').removeClass().addClass('card_placeholder');}
592if(valid_value){$(this).parent('.form-group').addClass('o_has_success').find('.form-control, .custom-select').addClass('is-valid');$(this).parent('.form-group').removeClass('o_has_error').find('.form-control, .custom-select').removeClass('is-invalid');$(this).siblings('.o_invalid_field').remove();}
593else{$(this).parent('.form-group').addClass('o_has_error').find('.form-control, .custom-select').addClass('is-invalid');$(this).parent('.form-group').removeClass('o_has_success').find('.form-control, .custom-select').removeClass('is-valid');}});$('input#cc_cvc').on('focusout',function(e){var cc_nbr=$(this).parents('.oe_cc').find('#cc_number').val();var card_type=$.payment.cardType(cc_nbr);var valid_value=$.payment.validateCardCVC(this.value,card_type);if(valid_value){$(this).parent('.form-group').addClass('o_has_success').find('.form-control, .custom-select').addClass('is-valid');$(this).parent('.form-group').removeClass('o_has_error').find('.form-control, .custom-select').removeClass('is-invalid');$(this).siblings('.o_invalid_field').remove();}
594else{$(this).parent('.form-group').addClass('o_has_error').find('.form-control, .custom-select').addClass('is-invalid');$(this).parent('.form-group').removeClass('o_has_success').find('.form-control, .custom-select').removeClass('is-valid');}});$('input#cc_expiry').on('focusout',function(e){var expiry_value=$.payment.cardExpiryVal(this.value);var month=expiry_value.month||'';var year=expiry_value.year||'';
594var valid_value=$.payment.validateCardExpiry(month,year);if(valid_value){$(this).parent('.form-group').addClass('o_has_success').find('.form-control, .custom-select').addClass('is-valid');$(this).parent('.form-group').removeClass('o_has_error').find('.form-control, .custom-select').removeClass('is-invalid');$(this).siblings('.o_invalid_field').remove();}
595else{$(this).parent('.form-group').addClass('o_has_error').find('.form-control, .custom-select').addClass('is-invalid');$(this).parent('.form-group').removeClass('o_has_success').find('.form-control, .custom-select').removeClass('is-valid');}});$('select[name="pm_acquirer_id"]').on('change',function(){var acquirer_id=$(this).val();$('.acquirer').addClass('d-none');$('.acquirer[data-acquirer-id="'+acquirer_id+'"]').removeClass('d-none');});});;
596
597/* /payment/static/src/js/payment_transaction_portal.js defined in bundle 'web.assets_frontend' */
598;
599
600/* /payment/static/src/js/payment_form.js defined in bundle 'web.assets_frontend' */
601odoo.define('payment.payment_form',function(require){"use strict";var ajax=require('web.ajax');var config=require('web.config');var core=require('web.core');var Dialog=require("web.Dialog");var Widget=require("web.Widget");var rpc=require("web.rpc");var _t=core._t;var PaymentForm=Widget.extend({events:{'click #o_payment_form_pay':'payEvent','click #o_payment_form_add_pm':'addPmEvent','click button[name="delete_pm"]':'deletePmEvent','click input[type="radio"]':'radioClickEvent','click .o_payment_form_pay_icon_more':'onClickMorePaymentIcon',},init:function(parent,options){this._super.apply(this,arguments);this.options=_.extend(options||{},{});},start:function(){this.updateNewPaymentDisplayStatus();$('[data-toggle="tooltip"]').tooltip();},payEvent:function(ev){ev.preventDefault();var form=this.el;var checked_radio=this.$('input[type="radio"]:checked');var self=this;var button=ev.target;if(checked_radio.length===1){checked_radio=checked_radio[0];var acquirer_id=this.getAcquirerIdFromRadio(checked_radio);var acquirer_form=false;if(this.isNewPaymentRadio(checked_radio)){acquirer_form=this.$('#o_payment_add_token_acq_'+acquirer_id);}else{acquirer_form=this.$('#o_payment_form_acq_'+acquirer_id);}
602var inputs_form=$('input',acquirer_form);var ds=$('input[name="data_set"]',acquirer_form)[0];if(this.isNewPaymentRadio(checked_radio)){if(this.options.partnerId===undefined){console.warn('payment_form: unset partner_id when adding new token; things could go wrong');}
603var form_data=this.getFormData(inputs_form);var wrong_input=false;inputs_form.toArray().forEach(function(element){if($(element).attr('type')=='hidden'){return true;}
604$(element).closest('div.form-group').removeClass('o_has_error').find('.form-control, .custom-select').removeClass('is-invalid');$(element).siblings(".o_invalid_field").remove();$(element).trigger("focusout");if(element.dataset.isRequired&&element.value.length===0){$(element).closest('div.form-group').addClass('o_has_error').find('.form-control, .custom-select').addClass('is-invalid');$(element).closest('div.form-group').append('<div style="color: red" class="o_invalid_field" aria-invalid="true">'+_.str.escapeHTML("The value is invalid.")+'</div>');wrong_input=true;}
605else if($(element).closest('div.form-group').hasClass('o_has_error')){wrong_input=true;$(element).closest('div.form-group').append('<div style="color: red" class="o_invalid_field" aria-invalid="true">'+_.str.escapeHTML("The value is invalid.")+'</div>');}});if(wrong_input){return;}
606$(button).attr('disabled',true);$(button).children('.fa-plus-circle').removeClass('fa-plus-circle')
607$(button).prepend('<span class="o_loader"><i class="fa fa-refresh fa-spin"></i>&nbsp;</span>');var verify_validity=this.$el.find('input[name="verify_validity"]');if(verify_validity.length>0){form_data.verify_validity=verify_validity[0].value==="1";}
608ajax.jsonRpc(ds.dataset.createRoute,'call',form_data).then(function(data){if(data.result){if(data['3d_secure']!==false){$("body").html(data['3d_secure']);}
609else{checked_radio.value=data.id;form.submit();return;}}
610else{if(data.error){self.displayError('',data.error);}
610else{self.displayError(_t('Server Error'),_t('e.g. Your credit card details are wrong. Please verify.'));}}
611$(button).attr('disabled',false);$(button).children('.fa').addClass('fa-plus-circle')
612$(button).find('span.o_loader').remove();}).fail(function(data,event){$(button).attr('disabled',false);$(button).children('.fa').addClass('fa-plus-circle')
613$(button).find('span.o_loader').remove();self.displayError(_t('Server Error'),_t("We are not able to add your payment method at the moment.")+
614message.data.message);});}
615else if(this.isFormPaymentRadio(checked_radio)){var $tx_url=this.$el.find('input[name="prepare_tx_url"]');if($tx_url.length===1){var form_save_token=acquirer_form.find('input[name="o_payment_form_save_token"]').prop('checked');ajax.jsonRpc($tx_url[0].value,'call',{'acquirer_id':parseInt(acquirer_id),'save_token':form_save_token,'access_token':self.options.accessToken,'success_url':self.options.successUrl,'error_url':self.options.errorUrl,'callback_method':self.options.callbackMethod,'order_id':self.options.orderId,}).then(function(result){if(result){var newForm=document.createElement('form');newForm.setAttribute("method","post");newForm.setAttribute("provider",checked_radio.dataset.provider);newForm.hidden=true;newForm.innerHTML=result;var action_url=$(newForm).find('input[name="data_set"]').data('actionUrl');newForm.setAttribute("action",action_url);$(document.getElementsByTagName('body')[0]).append(newForm);$(newForm).find('input[data-remove-me]').remove();if(action_url){newForm.submit();}}
616else{self.displayError(_t('Server Error'),_t("We are not able to redirect you to the payment form."));}}).fail(function(data,event){self.displayError(_t('Server Error'),_t("We are not able to redirect you to the payment form. ")+
617message.data.message);});}
618else{this.displayError(_t("Cannot set-up the payment"),_t("We're unable to process your payment."));}}
619else{form.submit();}}
620else{this.displayError(_t('No payment method selected'),_t('Please select a payment method.'));}},addPmEvent:function(ev){ev.stopPropagation();ev.preventDefault();var checked_radio=this.$('input[type="radio"]:checked');var self=this;var button=ev.target;if(checked_radio.length===1&&this.isNewPaymentRadio(checked_radio[0])){checked_radio=checked_radio[0];var acquirer_id=this.getAcquirerIdFromRadio(checked_radio);var acquirer_form=this.$('#o_payment_add_token_acq_'+acquirer_id);var inputs_form=$('input',acquirer_form);var form_data=this.getFormData(inputs_form);var ds=$('input[name="data_set"]',acquirer_form)[0];var wrong_input=false;inputs_form.toArray().forEach(function(element){if($(element).attr('type')=='hidden'){return true;}
621$(element).closest('div.form-group').removeClass('o_has_error').find('.form-control, .custom-select').removeClass('is-invalid');$(element).siblings(".o_invalid_field").remove();$(element).trigger("focusout");if(element.dataset.isRequired&&element.value.length===0){$(element).closest('div.form-group').addClass('o_has_error').find('.form-control, .custom-select').addClass('is-invalid');var message='<div style="color: red" class="o_invalid_field" aria-invalid="true">'+_.str.escapeHTML("The value is invalid.")+'</div>';$(element).closest('div.form-group').append(message);wrong_input=true;}
622else if($(element).closest('div.form-group').hasClass('o_has_error')){wrong_input=true;var message='<div style="color: red" class="o_invalid_field" aria-invalid="true">'+_.str.escapeHTML("The value is invalid.")+'</div>';$(element).closest('div.form-group').append(message);}});if(wrong_input){return;}
623$(button).attr('disabled',true);$(button).children('.fa-plus-circle').removeClass('fa-plus-circle')
624$(button).prepend('<span class="o_loader"><i class="fa fa-refresh fa-spin"></i>&nbsp;</span>');form_data.verify_validity=true;ajax.jsonRpc(ds.dataset.createRoute,'call',form_data).then(function(data){if(data.result){if(data['3d_secure']!==false){$("body").html(data['3d_secure']);}
625else{if(form_data.return_url){window.location=form_data.return_url;}
626else{window.location.reload();}}}
627else{if(data.error){self.displayError('',data.error);}
627else{self.displayError(_t('Server Error'),_t('e.g. Your credit card details are wrong. Please verify.'));}}
628$(button).attr('disabled',false);$(button).children('.fa').addClass('fa-plus-circle')
629$(button).find('span.o_loader').remove();}).fail(function(data,event){$(button).attr('disabled',false);$(button).children('.fa').addClass('fa-plus-circle')
630$(button).find('span.o_loader').remove();self.displayError(_t('Server error'),_t("We are not able to add your payment method at the moment.</p>")+
631data.data.message);});}
632else{this.displayError(_t('No payment method selected'),_t('Please select the option to add a new payment method.'));}},deletePmEvent:function(ev){ev.stopPropagation();ev.preventDefault();var self=this;var pm_id=parseInt(ev.target.value);var tokenDelete=function(){rpc.query({model:'payment.token',method:'unlink',args:[pm_id],}).then(function(result){if(result===true){ev.target.closest('div').remove();}},function(){self.displayError(_t('Server Error'),_t("We are not able to delete your payment method at the moment."));});};rpc.query({model:'payment.token',method:'get_linked_records',args:[pm_id],}).then(function(result){if(result[pm_id].length>0){var content='';result[pm_id].forEach(function(sub){content+='<p><a href="'+sub.url+'" title="'+sub.description+'">'+sub.name+'</a><p/>';});content=$('<div>').html(_t('<p>This card is currently linked to the following records:<p/>')+content);new Dialog(self,{title:_t('Warning!'),size:'medium',$content:content,buttons:[{text:_t('Confirm Deletion'),classes:'btn-primary',close:true,click:tokenDelete},{text:_t('Cancel'),close:true}]}).open();}
633else{tokenDelete();}},function(err,event){self.displayError(_t('Server Error'),_t("We are not able to delete your payment method at the moment.")+err.data.message);});},onClickMorePaymentIcon:function(ev){ev.preventDefault();var $listItems=$(ev.currentTarget).parents('ul').children('li');var $moreItem=$(ev.currentTarget).parents('li');$listItems.removeClass('d-none');$moreItem.addClass('d-none');},radioClickEvent:function(ev){this.updateNewPaymentDisplayStatus();},updateNewPaymentDisplayStatus:function()
634{var checked_radio=this.$('input[type="radio"]:checked');this.$('[id*="o_payment_add_token_acq_"]').addClass('d-none');this.$('[id*="o_payment_form_acq_"]').addClass('d-none');if(checked_radio.length!==1){return;}
635checked_radio=checked_radio[0];var acquirer_id=this.getAcquirerIdFromRadio(checked_radio);if(this.isNewPaymentRadio(checked_radio)){this.$('#o_payment_add_token_acq_'+acquirer_id).removeClass('d-none');}
636else if(this.isFormPaymentRadio(checked_radio)){this.$('#o_payment_form_acq_'+acquirer_id).removeClass('d-none');}},isNewPaymentRadio:function(element){return $(element).data('s2s-payment')==='True';},isFormPaymentRadio:function(element){return $(element).data('form-payment')==='True';},getAcquirerIdFromRadio:function(element){return $(element).data('acquirer-id');},displayError:function(title,message){var $checkedRadio=this.$('input[type="radio"]:checked'),acquirerID=this.getAcquirerIdFromRadio($checkedRadio[0]);var $acquirerForm;if(this.isNewPaymentRadio($checkedRadio[0])){$acquirerForm=this.$('#o_payment_add_token_acq_'+acquirerID);}
637else if(this.isFormPaymentRadio($checkedRadio[0])){$acquirerForm=this.$('#o_payment_form_acq_'+acquirerID);}
638if($checkedRadio.length===0){return new Dialog(null,{title:_t('Error: ')+_.str.escapeHTML(title),size:'medium',$content:"<p>"+(_.str.escapeHTML(message)||"")+"</p>",buttons:[{text:_t('Ok'),close:true}]}).open();}else{this.$('#payment_error').remove();var messageResult='<div class="alert alert-danger mb4" id="payment_error">';if(title!=''){messageResult=messageResult+'<b>'+_.str.escapeHTML(title)+':</b></br>';}
639messageResult=messageResult+_.str.escapeHTML(message)+'</div>';$acquirerForm.append(messageResult);}},getFormData:function($form){var unindexed_array=$form.serializeArray();var indexed_array={};$.map(unindexed_array,function(n,i){indexed_array[n.name]=n.value;});return indexed_array;},});$(function(){if(!$('.o_payment_form').length){console.log("DOM doesn't contain '.o_payment_form'");return;}
640$('.o_payment_form').each(function(){var $elem=$(this);var form=new PaymentForm(null,$elem.data());form.attachTo($elem);});});return PaymentForm;});;
641
642/* /payment/static/src/js/payment_processing.js defined in bundle 'web.assets_frontend' */
643odoo.define('payment.processing',function(require){'use strict';var Widget=require('web.Widget');var Ajax=require('web.ajax');var Core=require('web.core');var Qweb=Core.qweb;var _t=Core._t;$.blockUI.defaults.css.border='0';$.blockUI.defaults.css["background-color"]='';$.blockUI.defaults.overlayCSS["opacity"]='0.9';
643return Widget.extend({_payment_tx_ids:null,_pollCount:0,events:{},xmlDependencies:['/payment/static/src/xml/payment_processing.xml'],init:function(parent,payment_tx_ids){this._super.apply(this,arguments);this._payment_tx_ids=payment_tx_ids;},start:function(){this.displayLoading();this.poll();return this._super.apply(this,arguments);},startPolling:function(){var timeout=3000;if(this._pollCount>=10&&this._pollCount<20){timeout=10000;}
644else if(this._pollCount>=20){timeout=30000;}
645setTimeout(this.poll.bind(this),timeout);this._pollCount++;},poll:function(){var self=this;Ajax.jsonRpc('/payment/process/poll','call',{}).then(function(data){if(data.success===true){self.processPolledData(data.transactions);}
646else{switch(data.error){case"no_tx_found":self.displayContent("payment.no_tx_found",{});break;default:self.displayContent("payment.exception",{exception_msg:data.error});break;}}
647self.startPolling();}).always(function(){if($.blockUI){$.unblockUI();}}).fail(function(e){self.displayContent("payment.rpc_error",{});self.startPolling();});},processPolledData:function(transactions){var render_values={'tx_draft':[],'tx_pending':[],'tx_authorized':[],'tx_done':[],'tx_cancel':[],'tx_error':[],};transactions.forEach(function(tx){var key='tx_'+tx.state;if(key in render_values){if(tx.acquirer_provider==='transfer'){window.location=tx.return_url;return;}
648render_values[key].push(tx);}});function countTxInState(states){var nbTx=0;for(var prop in render_values){if(states.indexOf(prop)>-1&&render_values.hasOwnProperty(prop)){nbTx+=render_values[prop].length;}}
649return nbTx;}
650if(countTxInState(['tx_done','tx_error'])===1){var tx=render_values['tx_done'][0]||render_values['tx_error'][0];if(tx){window.location=tx.return_url;return;}}
651this.displayContent("payment.display_tx_list",render_values);},displayContent:function(xmlid,render_values){var html=Qweb.render(xmlid,render_values);this.$el.find('.o_payment_processing_content').html(html);},displayLoading:function(){var msg=_t("We are processing your payments, please wait ...");$.blockUI({'message':'<h2 class="text-white"><img src="/web/static/src/img/spin.png" class="fa-pulse"/>'+'    <br />'+msg+'</h2>'});},});});;
652
653/* /sale/static/src/js/sale_portal_sidebar.js defined in bundle 'web.assets_frontend' */
654odoo.define('sale.SalePortalSidebar.instance',function(require){"use strict";require('web.dom_ready');var SalePortalSidebar=require('sale.SalePortalSidebar');if(!$('.o_portal_sale_sidebar').length){return $.Deferred().reject("DOM doesn't contain '.o_portal_sale_sidebar'");}
655var $spyWatch=$('body[data-target=".navspy"]'),sale_portal_sidebar=new SalePortalSidebar($spyWatch);return sale_portal_sidebar.attachTo($('.o_portal_sale_sidebar')).then(function(){return sale_portal_sidebar;});});odoo.define('sale.SalePortalSidebar',function(require){"use strict";var PortalSidebar=require('portal.PortalSidebar');var SalePortalSidebar=PortalSidebar.extend({init:function($watched_selector){this._super.apply(this,arguments);this.authorizedTextTag=['em','b','i','u'];this.spyWatched=$watched_selector;},start:function(){this._super.apply(this,arguments);var $spyWatcheElement=this.$el.find('[data-id="portal_sidebar"]');this._setElementId($spyWatcheElement);this._generateMenu();},_setElementId:function(prefix,$el){var id=_.uniqueId(prefix);this.spyWatched.find($el).attr('id',id);return id;}
655,_generateMenu:function(){var self=this,lastLI=false,lastUL=null,$bsSidenav=this.$el.find('.bs-sidenav');$("#quote_content [id^=quote_header_], #quote_content [id^=quote_]",this.spyWatched).attr("id","");_.each(this.spyWatched.find("#quote_content h2, #quote_content h3"),function(el){var id,text;switch(el.tagName.toLowerCase()){case"h2":id=self._setElementId('quote_header_',el);text=self._extractText($(el));if(!text){break;}
656lastLI=$("<li class='nav-item'>").append($('<a class="nav-link" href="#'+id+'"/>').text(text)).appendTo($bsSidenav);lastUL=false;break;case"h3":id=self._setElementId('quote_',el);text=self._extractText($(el));if(!text){break;}
657if(lastLI){if(!lastUL){lastUL=$("<ul class='nav flex-column'>").appendTo(lastLI);}
658$("<li class='nav-item'>").append($('<a class="nav-link" href="#'+id+'"/>').text(text)).appendTo(lastUL);}
659break;}});},_extractText:function($node){var self=this;var rawText=[];_.each($node.contents(),function(el){var current=$(el);if($.trim(current.text())){var tagName=current.prop("tagName");if(_.isUndefined(tagName)||(!_.isUndefined(tagName)&&_.contains(self.authorizedTextTag,tagName.toLowerCase()))){rawText.push($.trim(current.text()));}}});return rawText.join(' ');},});return SalePortalSidebar;});;
660
661/* /sale_management/static/src/js/sale_management.js defined in bundle 'web.assets_frontend' */
662odoo.define('sale_management.sale_management',function(require){'use strict';require('web.dom_ready');var ajax=require('web.ajax');var Widget=require('web.Widget');if(!$('.o_portal_sale_sidebar').length){return $.Deferred().reject("DOM doesn't contain '.o_portal_sale_sidebar'");}
663var UpdateLineButton=Widget.extend({events:{'click':'onClick',},onClick:function(ev){ev.preventDefault();var self=this;var href=this.$el.attr("href");var order_id=href.match(/my\/orders\/([0-9]+)/);var line_id=href.match(/update_line\/([0-9]+)/);var params={'line_id':line_id[1],'remove':self.$el.is('[href*="remove"]'),'unlink':self.$el.is('[href*="unlink"]'),};var token=href.match(/token=(.*)/);if(token){params.access_token=token;}
664var url="/my/orders/"+parseInt(order_id[1])+"/update_line";ajax.jsonRpc(url,'call',params).then(function(data){if(!data){window.location.reload();}
665self.$el.parents('.input-group:first').find('.js_quantity').val(data[0]);$('[data-id="total_amount"]>span').html(data[1]);});return false;},});var update_button_list=[];$('a.js_update_line_json').each(function(index){var button=new UpdateLineButton();button.setElement($(this)).start();update_button_list.push(button);});});;
666
667/* /project/static/src/js/portal_rating.js defined in bundle 'web.assets_frontend' */
668odoo.define('website_rating_project.rating',function(require){'use strict';var time=require('web.time');require('web.dom_ready');if(!$('.o_portal_project_rating').length){return $.Deferred().reject("DOM doesn't contain '.o_portal_project_rating'");}
669$('.o_portal_project_rating .o_rating_image').popover({placement:'bottom',trigger:'hover',html:'true',content:function(){var id=$(this).data('id');var rating_date=$(this).data('rating-date');var base_date=time.auto_str_to_date(rating_date);var duration=moment(base_date).fromNow();$("#rating_"+id).find(".rating_timeduration").text(duration);return $("#rating_"+id).html();}});});;
670
671/* /payment_stripe_sca/static/src/js/payment_form.js defined in bundle 'web.assets_frontend' */
672odoo.define('payment_stripe.payment_form',function(require){"use strict";var ajax=require('web.ajax');var core=require('web.core');var rpc=require('web.rpc');var Dialog=require('web.Dialog');var PaymentForm=require('payment.payment_form');var _t=core._t;PaymentForm.include({willStart:function(){return this._super.apply(this,arguments).then(function(){return ajax.loadJS("https://js.stripe.com/v3/");})},_createStripeToken:function(ev,$checkedRadio,addPmEvent){var self=this;if(ev.type==='submit'){var button=$(ev.target).find('*[type="submit"]')[0]}else{var button=ev.target;}
673this.disableButton(button);var acquirerID=this.getAcquirerIdFromRadio($checkedRadio);var acquirerForm=this.$('#o_payment_add_token_acq_'+acquirerID);var inputsForm=$('input',acquirerForm);if(this.options.partnerId===undefined){console.warn('payment_form: unset partner_id when adding new token; things could go wrong');}
674var formData=self.getFormData(inputsForm);var stripe=this.stripe;var card=this.stripe_card_element;if(card._invalid){return;}
675return rpc.query({route:'/payment/stripe/s2s/create_setup_intent',params:{'acquirer_id':formData.acquirer_id}}).then(function(intent_secret){return $.Deferred(function(defer){stripe.handleCardSetup(intent_secret,card).then(function(result){defer.resolve(result)})});}).then(function(result){if(result.error){return $.Deferred().reject({"message":{"data":{"message":result.error.message}}});}else{_.extend(formData,{"payment_method":result.setupIntent.payment_method});return rpc.query({route:formData.data_set,params:formData,})}}).then(function(result){if(addPmEvent){if(formData.return_url){window.location=formData.return_url;}else{window.location.reload();}}else{$checkedRadio.val(result.id);self.el.submit();}}).fail(function(error,event){self.enableButton(button);
675self.displayError(_t('Unable to save card'),_t("We are not able to add your payment method at the moment. ")+
676error.message.data.message);});},_bindStripeCard:function($checkedRadio){var acquirerID=this.getAcquirerIdFromRadio($checkedRadio);var acquirerForm=this.$('#o_payment_add_token_acq_'+acquirerID);var inputsForm=$('input',acquirerForm);var formData=this.getFormData(inputsForm);var stripe=Stripe(formData.stripe_publishable_key);var element=stripe.elements();var card=element.create('card',{hidePostalCode:true});card.mount('#card-element');card.on('ready',function(ev){card.focus();});card.addEventListener('change',function(event){var displayError=document.getElementById('card-errors');displayError.textContent='';if(event.error){displayError.textContent=event.error.message;}});this.stripe=stripe;this.stripe_card_element=card;},_unbindStripeCard:function(){if(this.stripe_card_element){this.stripe_card_element.destroy();}
677this.stripe=undefined;this.stripe_card_element=undefined;},updateNewPaymentDisplayStatus:function(){var $checkedRadio=this.$('input[type="radio"]:checked');if($checkedRadio.length!==1){return;}
678var provider=$checkedRadio.data('provider')
679if(provider==='stripe'){this._unbindStripeCard();if(this.isNewPaymentRadio($checkedRadio)){this._bindStripeCard($checkedRadio);}}
680return this._super.apply(this,arguments);},payEvent:function(ev){ev.preventDefault();var $checkedRadio=this.$('input[type="radio"]:checked');if($checkedRadio.length===1&&this.isNewPaymentRadio($checkedRadio)&&$checkedRadio.data('provider')==='stripe'){return this._createStripeToken(ev,$checkedRadio);}else{return this._super.apply(this,arguments);}},addPmEvent:function(ev){ev.stopPropagation();ev.preventDefault();var $checkedRadio=this.$('input[type="radio"]:checked');if($checkedRadio.length===1&&this.isNewPaymentRadio($checkedRadio)&&$checkedRadio.data('provider')==='stripe'){return this._createStripeToken(ev,$checkedRadio,true);}else{return this._super.apply(this,arguments);}},});});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.