(()=>{var Ft=Object.create;var Ae=Object.defineProperty;var Yt=Object.getOwnPropertyDescriptor;var Qt=Object.getOwnPropertyNames;var Jt=Object.getPrototypeOf,Wt=Object.prototype.hasOwnProperty;var Xt=(t,e)=>()=>(t&&(e=t(t=0)),e);var Te=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Zt=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Qt(e))!Wt.call(t,o)&&o!==r&&Ae(t,o,{get:()=>e[o],enumerable:!(n=Yt(e,o))||n.enumerable});return t};var er=(t,e,r)=>(r=t!=null?Ft(Jt(t)):{},Zt(e||!t||!t.__esModule?Ae(r,"default",{value:t,enumerable:!0}):r,t));var c,i=Xt(()=>{c={ap1:"1.7.15",eu1:"1.7.15","eu1-b":"1.7.15",us1:"1.7.15"}});var Ot=Te((rs,Lt)=>{i();var dn=[{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}],fn=[{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 mn(t,e){dn.some(function(r){var n=null;if(!r.regex||(n=r.regex.exec(e)))return t.browser=r.name,r.flags.forEach(function(o){t[o]=!0}),t.version=n&&n.length>0?Number(n[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 hn(t,e){fn.some(function(r){if(!r.regex||r.regex.test(e))return t.device=r.name,r.flags.forEach(function(n){t[n]=!0}),t.platform=r.platform,!0})}Lt.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 mn(e,t),hn(e,t),e}});var Ut=Te((os,Rt)=>{i();Rt.exports=Ot()});i();i();function Ce(){try{decodeURIComponent(location.href)}catch{throw new Error("invalid UTF-8 on url-encoded query params")}}i();i();i();i();var H,rr=new Uint8Array(16);function re(){if(!H&&(H=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!H))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return H(rr)}i();var p=[];for(let t=0;t<256;++t)p.push((t+256).toString(16).slice(1));function Ie(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 nr=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),ne={randomUUID:nr};function or(t,e,r){if(ne.randomUUID&&!e&&!t)return ne.randomUUID();t=t||{};let n=t.random||(t.rng||re)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,e){r=r||0;for(let o=0;o<16;++o)e[r+o]=n[o];return e}return Ie(n)}var R=or;i();var oe="__DF_DEBUG_MODE__",Pe="true",U=window.sessionStorage;function De(){U.setItem(oe,Pe)}function Le(){U.removeItem(oe)}function ir(){return U.getItem(oe)===Pe}function K(t){return U.getItem(t)||window[t]}function B(t,e){U.setItem(t,e)}function u(...t){ir()&&console.log("[doofinder]",...t)}i();i();var Oe={canPushState(){return typeof history.pushState<"u"},dropLocal(t,e,r){return t.removeItem(this.localKey(e,r))},updateLocal(t,e,r,n,o){let s=this.getLocal(t,e,r),a=this.localKey(e,r),l=s===null?n:o(s);return t.setItem(a,JSON.stringify(l)),l},getLocal(t,e,r){return JSON.parse(t.getItem(this.localKey(e,r)))},updateCurrentState(t){this.canPushState()&&history.replaceState(t(history.state||{}),"",window.location.href)},pushState(t,e,r){if(this.canPushState()){if(r!==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,"",r||null);let n=this.getHashTargetEl(window.location.hash);n?n.scrollIntoView():e.type==="redirect"&&window.scroll(0,0)}}else this.redirect(r)},setCookie(t,e){document.cookie=`${t}=${e}`},getCookie(t){return document.cookie.replace(new RegExp(`(?:(?:^|.*;s*)${t}s*=s*([^;]*).*$)|^.*$`),"$1")},redirect(t,e){e&&Oe.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}"]`)}},G=Oe;i();var ie="df-cookies-allowed",se=window.localStorage;function ae(){se.setItem(ie,"true")}function Re(){se.removeItem(ie)}function Ue(){return JSON.parse(se.getItem(ie)||"false")}var ce="df",le=window.localStorage;function v(t,e=le){return G.getLocal(e,ce,t)}function _(t,e,r=le){return Ue()?G.updateLocal(r,ce,t,e,()=>e):null}function Me(t,e=le){return G.dropLocal(e,ce,t)}var Ne=24*60*60*1e3,je="random-userid",C="session",ue="apps",$e="tab-id";function qe(){return{id:R().replaceAll("-",""),expiry:new Date().getTime()+Ne,live:[]}}function M(){let t=v(C);return(!t||Ve(t.expiry))&&(t=qe()),_(C,t)}function Ve(t){return tr!==t),_(C,e),_(ue,e.live.join())},getLastUsedApps(){return v(ue)||""},isLive(...t){let e=M();return e===null?!1:t.some(n=>e.live.includes(n))},getSessionObject(){return M()},setSessionObject(t){sr(t)?_(C,t):console.error("[session][setSessionObject()] session object is not valid")}};i();function ar(){return{"content-type":"application/json"}}async function ze(t,e={}){return(await fetch(t,{method:"GET",cache:"no-cache",mode:"cors",headers:ar(),...e})).json()}var Y=class{constructor(e){this.zone=e}async add(e,r,{id:n,title:o,price:s},a=1){let l=`${this.url(e)}/cart/${h.getSessionId()||""}`,f=JSON.stringify({amount:a,id:n,title:o,price:s,index:r});return ze(l,{method:"PUT",body:f})}async remove(e,r,n,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 r=JSON.stringify({session_id:h.getSessionId(),user_id:h.getUserId(),sources:h.getLastUsedApps().split(",")});return ze(`${this.url(e)}/checkout`,{method:"PUT",body:r})}url(e){return`https://${this.zone}-search.doofinder.com/6/${e}/stats`}};i();function He(t){return B("__DF_CDN_PREFIX__",t)}i();function Ke(t){return B("__DF_LAYER_SERVER__",t)}i();i();async function k(t,e,r=!1){if(!document.querySelector(`script[src="${t}"]`)){let n=document.createElement("script");n.src=t,n.async=1,r&&(n.type="module"),e&&(n.onerror=()=>k(e)),document.head.appendChild(n)}}async function Be(t,e){k(t,e,!0)}async function Ge(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 fe(t,e){if(!document.querySelector(`link[rel="stylesheet"][href="${t}"]`)){let r=document.createElement("link");r.setAttribute("rel","stylesheet"),r.setAttribute("href",t),e&&(r.onerror=()=>fe(e)),document.head.appendChild(r)}}async function A(t){if(t=(t||"").trim(),!cr(t)){let e=document.createElement("style");e.appendChild(document.createTextNode(t)),document.head.appendChild(e)}}function cr(t){return Array.from(document.head.querySelectorAll("style")).some(e=>e.textContent.trim()===t)}i();i();var I=class{constructor(e={}){e=Object.assign({resolveTimeout:null,resolveValue:!0,rejectTimeout:null,rejectValue:!1},e),this._promise=new Promise((a,l)=>{this.resolve=a,this.reject=l}),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:r,resolveValue:n,rejectTimeout:o,rejectValue:s}=e;r&&setTimeout(()=>this.resolve(n),r),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 P="quiz";function lr(t){return[P,{quiz_id:t.quiz_id}]}function ur(t,e,r){let n=r.find(s=>s.name==P&&s.quiz_id==e.quiz_id);if(!n)return console.error(`Doofinder app '${P}' not enabled or wrong quiz_id`),null;let o={quiz_id:e.quiz_id,trigger:e.trigger||n.options.trigger,hashid:n.overrides.hashid,custom_css:n.overrides.custom_css,hooks:e.hooks,account_code:t.account_code};return{...t,...o}}function dr(t,e,r){let n=e[P],o=n.vsn?.[t.zone];return{assets:n[t.device],cdn_prefix:e[P].cdn_prefix,cdn_fallback:n.cdn_fallback,vsn:o,appConfig:t,onRegister:function(s){S.then(()=>{let a=s.create(t);typeof r=="function"&&r(a)})}}}var me={appName:P,backendAppToScriptApp:lr,buildConfig:ur,buildSettingsConfig:dr};i();i();i();function Fe(t,e={}){let r=document.querySelector(t);return r?Promise.resolve(r):new Promise((n,o)=>{let s=0,a=null,l=e.interval||500,f=e.times||10;a=setInterval(function(){s++r.offsetWidth>0&&r.offsetHeight>0)}async updateQuery(e=""){let r=await this.getElement();r instanceof HTMLInputElement&&(r.value=e)}async focus(){let e=await this.getElement();e instanceof HTMLInputElement&&e.focus()}setCaptureLength(e){this._minCaptureLength=e||Ye}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 r=document[`${this._enabled?"add":"remove"}EventListener`];this._events.forEach(n=>r(...n))}}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(Qe,this.getPayload())}destroy(){this._events.forEach(e=>window.removeEventListener(...e))}shouldHandle(e){let r=this.getElementFromEvent(e);return r?(this._element=r,!0):!1}getPayload(e){let r={source:this._element,originalEvent:e};if(this._element instanceof HTMLInputElement){let n=this._element.value.trim();(n.length>=this._minCaptureLength||e?.type==="keydown"||e?.type==="keyup")&&(r.query=n)}return r}getElementFromEvent(e){if(!e.target||e.target===document||e.target===window)return;let r=e.type==="submit"?"querySelector":"closest",n=e.target[r](this._elementSelector);if(n&&!n.closest("[dfd-hook]"))return n}charLimitReached(e){let r=this.getElementFromEvent(e);return!r||!r.value||e.type!=="keydown"||r.value.length<50||hr.includes(e.key)?!1:(e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),!0)}handleClick(e){this.shouldHandle(e)&&(e.preventDefault(),e.stopImmediatePropagation(),this.notify(Qe,this.getPayload(e)))}handleFocus(e){let r=this.getElementFromEvent(e);r&&this.isButtonLike(r)||this.shouldHandle(e)&&(e.stopImmediatePropagation(),this.notify(fr,this.getPayload(e)))}handleInput(e){this.shouldHandle(e)&&this.notify(mr,this.getPayload(e))}handleSubmit(e){this._handleSubmit&&this.shouldHandle(e)&&(e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),this.notify(Je,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(Je,this.getPayload(e)))}isButtonLike(e){let{tagName:r,role:n}=e;return r==="BUTTON"||n==="button"}notify(e,r){this._eventBus?this._eventBus.emit(e,r):this._eventsQueue.push([e,r]),u("[trigger]",this._eventBus?"[emit]":"[queue]",e,r)}};var $="layer";function pr(t){return[$,{}]}function gr(t,e,r){let n=r.find(a=>a.name==$);if(!n)return console.error(`Doofinder app '${$}' not enabled`),null;let o=n.overrides.autoload,s={trigger:e.trigger||n.options.trigger,url_hash:e.url_hash||e.url_hash===void 0&&n.options.url_hash,hooks:e.hooks,params:e.params,search_query_retention:n.overrides.search_query_retention,sort:e.sort,layout:n.overrides.layout,custom_css:n.overrides.custom_css[t.device],custom_properties:n.overrides.custom_properties[t.device],autoload:o&&o[t.device],type:n.type,exportResultsData:e.exportResultsData,zone:e.zone||n.options.zone||t.zone};return{...t,...s}}function _r(t,e,r){let n=e[$],o=vr(n,t.device,t.layout);t=he(t);let s=t.custom_properties?.join(` `),a=n.vsn?.[t.zone];return{assets:o,cdn_prefix:n.cdn_prefix,cdn_fallback:n.cdn_fallback,vsn:a,appConfig:t,onRegister:function(l){S.then(()=>{let f=l.create(t);A(`#${f.mount.id} { ${s||""} }`),typeof r=="function"&&r(f)})}}}function he(t){return t.trigger=yr(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 yr(t,e){let r=new Q(t);return r.enabled=!e||e.trigger,r}function vr(t,e,r){return e==="mobile"?t.mobile[r]||t.mobile.default:t.desktop[r]}var pe={appName:$,backendAppToScriptApp:pr,buildConfig:gr,buildSettingsConfig:_r};i();var N="chat";function br(t){return[N,{chat_id:t.chat_id}]}function Sr(t,e,r){let n=r.find(s=>s.name==N&&s.chat_id==e.chat_id);if(!n)return console.error(`Doofinder app '${N}' not enabled or wrong chat_id`),null;let o={chat_id:e.chat_id,id:e.id||n.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 wr(t,e,r){let n=e[N],o=n.vsn;return{assets:n[t.device],cdn_prefix:n.cdn_prefix,cdn_fallback:n.cdn_fallback,vsn:o,appConfig:t,onRegister:function(a){S.then(()=>{let l=a.create(t);typeof r=="function"&&r(l)})}}}var ge={appName:N,backendAppToScriptApp:br,buildConfig:Sr,buildSettingsConfig:wr};i();i();function Xe(t){let{hashid:e,url_patterns:r}=t,n=window.location.toString();u("[category merchandising] finding any matching URL pattern configuration for hashid: ",e," url patterns: ",r," URL: ",n);try{let o=xr(e,r,n);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 xr(t,e,r){let n=e.filter(o=>o.hashid===t).find(o=>{let s=We(o);return[...r.matchAll(s)].length>0});return n||e.filter(o=>!o.hashid).find(o=>{let s=We(o);return[...r.matchAll(s)].length>0})}function We(t){let[,,e,r]=t.pattern.match(/(\/?)(.+)\1([a-z]*)/i);r=r||"g";let n=new RegExp(e,r);return u("pattern ",e,"flags",r,"regexp",n),n}var j="category_merchandising";function Er(t){return[j,{}]}function kr(t,e,r){let n=r.find(a=>a.name==j);if(!n)return console.error(`Doofinder app '${j}' not enabled`),null;let o=n.devices[t.device],s={insertion_point:e.insertion_point||o.options.insertion_point,url_hash:e.url_hash||!1,search:e.search||n.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||n.options.url_patterns,type:"category_pages",zone:e.zone||n.options.zone||t.zone};return{...t,...s}}function Ar(t,e,r){if(!Xe(t))return null;let n=e[j],o=n.vsn?.[t.zone],s=n[t.device??"desktop"];t.layerType="category_pages",t=he(t);let a=t.custom_properties?.join(` `);return{assets:s,cdn_prefix:n.cdn_prefix,cdn_fallback:n.cdn_fallback,vsn:o,appConfig:t,onRegister:function(l){S.then(()=>{let f=l.create(t);A(`#${f.mount.id} { ${a||""} }`),typeof r=="function"&&r(f)})}}}var _e={appName:j,backendAppToScriptApp:Er,buildConfig:kr,buildSettingsConfig:Ar};i();i();var ye=class{#n;#t;#r;#e;constructor(){this.#t=new Set,this.#r=new Set,this.#e=null,u("[DOMObserver] installing observer"),this.#n=new MutationObserver(e=>{this.#a(),this.#c(e),this.#s()}),this.#s()}observeDOM(e,r={}){return this.#i(this.#t,e,r),this}observeURL(e,r={}){return this.#i(this.#r,e,r),this}disconnect(e){return this.#t.delete(e),this.#r.delete(e),this}#i(e,r,n={}){n.immediate&&this.#o(r,{reason:"immediate execution",changes:null,previousUrl:this.#e,currentUrl:window.location.href.split("#")[0]}),e.add(r)}#s(){return this.#n.observe(document,{childList:!0,subtree:!0}),this}#a(){return this.#n.disconnect(),this}#c(e){u("[DOMObserver] DOM change observed");let r=window.location.href.split("#")[0];for(let n of this.#t)this.#o(n,{reason:"DOM changed",changes:e,previousUrl:this.#e,currentUrl:r});if(this.#e!==r){u("[DOMObserver] URL change observed");for(let n of this.#r)this.#o(n,{reason:"URL changed",changes:e,previousUrl:this.#e,currentUrl:r});this.#e=r}}#o(e,r){try{e(r)}catch(n){console.error(`[DOMObserver] ${n}`)}}},D=new ye;var q="recommendations_widgets",Tr="recommendations";function Cr(t){return[q,{}]}function Ir(t,e,r){let n=r.find(a=>a.name==q);if(!n)return console.error(`Doofinder app '${q}' not enabled`),null;let o=Rr(t,e,n),s=Dr(o);return{...o,custom_css:n.overrides.custom_css,widgets:[...Or(s,o),...Lr(o)]}}function Pr(t,e,r){if(t.widgets.length===0)return null;let n=e[q];return{assets:n[t.device],cdn_prefix:n.cdn_prefix,vsn:n.vsn,appConfig:t,onRegister:function(o){S.then(()=>{for(let s of t.widgets){if(!s.hashids.includes(t.hashid))continue;let{_widgets:a,...l}=t;o.create({...l,widget:s})}})}}}async function et(t,e){t.includes(Tr)&&D.observeDOM(r=>{e()})}var ve={appName:q,backendAppToScriptApp:Cr,buildConfig:Ir,buildSettingsConfig:Pr};function Dr({pageTypeMappings:t}){let e=window.location.href;return t.reduce((r,n)=>{let{match_conditions:o}=n;return o.length===0?r:o.some(s=>Ur(e,s))?[n,...r]:r},[])}function Lr({widgets:t}){return t.filter(e=>!e.page_type_id)}function Or(t,{widgets:e,overridePageTypeCheck:r}){if(r)return e;let n=t.map(o=>o.id);return e.filter(o=>n.includes(o.page_type_id))}function Rr(t,e,r){let n=Mr(e);if(n.length>0){let s=n.map(a=>{let l=r.widgets.find(f=>f.widget_id===a.widget_id);if(l)return{...a,id:a.widget_id,name:a.widget_name,page_type_id:l.page_type_id,insertion_point:a.insertion_point||l.options.insertion_point,insertion_method:a.insertion_method||l.options.insertion_method,hashids:l.overrides.hashids};console.error(`Custom recommendations widget '${a.widget_id}' does not exist`)}).filter(a=>!!a);return{...t,widgets:[...s],overridePageTypeCheck:!0}}let o=r.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 Ur(t,{match_type:e,value:r}){switch(e){case"equals":return Ze(t)==Ze(r);case"contains":return t.includes(r);case"starts_with":return t.startsWith(r);case"regex":try{return new RegExp(r,"i").test(t)}catch{return!1}default:return!1}}function Ze(t){try{let e=new URL(t);return e.origin+e.pathname}catch{return t}}function Mr(t){return t?Array.isArray(t)?[...t]:Object.hasOwn(t,"widget_id")?[{...t}]:[]:[]}var $r=pe.appName,tt=_e.appName,J=ge.appName,Nr=me.appName,W=ve.appName,rt={LAYER:$r,CHAT:J,QUIZ:Nr,RECOMMENDATIONS_WIDGETS:W},nt=[J,W];function ot(t){return t.reduce(function(e,r){return e[r]=new I,e},{})}function it(t){return async function(e,r){if(!t[e])throw new Error(`unknown "${e}" app!`);r(await t[e])}}function st(t,e){document.dispatchEvent(new CustomEvent("doofinder.register",{detail:{name:t,entrypoint:e}}))}function X(t){return[_e,pe,me,ge,ve].find(e=>e.appName===t)}i();var V=".min",b="https://cdn.doofinder.com";function jr(t){switch(t){case J:return"0.1.5-lv1.0.2";case W:return"0.1.4-lv1.0.2";default:return"0"}}var w=`/js/dflayer${V}.js`,x="/css/2/common.css",at={js:[`/quiz${V}.js`],css:["/quiz.css"]},ct={mjs:[`/recommendations${V}.js`],css:["/recommendations.css"]};function ut(t){return`${b}/live_view_portal/${jr(t)}/live_view_portal${V}.js`}var lt={mjs:[`/chat${V}.js`],css:["/chat.css"]};function dt(t){return t?`${b}/plugins/${t}.js`:null}var be=typeof c>"u"?{ap1:"0",eu1:"0",us1:"0","eu1-b":"0"}:c,qr="0.2.25",Vr="0.4.2",ft=[{vsn:"1.0",layer:{cdn_prefix:b+"/livelayer",cdn_fallback:b+"/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:b+"/livelayer",cdn_fallback:b+"/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:b+"/quiz",cdn_fallback:b+"/quiz",desktop:at,mobile:at,vsn:be},chat:{cdn_prefix:b+"/chat",cdn_fallback:b+"/chat",desktop:lt,mobile:lt,vsn:qr},recommendations_widgets:{cdn_prefix:b+"/recommendations-v2/lv",desktop:ct,mobile:ct,vsn:Vr}}];i();function mt(t,e,r=""){let n=K("__DF_CDN_PREFIXES__");return n&&n[t]?n[t]:`${e}${r!=""?"/":""}${r}`}function ht(t,e,r,n,o,s){let a=ft[0],l=X(r);if(!l)return console.error(`Doofinder app '${r}' not found`),null;let f=l.buildConfig(e,n,o.apps);if(!f)return console.error(`Doofinder app '${r}' not enabled`),null;let g=l.buildSettingsConfig(f,a,s);if(!g)return null;let T=r==tt?"layer":r;return t(T,g.onRegister),zr(r,g.assets,g.cdn_prefix,g.vsn,g.appConfig.custom_css,g.cdn_fallback),g.appConfig}async function zr(t,e,r,n,o,s){let a=mt(t,r,n),l=n?`?v=${n}`:"";Se(a,l,s,k,e.js),Se(a,l,s,Be,e.mjs),Se(a,l,s,fe,e.css),o&&Array.isArray(o)?o.forEach(A):o&&A(o)}async function Se(t,e,r,n,o){o&&o.forEach(s=>n(`${t}${s}${r?"":e}`,r?`${r}${s}${e}`:void 0))}i();async function pt(t,e){let r=Hr(t,e),n=await fetch(r);if(!n.ok)throw new Error(`HTTP error! Status: ${n.status}`);return await n.json()}function Hr(t,e){let r=K("__DF_STORE_CONFIG__"),n="",o={eu1:"eu-west-1.",us1:"us-east-1.",ap1:"ap-southeast-1."};switch(e=Object.hasOwn(o,e)?e:"eu1",r){case"provisional-bucket":n=`provisional-${e}-df-store-config-files`;break;case"production-bucket":n+=`${e}-df-store-config-files`;break;case"test":return`http://appsloader/store-configs/${e}/${t}.json`;case"local-directory":break;default:n=`${e}-df-store-config-files`}return`https://${n}.s3.${o[e]}amazonaws.com/${t}.json`}i();i();function we(t){let e=t?.replaceAll("_","-").trim().split("-")||[];function r(n){return n?`-${n.toUpperCase()}`:""}if(e.length<3){let[n,o]=e;return`${n?.toLowerCase()}${r(o)}`}else{let[n,o,s]=e;return`${n?.toLowerCase()}-${o.toUpperCase()}${r(s)}`}}function xe(t){return t?.trim().toUpperCase()}function gt(t,e){let{currency:r,hashid:n}=t,o=t.language||document.documentElement.getAttribute("lang"),s=!!o,a=!!r,l=!!n;return s&&!a&&!l?_t(o,e):!s&&a&&!l?ee(r,e):s&&a&&!l?yt(o,r,e):!s&&!a&&l?Br(n,e):s&&!a&&l?Gr(o,n,e):!s&&a&&l?Kr(n,r,e):s&&a&&l?Fr(o,r,n,e):Z(e)}function Z(t){return{language:t.defaults.language,currency:t.defaults.currency,hashid:t.defaults.hashid}}function ee(t,e){return{language:e.defaults.language,currency:xe(t),hashid:e.defaults.hashid}}function _t(t,e){let r=we(t),n=e.search_engines;if(n[r]||(r=vt(n,r)),!r||!n[r])return Z(e);let o=Object.keys(n[r]);if(!o.length)return Z(e);let s=o[0],a=n[r][s];return{language:r,currency:s,hashid:a}}function yt(t,e,r){let n=we(t),o=r.search_engines;if(o[n]||(n=vt(o,n)),!n||!o[n])return ee(e,r);let s=xe(e),a=Object.keys(o[n]),l=s;if(a.includes(s)||(l=a[0]),!l)return ee(e,r);let f=o[n][l];return{language:n,currency:s,hashid:f}}function Kr(t,e,r){return te(t,r,e)||ee(e,r)}function Br(t,e){return te(t,e)||Z(e)}function Gr(t,e,r){return te(e,r)||_t(t,r)}function Fr(t,e,r,n){return te(r,n,e)||yt(t,e,n)}function te(t,e,r=null){let n=Qr(t,e.search_engines);return n?{language:n.language,currency:r||n.currency,hashid:t}:null}function vt(t,e){let[r]=e.split("-");if(t[r])return r;let n=Object.keys(t).filter(o=>Yr(o,r)).shift();return t[n]?n:null}function Yr(t,e){let[r]=t.split("-");return r===e}function Qr(t,e){for(let[r,n]of Object.entries(e))for(let[o,s]of Object.entries(n))if(s===t)return{language:r,currency:o};return null}i();i();function z(t){return`https://${t}-api.doofinder.com`}i();async function L(t,e){let n={method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e)};return n.mode="cors",await fetch(t,n)}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 St(t){return`https://${t}-admin.doofinder.com`}var Jr=3;async function Et(t){t.registerCheckouts&&D.observeURL(e=>Wr(t))}async function Wr(t){let e=window.location.pathname,r=window.location.href,n=xt(t.checkout_confirmation_urls,e,r),o=xt(t.checkout_summary_urls,e,r),s=t.sales_api_integration;u("[checkout][logic] isCheckoutUrl",n),u("[checkout][logic] isCheckoutCartUrl",o),n&&Zr(t),o&&!s&&kt(t)}async function Xr(t,e){setTimeout(async()=>{u(`[checkout] Try number ${e}`);try{await t()}catch(r){u(`[checkout] Try number ${e} failed:`,r)}},2500)}async function kt(t,e=0){let r=t.hashid,n=t.checkout_css_selector;if(n==null){let s=await L(`${St(t.zone)}/api/introspection/checkout`,{html_content:wt(document.documentElement.outerHTML),hashid:r});if(!s.ok||(s=await s.json(),n=s.checkout_html?.products,!n))return}if(n===""){u("The provided CSS selector is an empty string");return}let o=document.querySelector(n);if(!o&&e>=Jr){u(`Cannot find element in DOM with CSS Selector ${n} after ${e} retries.`);return}else if(!o)return Xr(async()=>kt(t,e+1),e+1);u("[checkout] registering cart checkout"),L(`${z(t.zone)}/api/v2/stats/carts`,{hashid:r,session_id:h.getSessionId(),user_id:h.getUserId(),checkout_html:wt(tn(o.outerHTML))})}async function Zr(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 r="recommendations-widget-last-clicked-item",n=v(r,window.sessionStorage);n&&(document.dispatchEvent(new CustomEvent("doofinder.recommendations-widget.checkout",{detail:n})),Me(r,window.sessionStorage)),F()}function wt(t){let e=new TextEncoder().encode(t),r=Array.from(e,n=>String.fromCharCode(n)).join("");return btoa(r)}function en(t){return new RegExp(t.replaceAll("?","\\?").replaceAll(".","\\.").replaceAll("*",".*"))}function tn(t){return t.replace(//g,"")}function xt(t,e,r){return t.filter(n=>n&&n.value&&n.value!=="").some(n=>{u("[checkout][anyUrlMatches] Checking checkout url for",n);let o=(()=>{switch(n.match_type){case"contains":return e.includes(n.value)||r.includes(n.value);case"equals":return e==n.value||r==n.value;case"regex":{let s=en(n.value);return s.test(e)||s.test(r)}case"starts_with":return e.startsWith(n.value)||r.startsWith(n.value);default:return!1}})();return u(`[checkout][anyUrlMatches] Result for ${n.match_type}:`,o),o})}i();var At=new Set;async function Tt(t){t.ga4_integration&&D.observeURL(rn,{immediate:!0})}async function rn({currentUrl:t}){At.has(t)||(u("[ga4Integration] integrating GA4"),on(),At.add(t))}function nn(){typeof window.gtag!="function"&&(window.gtag=function(t,e,r){typeof window.dataLayer>"u"?u("[ga4Integration][verification] Bad configuration for analytics"):t==="event"&&typeof e=="string"&&typeof r=="object"?window.dataLayer.push({event:e,...r}):window.dataLayer.push(arguments)})}function on(){nn(),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 Ct="previous-kv-userid",Ee="previous-kv-email";function It(t){window.addEventListener("load",function(){sn(t)})}async function sn(t){if(an(t)&&typeof window.klaviyo<"u"&&typeof window.dfKvCustomerEmail<"u"&&window.dfKvCustomerEmail){let e=window.dfKvCustomerEmail;if(!e)return;let r=await window.klaviyo.account(),n=h.getUserId();if(!cn(n,e))return;ln(e),n=h.getUserId(),_(Ct,n),_(Ee,e),window.klaviyo.identify({email:e});try{let o=await fetch("https://a.klaviyo.com/client/events?company_id="+r,{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:n}}}}}}})});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 an(t){return Array.isArray(t.integrations_list)&&t.integrations_list.includes("klaviyo")}function cn(t,e){let r=v(Ct),n=v(Ee);return r===null||r!==t||n===null||n!==e}function ln(t){let e=v(Ee);e!==null&&e!==t&&(F(),de())}i();function Pt(t){let e=t.platform_integration_type;if(!["shoper","shopify"].includes(e))return;let n=dt(e);n&&(u("[loader]",`Loading platform integration script for ${e}:`,n),k(n))}i();function Dt(t,e){switch(t){case"shoper":un(e);break;default:break}}function un(t){typeof useStorefront=="function"?(u("[set_platform_config]","Setting platform config for Shoper with useStorefront"),useStorefront(e=>{let n=e.getApiSync("StorefrontSettingsApi").getLocales();t.currency=n.currency})):(u("[set_platform_config]","Setting platform config for Shoper with Shop.values.currency"),t.currency=Shop.values.currency)}i();var Mt=er(Ut());function $t(){let t=navigator.userAgent;if(/CrKey\/\d+(\.\d+)+/.test(t))return"desktop";let{isPhone:r}=(0,Mt.default)(t);return r?"mobile":"desktop"}i();function Nt(t){return t.map(e=>{let r=X(e.name);return r?r.backendAppToScriptApp(e):(console.error(`Doofinder app '${e.name}' not found`),!1)}).filter(e=>e)}var jt=!1;function qt(t,e,r,n){if(jt)throw new Error("Doofinder already exists!");{let T=function(d){let m=f.settings,y=gt(d,m);u("[loader]","Resolved search engine",y);let E=d.register_visits||d.register_visits===void 0&&m.register_visits,Bt=d.register_checkouts||d.register_checkouts==null&&m.register_checkouts,Gt=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:Bt,device:d.device||$t(),account_code:m.account_code,require_cookies_consent:Gt,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}},O=function(d,m,y=null){let E=ht(l,s,d,m,f,y);E&&(a[d]||(a[d]=[]),a[d].push(E))},zt=function(){let d=Ht().filter(([m])=>!r.includes(m));Kt(d),d.forEach(m=>{O(...m),et(m,()=>O(...m))})},Ht=function(){if(s.apps==!1)return e;let d=e.map(E=>E[0]),m=f.apps.filter(E=>!d.includes(E.name)),y=Nt(m);return e.concat(y)},Kt=function(d){d.forEach(m=>{let y=m[0];nt.includes(y)&&Ge(ut(y))})};jt=!0;let o={},s={},a={},l,f,g=new I;o=ot(Object.values(rt)),l=it(o),document.addEventListener("doofinder.register",d=>{let{name:m,entrypoint:y}=d.detail;o[m].resolve(y)});async function ke(d){f=d[0],Dt(f.settings.platform_integration_type,t),T(t),s.require_cookies_consent||ae(),h.getSessionId(),h.getUserId(),h.getTabId(),_("script-version","2.0"),g.resolve(!0),u("[loader]","Doofinder ready. Apps will be initialized now."),zt(),Pt(s),Tt(s),It(s),s.registerVisits&&(bt(s),_("hashid",s.hashid)),Et(s)}return n?ke(n):pt(t.store,t.zone).then(d=>{ke(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:ae,disableCookies:Re,enableDebug:De,disableDebug:Le,setLayerServerUrl:Ke,setCDNServerUrl:He,init:O,configure:T,registerApp:st}}}i();function Vt(){let t=window.DoofinderAppsObject,e=window[t].q,r={},n=[],o=[],s=null,a;for(;a=e.shift();){let[l,f,g,T]=a;if(l==="config")f==="settings"?s=g:r[f]=g;else if(l==="init")n.push([f,g,T]);else if(l==="disable"&&Array.isArray(f))for(let O of f)o.push(O)}return{config:r,apps:n,disabledApps:o,scriptStoreConfig:s}}if(window.DoofinderStarted===void 0){window.DoofinderStarted=!0,Ce();let{config:t,apps:e,disabledApps:r,scriptStoreConfig:n}=Vt(),o=qt(t,e,r,n);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 * *) */