!function(factory){"function"==typeof define&&define.amd?define("index",factory):factory()}((function(){"use strict";function _typeof(obj){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj})(obj)}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _defineProperties(target,props){for(var i=0;iarr.length)&&(len=arr.length);for(var i=0,arr2=new Array(len);i=o.length?{done:!0}:{done:!1,value:o[i++]}},e:function(e){throw e},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var it,normalCompletion=!0,didErr=!1,err;return{s:function(){it=o[Symbol.iterator]()},n:function(){var step=it.next();return normalCompletion=step.done,step},e:function(e){didErr=!0,err=e},f:function(){try{normalCompletion||null==it.return||it.return()}finally{if(didErr)throw err}}}}var animationQueue={},Animation=function(){function Animation(){_classCallCheck(this,Animation)}return _createClass(Animation,null,[{key:"slideUp",value:function slideUp(element,callback){var propertyToAnimate=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"height";element.style[propertyToAnimate]="".concat(element.scrollHeight,"px"),element.offsetHeight,element.style[propertyToAnimate]=0,animationQueue[element.id]&&(element.removeEventListener("transitionend",animationQueue[element.id]),delete animationQueue[element.id]);var transitionEnded=function transitionEnded(event){"height"===event.propertyName&&(element.removeEventListener("transitionend",transitionEnded),(callback||function(){})())};element.addEventListener("transitionend",transitionEnded)}},{key:"slideDown",value:function slideDown(element,callback){var propertyToAnimate=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"height";element.style[propertyToAnimate]="".concat(element.scrollHeight,"px");var transitionEnded=function transitionEnded(event){if(event.propertyName===propertyToAnimate){var defaultValue="auto";"max-height"===propertyToAnimate&&(defaultValue="none"),element.style[propertyToAnimate]=defaultValue,element.removeEventListener("transitionend",transitionEnded),delete animationQueue[element.id],(callback||function(){})()}};element.addEventListener("transitionend",transitionEnded),animationQueue[element.id]=transitionEnded}}]),Animation}(),Dom=function(){function Dom(){_classCallCheck(this,Dom)}return _createClass(Dom,null,[{key:"getSiblings",value:function getSiblings(element,filter){for(var includeSelf=arguments.length>2&&void 0!==arguments[2]&&arguments[2],siblings=[],currentElement=element;currentElement=currentElement.previousElementSibling;)filter&&!currentElement.matches(filter)||siblings.push(currentElement);for(includeSelf&&siblings.push(element),currentElement=element;currentElement=currentElement.nextElementSibling;)filter&&!currentElement.matches(filter)||siblings.push(currentElement);return siblings}}]),Dom}(),commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function unwrapExports(x){return x&&x.__esModule&&Object.prototype.hasOwnProperty.call(x,"default")?x.default:x}function createCommonjsModule(fn,module){return fn(module={exports:{}},module.exports),module.exports}var browser,Delegate=unwrapExports(createCommonjsModule((function(module,exports){function Delegate(root){this.listenerMap=[{},{}],root&&this.root(root),this.handle=Delegate.prototype.handle.bind(this),this._removedListeners=[]}function matchesTag(tagName,element){return tagName.toLowerCase()===element.tagName.toLowerCase()}function matchesRoot(selector,element){return this.rootElement===window?element===document||element===document.documentElement||element===window:this.rootElement===element}function matchesId(id,element){return id===element.id}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,Delegate.prototype.root=function(root){var listenerMap=this.listenerMap,eventType;if(this.rootElement){for(eventType in listenerMap[1])listenerMap[1].hasOwnProperty(eventType)&&this.rootElement.removeEventListener(eventType,this.handle,!0);for(eventType in listenerMap[0])listenerMap[0].hasOwnProperty(eventType)&&this.rootElement.removeEventListener(eventType,this.handle,!1)}if(!root||!root.addEventListener)return this.rootElement&&delete this.rootElement,this;for(eventType in this.rootElement=root,listenerMap[1])listenerMap[1].hasOwnProperty(eventType)&&this.rootElement.addEventListener(eventType,this.handle,!0);for(eventType in listenerMap[0])listenerMap[0].hasOwnProperty(eventType)&&this.rootElement.addEventListener(eventType,this.handle,!1);return this},Delegate.prototype.captureForType=function(eventType){return-1!==["blur","error","focus","load","resize","scroll"].indexOf(eventType)},Delegate.prototype.on=function(eventType,selector,handler,useCapture){var root,listenerMap,matcher,matcherParam;if(!eventType)throw new TypeError("Invalid event type: "+eventType);if("function"==typeof selector&&(useCapture=handler,handler=selector,selector=null),void 0===useCapture&&(useCapture=this.captureForType(eventType)),"function"!=typeof handler)throw new TypeError("Handler must be a type of Function");return root=this.rootElement,(listenerMap=this.listenerMap[useCapture?1:0])[eventType]||(root&&root.addEventListener(eventType,this.handle,useCapture),listenerMap[eventType]=[]),selector?/^[a-z]+$/i.test(selector)?(matcherParam=selector,matcher=matchesTag):/^#[a-z0-9\-_]+$/i.test(selector)?(matcherParam=selector.slice(1),matcher=matchesId):(matcherParam=selector,matcher=Element.prototype.matches):(matcherParam=null,matcher=matchesRoot.bind(this)),listenerMap[eventType].push({selector:selector,handler:handler,matcher:matcher,matcherParam:matcherParam}),this},Delegate.prototype.off=function(eventType,selector,handler,useCapture){var i,listener,listenerMap,listenerList,singleEventType;if("function"==typeof selector&&(useCapture=handler,handler=selector,selector=null),void 0===useCapture)return this.off(eventType,selector,handler,!0),this.off(eventType,selector,handler,!1),this;if(listenerMap=this.listenerMap[useCapture?1:0],!eventType){for(singleEventType in listenerMap)listenerMap.hasOwnProperty(singleEventType)&&this.off(singleEventType,selector,handler);return this}if(!(listenerList=listenerMap[eventType])||!listenerList.length)return this;for(i=listenerList.length-1;i>=0;i--)listener=listenerList[i],selector&&selector!==listener.selector||handler&&handler!==listener.handler||(this._removedListeners.push(listener),listenerList.splice(i,1));return listenerList.length||(delete listenerMap[eventType],this.rootElement&&this.rootElement.removeEventListener(eventType,this.handle,useCapture)),this},Delegate.prototype.handle=function(event){var i,l,type=event.type,root,phase,listener,returned,listenerList=[],target,eventIgnore="ftLabsDelegateIgnore";if(!0!==event[eventIgnore]){switch(3===(target=event.target).nodeType&&(target=target.parentNode),target.correspondingUseElement&&(target=target.correspondingUseElement),root=this.rootElement,phase=event.eventPhase||(event.target!==event.currentTarget?3:2)){case 1:listenerList=this.listenerMap[1][type];break;case 2:this.listenerMap[0]&&this.listenerMap[0][type]&&(listenerList=listenerList.concat(this.listenerMap[0][type])),this.listenerMap[1]&&this.listenerMap[1][type]&&(listenerList=listenerList.concat(this.listenerMap[1][type]));break;case 3:listenerList=this.listenerMap[0][type]}var toFire=[],ret;for(l=listenerList.length;target&&l;){for(i=0;i-1&&target.hasAttribute("disabled")?toFire=[]:listener.matcher.call(target,listener.matcherParam,target)&&toFire.push([event,target,listener]);if(target===root)break;if(l=listenerList.length,(target=target.parentElement||target.parentNode)instanceof HTMLDocument)break}for(i=0;i-1)&&!1===(returned=this.fire.apply(this,toFire[i]))){toFire[i][0][eventIgnore]=!0,toFire[i][0].preventDefault(),ret=!1;break}return ret}},Delegate.prototype.fire=function(event,target,listener){return listener.handler.call(target,event,target)},Delegate.prototype.destroy=function(){this.off(),this.root()};var _default=Delegate;exports.default=_default,module.exports=exports.default}))),CollapsibleManager=function(){function CollapsibleManager(){_classCallCheck(this,CollapsibleManager),this.domDelegate=new Delegate(document.body),this._attachListeners()}return _createClass(CollapsibleManager,[{key:"_attachListeners",value:function _attachListeners(){this.domDelegate.on("click",'[data-action="toggle-collapsible"]:not([disabled])',this._toggleCollapsible.bind(this)),document.addEventListener("collapsible:toggle",this._toggleCollapsible.bind(this))}},{key:"_toggleCollapsible",value:function _toggleCollapsible(event,target){var _this=this;!target&&event.detail&&(target=document.querySelector('[aria-controls="'.concat(event.detail.id,'"]')));var isOpen="true"===target.getAttribute("aria-expanded"),parentCollapsible=target.parentNode;isOpen?this._close(parentCollapsible):this._open(parentCollapsible),"false"!==target.getAttribute("data-close-siblings")&&Dom.getSiblings(parentCollapsible).forEach((function(collapsibleToClose){return _this._close(collapsibleToClose)}))}},{key:"_open",value:function _open(collapsible){var toggleButton=collapsible.querySelector("[aria-controls]");if(toggleButton&&"true"!==toggleButton.getAttribute("aria-expanded")){var collapsibleContent=collapsible.querySelector("#".concat(toggleButton.getAttribute("aria-controls")));toggleButton.setAttribute("aria-expanded","true"),collapsibleContent.hasAttribute("aria-hidden")&&collapsibleContent.setAttribute("aria-hidden","false"),Animation.slideDown(collapsibleContent,(function(){toggleButton.hasAttribute("data-collapsible-force-overflow")&&(collapsibleContent.style.overflow="visible");var autofocusElement=collapsibleContent.querySelector("[autofocus]");autofocusElement&&autofocusElement.focus()}))}}},{key:"_close",value:function _close(collapsible){var toggleButton=collapsible.querySelector("[aria-controls]");if(toggleButton&&"false"!==toggleButton.getAttribute("aria-expanded")){var collapsibleContent=collapsible.querySelector("#".concat(toggleButton.getAttribute("aria-controls")));toggleButton.hasAttribute("data-collapsible-force-overflow")&&(collapsibleContent.style.overflow="hidden"),collapsibleContent.hasAttribute("aria-hidden")&&collapsibleContent.setAttribute("aria-hidden","true"),toggleButton.setAttribute("aria-expanded","false"),Animation.slideUp(collapsibleContent)}}}]),CollapsibleManager}(),CountrySelector=function(){function CountrySelector(countrySelect,provinceSelect){_classCallCheck(this,CountrySelector),this.countrySelect=countrySelect,this.provinceSelect=provinceSelect,this.countrySelect&&this.provinceSelect&&(this._attachListeners(),this._initSelectors())}return _createClass(CountrySelector,[{key:"destroy",value:function destroy(){this.countrySelect&&this.countrySelect.removeEventListener("change",this._onCountryChangedListener)}},{key:"_initSelectors",value:function _initSelectors(){var defaultCountry=this.countrySelect.getAttribute("data-default");if(defaultCountry){for(var i=0;i!==this.countrySelect.options.length;++i)if(this.countrySelect.options[i].text===defaultCountry){this.countrySelect.selectedIndex=i;break}}else this.countrySelect.selectedIndex=0;var event=new Event("change",{bubbles:!0});this.countrySelect.dispatchEvent(event);var defaultProvince=this.provinceSelect.getAttribute("data-default");defaultProvince&&(this.provinceSelect.value=defaultProvince)}},{key:"_attachListeners",value:function _attachListeners(){this._onCountryChangedListener=this._onCountryChanged.bind(this),this.countrySelect.addEventListener("change",this._onCountryChangedListener)}},{key:"_onCountryChanged",value:function _onCountryChanged(){var _this=this,selectedOption=this.countrySelect.options[this.countrySelect.selectedIndex];if(selectedOption){var provinces=JSON.parse(selectedOption.getAttribute("data-provinces")||"[]");this.provinceSelect.innerHTML="",0!==provinces.length?(provinces.forEach((function(data){_this.provinceSelect.options.add(new Option(data[1],data[0]))})),this.provinceSelect.closest(".form__input-wrapper").style.display="block"):this.provinceSelect.closest(".form__input-wrapper").style.display="none"}}}]),CountrySelector}(),Responsive=function(){function Responsive(){_classCallCheck(this,Responsive)}return _createClass(Responsive,null,[{key:"matchesBreakpoint",value:function matchesBreakpoint(breakpoint){switch(breakpoint){case"phone":return window.matchMedia("screen and (max-width: 640px)").matches;case"tablet":return window.matchMedia("screen and (min-width: 641px) and (max-width: 1023px)").matches;case"tablet-and-up":return window.matchMedia("screen and (min-width: 641px)").matches;case"pocket":return window.matchMedia("screen and (max-width: 1023px)").matches;case"lap":return window.matchMedia("screen and (min-width: 1024px) and (max-width: 1279px)").matches;case"lap-and-up":return window.matchMedia("screen and (min-width: 1024px)").matches;case"desk":return window.matchMedia("screen and (min-width: 1280px)").matches;case"widescreen":return window.matchMedia("screen and (min-width: 1440px)").matches;case"supports-hover":return window.matchMedia("(hover: hover) and (pointer: fine)").matches}}},{key:"getCurrentBreakpoint",value:function getCurrentBreakpoint(){return window.matchMedia("screen and (max-width: 640px)").matches?"phone":window.matchMedia("screen and (min-width: 641px) and (max-width: 1023px)").matches?"tablet":window.matchMedia("screen and (min-width: 1024px) and (max-width: 1279px)").matches?"lap":window.matchMedia("screen and (min-width: 1280px)").matches?"desk":void 0}}]),Responsive}(),DesktopNavigation=function(){function DesktopNavigation(element,navigationLayout,openTrigger){_classCallCheck(this,DesktopNavigation),this.element=element,this.delegateElement=new Delegate(this.element),this.delegateRoot=new Delegate(document.documentElement),this.useInlineNavigation="inline"===navigationLayout,this.isNavigationVisible=this.useInlineNavigation,this.openTrigger=openTrigger,Responsive.matchesBreakpoint("supports-hover")||(this.openTrigger="click"),this.openItems=[],this.dropdownActivationTimeouts={},this.dropdownDeactivationTimeouts={},this.DROPDOWN_TIMEOUT=100,this._attachListeners(),this.useInlineNavigation&&this._setupInlineNavigation()}return _createClass(DesktopNavigation,[{key:"destroy",value:function destroy(){this.delegateElement.off(),this.delegateRoot.off()}},{key:"onBlockSelect",value:function onBlockSelect(event){var _this=this;this.useInlineNavigation||this._openNavigation(),Dom.getSiblings(event.target.parentNode,".is-dropdown-open").forEach((function(openItem){_this._deactivateDropdown(event,openItem.querySelector('[data-type="menuitem"][aria-haspopup]'))})),this._activateDropdown(event,event.target.previousElementSibling)}},{key:"onBlockDeselect",value:function onBlockDeselect(event){this.useInlineNavigation||this._closeNavigation(),this._deactivateDropdown(event,event.target.parentNode)}},{key:"_attachListeners",value:function _attachListeners(){this.delegateElement.on("focusout",this._onFocusOut.bind(this)),this.delegateRoot.on("click",this._onClick.bind(this)),this.delegateElement.on("click",'[data-action="toggle-menu"]',this._toggleNavigation.bind(this)),"hover"===this.openTrigger?(this.delegateElement.on("focusin",'[data-type="menuitem"][aria-haspopup]',this._activateDropdown.bind(this)),this.delegateElement.on("mouseover",'[data-type="menuitem"][aria-haspopup]',this._activateDropdown.bind(this)),this.delegateElement.on("mouseover",'[data-type="menu"][aria-hidden="false"]',this._blockDropdownDeactivation.bind(this)),this.delegateElement.on("focusout",".is-dropdown-open",this._deactivateDropdown.bind(this)),this.delegateElement.on("mouseout",".is-dropdown-open",this._deactivateDropdown.bind(this))):this.delegateElement.on("click",'[data-type="menuitem"][aria-haspopup]',this._toggleDropdown.bind(this))}},{key:"_onFocusOut",value:function _onFocusOut(event){null===event.relatedTarget||this.element.contains(event.relatedTarget)||this._closeNavigation()}},{key:"_onClick",value:function _onClick(event){this.element.contains(event.target)||this._closeNavigation()}},{key:"_openNavigation",value:function _openNavigation(){this.useInlineNavigation||(this.element.querySelector('[data-action="toggle-menu"]').setAttribute("aria-expanded","true"),this.element.querySelector('[data-type="menu"]').setAttribute("aria-hidden","false"),this.isNavigationVisible=!0)}},{key:"_closeNavigation",value:function _closeNavigation(){var _this2=this,cloneOpenItems;(this.useInlineNavigation||(this.element.querySelector('[data-action="toggle-menu"]').setAttribute("aria-expanded","false"),this.element.querySelector('[data-type="menu"]').setAttribute("aria-hidden","true")),this.isNavigationVisible=!1,"click"===this.openTrigger)&&this.openItems.slice(0).forEach((function(item){_this2._deactivateDropdown(event,item)}))}},{key:"_toggleNavigation",value:function _toggleNavigation(event){this.isNavigationVisible?this._closeNavigation():this._openNavigation()}},{key:"_toggleDropdown",value:function _toggleDropdown(event,target){"false"===target.getAttribute("aria-expanded")&&event.preventDefault(),"true"===target.getAttribute("aria-expanded")?"#"===target.getAttribute("href")&&(event.preventDefault(),this._deactivateDropdown(event,target.closest(".is-dropdown-open"))):this._activateDropdown(event,target)}},{key:"_activateDropdown",value:function _activateDropdown(event,target){var _this3=this,cloneOpenItems;"click"===this.openTrigger&&this.openItems.slice(0).forEach((function(item){item.contains(target)||_this3._deactivateDropdown(event,item)}));var menuToOpen=Dom.getSiblings(target,"[aria-hidden]")[0],callback=function callback(){if(target.setAttribute("aria-expanded","true"),target.parentNode.classList.add("is-dropdown-open"),menuToOpen.setAttribute("aria-hidden","false"),"hover"===_this3.openTrigger&&_this3.dropdownDeactivationTimeouts[menuToOpen.id]&&(clearTimeout(_this3.dropdownDeactivationTimeouts[menuToOpen.id]),delete _this3.dropdownDeactivationTimeouts[menuToOpen.id]),_this3.useInlineNavigation){var windowWidth=window.innerWidth,shouldOpenLeft=!1;menuToOpen.querySelectorAll(".nav-dropdown").forEach((function(subSubMenu){subSubMenu.getBoundingClientRect().right>windowWidth&&(shouldOpenLeft=!0)})),shouldOpenLeft&&menuToOpen.classList.add("nav-dropdown--inverse")}target.closest('[data-type="menu"]').classList.add("nav-dropdown--glued"),menuToOpen.classList.contains("mega-menu")&&_this3._setupMegaMenu(menuToOpen),"click"===_this3.openTrigger&&_this3.openItems.push(target.parentNode)};if("click"===this.openTrigger)callback();else{for(var toDeactivate in this.dropdownActivationTimeouts)this.dropdownActivationTimeouts.hasOwnProperty(toDeactivate)&&(clearTimeout(this.dropdownActivationTimeouts[toDeactivate]),delete this.dropdownActivationTimeouts[toDeactivate]);callback()}}},{key:"_deactivateDropdown",value:function _deactivateDropdown(event,target){var _this4=this;if("hover"!==this.openTrigger||!target.contains(event.relatedTarget)){var menuToClose=target.querySelector("[aria-hidden]"),callback=function callback(){var menuToClose;if(target.classList.remove("is-dropdown-open"),target.querySelector('[data-type="menuitem"]').setAttribute("aria-expanded","false"),target.querySelector("[aria-hidden]").setAttribute("aria-hidden","true"),target.closest('[data-type="menu"]').classList.remove("nav-dropdown--glued"),"click"===_this4.openTrigger){target.querySelectorAll(".is-dropdown-open").forEach((function(item){_this4._deactivateDropdown(event,item);var index=_this4.openItems.indexOf(item);index>-1&&_this4.openItems.splice(index,1)}));var index=_this4.openItems.indexOf(target);index>-1&&_this4.openItems.splice(index,1)}};"click"===this.openTrigger?callback():this.dropdownDeactivationTimeouts[menuToClose.id]=setTimeout((function(){callback(),delete _this4.dropdownDeactivationTimeouts[menuToClose.id]}),this.DROPDOWN_TIMEOUT)}}},{key:"_blockDropdownDeactivation",value:function _blockDropdownDeactivation(event,target){if(void 0!==this.dropdownDeactivationTimeouts[target.id])for(var toDeactivate in clearTimeout(this.dropdownDeactivationTimeouts[target.id]),delete this.dropdownDeactivationTimeouts[target.id],this.dropdownActivationTimeouts)this.dropdownActivationTimeouts.hasOwnProperty(toDeactivate)&&(clearTimeout(this.dropdownActivationTimeouts[toDeactivate]),delete this.dropdownActivationTimeouts[toDeactivate])}},{key:"_setupMegaMenu",value:function _setupMegaMenu(megaMenu){if(!this.useInlineNavigation){var navDropdownWidth=megaMenu.closest(".nav-dropdown").clientWidth;megaMenu.style.maxWidth=Math.min(1400-navDropdownWidth,parseInt(window.innerWidth-navDropdownWidth-80))+"px"}}},{key:"_setupInlineNavigation",value:function _setupInlineNavigation(){var _this5=this;this.element.querySelectorAll(".mega-menu").forEach((function(megaMenu){megaMenu.closest(".nav-bar__item").classList.add("nav-bar__item--static")})),"MutationObserver"in window&&(this.dropdownMenuObserver=new MutationObserver((function(mutationList){mutationList.forEach((function(mutation){"false"===mutation.target.getAttribute("aria-hidden")&&mutation.target.style.setProperty("--distance-to-top","".concat(mutation.target.getBoundingClientRect().top,"px"))}))})),this.element.querySelectorAll(".nav-dropdown .nav-dropdown").forEach((function(item){_this5.dropdownMenuObserver.observe(item,{attributes:!0,attributeFilter:["aria-hidden"]})})))}}]),DesktopNavigation}(),fastdom=createCommonjsModule((function(module){!function(win){var debug=function(){},raf=win.requestAnimationFrame||win.webkitRequestAnimationFrame||win.mozRequestAnimationFrame||win.msRequestAnimationFrame||function(cb){return setTimeout(cb,16)};function FastDom(){var self=this;this.reads=[],this.writes=[],this.raf=raf.bind(win)}function scheduleFlush(fastdom){fastdom.scheduled||(fastdom.scheduled=!0,fastdom.raf(flush.bind(null,fastdom)))}function flush(fastdom){var writes=fastdom.writes,reads=fastdom.reads,error;try{reads.length,runTasks(reads),writes.length,runTasks(writes)}catch(e){error=e}if(fastdom.scheduled=!1,(reads.length||writes.length)&&scheduleFlush(fastdom),error){if(error.message,!fastdom.catch)throw error;fastdom.catch(error)}}function runTasks(tasks){for(var task;task=tasks.shift();)task()}function remove(array,item){var index=array.indexOf(item);return!!~index&&!!array.splice(index,1)}function mixin(target,source){for(var key in source)source.hasOwnProperty(key)&&(target[key]=source[key])}FastDom.prototype={constructor:FastDom,measure:function measure(fn,ctx){var task=ctx?fn.bind(ctx):fn;return this.reads.push(task),scheduleFlush(this),task},mutate:function mutate(fn,ctx){var task=ctx?fn.bind(ctx):fn;return this.writes.push(task),scheduleFlush(this),task},clear:function clear(task){return remove(this.reads,task)||remove(this.writes,task)},extend:function extend(props){if("object"!=_typeof(props))throw new Error("expected object");var child=Object.create(this);return mixin(child,props),child.fastdom=this,child.initialize&&child.initialize(),child},catch:null};var exports=win.fastdom=win.fastdom||new FastDom;module.exports=exports}("undefined"!=typeof window?window:commonjsGlobal)})),CollectionFilterDrawer=function(){function CollectionFilterDrawer(options){_classCallCheck(this,CollectionFilterDrawer),this.element=document.getElementById("mobile-collection-filters"),this.delegateRoot=new Delegate(document.documentElement),this.options=options,this.isOpen=!1,this.element&&this._attachListeners()}return _createClass(CollectionFilterDrawer,[{key:"destroy",value:function destroy(){this.delegateRoot.off()}},{key:"_attachListeners",value:function _attachListeners(){this.delegateRoot.on("click",'[aria-controls="mobile-collection-filters"][data-action="open-drawer"]',this.open.bind(this)),this.delegateRoot.on("click",'#mobile-collection-filters [data-action="close-drawer"]',this.close.bind(this)),document.addEventListener("collection-filter:close",this.close.bind(this)),document.addEventListener("click",this._detectOutsideClick.bind(this)),window.addEventListener("resize",this._computeDrawerHeight.bind(this))}},{key:"open",value:function open(event){event&&event.stopPropagation(),this._computeDrawerHeight(),this.isOpen=!0,document.querySelector('[aria-controls="mobile-collection-filters"]').setAttribute("aria-expanded","true"),document.getElementById("mobile-collection-filters").setAttribute("aria-hidden","false"),document.body.classList.add("no-mobile-scroll")}},{key:"close",value:function close(event){event&&event.stopPropagation(),this.isOpen=!1,document.querySelector('[aria-controls="mobile-collection-filters"]').setAttribute("aria-expanded","false"),document.getElementById("mobile-collection-filters").setAttribute("aria-hidden","true"),document.body.classList.remove("no-mobile-scroll")}},{key:"_computeDrawerHeight",value:function _computeDrawerHeight(){document.getElementById("mobile-collection-filters").querySelector(".collection-drawer").style.maxHeight="".concat(window.innerHeight,"px")}},{key:"_filtersHaveChanged",value:function _filtersHaveChanged(newFilters){var _this=this;this.element&&fastdom.mutate((function(){var filterCountElement=_this.element.querySelector(".collection-drawer__filter-count");filterCountElement.innerText="(".concat(newFilters.length,")"),filterCountElement.style.display=0===newFilters.length?"none":"inline",_this.element.querySelector('[data-action="clear-tags"]').style.display=0===newFilters.length?"none":"block","group"===_this.options.filterType&&_this.element.querySelectorAll(".collection__filter-item-active").forEach((function(item){var parentList,activeDataTag=item.closest(".collection__filter-group").querySelector(".is-selected[data-tag]");activeDataTag?(item.style.display="block",item.innerText=activeDataTag.getAttribute("data-tag-user")):item.style.display="none"}))}))}},{key:"_detectOutsideClick",value:function _detectOutsideClick(event){this.isOpen&&!event.target.closest(".collection-drawer__inner")&&this.close()}}]),CollectionFilterDrawer}(),ExitPopup=function(){function ExitPopup(element){_classCallCheck(this,ExitPopup),this.element=element,this.delegateElement=new Delegate(this.element),this.options=JSON.parse(element.getAttribute("data-popup-settings")),this.hasOpenOnceInCurrentPage=!1;try{"#exit-popup"===window.location.hash&&""!==window.theme.pageType&&this._openPopup()}catch(error){}this._attachListeners()}return _createClass(ExitPopup,[{key:"destroy",value:function destroy(){this.delegateElement.off()}},{key:"_attachListeners",value:function _attachListeners(){var _this=this;Responsive.matchesBreakpoint("supports-hover")&&(this.delegateElement.on("click",'[data-action="close-popup"]',this._closePopup.bind(this)),document.body.addEventListener("mouseleave",(function(){_this.hasOpenOnceInCurrentPage||(!_this.options.showOnlyOnce||_this.options.showOnlyOnce&&null===localStorage.getItem("themeExitPopup"))&&_this._openPopup()})),this._clickOutsideListener=this._checkClickOutside.bind(this))}},{key:"_openPopup",value:function _openPopup(){window.theme.isNewsletterPopupOpen||(this.element.setAttribute("aria-hidden","false"),localStorage.setItem("themeExitPopup","true"),this.hasOpenOnceInCurrentPage=!0,window.theme.isExitPopupOpen=!0,this.delegateElement.on("click",this._clickOutsideListener))}},{key:"_closePopup",value:function _closePopup(){this.element.setAttribute("aria-hidden","true"),window.theme.isExitPopupOpen=!1,this.delegateElement.off("click",this._clickOutsideListener)}},{key:"_checkClickOutside",value:function _checkClickOutside(event){this.element.contains(event.target)&&this.element!==event.target||this._closePopup()}}]),ExitPopup}(),LoadingBar=function(){function LoadingBar(){_classCallCheck(this,LoadingBar),this.element=document.querySelector(".loading-bar"),this.element&&(document.addEventListener("theme:loading:start",this._onLoadingStart.bind(this)),document.addEventListener("theme:loading:end",this._onLoadingEnd.bind(this)),this.element.addEventListener("transitionend",this._onTransitionEnd.bind(this)))}return _createClass(LoadingBar,[{key:"_onLoadingStart",value:function _onLoadingStart(){this.element.classList.add("is-visible"),this.element.style.width="40%"}},{key:"_onLoadingEnd",value:function _onLoadingEnd(){this.element.style.width="100%",this.element.classList.add("is-finished")}},{key:"_onTransitionEnd",value:function _onTransitionEnd(event){"width"===event.propertyName&&this.element.classList.contains("is-finished")&&(this.element.classList.remove("is-visible"),this.element.classList.remove("is-finished"),this.element.style.width="0")}}]),LoadingBar}(),Accessibility=function(){function Accessibility(){_classCallCheck(this,Accessibility)}return _createClass(Accessibility,null,[{key:"trapFocus",value:function trapFocus(container,namespace){this.listeners=this.listeners||{};var elementToFocus=container.querySelector("[autofocus]")||container;container.setAttribute("tabindex","-1"),elementToFocus.focus(),this.listeners[namespace]=function(event){container===event.target||container.contains(event.target)||elementToFocus.focus()},document.addEventListener("focusin",this.listeners[namespace])}},{key:"removeTrapFocus",value:function removeTrapFocus(container,namespace){container&&container.removeAttribute("tabindex"),document.removeEventListener("focusin",this.listeners[namespace])}},{key:"clearTrapFocus",value:function clearTrapFocus(){for(var key in this.listeners)this.listeners.hasOwnProperty(key)&&document.removeEventListener("focusin",this.listeners[key]);this.listeners={}}}]),Accessibility}(),Cart=function(){function Cart(element,options){_classCallCheck(this,Cart),this.element=element,this.delegateElement=new Delegate(this.element),this.delegateRoot=new Delegate(document.documentElement),this.options=options,this.miniCartElement=this.element.querySelector(".mini-cart"),this.isMiniCartOpen=!1,"cart"!==window.theme.pageType&&this.miniCartElement&&(this.miniCartToggleElement=this.element.querySelector('[aria-controls="'.concat(this.miniCartElement.id,'"]')),this._checkMiniCartScrollability()),this.itemCount=window.theme.cartCount,this._attachListeners()}return _createClass(Cart,[{key:"destroy",value:function destroy(){this.delegateElement.off(),this.delegateRoot.off(),window.removeEventListener("resize",this._calculateMiniCartHeightListener)}},{key:"_attachListeners",value:function _attachListeners(){this._calculateMiniCartHeightListener=this._calculateMiniCartHeight.bind(this),"cart"!==window.theme.pageType&&"page"!==window.theme.cartType&&(this.delegateElement.on("click",'[data-action="toggle-mini-cart"]',this._toggleMiniCart.bind(this)),this.delegateRoot.on("click",this._onWindowClick.bind(this)),window.addEventListener("resize",this._calculateMiniCartHeightListener)),this.delegateRoot.on("click",'[data-action="decrease-quantity"]',this._updateQuantity.bind(this)),this.delegateRoot.on("click",'[data-action="increase-quantity"]',this._updateQuantity.bind(this)),this.delegateRoot.on("change",".quantity-selector__value",this._updateQuantity.bind(this)),this.delegateRoot.on("keyup",".quantity-selector__value",this._updateQuantitySize.bind(this)),this.delegateRoot.on("product:added",this._onProductAdded.bind(this)),this.delegateRoot.on("cart:refresh",this._onCartRefresh.bind(this))}},{key:"_toggleMiniCart",value:function _toggleMiniCart(event){event&&event.preventDefault(),this.isMiniCartOpen?this._closeMiniCart():this._openMiniCart()}},{key:"_openMiniCart",value:function _openMiniCart(){this.miniCartToggleElement.setAttribute("aria-expanded","true"),"phone"===Responsive.getCurrentBreakpoint()&&this.miniCartToggleElement.querySelector(".header__cart-icon").setAttribute("aria-expanded","true"),this.miniCartElement.setAttribute("aria-hidden","false"),this.isMiniCartOpen=!0,this._calculateMiniCartHeight(),Accessibility.trapFocus(this.miniCartElement,"mini-cart"),document.body.classList.add("no-mobile-scroll")}},{key:"_closeMiniCart",value:function _closeMiniCart(){this.miniCartToggleElement.setAttribute("aria-expanded","false"),"phone"===Responsive.getCurrentBreakpoint()&&(this.miniCartToggleElement.querySelector(".header__cart-icon").setAttribute("aria-expanded","false"),this.miniCartElement.style.maxHeight=""),this.miniCartElement.setAttribute("aria-hidden","true"),this.isMiniCartOpen=!1,document.body.classList.remove("no-mobile-scroll")}},{key:"_calculateMiniCartHeight",value:function _calculateMiniCartHeight(){if("phone"===Responsive.getCurrentBreakpoint())if(this.isMiniCartOpen){var maxHeight=window.innerHeight-document.querySelector(".header").getBoundingClientRect().bottom;this.miniCartElement.style.maxHeight="".concat(maxHeight,"px");var miniCartContentElement=this.miniCartElement.querySelector(".mini-cart__content"),miniCartRecapElement=this.miniCartElement.querySelector(".mini-cart__recap");miniCartRecapElement&&(miniCartContentElement.style.maxHeight="".concat(maxHeight-miniCartRecapElement.clientHeight,"px"))}else this.miniCartElement.style.maxHeight="",this.miniCartElement.querySelector(".mini-cart__content").style.maxHeight="";else this.miniCartElement.style.maxHeight="",this.miniCartElement.querySelector(".mini-cart__content").style.maxHeight=""}},{key:"_updateQuantity",value:function _updateQuantity(event,target){var _this=this,parsedQuantity=1;parsedQuantity="INPUT"===target.tagName?parseInt(target.value):parseInt(target.getAttribute("data-quantity")),"page"!==window.theme.cartType?(document.dispatchEvent(new CustomEvent("theme:loading:start")),fetch("".concat(window.routes.cartChangeUrl,".js"),{body:JSON.stringify({id:target.getAttribute("data-line-id"),quantity:parsedQuantity}),credentials:"same-origin",method:"POST",headers:{"Content-Type":"application/json","X-Requested-With":"XMLHttpRequest"}}).then((function(cart){cart.json().then((function(content){_this.itemCount=content.item_count,_this._rerender(!1).then((function(){document.dispatchEvent(new CustomEvent("theme:loading:end"))}))}))})),event.preventDefault()):target.hasAttribute("data-href")?window.location.href=target.getAttribute("data-href"):window.location.href="".concat(window.routes.cartChangeUrl,"?id=").concat(target.getAttribute("data-line-id"),"&quantity=").concat(parsedQuantity)}},{key:"_updateQuantitySize",value:function _updateQuantitySize(event,target){target.setAttribute("size",Math.max(target.value.length,2))}},{key:"_rerender",value:function _rerender(){var _this2=this,scrollToTop=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],url="";return url="cart"!==window.theme.pageType?"".concat(window.routes.cartUrl,"?view=mini-cart×tamp=").concat(Date.now()):"".concat(window.routes.cartUrl,"?timestamp=").concat(Date.now()),fetch(url,{credentials:"same-origin",method:"GET"}).then((function(content){content.text().then((function(html){var myDiv=document.createElement("div");if(myDiv.innerHTML=html,myDiv.firstElementChild&&myDiv.firstElementChild.hasAttribute("data-item-count")&&(_this2.itemCount=parseInt(myDiv.firstElementChild.getAttribute("data-item-count"))),_this2.element.querySelector(".header__cart-count").textContent=_this2.itemCount,"drawer"===window.theme.cartType)if("cart"!==window.theme.pageType){var tempElement=document.createElement("div");tempElement.innerHTML=html;var miniCartItemListElement=_this2.miniCartElement.querySelector(".mini-cart__line-item-list"),scrollPosition=null;miniCartItemListElement&&(scrollPosition=miniCartItemListElement.scrollTop),_this2.miniCartElement.innerHTML=tempElement.querySelector(".mini-cart").innerHTML;var newMiniCartItemListElement=_this2.miniCartElement.querySelector(".mini-cart__line-item-list");newMiniCartItemListElement&&null!==scrollPosition&&(newMiniCartItemListElement.scrollTop=scrollPosition),_this2._checkMiniCartScrollability(),_this2._calculateMiniCartHeight(),_this2.element.dispatchEvent(new CustomEvent("cart:rerendered"))}else{var _tempElement=document.createElement("div"),originalCart;_tempElement.innerHTML=html,document.querySelector('[data-section-type="cart"]').innerHTML=_tempElement.querySelector('[data-section-type="cart"]').innerHTML,scrollToTop&&window.scrollTo({top:0,behavior:"smooth"}),window.SPR&&(window.SPR.initDomEls(),window.SPR.loadBadges()),_this2.element.dispatchEvent(new CustomEvent("cart:rerendered",{bubbles:!0}))}}))}))}},{key:"_checkMiniCartScrollability",value:function _checkMiniCartScrollability(){var miniCartItemList=this.miniCartElement.querySelector(".mini-cart__line-item-list");miniCartItemList&&miniCartItemList.scrollHeight>miniCartItemList.clientHeight&&miniCartItemList.classList.add("is-scrollable")}},{key:"_onProductAdded",value:function _onProductAdded(event){var _this3=this;this.itemCount+=event.detail.quantity,this._onCartRefresh().then((function(){"cart"!==window.theme.pageType&&(_this3.options.useStickyHeader||window.scrollTo({top:0,behavior:"smooth"}),_this3._openMiniCart())}))}},{key:"_onCartRefresh",value:function _onCartRefresh(event){var scrollToTop=!0;return event&&event.detail&&(scrollToTop=event.detail.scrollToTop),this._rerender(scrollToTop).then((function(){document.dispatchEvent(new CustomEvent("theme:loading:end"))}))}},{key:"_onWindowClick",value:function _onWindowClick(event){this.miniCartElement&&this.isMiniCartOpen&&!this.element.contains(event.target)&&this._closeMiniCart()}}]),Cart}(),MobileNavigation=function(){function MobileNavigation(element){_classCallCheck(this,MobileNavigation),this.element=element,this.delegateElement=new Delegate(this.element),this.delegateRoot=new Delegate(document.documentElement),this.mobileMenuElement=this.element.querySelector(".mobile-menu"),this.mobileMenuToggleElement=this.element.querySelector('[aria-controls="'.concat(this.mobileMenuElement.id,'"]')),this.isOpen=!1,this._attachListeners()}return _createClass(MobileNavigation,[{key:"destroy",value:function destroy(){this.delegateElement.off(),this.delegateRoot.off(),window.removeEventListener("resize",this._calculatMaxHeightListener)}},{key:"_attachListeners",value:function _attachListeners(){this._calculatMaxHeightListener=this._calculateMaxHeight.bind(this),this.delegateElement.on("click",'[data-action="toggle-menu"]',this._toggleMenu.bind(this)),this.delegateElement.on("click",'[data-action="open-panel"]',this._openPanel.bind(this)),this.delegateElement.on("click",'[data-action="close-panel"]',this._closePanel.bind(this)),this.delegateRoot.on("click",this._onWindowClick.bind(this)),window.addEventListener("resize",this._calculatMaxHeightListener)}},{key:"_toggleMenu",value:function _toggleMenu(){this.isOpen=!this.isOpen,this.mobileMenuToggleElement.setAttribute("aria-expanded",this.isOpen?"true":"false"),this.mobileMenuElement.setAttribute("aria-hidden",this.isOpen?"false":"true"),this.isOpen?(this._calculateMaxHeight(),document.body.classList.add("no-mobile-scroll")):(this.mobileMenuElement.style.maxHeight="",this.element.querySelectorAll(".mobile-menu__panel.is-open").forEach((function(item){item.classList.remove("is-open")})),document.body.classList.remove("no-mobile-scroll"))}},{key:"_openPanel",value:function _openPanel(event,target){target.setAttribute("aria-expanded","true"),this.element.querySelector("#".concat(target.getAttribute("aria-controls"))).classList.add("is-open")}},{key:"_closePanel",value:function _closePanel(event,target){var panelToClose=target.closest(".mobile-menu__panel.is-open");panelToClose.classList.remove("is-open"),this.element.querySelector('[aria-controls="'.concat(panelToClose.id,'"]')).setAttribute("aria-expanded","false")}},{key:"_calculateMaxHeight",value:function _calculateMaxHeight(){this.isOpen&&(this.mobileMenuElement.style.maxHeight="".concat(window.innerHeight-document.querySelector(".header").getBoundingClientRect().bottom,"px"))}},{key:"_onWindowClick",value:function _onWindowClick(event){this.isOpen&&!this.element.contains(event.target)&&this._toggleMenu()}}]),MobileNavigation}(),ModalManager=function(){function ModalManager(){_classCallCheck(this,ModalManager),this.domDelegate=new Delegate(document.body),this.activeModal=document.querySelector('.modal[aria-hidden="false"]'),this._attachListeners()}return _createClass(ModalManager,[{key:"_attachListeners",value:function _attachListeners(){this.domDelegate.on("click",'[data-action="open-modal"]',this._openModal.bind(this)),this.domDelegate.on("click",'[data-action="close-modal"]',this._closeModal.bind(this)),document.addEventListener("modal:close",this._closeModal.bind(this)),this._clickOutsideListener=this._checkClickOutside.bind(this),this.activeModal&&(document.documentElement.classList.add("is-locked"),this.domDelegate.on("click",this._clickOutsideListener))}},{key:"_openModal",value:function _openModal(event,target){var _this=this,modal=document.querySelector("#".concat(target.getAttribute("aria-controls")));if(modal){var onOpen=function onOpen(event){"visibility"===event.propertyName&&(modal.removeEventListener("transitionend",onOpen),Accessibility.trapFocus(modal,"modal"),_this.activeModal=modal)};return modal.addEventListener("transitionend",onOpen),modal.setAttribute("aria-hidden","false"),document.documentElement.classList.add("is-locked"),this.domDelegate.on("click",this._clickOutsideListener),!1}}},{key:"_closeModal",value:function _closeModal(){var _this2=this;if(this.activeModal){var onClose=function onClose(event){"visibility"===event.propertyName&&(_this2.activeModal.removeEventListener("transitionend",onClose),Accessibility.removeTrapFocus(_this2.activeModal,"modal"),_this2.activeModal.dispatchEvent(new CustomEvent("modal:closed")),_this2.activeModal=null)};this.activeModal.addEventListener("transitionend",onClose),this.activeModal.setAttribute("aria-hidden","true"),document.documentElement.classList.remove("is-locked"),this.domDelegate.off("click",this._clickOutsideListener)}}},{key:"_checkClickOutside",value:function _checkClickOutside(event){!this.activeModal||this.activeModal.contains(event.target)&&this.activeModal!==event.target||this._closeModal()}}]),ModalManager}(),NewsletterPopup=function(){function NewsletterPopup(element){_classCallCheck(this,NewsletterPopup),this.element=element,this.delegateElement=new Delegate(this.element),this.options=JSON.parse(element.getAttribute("data-popup-settings"));try{"#newsletter-popup"===window.location.hash&&""!==window.theme.pageType?this._openPopup():(!this.options.showOnlyOnce||this.options.showOnlyOnce&&null===localStorage.getItem("themePopup"))&&setTimeout(this._openPopup.bind(this),1e3*this.options.apparitionDelay)}catch(error){}this._attachListeners()}return _createClass(NewsletterPopup,[{key:"destroy",value:function destroy(){this.delegateElement.off()}},{key:"_attachListeners",value:function _attachListeners(){this.delegateElement.on("click",'[data-action="close-popup"]',this._closePopup.bind(this)),this._clickOutsideListener=this._checkClickOutside.bind(this)}},{key:"_openPopup",value:function _openPopup(){window.theme.isExitPopupOpen||(this.element.setAttribute("aria-hidden","false"),localStorage.setItem("themePopup","true"),window.theme.isNewsletterPopupOpen=!0,this.delegateElement.on("click",this._clickOutsideListener))}},{key:"_closePopup",value:function _closePopup(){this.element.setAttribute("aria-hidden","true"),window.theme.isNewsletterPopupOpen=!1,this.delegateElement.off("click")}},{key:"_checkClickOutside",value:function _checkClickOutside(event){this.element.contains(event.target)&&this.element!==event.target||this._closePopup()}}]),NewsletterPopup}(),OverflowScroller=function(){function OverflowScroller(element,options){_classCallCheck(this,OverflowScroller),element&&(this.element=element,this.options=options,this.lastKnownY=window.scrollY,this.currentTop=0,this.initialTopOffset=options.offsetTop||parseInt(window.getComputedStyle(this.element).top),this._attachListeners())}return _createClass(OverflowScroller,[{key:"destroy",value:function destroy(){window.removeEventListener("scroll",this._checkPositionListener)}},{key:"_attachListeners",value:function _attachListeners(){this._checkPositionListener=this._checkPosition.bind(this),window.addEventListener("scroll",this._checkPositionListener)}},{key:"_checkPosition",value:function _checkPosition(){var _this=this;fastdom.measure((function(){var bounds,maxTop=_this.element.getBoundingClientRect().top+window.scrollY-_this.element.offsetTop+_this.initialTopOffset,minTop=_this.element.clientHeight-window.innerHeight+(_this.options.offsetBottom||0);window.scrollY<_this.lastKnownY?_this.currentTop-=window.scrollY-_this.lastKnownY:_this.currentTop+=_this.lastKnownY-window.scrollY,_this.currentTop=Math.min(Math.max(_this.currentTop,-minTop),maxTop,_this.initialTopOffset),_this.lastKnownY=window.scrollY})),fastdom.mutate((function(){_this.element.style.top="".concat(_this.currentTop,"px")}))}}]),OverflowScroller}(),PopoverManager=function(){function PopoverManager(){_classCallCheck(this,PopoverManager),this.delegateElement=new Delegate(document.body),this.delegateRoot=new Delegate(document.documentElement),this.activePopover=null,this._attachListeners()}return _createClass(PopoverManager,[{key:"_attachListeners",value:function _attachListeners(){this.delegateElement.on("click",'[data-action="toggle-popover"]',this._togglePopover.bind(this)),this.delegateElement.on("click",'[data-action="show-popover-panel"]',this._showPanel.bind(this)),this.delegateRoot.on("click",this._onWindowClick.bind(this)),document.addEventListener("popover:close",this._closeActivePopover.bind(this)),window.addEventListener("resize",this._windowResized.bind(this))}},{key:"_togglePopover",value:function _togglePopover(event,target){var hasActivePopover=null!==this.activePopover,previousActivePopoverId=this.activePopover?this.activePopover.id:null;target.hasAttribute("data-follow-link")&&Responsive.matchesBreakpoint(target.getAttribute("data-follow-link"))||(hasActivePopover&&this._closeActivePopover(),(!hasActivePopover||hasActivePopover&&target.getAttribute("aria-controls")!==previousActivePopoverId)&&this._openPopover(target),event.preventDefault())}},{key:"_closeActivePopover",value:function _closeActivePopover(){this.activePopover.setAttribute("aria-hidden","true"),document.querySelector('[aria-controls="'.concat(this.activePopover.id,'"]')).setAttribute("aria-expanded","false"),this.activePopover=null}},{key:"_openPopover",value:function _openPopover(target){var element=document.getElementById(target.getAttribute("aria-controls"));if(target.setAttribute("aria-expanded","true"),element.setAttribute("aria-hidden","false"),"phone"===Responsive.getCurrentBreakpoint())element.style.height="".concat(window.innerHeight-document.querySelector(".header").getBoundingClientRect().bottom,"px");else{element.style.height="";var panelList=element.querySelector(".popover__panel-list");panelList&&(panelList.style.height="".concat(panelList.clientHeight,"px"))}this.activePopover=element}},{key:"_showPanel",value:function _showPanel(event,target){var panels;this.activePopover&&this.activePopover.querySelectorAll(".popover__panel").forEach((function(panel){panel.id===target.getAttribute("aria-controls")?(panel.classList.add("is-selected"),panel.closest(".popover__panel-list").style.height="".concat(panel.clientHeight,"px")):panel.classList.remove("is-selected")}))}},{key:"_onWindowClick",value:function _onWindowClick(event){"toggle-popover"===event.target.getAttribute("data-action")||event.target.closest('[data-action="toggle-popover"]')||this.activePopover&&!this.activePopover.contains(event.target)&&this._closeActivePopover()}},{key:"_windowResized",value:function _windowResized(){"phone"===Responsive.getCurrentBreakpoint()&&this.activePopover&&(this.activePopover.style.height="".concat(window.innerHeight-document.querySelector(".header").getBoundingClientRect().bottom,"px"))}}]),PopoverManager}(),ProductItemColorSwatch=function(){function ProductItemColorSwatch(element){_classCallCheck(this,ProductItemColorSwatch),this.element=element,this.delegateElement=new Delegate(this.element),this._attachListeners(),this.recalculateSwatches()}return _createClass(ProductItemColorSwatch,[{key:"destroy",value:function destroy(){this.delegateElement.off(),window.removeEventListener("resize",this._recalculateSwatchesListener)}},{key:"recalculateSwatches",value:function recalculateSwatches(){var _this=this;fastdom.measure((function(){_this.element.querySelectorAll(".product-item__swatch-list").forEach((function(swatchList){var currentWidth=swatchList.clientWidth,maxAllowedWidth=parseInt(Math.min(currentWidth,200)),maxFit=Math.floor(maxAllowedWidth/30);fastdom.mutate((function(){var colorSwatches=swatchList.querySelectorAll(".color-swatch");colorSwatches.forEach((function(colorSwatch,index){colorSwatch.classList.remove("color-swatch--view-more"),maxFit===index+1&&maxFit!==colorSwatches.length&&colorSwatch.classList.add("color-swatch--view-more")}))}))}))}))}},{key:"_attachListeners",value:function _attachListeners(){this._recalculateSwatchesListener=this.recalculateSwatches.bind(this),this.delegateElement.on("change",".product-item__swatch-list .color-swatch__radio",this._colorChanged.bind(this)),window.addEventListener("resize",this._recalculateSwatchesListener)}},{key:"_colorChanged",value:function _colorChanged(event,target){var productItem=target.closest(".product-item"),variantUrl=target.getAttribute("data-variant-url");productItem.querySelector(".product-item__image-wrapper").setAttribute("href",variantUrl),productItem.querySelector(".product-item__title").setAttribute("href",variantUrl);var originalImageElement=productItem.querySelector(".product-item__primary-image");if(target.hasAttribute("data-image-url")&&target.getAttribute("data-media-id")!==originalImageElement.getAttribute("data-media-id")){var newImageElement=document.createElement("img");newImageElement.className="product-item__primary-image lazyload image--fade-in",newImageElement.setAttribute("data-media-id",target.getAttribute("data-media-id")),newImageElement.setAttribute("data-src",target.getAttribute("data-image-url")),newImageElement.setAttribute("data-widths",target.getAttribute("data-image-widths")),newImageElement.setAttribute("data-sizes","auto"),originalImageElement.parentNode.style.paddingBottom="".concat(100/newImageElement.getAttribute("data-image-aspect-ratio"),"%"),originalImageElement.parentNode.replaceChild(newImageElement,originalImageElement)}}}]),ProductItemColorSwatch}(),Currency=function(){function Currency(){_classCallCheck(this,Currency)}return _createClass(Currency,null,[{key:"formatMoney",value:function formatMoney(cents,format){"string"==typeof cents&&(cents=cents.replace(".",""));var placeholderRegex=/\{\{\s*(\w+)\s*\}\}/,formatString=format||"${{amount}}";function defaultTo(value,defaultValue){return null==value||value!=value?defaultValue:value}function formatWithDelimiters(number,precision,thousands,decimal){if(precision=defaultTo(precision,2),thousands=defaultTo(thousands,","),decimal=defaultTo(decimal,"."),isNaN(number)||null==number)return 0;var parts=(number=(number/100).toFixed(precision)).split("."),dollarsAmount,centsAmount;return parts[0].replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1"+thousands)+(parts[1]?decimal+parts[1]:"")}var value="";switch(formatString.match(placeholderRegex)[1]){case"amount":value=formatWithDelimiters(cents,2);break;case"amount_no_decimals":value=formatWithDelimiters(cents,0);break;case"amount_with_space_separator":value=formatWithDelimiters(cents,2," ",".");break;case"amount_no_decimals_with_comma_separator":value=formatWithDelimiters(cents,0,",",".");break;case"amount_no_decimals_with_space_separator":value=formatWithDelimiters(cents,0," ");break;case"amount_with_comma_separator":value=formatWithDelimiters(cents,2,".",",")}return-1!==formatString.indexOf("with_comma_separator")?formatString.replace(placeholderRegex,value).replace(",00",""):formatString.replace(placeholderRegex,value).replace(".00","")}}]),Currency}(),Form=function(){function Form(){_classCallCheck(this,Form)}return _createClass(Form,null,[{key:"serialize",value:function serialize(form){function stringKey(key,value){var beginBracket=key.lastIndexOf("[");if(-1===beginBracket){var _hash={};return _hash[key]=value,_hash}var newKey=key.substr(0,beginBracket),newValue={};return newValue[key.substring(beginBracket+1,key.length-1)]=value,stringKey(newKey,newValue)}for(var hash={},i=0,len=form.elements.length;inewVariant.price?(productPrices.innerHTML+=''.concat(Currency.formatMoney(newVariant.price,window.theme.moneyFormat),""),productPrices.innerHTML+=''.concat(Currency.formatMoney(newVariant.compare_at_price,window.theme.moneyFormat),"")):productPrices.innerHTML+=''.concat(Currency.formatMoney(newVariant.price,window.theme.moneyFormat),""),productPrices.style.display=""}else productPrices.style.display="none"}},{key:"_updateInventory",value:function _updateInventory(newVariant){if(this.options.showInventoryQuantity&&newVariant){var productFormInventoryElement=this.element.querySelector(".product-form__inventory"),variantInventoryManagement=this.variantsInventories[newVariant.id].inventory_management,variantInventoryPolicy=this.variantsInventories[newVariant.id].inventory_policy,variantInventoryQuantity=this.variantsInventories[newVariant.id].inventory_quantity,variantInventoryMessage=this.variantsInventories[newVariant.id].inventory_message;productFormInventoryElement.classList.remove("inventory--high"),productFormInventoryElement.classList.remove("inventory--low"),newVariant.available&&(null!==variantInventoryManagement&&"deny"===variantInventoryPolicy&&this.options.lowInventoryThreshold>0&&variantInventoryQuantity<=this.options.lowInventoryThreshold?productFormInventoryElement.classList.add("inventory--low"):productFormInventoryElement.classList.add("inventory--high"));var stockCountdown=this.element.querySelector(".inventory-bar");if(stockCountdown){var stockCountdownProgress=Math.min(Math.max(variantInventoryQuantity/parseInt(stockCountdown.getAttribute("data-stock-countdown-max"))*100,0),100);stockCountdown.classList.toggle("inventory-bar--hidden",0===stockCountdownProgress),stockCountdown.firstElementChild.style.width="".concat(stockCountdownProgress,"%")}productFormInventoryElement.innerHTML=variantInventoryMessage}}},{key:"_updateSku",value:function _updateSku(newVariant,previousVariant){var productSku=this.element.querySelector(".product-meta__sku");if(productSku){var productSkuNumber=productSku.querySelector(".product-meta__sku-number");if(newVariant&&""!==newVariant.sku){if(previousVariant&&previousVariant.sku===newVariant.sku)return;productSkuNumber.innerHTML=newVariant.sku,productSku.style.display=""}else productSku.style.display="none"}}},{key:"_updateDiscountLabel",value:function _updateDiscountLabel(newVariant,previousVariant){if(window.theme.showDiscount){var discountLabel=this.element.querySelector(".product-meta .product-label--on-sale");if(discountLabel)if(newVariant&&newVariant.price".concat(Currency.formatMoney(newVariant.compare_at_price-newVariant.price,window.theme.moneyFormat),""),discountLabel.innerHTML="".concat(window.languages.collectionOnSaleLabel.replace("{{savings}}",savings)),discountLabel.style.display="inline-block"}else discountLabel.style.display="none"}}},{key:"_updateUnitPrice",value:function _updateUnitPrice(newVariant,previousVariant){var unitPriceMeasurement=this.element.querySelector(".unit-price-measurement");if(newVariant&&newVariant.unit_price_measurement){unitPriceMeasurement.parentNode.style.display="block",unitPriceMeasurement.querySelector(".unit-price-measurement__price").innerHTML=Currency.formatMoney(newVariant.unit_price,window.theme.moneyFormat),unitPriceMeasurement.querySelector(".unit-price-measurement__reference-unit").innerHTML=newVariant.unit_price_measurement.reference_unit;var unitPriceReferenceValue=unitPriceMeasurement.querySelector(".unit-price-measurement__reference-value");unitPriceReferenceValue&&(unitPriceReferenceValue.innerHTML=newVariant.unit_price_measurement.reference_value)}else unitPriceMeasurement.parentNode.style.display="none"}},{key:"_updateSelectors",value:function _updateSelectors(newVariant){var _this2=this;if(newVariant){var option1=newVariant.option1,option2=newVariant.option2,option3=newVariant.option3,variantsCount=this.productData.variants.length;this.variantSelectors.forEach((function(selector,i){var selectorType=selector.getAttribute("data-selector-type");if("select"!==selectorType){var optionIndex=i+1,optionValues;_this2.productOptionsWithValues[i].values.forEach((function(valueToCheck,j){var variantAvailable=!1;if(1===optionIndex)for(var k=0;k!==variantsCount;++k){var currentVariant=_this2.productData.variants[k];if(currentVariant.option1===valueToCheck&¤tVariant.option2===option2&¤tVariant.option3===option3){variantAvailable=currentVariant.available;break}}else if(2===optionIndex)for(var _k=0;_k!==variantsCount;++_k){var _currentVariant=_this2.productData.variants[_k];if(_currentVariant.option1===option1&&_currentVariant.option2===valueToCheck&&_currentVariant.option3===option3){variantAvailable=_currentVariant.available;break}}else if(3===optionIndex)for(var _k2=0;_k2!==variantsCount;++_k2){var _currentVariant2=_this2.productData.variants[_k2];if(_currentVariant2.option1===option1&&_currentVariant2.option2===option2&&_currentVariant2.option3===valueToCheck){variantAvailable=_currentVariant2.available;break}}switch(selectorType){case"color":selector.querySelector(".color-swatch:nth-child(".concat(j+1,")")).classList.toggle("color-swatch--disabled",!variantAvailable);break;case"variant":selector.querySelector(".variant-swatch:nth-child(".concat(j+1,")")).classList.toggle("variant-swatch--disabled",!variantAvailable);break;case"block":selector.querySelector(".block-swatch:nth-child(".concat(j+1,")")).classList.toggle("block-swatch--disabled",!variantAvailable)}}))}}))}}},{key:"_updateAddToCartButton",value:function _updateAddToCartButton(newVariant){var addToCartButtonElement=this.element.querySelector(".product-form__add-button"),infoListElement=this.element.querySelector(".product-form__info-list");if(addToCartButtonElement&&(newVariant?(infoListElement.style.display="block",newVariant.available?(addToCartButtonElement.removeAttribute("disabled"),addToCartButtonElement.classList.remove("button--disabled"),addToCartButtonElement.classList.add("button--primary"),addToCartButtonElement.setAttribute("data-action","add-to-cart"),addToCartButtonElement.innerHTML=window.languages.productFormAddToCart):(addToCartButtonElement.setAttribute("disabled","disabled"),addToCartButtonElement.classList.add("button--disabled"),addToCartButtonElement.classList.remove("button--primary"),addToCartButtonElement.removeAttribute("data-action"),addToCartButtonElement.innerHTML=window.languages.productFormSoldOut)):(addToCartButtonElement.setAttribute("disabled","disabled"),addToCartButtonElement.classList.add("button--disabled"),addToCartButtonElement.classList.remove("button--primary"),addToCartButtonElement.removeAttribute("data-action"),addToCartButtonElement.innerHTML=window.languages.productFormUnavailable,infoListElement.style.display="none"),this.options.showPaymentButton)){var paymentButtonElement=this.element.querySelector(".shopify-payment-button");newVariant&&newVariant.available?paymentButtonElement.style.display="block":paymentButtonElement.style.display="none"}}},{key:"_onOptionChanged",value:function _onOptionChanged(event,target){this["option"+target.getAttribute("data-option-position")]=target.value;var selectedValueElement=target.closest(".product-form__option").querySelector(".product-form__selected-value");selectedValueElement&&(selectedValueElement.innerHTML=target.value);var previousVariant=this.currentVariant;if(this.currentVariant=this._getCurrentVariantFromOptions(),this._onVariantChanged(previousVariant,this.currentVariant),this.currentVariant){if(this.options.enableHistoryState&&history.replaceState){var newUrl="".concat(window.location.protocol,"//").concat(window.location.host).concat(window.location.pathname,"?variant=").concat(this.currentVariant.id);window.history.replaceState({path:newUrl},"",newUrl)}this.masterSelector.querySelector("[selected]").removeAttribute("selected"),this.masterSelector.querySelector('[value="'.concat(this.currentVariant.id,'"]')).setAttribute("selected","selected")}}},{key:"_getCurrentVariantFromOptions",value:function _getCurrentVariantFromOptions(){var _this3=this,found=!1;return this.productData.variants.forEach((function(variant){variant.option1===_this3.option1&&variant.option2===_this3.option2&&variant.option3===_this3.option3&&(found=variant)})),found||null}},{key:"_addToCart",value:function _addToCart(event,target){var _this4=this;if("page"!==window.theme.cartType){event.preventDefault(),event.stopPropagation(),target.setAttribute("disabled","disabled"),document.dispatchEvent(new CustomEvent("theme:loading:start"));var formElement=this.element.querySelector('form[action*="/cart/add"]');fetch("".concat(window.routes.cartAddUrl,".js"),{body:JSON.stringify(Form.serialize(formElement)),credentials:"same-origin",method:"POST",headers:{"Content-Type":"application/json","X-Requested-With":"XMLHttpRequest"}}).then((function(response){document.dispatchEvent(new CustomEvent("theme:loading:end")),response.ok?(target.removeAttribute("disabled"),_this4.element.dispatchEvent(new CustomEvent("product:added",{bubbles:!0,detail:{variant:_this4.currentVariant,quantity:parseInt(formElement.querySelector('[name="quantity"]').value)}})),_this4.options.isQuickView&&document.dispatchEvent(new CustomEvent("modal:close"))):response.json().then((function(content){var errorMessageElement=document.createElement("div");errorMessageElement.className="product-form__error",errorMessageElement.innerHTML='

'.concat(content.description,"

"),target.removeAttribute("disabled"),target.parentNode.insertAdjacentElement("afterend",errorMessageElement),Animation.slideDown(errorMessageElement),setTimeout((function(){Animation.slideUp(errorMessageElement,(function(){errorMessageElement.remove()}))}),5500)}))})),event.preventDefault()}}},{key:"_setupStockCountdown",value:function _setupStockCountdown(){var _this5=this,stockCountdown=this.element.querySelector(".inventory-bar");if(stockCountdown){var stockCountdownIntersectionObserver=new IntersectionObserver((function(entries){entries.forEach((function(item){if(item.isIntersecting){var variantInventoryQuantity=_this5.variantsInventories[_this5.currentVariant.id].inventory_quantity,stockCountdownProgress=Math.min(Math.max(variantInventoryQuantity/parseInt(stockCountdown.getAttribute("data-stock-countdown-max"))*100,0),100);stockCountdown.classList.toggle("inventory-bar--hidden",0===stockCountdownProgress),stockCountdown.firstElementChild.style.width="".concat(stockCountdownProgress,"%"),stockCountdownIntersectionObserver.disconnect()}}))}));stockCountdownIntersectionObserver.observe(stockCountdown)}}}]),ProductVariants}(),ProductModel=function(){function ProductModel(element){_classCallCheck(this,ProductModel),this.element=element,this.delegateElement=new Delegate(this.element),this.delegateRoot=new Delegate(document.documentElement),this._attachListeners();var stylesheet=document.createElement("link");stylesheet.rel="stylesheet",stylesheet.href="https://cdn.shopify.com/shopifycloud/model-viewer-ui/assets/v1.0/model-viewer-ui.css",document.head.appendChild(stylesheet),window.Shopify.loadFeatures([{name:"model-viewer-ui",version:"1.0",onLoad:this._setupModelViewerUI.bind(this)},{name:"shopify-xr",version:"1.0"}])}return _createClass(ProductModel,[{key:"destroy",value:function destroy(){}},{key:"_attachListeners",value:function _attachListeners(){var _this=this;this.element.querySelector("model-viewer").addEventListener("shopify_model_viewer_ui_toggle_play",(function(){_this.element.dispatchEvent(new CustomEvent("model:played",{bubbles:!0}))})),this.element.querySelector("model-viewer").addEventListener("shopify_model_viewer_ui_toggle_pause",(function(){_this.element.dispatchEvent(new CustomEvent("model:paused",{bubbles:!0}))}))}},{key:"hasBeenSelected",value:function hasBeenSelected(isInitialLoading){Responsive.matchesBreakpoint("supports-hover")&&!isInitialLoading&&this.modelUi.play()}},{key:"hasBeenDeselected",value:function hasBeenDeselected(){this.modelUi.pause()}},{key:"_setupModelViewerUI",value:function _setupModelViewerUI(){this.modelElement=this.element.querySelector("model-viewer"),this.modelUi=new window.Shopify.ModelViewerUI(this.modelElement)}}]),ProductModel}(),ProductVideo=function(){function ProductVideo(element,enableVideoLooping){switch(_classCallCheck(this,ProductVideo),this.element=element,this.delegateElement=new Delegate(this.element),this.enableVideoLooping=enableVideoLooping,this.player=null,this.element.getAttribute("data-media-type")){case"video":var stylesheet=document.createElement("link");stylesheet.rel="stylesheet",stylesheet.href="https://cdn.shopify.com/shopifycloud/shopify-plyr/v1.0/shopify-plyr.css",document.head.appendChild(stylesheet),window.Shopify.loadFeatures([{name:"video-ui",version:"1.0",onLoad:this._setupHtml5Video.bind(this)}]);break;case"external_video":this._setupExternalVideo()}}return _createClass(ProductVideo,[{key:"destroy",value:function destroy(){this.player&&this.player.destroy()}},{key:"hasBeenSelected",value:function hasBeenSelected(isInitialLoading){Responsive.matchesBreakpoint("supports-hover")&&!isInitialLoading&&this.play()}},{key:"hasBeenDeselected",value:function hasBeenDeselected(){this.pause()}},{key:"play",value:function play(){switch(this.element.getAttribute("data-media-type")){case"video":this.player.play();break;case"external_video":this.player.playVideo(),this.element.focus()}}},{key:"pause",value:function pause(){switch(this.element.getAttribute("data-media-type")){case"video":this.player.pause();break;case"external_video":this.player.pauseVideo()}}},{key:"_setupHtml5Video",value:function _setupHtml5Video(){var _this=this;this.player=new Shopify.Plyr(this.element.querySelector("video"),{controls:["play","progress","mute","volume","play-large","fullscreen"],loop:{active:this.enableVideoLooping},hideControlsOnPause:!0,clickToPlay:!0,iconUrl:"//cdn.shopify.com/shopifycloud/shopify-plyr/v1.0/shopify-plyr.svg",tooltips:{controls:!1,seek:!0}}),this.player.on("play",(function(){_this.element.dispatchEvent(new CustomEvent("video:played",{bubbles:!0}))})),this.player.on("pause",(function(){_this.element.dispatchEvent(new CustomEvent("video:paused",{bubbles:!0}))}))}},{key:"_setupExternalVideo",value:function _setupExternalVideo(){"youtube"===this.element.getAttribute("data-media-host")&&this._loadYouTubeScript().then(this._setupYouTubePlayer.bind(this))}},{key:"_setupYouTubePlayer",value:function _setupYouTubePlayer(){var _this2=this,playerLoadingInterval=setInterval((function(){void 0!==window.YT&&void 0!==window.YT.Player&&(_this2.player=new YT.Player(_this2.element.querySelector("iframe"),{videoId:_this2.element.getAttribute("data-video-id"),events:{onStateChange:function onStateChange(event){0===event.data&&_this2.enableVideoLooping&&event.target.seekTo(0)}}}),clearInterval(playerLoadingInterval))}),50)}},{key:"_loadYouTubeScript",value:function _loadYouTubeScript(){return new Promise((function(resolve,reject){var script=document.createElement("script");document.body.appendChild(script),script.onload=resolve,script.onerror=reject,script.async=!0,script.src="//www.youtube.com/iframe_api"}))}}]),ProductVideo}(),evEmitter=createCommonjsModule((function(module){!function(global,factory){module.exports?module.exports=factory():global.EvEmitter=factory()}("undefined"!=typeof window?window:commonjsGlobal,(function(){function EvEmitter(){}var proto=EvEmitter.prototype;return proto.on=function(eventName,listener){if(eventName&&listener){var events=this._events=this._events||{},listeners=events[eventName]=events[eventName]||[];return-1==listeners.indexOf(listener)&&listeners.push(listener),this}},proto.once=function(eventName,listener){if(eventName&&listener){this.on(eventName,listener);var onceEvents=this._onceEvents=this._onceEvents||{},onceListeners;return(onceEvents[eventName]=onceEvents[eventName]||{})[listener]=!0,this}},proto.off=function(eventName,listener){var listeners=this._events&&this._events[eventName];if(listeners&&listeners.length){var index=listeners.indexOf(listener);return-1!=index&&listeners.splice(index,1),this}},proto.emitEvent=function(eventName,args){var listeners=this._events&&this._events[eventName];if(listeners&&listeners.length){listeners=listeners.slice(0),args=args||[];for(var onceListeners=this._onceEvents&&this._onceEvents[eventName],i=0;i