(()=>{var Ft=Object.create;var ke=Object.defineProperty;var Gt=Object.getOwnPropertyDescriptor;var Yt=Object.getOwnPropertyNames;var Qt=Object.getPrototypeOf,Jt=Object.prototype.hasOwnProperty;var Wt=(t,e)=>()=>(t&&(e=t(t=0)),e);var Ae=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Xt=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Yt(e))!Jt.call(t,o)&&o!==n&&ke(t,o,{get:()=>e[o],enumerable:!(r=Gt(e,o))||r.enumerable});return t};var Zt=(t,e,n)=>(n=t!=null?Ft(Qt(t)):{},Xt(e||!t||!t.__esModule?ke(n,"default",{value:t,enumerable:!0}):n,t));var l,i=Wt(()=>{l={ap1:"1.7.28",eu1:"1.7.28","eu1-b":"1.7.28",us1:"1.7.28"}});var Lt=Ae((ns,It)=>{i();var dr=[{name:"Chrome",flags:["isChrome"],regex:/(?:Chrome|CriOS)\/([0-9]+)\./i},{name:"Firefox",flags:["isFirefox"],regex:/Firefox\/([0-9]+)\./i},{name:"IE",flags:["isIE"],regex:/(?:MSIE|Trident.*rv)[: ]([0-9]+)\./i},{name:"Opera",flags:["isOpera"],regex:/Opera\/.*Version\/([0-9]+)/i},{name:"Safari",flags:["isSafari"],regex:/AppleWebKit\/.*Version\/([0-9]+)/i},{name:"Unknown",flags:["isUnknown"],regex:null}],fr=[{name:"Motorola Razr",flags:["isTablet"],platform:"Tablet",regex:/ Android .*? Droid Razr/i},{name:"Motorola Xoom",flags:["isTablet"],platform:"Tablet",regex:/ Android .*? Xoom/i},{name:"Samsung Tablet",flags:["isTablet"],platform:"Tablet",regex:/ Android .*? (SCH-I|GT-P)/i},{name:"Android Phone",flags:["isPhone"],platform:"Phone",regex:/ Android .*? (Chrome|Version)\/[.0-9]* Mobile/i},{name:"Android Tablet",flags:["isTablet"],platform:"Tablet",regex:/ Android .*? (Chrome|Version)\/[.0-9]* (?!Mobile)/i},{name:"Firefox OS",flags:["isPhone"],platform:"Phone",regex:/Mozilla.*?Mobile.*?Gecko.*?Firefox/i},{name:"iPad",flags:["isTablet"],platform:"Tablet",regex:/iPad/i},{name:"iPhone",flags:["isPhone"],platform:"Phone",regex:/iPhone|iPod/i},{name:"BlackBerry Phone",flags:["isPhone"],platform:"Phone",regex:/BlackBerry|BB10/i},{name:"BlackBerry Playbook",flags:["isTablet"],platform:"Tablet",regex:/Playbook/i},{name:"Motorola Droid",flags:["isPhone"],platform:"Phone",regex:/(Droid|SHOLS_U2|XT[0-9]{4})/i},{name:"HTC",flags:["isPhone"],platform:"Phone",regex:/HTC One|HTC Sensation|Sprint APA9292KT/i},{name:"Kindle",flags:["isTablet"],platform:"Tablet",regex:/Silk|Kindle/i},{name:"LG",flags:["isPhone"],platform:"Phone",regex:/LG-M|LG-E|LG-P/i},{name:"Nexus Phone",flags:["isPhone"],platform:"Phone",regex:/Nexus 4|Nexus 5|Nexus S/i},{name:"Nexus Tablet",flags:["isTablet"],platform:"Tablet",regex:/Nexus 7|Nexus 10/i},{name:"Nokia",flags:["isPhone"],platform:"Phone",regex:/Nokia|Windows Phone/i},{name:"Samsung Phone",flags:["isPhone"],platform:"Phone",regex:/SM-N900|GT-I|GT-N|SAMSUNG-SGH|SAMSUNG SCH/i},{name:"Sony",flags:["isPhone"],platform:"Phone",regex:/LT28|SonyEricsson|Sony/i},{name:"PC",flags:["isDesktop"],platform:"Desktop",regex:null}];function mr(t,e){dr.some(function(n){var r=null;if(!n.regex||(r=n.regex.exec(e)))return t.browser=n.name,n.flags.forEach(function(o){t[o]=!0}),t.version=r&&r.length>0?Number(r[1]):0,e.indexOf("Trident/4")!==-1&&t.version<8&&(t.version=8),e.indexOf("Trident/5")!==-1&&t.version<9&&(t.version=9),e.indexOf("Trident/6")!==-1&&t.version<10&&(t.version=10),e.indexOf("Trident/7")!==-1&&t.version<11&&(t.version=11),!0})}function hr(t,e){fr.some(function(n){if(!n.regex||n.regex.test(e))return t.device=n.name,n.flags.forEach(function(r){t[r]=!0}),t.platform=n.platform,!0})}It.exports=function(t){var e={browser:"IE",device:"PC",isChrome:!1,isDesktop:!1,isFirefox:!1,isIE:!1,isOpera:!1,isPhone:!1,isSafari:!1,isTablet:!1,isUnknown:!1,platform:"Desktop",version:0};return mr(e,t),hr(e,t),e}});var Ot=Ae((os,Rt)=>{i();Rt.exports=Lt()});i();i();function Te(){try{decodeURIComponent(location.href)}catch{throw new Error("invalid UTF-8 on url-encoded query params")}}i();i();i();i();var V,tn=new Uint8Array(16);function te(){if(!V&&(V=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!V))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return V(tn)}i();var p=[];for(let t=0;t<256;++t)p.push((t+256).toString(16).slice(1));function Ce(t,e=0){return p[t[e+0]]+p[t[e+1]]+p[t[e+2]]+p[t[e+3]]+"-"+p[t[e+4]]+p[t[e+5]]+"-"+p[t[e+6]]+p[t[e+7]]+"-"+p[t[e+8]]+p[t[e+9]]+"-"+p[t[e+10]]+p[t[e+11]]+p[t[e+12]]+p[t[e+13]]+p[t[e+14]]+p[t[e+15]]}i();i();var nn=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),ne={randomUUID:nn};function rn(t,e,n){if(ne.randomUUID&&!e&&!t)return ne.randomUUID();t=t||{};let r=t.random||(t.rng||te)();if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,e){n=n||0;for(let o=0;o<16;++o)e[n+o]=r[o];return e}return Ce(r)}var O=rn;i();var re="__DF_DEBUG_MODE__",Pe="true",U=window.sessionStorage;function De(){U.setItem(re,Pe)}function Ie(){U.removeItem(re)}function on(){return U.getItem(re)===Pe}function K(t){return U.getItem(t)||window[t]}function B(t,e){U.setItem(t,e)}function u(...t){on()&&console.log("[doofinder]",...t)}i();i();var Le={canPushState(){return typeof history.pushState<"u"},dropLocal(t,e,n){return t.removeItem(this.localKey(e,n))},updateLocal(t,e,n,r,o){let s=this.getLocal(t,e,n),a=this.localKey(e,n),c=s===null?r:o(s);return t.setItem(a,JSON.stringify(c)),c},getLocal(t,e,n){return JSON.parse(t.getItem(this.localKey(e,n)))},updateCurrentState(t){this.canPushState()&&history.replaceState(t(history.state||{}),"",window.location.href)},pushState(t,e,n){if(this.canPushState()){if(n!==window.location.href){if(e.type=="redirect"&&e.scroll){let o=history.state||{};o.scroll=e.scroll,history.replaceState(o,"",window.location.href)}delete e.scroll,history[t+"State"](e,"",n||null);let r=this.getHashTargetEl(window.location.hash);r?r.scrollIntoView():e.type==="redirect"&&window.scroll(0,0)}}else this.redirect(n)},setCookie(t,e){document.cookie=`${t}=${e}`},getCookie(t){return document.cookie.replace(new RegExp(`(?:(?:^|.*;s*)${t}s*=s*([^;]*).*$)|^.*$`),"$1")},redirect(t,e){e&&Le.setCookie("__phoenix_flash__",e+"; max-age=60000; path=/"),window.location=t},localKey(t,e){return`${t}-${e}`},getHashTargetEl(t){let e=t.toString().substring(1);if(e!=="")return document.getElementById(e)||document.querySelector(`a[name="${e}"]`)}},F=Le;i();var oe="df-cookies-allowed",ie=window.localStorage;function se(){ie.setItem(oe,"true")}function Re(){ie.removeItem(oe)}function Oe(){return JSON.parse(ie.getItem(oe)||"false")}var ae="df",ce=window.localStorage;function b(t,e=ce){return F.getLocal(e,ae,t)}function _(t,e,n=ce){return Oe()?F.updateLocal(n,ae,t,e,()=>e):null}function Ue(t,e=ce){return F.dropLocal(e,ae,t)}var $e=24*60*60*1e3,je="random-userid",C="session",le="apps",Me="tab-id";function Ne(){return{id:O().replaceAll("-",""),expiry:new Date().getTime()+$e,live:[]}}function M(){let t=b(C);return(!t||qe(t.expiry))&&(t=Ne()),_(C,t)}function qe(t){return tn!==t),_(C,e),_(le,e.live.join())},getLastUsedApps(){return b(le)||""},isLive(...t){let e=M();return e===null?!1:t.some(r=>e.live.includes(r))},getSessionObject(){return M()},setSessionObject(t){sn(t)?_(C,t):console.error("[session][setSessionObject()] session object is not valid")}};i();function an(){return{"content-type":"application/json"}}async function He(t,e={}){return(await fetch(t,{method:"GET",cache:"no-cache",mode:"cors",headers:an(),...e})).json()}var Y=class{constructor(e){this.zone=e}async add(e,n,{id:r,title:o,price:s},a=1){let c=`${this.url(e)}/cart/${h.getSessionId()||""}`,f=JSON.stringify({amount:a,id:r,title:o,price:s,index:n});return He(c,{method:"PUT",body:f})}async remove(e,n,r,o=1){return console.warn("Deprecated: remove from cart is no longer supported"),Promise.resolve({status:"registered"})}async clear(e){return console.warn("Deprecated: clear cart is no longer supported"),Promise.resolve({status:"registered"})}async checkout(e){let n=JSON.stringify({session_id:h.getSessionId(),user_id:h.getUserId(),sources:h.getLastUsedApps().split(",")});return He(`${this.url(e)}/checkout`,{method:"PUT",body:n})}url(e){return`https://${this.zone}-search.doofinder.com/6/${e}/stats`}};i();function ze(t){return B("__DF_CDN_PREFIX__",t)}i();function Ve(t){return B("__DF_LAYER_SERVER__",t)}i();i();async function k(t,e,n=!1){if(!document.querySelector(`script[src="${t}"]`)){let r=document.createElement("script");r.src=t,r.async=1,n&&(r.type="module"),e&&(r.onerror=()=>k(e)),document.head.appendChild(r)}}async function Ke(t,e){k(t,e,!0)}async function Be(t){if(!document.querySelector(`link[rel="modulepreload"][href="${t}"]`)){let e=document.createElement("link");e.setAttribute("rel","modulepreload"),e.setAttribute("href",t),e.onerror=()=>{k(t,null,!0)},document.head.appendChild(e)}}async function de(t,e){if(!document.querySelector(`link[rel="stylesheet"][href="${t}"]`)){let n=document.createElement("link");n.setAttribute("rel","stylesheet"),n.setAttribute("href",t),e&&(n.onerror=()=>de(e)),document.head.appendChild(n)}}async function A(t){if(t=(t||"").trim(),!cn(t)){let e=document.createElement("style");e.appendChild(document.createTextNode(t)),document.head.appendChild(e)}}function cn(t){return Array.from(document.head.querySelectorAll("style")).some(e=>e.textContent.trim()===t)}i();i();var P=class{constructor(e={}){e=Object.assign({resolveTimeout:null,resolveValue:!0,rejectTimeout:null,rejectValue:!1},e),this._promise=new Promise((a,c)=>{this.resolve=a,this.reject=c}),this.then=this._promise.then.bind(this._promise),this.catch=this._promise.catch.bind(this._promise),this.finally=this._promise.finally.bind(this._promise),this[Symbol.toStringTag]="Promise";let{resolveTimeout:n,resolveValue:r,rejectTimeout:o,rejectValue:s}=e;n&&setTimeout(()=>this.resolve(r),n),o&&setTimeout(()=>this.reject(s),o)}get promise(){return this._promise}};i();i();var S=new Promise((t,e)=>{document.readyState!="loading"?t():document.addEventListener("DOMContentLoaded",()=>{t()})});var D="quiz";function ln(t){return[D,{quiz_id:t.quiz_id}]}function un(t,e,n){let r=n.find(s=>s.name==D&&s.quiz_id==e.quiz_id);if(!r)return console.error(`Doofinder app '${D}' not enabled or wrong quiz_id`),null;let o={quiz_id:e.quiz_id,trigger:e.trigger||r.options.trigger,hashid:r.overrides.hashid,custom_css:r.overrides.custom_css,hooks:e.hooks,account_code:t.account_code};return{...t,...o}}function dn(t,e,n){let r=e[D],o=r.vsn?.[t.zone];return{assets:r[t.device],cdn_prefix:e[D].cdn_prefix,cdn_fallback:r.cdn_fallback,vsn:o,appConfig:t,onRegister:function(s){S.then(()=>{let a=s.create(t);typeof n=="function"&&n(a)})}}}var fe={appName:D,backendAppToScriptApp:ln,buildConfig:un,buildSettingsConfig:dn};i();i();i();function Fe(t,e={}){let n=document.querySelector(t);return n?Promise.resolve(n):new Promise((r,o)=>{let s=0,a=null,c=e.interval||500,f=e.times||10;a=setInterval(function(){s++n.offsetWidth>0&&n.offsetHeight>0)}async updateQuery(e=""){let n=await this.getElement();n instanceof HTMLInputElement&&(n.value=e)}async focus(){let e=await this.getElement();e instanceof HTMLInputElement&&e.focus()}setCaptureLength(e){this._minCaptureLength=e||Ge}async getElement(){if(!(!this._enabled||!this._elementSelector)){if(!this._element)try{this._element=await Fe(this._elementSelector)}catch{this._element=void 0}return this._element}}get enabled(){return this._enabled}set enabled(e){if(this._enabled!==!!e){this._enabled=!!e;let n=document[`${this._enabled?"add":"remove"}EventListener`];this._events.forEach(r=>n(...r))}}get captureSubmit(){return this._handleSubmit}set captureSubmit(e){this._handleSubmit=!!e}get redirection(){if(this._redirection)return{...this._redirection}}set redirection(e){this._redirection=e}setEventBus(e){this._eventBus=e}flushMessages(){if(this._eventsQueue=[...new Map(this._eventsQueue).entries()],this._eventsQueue.length>0){let e=this._eventsQueue.shift();for(;e&&e.length===2;)u("trigger:emit",e),this._eventBus?.emit(...e),e=this._eventsQueue.shift()}else document.activeElement===this._element&&this.notify(Ye,this.getPayload())}destroy(){this._events.forEach(e=>window.removeEventListener(...e))}shouldHandle(e){let n=this.getElementFromEvent(e);return n?(this._element=n,!0):!1}getPayload(e){let n={source:this._element,originalEvent:e};if(this._element instanceof HTMLInputElement){let r=this._element.value.trim();(r.length>=this._minCaptureLength||e?.type==="keydown"||e?.type==="keyup")&&(n.query=r)}return n}getElementFromEvent(e){if(!e.target||e.target===document||e.target===window)return;let n=e.type==="submit"?"querySelector":"closest",r=e.target[n](this._elementSelector);if(r&&!r.closest("[dfd-hook]"))return r}charLimitReached(e){let n=this.getElementFromEvent(e);return!n||!n.value||e.type!=="keydown"||n.value.length<50||hn.includes(e.key)?!1:(e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),!0)}handleClick(e){this.shouldHandle(e)&&(e.preventDefault(),e.stopImmediatePropagation(),this.notify(Ye,this.getPayload(e)))}handleFocus(e){let n=this.getElementFromEvent(e);n&&this.isButtonLike(n)||this.shouldHandle(e)&&(e.stopImmediatePropagation(),this.notify(fn,this.getPayload(e)))}handleInput(e){this.shouldHandle(e)&&this.notify(mn,this.getPayload(e))}handleSubmit(e){this._handleSubmit&&this.shouldHandle(e)&&(e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),this.notify(Qe,this.getPayload(e)))}handleKeypress(e){this.charLimitReached(e)||e.key==="Enter"&&this.shouldHandle(e)&&(this._redirection||this._handleSubmit)&&(e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),this._redirection?window.location=this._redirection.url:e.type==="keyup"&&this.notify(Qe,this.getPayload(e)))}isButtonLike(e){let{tagName:n,role:r}=e;return n==="BUTTON"||r==="button"}notify(e,n){this._eventBus?this._eventBus.emit(e,n):this._eventsQueue.push([e,n]),u("[trigger]",this._eventBus?"[emit]":"[queue]",e,n)}};var $="layer";function pn(t){return[$,{}]}function gn(t,e,n){let r=n.find(c=>c.name==$);if(!r)return console.error(`Doofinder app '${$}' not enabled`),null;let o=r.overrides.autoload,s="chat"in r.options?{chat:r.options.chat}:{},a={trigger:e.trigger||r.options.trigger,url_hash:e.url_hash||e.url_hash===void 0&&r.options.url_hash,hooks:e.hooks,hidePrices:typeof t.hidePrices=="boolean"?t.hidePrices:!1,params:e.params,search_query_retention:r.overrides.search_query_retention,sort:e.sort,layout:r.overrides.layout,custom_css:r.overrides.custom_css[t.device],custom_properties:r.overrides.custom_properties[t.device],autoload:o&&o[t.device],type:r.type,exportResultsData:e.exportResultsData,zone:e.zone||r.options.zone||t.zone,...s};return{...t,...a}}function _n(t,e,n){let r=e[$],o=bn(r,t.device,t.layout);t=me(t);let s=t.custom_properties?.join(` `),a=r.vsn?.[t.zone];return{assets:o,cdn_prefix:r.cdn_prefix,cdn_fallback:r.cdn_fallback,vsn:a,appConfig:t,onRegister:function(c){S.then(()=>{let f=c.create(t);A(`#${f.mount.id} { ${s||""} }`),typeof n=="function"&&n(f)})}}}function me(t){return t.trigger=yn(t.trigger,t.autoload),t.urlHash=t.url_hash||!1,t.searchQueryRetention=t.search_query_retention,t.layerType=t.layerType||"search",t.installationId=t.store,t}function yn(t,e){let n=new Q(t);return n.enabled=!e||e.trigger,n}function bn(t,e,n){return e==="mobile"?t.mobile[n]||t.mobile.default:t.desktop[n]}var he={appName:$,backendAppToScriptApp:pn,buildConfig:gn,buildSettingsConfig:_n};i();var j="chat";function vn(t){return[j,{chat_id:t.chat_id}]}function Sn(t,e,n){let r=n.find(s=>s.name==j&&s.chat_id==e.chat_id);if(!r)return console.error(`Doofinder app '${j}' not enabled or wrong chat_id`),null;let o={chat_id:e.chat_id,id:e.id||r.options.id,zone:e.zone||t.zone,trigger:e.trigger||!0,label:e.label,extra_params:e.extra_params||{},meta:e.meta||{}};return{...t,...o}}function wn(t,e,n){let r=e[j],o=r.vsn;return{assets:r[t.device],cdn_prefix:r.cdn_prefix,cdn_fallback:r.cdn_fallback,vsn:o,appConfig:t,onRegister:function(a){S.then(()=>{let c=a.create(t);typeof n=="function"&&n(c)})}}}var pe={appName:j,backendAppToScriptApp:vn,buildConfig:Sn,buildSettingsConfig:wn};i();i();function We(t){let{hashid:e,url_patterns:n}=t,r=window.location.toString();u("[category merchandising] finding any matching URL pattern configuration for hashid: ",e," url patterns: ",n," URL: ",r);try{let o=xn(e,n,r);return u("[category merchandising] URL Pattern configuration found ",o),!!o}catch(o){return u("[category merchandising] error when matching URL Pattern. Error: ",o),!1}}function xn(t,e,n){let r=e.filter(o=>o.hashid===t).find(o=>{let s=Je(o);return[...n.matchAll(s)].length>0});return r||e.filter(o=>!o.hashid).find(o=>{let s=Je(o);return[...n.matchAll(s)].length>0})}function Je(t){let[,,e,n]=t.pattern.match(/(\/?)(.+)\1([a-z]*)/i);n=n||"g";let r=new RegExp(e,n);return u("pattern ",e,"flags",n,"regexp",r),r}var N="category_merchandising";function En(t){return[N,{}]}function kn(t,e,n){let r=n.find(a=>a.name==N);if(!r)return console.error(`Doofinder app '${N}' not enabled`),null;let o=r.devices[t.device],s={insertion_point:e.insertion_point||o.options.insertion_point,url_hash:e.url_hash||!1,search:e.search||r.options.search,sort:e.sort||{},hooks:e.hooks,custom_css:o.overrides.custom_css,custom_properties:o.overrides.custom_properties,autoload:o.overrides.autoload,url_patterns:e.url_patterns||r.options.url_patterns,type:"category_pages",zone:e.zone||r.options.zone||t.zone};return{...t,...s}}function An(t,e,n){if(!We(t))return null;let r=e[N],o=r.vsn?.[t.zone],s=r[t.device??"desktop"];t.layerType="category_pages",t=me(t);let a=t.custom_properties?.join(` `);return{assets:s,cdn_prefix:r.cdn_prefix,cdn_fallback:r.cdn_fallback,vsn:o,appConfig:t,onRegister:function(c){S.then(()=>{let f=c.create(t);A(`#${f.mount.id} { ${a||""} }`),typeof n=="function"&&n(f)})}}}var ge={appName:N,backendAppToScriptApp:En,buildConfig:kn,buildSettingsConfig:An};i();i();var _e=class{#r;#t;#n;#e;constructor(){this.#t=new Set,this.#n=new Set,this.#e=null,u("[DOMObserver] installing observer"),this.#r=new MutationObserver(e=>{this.#a(),this.#c(e),this.#s()}),this.#s()}observeDOM(e,n={}){return this.#i(this.#t,e,n),this}observeURL(e,n={}){return this.#i(this.#n,e,n),this}disconnect(e){return this.#t.delete(e),this.#n.delete(e),this}#i(e,n,r={}){r.immediate&&this.#o(n,{reason:"immediate execution",changes:null,previousUrl:this.#e,currentUrl:window.location.href.split("#")[0]}),e.add(n)}#s(){return this.#r.observe(document,{childList:!0,subtree:!0}),this}#a(){return this.#r.disconnect(),this}#c(e){u("[DOMObserver] DOM change observed");let n=window.location.href.split("#")[0];for(let r of this.#t)this.#o(r,{reason:"DOM changed",changes:e,previousUrl:this.#e,currentUrl:n});if(this.#e!==n){u("[DOMObserver] URL change observed");for(let r of this.#n)this.#o(r,{reason:"URL changed",changes:e,previousUrl:this.#e,currentUrl:n});this.#e=n}}#o(e,n){try{e(n)}catch(r){console.error(`[DOMObserver] ${r}`)}}},I=new _e;var q="recommendations_widgets",Tn="recommendations";function Cn(t){return[q,{}]}function Pn(t,e,n){let r=n.find(a=>a.name==q);if(!r)return console.error(`Doofinder app '${q}' not enabled`),null;let o=On(t,e,r),s=In(o);return{...o,custom_css:r.overrides.custom_css,widgets:[...Rn(s,o),...Ln(o)]}}function Dn(t,e,n){if(t.widgets.length===0)return null;let r=e[q];return{assets:r[t.device],cdn_prefix:r.cdn_prefix,vsn:r.vsn,appConfig:t,onRegister:function(o){S.then(()=>{for(let s of t.widgets){if(!s.hashids.includes(t.hashid))continue;let{_widgets:a,...c}=t;o.create({...c,widget:s})}})}}}async function Ze(t,e){t.includes(Tn)&&I.observeDOM(n=>{e()})}var ye={appName:q,backendAppToScriptApp:Cn,buildConfig:Pn,buildSettingsConfig:Dn};function In({pageTypeMappings:t}){let e=window.location.href;return t.reduce((n,r)=>{let{match_conditions:o}=r;return o.length===0?n:o.some(s=>Un(e,s))?[r,...n]:n},[])}function Ln({widgets:t}){return t.filter(e=>!e.page_type_id)}function Rn(t,{widgets:e,overridePageTypeCheck:n}){if(n)return e;let r=t.map(o=>o.id);return e.filter(o=>r.includes(o.page_type_id))}function On(t,e,n){let r=Mn(e);if(r.length>0){let s=r.map(a=>{let c=n.widgets.find(f=>f.widget_id===a.widget_id);if(c)return{...a,id:a.widget_id,name:a.widget_name,page_type_id:c.page_type_id,insertion_point:a.insertion_point||c.options.insertion_point,insertion_method:a.insertion_method||c.options.insertion_method,hashids:c.overrides.hashids};console.error(`Custom recommendations widget '${a.widget_id}' does not exist`)}).filter(a=>!!a);return{...t,widgets:[...s],overridePageTypeCheck:!0}}let o=n.widgets.map(s=>({id:s.widget_id,name:s.widget_name,page_type_id:s.page_type_id,insertion_point:s.options.insertion_point,insertion_method:s.options.insertion_method,hashids:s.overrides.hashids}));return{...t,widgets:o,overridePageTypeCheck:!1}}function Un(t,{match_type:e,value:n}){switch(e){case"equals":return Xe(t)==Xe(n);case"contains":return t.includes(n);case"starts_with":return t.startsWith(n);case"regex":try{return new RegExp(n,"i").test(t)}catch{return!1}default:return!1}}function Xe(t){try{let e=new URL(t);return e.origin+e.pathname}catch{return t}}function Mn(t){return t?Array.isArray(t)?[...t]:Object.hasOwn(t,"widget_id")?[{...t}]:[]:[]}var $n=he.appName,et=ge.appName,J=pe.appName,jn=fe.appName,Nn=ye.appName,tt={LAYER:$n,CHAT:J,QUIZ:jn,RECOMMENDATIONS_WIDGETS:Nn},nt=[J];function rt(t){return t.reduce(function(e,n){return e[n]=new P,e},{})}function ot(t){return async function(e,n){if(!t[e])throw new Error(`unknown "${e}" app!`);n(await t[e])}}function it(t,e){document.dispatchEvent(new CustomEvent("doofinder.register",{detail:{name:t,entrypoint:e}}))}function W(t){return[ge,he,fe,pe,ye].find(e=>e.appName===t)}i();var H=".min",v="https://cdn.doofinder.com";function qn(t){return t===J?"0.1.5-lv1.0.2":"0"}var w=`/js/dflayer${H}.js`,x="/css/2/common.css",st={js:[`/quiz${H}.js`],css:["/quiz.css"]},at={mjs:[`/recommendations${H}.js`],css:["/recommendations.css"]};function lt(t){return`${v}/live_view_portal/${qn(t)}/live_view_portal${H}.js`}var ct={mjs:[`/chat${H}.js`],css:["/chat.css"]};function ut(t){return t?`${v}/plugins/${t}.js`:null}var be=typeof l>"u"?{ap1:"0",eu1:"0",us1:"0","eu1-b":"0"}:l,Hn="0.2.25",zn="0.4.3",dt=[{vsn:"1.0",layer:{cdn_prefix:v+"/livelayer",cdn_fallback:v+"/livelayer/1",desktop:{Fullscreen:{js:[w],css:[x,"/css/2/fullscreen.css"]},AIFullscreen:{js:[w],css:[x,"/css/2/ai_fullscreen.css"]},Embedded:{js:[w],css:[x,"/css/2/embedded.css"]},Floating:{js:[w],css:[x,"/css/2/classic.css"]},FloatingEmbedded:{js:[w],css:[x,"/css/2/classic.css","/css/2/embedded.css"]}},mobile:{default:{js:[w],css:[x,"/css/2/mobile.css"]},AIFullscreen:{js:[w],css:[x,"/css/2/ai_mobile.css"]}},vsn:be},category_merchandising:{cdn_prefix:v+"/livelayer",cdn_fallback:v+"/livelayer/1",desktop:{js:[w],css:[x,"/css/2/embedded.css"]},mobile:{js:[w],css:[x,"/css/2/mobile_embedded.css"]},vsn:be},quiz:{cdn_prefix:v+"/quiz",cdn_fallback:v+"/quiz",desktop:st,mobile:st,vsn:be},chat:{cdn_prefix:v+"/chat",cdn_fallback:v+"/chat",desktop:ct,mobile:ct,vsn:Hn},recommendations_widgets:{cdn_prefix:v+"/recommendations-v2/lv",desktop:at,mobile:at,vsn:zn}}];i();function ft(t,e,n=""){let r=Object.assign({},K("__DF_CDN_PREFIXES__"));return r&&r[t]?r[t]:`${e}${n!=""?"/":""}${n}`}function mt(t,e,n,r,o,s){let a=dt[0],c=W(n);if(!c)return console.error(`Doofinder app '${n}' not found`),null;let f=c.buildConfig(e,r,o.apps);if(!f)return console.error(`Doofinder app '${n}' not enabled`),null;let g=c.buildSettingsConfig(f,a,s);if(!g)return null;let T=n==et?"layer":n;return t(T,g.onRegister),Vn(n,g.assets,g.cdn_prefix,g.vsn,g.appConfig.custom_css,g.cdn_fallback),g.appConfig}async function Vn(t,e,n,r,o,s){let a=ft(t,n,r),c=r?`?v=${r}`:"";ve(a,c,s,k,e.js),ve(a,c,s,Ke,e.mjs),ve(a,c,s,de,e.css),o&&Array.isArray(o)?o.forEach(A):o&&A(o)}async function ve(t,e,n,r,o){o&&o.forEach(s=>r(`${t}${s}${n?"":e}`,n?`${n}${s}${e}`:void 0))}i();async function ht(t,e){let n=Kn(t,e),r=await fetch(n);if(!r.ok)throw new Error(`HTTP error! Status: ${r.status}`);return await r.json()}function Kn(t,e){let n=K("__DF_STORE_CONFIG__"),r="",o={eu1:"eu-west-1.",us1:"us-east-1.",ap1:"ap-southeast-1."};switch(e=Object.hasOwn(o,e)?e:"eu1",n){case"provisional-bucket":r=`provisional-${e}-df-store-config-files`;break;case"production-bucket":r+=`${e}-df-store-config-files`;break;case"test":return`http://appsloader/store-configs/${e}/${t}.json`;case"local-directory":break;default:r=`${e}-df-store-config-files`}return`https://${r}.s3.${o[e]}amazonaws.com/${t}.json`}i();i();function Se(t){let e=t?.replaceAll("_","-").trim().split("-")||[];function n(r){return r?`-${r.toUpperCase()}`:""}if(e.length<3){let[r,o]=e;return`${r?.toLowerCase()}${n(o)}`}else{let[r,o,s]=e;return`${r?.toLowerCase()}-${o.toUpperCase()}${n(s)}`}}function we(t){return t?.trim().toUpperCase()}function pt(t,e){let{currency:n,hashid:r}=t,o=t.language||document.documentElement.getAttribute("lang"),s=!!o,a=!!n,c=!!r;return s&&!a&&!c?gt(o,e):!s&&a&&!c?Z(n,e):s&&a&&!c?_t(o,n,e):!s&&!a&&c?Fn(r,e):s&&!a&&c?Gn(o,r,e):!s&&a&&c?Bn(r,n,e):s&&a&&c?Yn(o,n,r,e):X(e)}function X(t){return{language:t.defaults.language,currency:t.defaults.currency,hashid:t.defaults.hashid}}function Z(t,e){return{language:e.defaults.language,currency:we(t),hashid:e.defaults.hashid}}function gt(t,e){let n=Se(t),r=e.search_engines;if(r[n]||(n=yt(r,n)),!n||!r[n])return X(e);let o=Object.keys(r[n]);if(!o.length)return X(e);let s=o[0],a=r[n][s];return{language:n,currency:s,hashid:a}}function _t(t,e,n){let r=Se(t),o=n.search_engines;if(o[r]||(r=yt(o,r)),!r||!o[r])return Z(e,n);let s=we(e),a=Object.keys(o[r]),c=s;if(a.includes(s)||(c=a[0]),!c)return Z(e,n);let f=o[r][c];return{language:r,currency:s,hashid:f}}function Bn(t,e,n){return ee(t,n,e)||Z(e,n)}function Fn(t,e){return ee(t,e)||X(e)}function Gn(t,e,n){return ee(e,n)||gt(t,n)}function Yn(t,e,n,r){return ee(n,r,e)||_t(t,e,r)}function ee(t,e,n=null){let r=Jn(t,e.search_engines);return r?{language:r.language,currency:n||r.currency,hashid:t}:null}function yt(t,e){let[n]=e.split("-");if(t[n])return n;let r=Object.keys(t).filter(o=>Qn(o,n)).shift();return t[r]?r:null}function Qn(t,e){let[n]=t.split("-");return n===e}function Jn(t,e){for(let[n,r]of Object.entries(e))for(let[o,s]of Object.entries(r))if(s===t)return{language:n,currency:o};return null}i();i();function z(t){return`https://${t}-api.doofinder.com`}i();async function L(t,e){let r={method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e)};return r.mode="cors",await fetch(t,r)}async function bt(t){t.hashid?(u("[loader]","[loader]","Registering visit",window.location.href),L(`${z(t.zone)}/api/v2/stats/visit`,{session_id:h.getSessionId(),user_id:h.getUserId(),store:t.store,hashid:t.hashid,url:window.location.href})):u("[loader]","No hashid. Skipping register visit")}i();i();function vt(t){return`https://${t}-admin.doofinder.com`}var Wn=3;async function xt(t){t.registerCheckouts&&I.observeURL(e=>Xn(t))}async function Xn(t){let e=window.location.pathname,n=window.location.href,r=wt(t.checkout_confirmation_urls,e,n),o=wt(t.checkout_summary_urls,e,n),s=t.sales_api_integration;u("[checkout][logic] isCheckoutUrl",r),u("[checkout][logic] isCheckoutCartUrl",o),r&&er(t),o&&!s&&Et(t)}async function Zn(t,e){setTimeout(async()=>{u(`[checkout] Try number ${e}`);try{await t()}catch(n){u(`[checkout] Try number ${e} failed:`,n)}},2500)}async function Et(t,e=0){let n=t.hashid,r=t.checkout_css_selector;if(r==null){let s=await L(`${vt(t.zone)}/api/introspection/checkout`,{html_content:St(document.documentElement.outerHTML),hashid:n});if(!s.ok||(s=await s.json(),r=s.checkout_html?.products,!r))return}if(r===""){u("The provided CSS selector is an empty string");return}let o=document.querySelector(r);if(!o&&e>=Wn){u(`Cannot find element in DOM with CSS Selector ${r} after ${e} retries.`);return}else if(!o)return Zn(async()=>Et(t,e+1),e+1);u("[checkout] registering cart checkout"),L(`${z(t.zone)}/api/v2/stats/carts`,{hashid:n,session_id:h.getSessionId(),user_id:h.getUserId(),checkout_html:St(nr(o.outerHTML))})}async function er(t){u("[checkout] registering checkout");let e=t.hashid;L(`${z(t.zone)}/api/v2/stats/sales`,{hashid:e,session_id:h.getSessionId(),user_id:h.getUserId(),has_init:h.isLive("layer")}),document.dispatchEvent(new CustomEvent("doofinder.layer.checkout",{detail:{tag:{_hashid:e},url:window.location.href}}));let n="recommendations-widget-last-clicked-item",r=b(n,window.sessionStorage);r&&(document.dispatchEvent(new CustomEvent("doofinder.recommendations-widget.checkout",{detail:r})),Ue(n,window.sessionStorage)),G()}function St(t){let e=new TextEncoder().encode(t),n=Array.from(e,r=>String.fromCharCode(r)).join("");return btoa(n)}function tr(t){return new RegExp(t.replaceAll("?","\\?").replaceAll(".","\\.").replaceAll("*",".*"))}function nr(t){return t.replace(//g,"")}function wt(t,e,n){return t.filter(r=>r&&r.value&&r.value!=="").some(r=>{u("[checkout][anyUrlMatches] Checking checkout url for",r);let o=(()=>{switch(r.match_type){case"contains":return e.includes(r.value)||n.includes(r.value);case"equals":return e==r.value||n==r.value;case"regex":{let s=tr(r.value);return s.test(e)||s.test(n)}case"starts_with":return e.startsWith(r.value)||n.startsWith(r.value);default:return!1}})();return u(`[checkout][anyUrlMatches] Result for ${r.match_type}:`,o),o})}i();var kt=new Set;async function At(t){t.ga4_integration&&I.observeURL(rr,{immediate:!0})}async function rr({currentUrl:t}){kt.has(t)||(u("[ga4Integration] integrating GA4"),ir(),kt.add(t))}function or(){typeof window.gtag!="function"&&(window.gtag=function(t,e,n){typeof window.dataLayer>"u"?u("[ga4Integration][verification] Bad configuration for analytics"):t==="event"&&typeof e=="string"&&typeof n=="object"?window.dataLayer.push({event:e,...n}):window.dataLayer.push(arguments)})}function ir(){or(),document.addEventListener("doofinder.layer.search",t=>{window.search_timer&&clearTimeout(window.search_timer),window.search_timer=setTimeout(()=>{u("[ga4Integration] pushing GA4 doofinder_search"),window.gtag("event","doofinder_search",{hashid:t.detail.tag._hashid,search_term:t.detail.query}),window.search_timer=null},1e3)}),document.addEventListener("doofinder.layer.itemClick",t=>{u("[ga4Integration] pushing GA4 doofinder_view_item"),window.gtag("event","doofinder_view_item",{hashid:t.detail.tag._hashid,url:t.detail.url})}),document.addEventListener("doofinder.layer.checkout",t=>{u("[ga4Integration] pushing GA4 doofinder_checkout"),window.gtag("event","doofinder_checkout",{hashid:t.detail.tag._hashid,url:t.detail.url})}),window.addEventListener("doofinder.recommendations-widget.click",t=>{u("[ga4Integration] pushing GA4 doofinder_recos_click"),window.gtag("event","doofinder_recos_click",{hashid:t.detail.tag.options.hashid,product_id:t.detail.item.id,carousel_name:t.detail.tag.options.widget.name,url:t.detail.currentUrl})}),document.addEventListener("doofinder.recommendations-widget.checkout",t=>{u("[ga4Integration] pushing GA4 doofinder_recos_checkout"),window.gtag("event","doofinder_recos_checkout",{hashid:t.detail.hashid,carousel_name:t.detail.carouselName,url:t.detail.url})})}i();var Tt="previous-kv-userid",xe="previous-kv-email";function Ct(t){window.addEventListener("load",function(){sr(t)})}async function sr(t){if(ar(t)&&typeof window.klaviyo<"u"&&typeof window.dfKvCustomerEmail<"u"&&window.dfKvCustomerEmail){let e=window.dfKvCustomerEmail;if(!e)return;let n=await window.klaviyo.account(),r=h.getUserId();if(!cr(r,e))return;lr(e),r=h.getUserId(),_(Tt,r),_(xe,e),window.klaviyo.identify({email:e});try{let o=await fetch("https://a.klaviyo.com/client/events?company_id="+n,{method:"POST",headers:{accept:"application/vnd.api+json",revision:"2025-01-15","content-type":"application/vnd.api+json"},body:JSON.stringify({data:{type:"event",attributes:{properties:{connection:"Done"},metric:{data:{type:"metric",attributes:{name:"Connected to Doofinder"}}},profile:{data:{type:"profile",attributes:{email:e,properties:{external_id:r}}}}}}})});o.ok||console.warn("Failed to send data to Klaviyo:",await o.text())}catch(o){console.warn("Failed to send data to Klaviyo:",o)}}}function ar(t){return Array.isArray(t.integrations_list)&&t.integrations_list.includes("klaviyo")}function cr(t,e){let n=b(Tt),r=b(xe);return n===null||n!==t||r===null||r!==e}function lr(t){let e=b(xe);e!==null&&e!==t&&(G(),ue())}i();function Pt(t){let e=t.platform_integration_type;if(!["shoper","shopify"].includes(e))return;let r=ut(e);r&&(u("[loader]",`Loading platform integration script for ${e}:`,r),k(r))}i();function Dt(t,e){switch(t){case"shoper":ur(e);break;default:break}}function ur(t){typeof useStorefront=="function"?(u("[set_platform_config]","Setting platform config for Shoper with useStorefront"),useStorefront(e=>{let r=e.getApiSync("StorefrontSettingsApi").getLocales();t.currency=r.currency})):(u("[set_platform_config]","Setting platform config for Shoper with Shop.values.currency"),t.currency=Shop.values.currency)}i();var Ut=Zt(Ot());function Mt(){let t=navigator.userAgent;if(/CrKey\/\d+(\.\d+)+/.test(t))return"desktop";let{isPhone:n}=(0,Ut.default)(t);return n?"mobile":"desktop"}i();function $t(t){return t.map(e=>{let n=W(e.name);return n?n.backendAppToScriptApp(e):(console.error(`Doofinder app '${e.name}' not found`),!1)}).filter(e=>e)}var jt=!1;function Nt(t,e,n,r){if(jt)throw new Error("Doofinder already exists!");{let T=function(d){let m=f.settings,y=pt(d,m);u("[loader]","Resolved search engine",y);let E=d.register_visits||d.register_visits===void 0&&m.register_visits,Kt=d.register_checkouts||d.register_checkouts==null&&m.register_checkouts,Bt=d.require_cookies_consent||d.require_cookies_consent===void 0&&m.require_cookies_consent;s={...d,...y,pageTypeMappings:m.page_type_mappings||[],registerVisits:E,registerCheckouts:Kt,device:d.device||Mt(),account_code:m.account_code,require_cookies_consent:Bt,checkout_confirmation_urls:m.checkout_confirmation_urls||[],checkout_summary_urls:m.checkout_summary_urls||[],checkout_css_selector:m.checkout_css_selector,sales_api_integration:m.sales_api_integration||!1,ga4_integration:m.ga4_integration,integrations_list:m.integrations_list||[],platform_integration_type:m.platform_integration_type}},R=function(d,m,y=null){let E=mt(c,s,d,m,f,y);E&&(a[d]||(a[d]=[]),a[d].push(E))},Ht=function(){let d=zt().filter(([m])=>!n.includes(m));Vt(d),d.forEach(m=>{R(...m),Ze(m,()=>R(...m))})},zt=function(){if(s.apps==!1)return e;let d=e.map(E=>E[0]),m=f.apps.filter(E=>!d.includes(E.name)),y=$t(m);return e.concat(y)},Vt=function(d){d.forEach(m=>{let y=m[0];nt.includes(y)&&Be(lt(y))})};jt=!0;let o={},s={},a={},c,f,g=new P;o=rt(Object.values(tt)),c=ot(o),document.addEventListener("doofinder.register",d=>{let{name:m,entrypoint:y}=d.detail;o[m].resolve(y)});async function Ee(d){f=d[0],Dt(f.settings.platform_integration_type,t),T(t),s.require_cookies_consent||se(),h.getSessionId(),h.getUserId(),h.getTabId(),_("script-version","2.0"),g.resolve(!0),u("[loader]","Doofinder ready. Apps will be initialized now."),Ht(),Pt(s),At(s),Ct(s),s.registerVisits&&(bt(s),_("hashid",s.hashid)),xt(s)}return r?Ee(r):ht(t.store,t.zone).then(d=>{Ee(d)}).catch(d=>{Object.seal(d),g.reject(d)}),{get Session(){return h},getApp(d){return a[d]},getRegistry(d){return o[d]},buildCart(d){return new Y(d)},ready(){return g.promise},enableCookies:se,disableCookies:Re,enableDebug:De,disableDebug:Ie,setLayerServerUrl:Ve,setCDNServerUrl:ze,init:R,configure:T,registerApp:it}}}i();function qt(){let t=window.DoofinderAppsObject,e=window[t].q,n={},r=[],o=[],s=null,a;for(;a=e.shift();){let[c,f,g,T]=a;if(c==="config")f==="settings"?s=g:n[f]=g;else if(c==="init")r.push([f,g,T]);else if(c==="disable"&&Array.isArray(f))for(let R of f)o.push(R)}return{config:n,apps:r,disabledApps:o,scriptStoreConfig:s}}if(window.DoofinderStarted===void 0){window.DoofinderStarted=!0,Te();let{config:t,apps:e,disabledApps:n,scriptStoreConfig:r}=qt(),o=Nt(t,e,n,r);Object.defineProperty(window,"Doofinder",{value:o,writable:!1})}else console.warn("Multiple Doofinder single scripts detected. Only one will be executed.");})(); /*! Bundled license information: useragent-lite/lib/useragent-lite.js: (** * * @package useragent-lite * @version 0.0.2 * @copyright Copyright (c) 2014 - All rights reserved. * @license MIT License * @author Mark Florence * @link http://mflo.info * *) useragent-lite/index.js: (** * * @package useragent-lite * @version 0.0.2 * @copyright Copyright (c) 2014 - All rights reserved. * @license MIT License * @author Mark Florence * @link http://mflo.info * *) */