(()=>{var Rt=Object.create;var ge=Object.defineProperty;var Nt=Object.getOwnPropertyDescriptor;var $t=Object.getOwnPropertyNames;var Mt=Object.getPrototypeOf,Lt=Object.prototype.hasOwnProperty;var Ut=(e,t)=>()=>(e&&(t=e(e=0)),t);var ye=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var jt=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of $t(t))!Lt.call(e,o)&&o!==r&&ge(e,o,{get:()=>t[o],enumerable:!(n=Nt(t,o))||n.enumerable});return e};var Vt=(e,t,r)=>(r=e!=null?Rt(Mt(e)):{},jt(t||!e||!e.__esModule?ge(r,"default",{value:e,enumerable:!0}):r,e));var l,s=Ut(()=>{l={ap1:"1.5.19",eu1:"1.5.19","eu1-b":"1.5.0-eu1b",us1:"1.5.19"}});var xt=ye((Ai,yt)=>{s();var Xr=[{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}],Zr=[{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 en(e,t){Xr.some(function(r){var n=null;if(!r.regex||(n=r.regex.exec(t)))return e.browser=r.name,r.flags.forEach(function(o){e[o]=!0}),e.version=n&&n.length>0?Number(n[1]):0,t.indexOf("Trident/4")!==-1&&e.version<8&&(e.version=8),t.indexOf("Trident/5")!==-1&&e.version<9&&(e.version=9),t.indexOf("Trident/6")!==-1&&e.version<10&&(e.version=10),t.indexOf("Trident/7")!==-1&&e.version<11&&(e.version=11),!0})}function tn(e,t){Zr.some(function(r){if(!r.regex||r.regex.test(t))return e.device=r.name,r.flags.forEach(function(n){e[n]=!0}),e.platform=r.platform,!0})}yt.exports=function(e){var t={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 en(t,e),tn(t,e),t}});var bt=ye((ki,St)=>{s();St.exports=xt()});s();s();function xe(){try{decodeURIComponent(location.href)}catch{throw new Error("invalid UTF-8 on url-encoded query params")}}s();s();s();s();var q,zt=new Uint8Array(16);function W(){if(!q&&(q=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!q))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return q(zt)}s();var h=[];for(let e=0;e<256;++e)h.push((e+256).toString(16).slice(1));function Se(e,t=0){return h[e[t+0]]+h[e[t+1]]+h[e[t+2]]+h[e[t+3]]+"-"+h[e[t+4]]+h[e[t+5]]+"-"+h[e[t+6]]+h[e[t+7]]+"-"+h[e[t+8]]+h[e[t+9]]+"-"+h[e[t+10]]+h[e[t+11]]+h[e[t+12]]+h[e[t+13]]+h[e[t+14]]+h[e[t+15]]}s();s();var Ht=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),X={randomUUID:Ht};function Bt(e,t,r){if(X.randomUUID&&!t&&!e)return X.randomUUID();e=e||{};let n=e.random||(e.rng||W)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,t){r=r||0;for(let o=0;o<16;++o)t[r+o]=n[o];return t}return Se(n)}var C=Bt;s();var Z="__DF_DEBUG_MODE__",be="true",D=window.sessionStorage;function ve(){D.setItem(Z,be)}function we(){D.removeItem(Z)}function Ft(){return D.getItem(Z)===be}function z(e){return D.getItem(e)||window[e]}function H(e,t){D.setItem(e,t)}function d(...e){Ft()&&console.log("[doofinder]",...e)}s();s();var Ee={canPushState(){return typeof history.pushState<"u"},dropLocal(e,t,r){return e.removeItem(this.localKey(t,r))},updateLocal(e,t,r,n,o){let i=this.getLocal(e,t,r),a=this.localKey(t,r),c=i===null?n:o(i);return e.setItem(a,JSON.stringify(c)),c},getLocal(e,t,r){return JSON.parse(e.getItem(this.localKey(t,r)))},updateCurrentState(e){this.canPushState()&&history.replaceState(e(history.state||{}),"",window.location.href)},pushState(e,t,r){if(this.canPushState()){if(r!==window.location.href){if(t.type=="redirect"&&t.scroll){let o=history.state||{};o.scroll=t.scroll,history.replaceState(o,"",window.location.href)}delete t.scroll,history[e+"State"](t,"",r||null);let n=this.getHashTargetEl(window.location.hash);n?n.scrollIntoView():t.type==="redirect"&&window.scroll(0,0)}}else this.redirect(r)},setCookie(e,t){document.cookie=`${e}=${t}`},getCookie(e){return document.cookie.replace(new RegExp(`(?:(?:^|.*;s*)${e}s*=s*([^;]*).*$)|^.*$`),"$1")},redirect(e,t){t&&Ee.setCookie("__phoenix_flash__",t+"; max-age=60000; path=/"),window.location=e},localKey(e,t){return`${e}-${t}`},getHashTargetEl(e){let t=e.toString().substring(1);if(t!=="")return document.getElementById(t)||document.querySelector(`a[name="${t}"]`)}},ee=Ee;s();var te="df-cookies-allowed",re=window.localStorage;function ne(){re.setItem(te,"true")}function Te(){re.removeItem(te)}function Ae(){return JSON.parse(re.getItem(te)||"false")}var Pe="df",ke=window.localStorage;function I(e,t=ke){return ee.getLocal(t,Pe,e)}function y(e,t,r=ke){return Ae()?ee.updateLocal(r,Pe,e,t,()=>t):null}var Oe=24*60*60*1e3,Ce="random-userid",O="session",De="apps",Ie="tab-id";function Re(){return{id:C().replaceAll("-",""),expiry:new Date().getTime()+Oe,live:[]}}function B(){let e=I(O);return(!e||Ne(e.expiry))&&(e=Re()),y(O,e)}function Ne(e){return e<new Date().getTime()}function Gt({id:e,expiry:t,live:r}){return/^[0-9a-fA-F]{32}$/.test(e)&&!Ne(t)&&Array.isArray(r)}function $e(){let e=Re();return y(O,e)}var p={getUserId(){return I(Ce)||y(Ce,C())},getSessionId(){d("[session][getSessionId()] called!");let e=B();return e?e.id:null},getTabId(){d("[session][getTabId()] called!");let e=window.sessionStorage;return I(Ie,e)||y(Ie,C().replaceAll("-",""),e)},setLive(e){d("[session][setLive()] called!",e);let t=B();if(t===null)return null;t.live.includes(e)||t.live.push(e),t.expiry=new Date().getTime()+Oe,y(O,t),y(De,t.live.join())},getLastUsedApps(){return I(De)||""},isLive(...e){let t=B();return t===null?!1:e.some(n=>t.live.includes(n))},getSessionObject(){return B()},setSessionObject(e){Gt(e)?y(O,e):console.error("[session][setSessionObject()] session object is not valid")}};s();function Kt(){return{"content-type":"application/json"}}async function F(e,t={}){return(await fetch(e,{method:"GET",cache:"no-cache",mode:"cors",headers:Kt(),...t})).json()}var G=class{constructor(t){this.zone=t}async add(t,r,{id:n,title:o,price:i},a=1){let c=`${this.url(t)}/cart/${p.getSessionId()||""}`,f=JSON.stringify({amount:a,id:n,title:o,price:i,index:r});return F(c,{method:"PUT",body:f})}async remove(t,r,n,o=1){let i=`${this.url(t)}/cart/${p.getSessionId()||""}`,a=JSON.stringify({amount:o,id:n,index:r});return F(i,{method:"PATCH",body:a})}async clear(t){let r=`${this.url(t)}/cart/${p.getSessionId()||""}`;return F(r,{method:"DELETE"})}async checkout(t){let r=JSON.stringify({session_id:p.getSessionId(),user_id:p.getUserId(),sources:p.getLastUsedApps().split(",")});return F(`${this.url(t)}/checkout`,{method:"PUT",body:r})}url(t){return`https://${this.zone}-search.doofinder.com/6/${t}/stats`}};s();function Me(e){return H("__DF_CDN_PREFIX__",e)}s();function Le(e){return H("__DF_LAYER_SERVER__",e)}s();s();async function R(e,t,r=!1){if(!document.querySelector(`script[src="${e}"]`)){let n=document.createElement("script");n.src=e,n.async=1,r&&(n.type="module"),t&&(n.onerror=()=>R(t)),document.head.appendChild(n)}}async function Ue(e,t){R(e,t,!0)}async function je(e){if(!document.querySelector(`link[rel="modulepreload"][href="${e}"]`)){let t=document.createElement("link");t.setAttribute("rel","modulepreload"),t.setAttribute("href",e),t.onerror=()=>{R(e,null,!0)},document.head.appendChild(t)}}async function oe(e,t){if(!document.querySelector(`link[rel="stylesheet"][href="${e}"]`)){let r=document.createElement("link");r.setAttribute("rel","stylesheet"),r.setAttribute("href",e),t&&(r.onerror=()=>oe(t)),document.head.appendChild(r)}}async function v(e){if(e=(e||"").trim(),!Yt(e)){let t=document.createElement("style");t.appendChild(document.createTextNode(e)),document.head.appendChild(t)}}function Yt(e){return Array.from(document.head.querySelectorAll("style")).some(t=>t.textContent.trim()===e)}s();s();var T=class{constructor(t={}){t=Object.assign({resolveTimeout:null,resolveValue:!0,rejectTimeout:null,rejectValue:!1},t),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:r,resolveValue:n,rejectTimeout:o,rejectValue:i}=t;r&&setTimeout(()=>this.resolve(n),r),o&&setTimeout(()=>this.reject(i),o)}get promise(){return this._promise}};s();s();var g=new Promise((e,t)=>{document.readyState!="loading"?e():document.addEventListener("DOMContentLoaded",()=>{e()})});var N="recommendations",ie="";function Jt(e){return[N,{}]}function Qt(e,t,r){let n=r.find(a=>a.name==N);if(!n)return console.error(`Doofinder app '${N}' not enabled`),null;let o=rr(e,t,n),i=Zt(o);return{...o,custom_css:n.overrides.custom_css,custom_template:n.overrides.custom_template,matchingPageTypes:i,widgets:[...tr(i,o),...er(o)]}}function Wt(e,t,r){if(!Xt(e))return ie=window.location.href,null;let n=t[N];return{assets:n[e.device],cdn_prefix:n.cdn_prefix,vsn:n.vsn,appConfig:e,onRegister:function(o){g.then(()=>{window.location.href===ie||document.querySelector("df-recommendations-v2")||(o.deleteTags(e),o.create(e),ie=window.location.href)})}}}var se={appName:N,backendAppToScriptApp:Jt,buildConfig:Qt,buildSettingsConfig:Wt};function Xt({widgets:e}){return e.length!==0}function Zt({pageTypeMappings:e}){let t=window.location.href;return e.reduce((r,n)=>{let{match_conditions:o}=n;return o.length===0?r:o.some(i=>nr(t,i))?[n,...r]:r},[])}function er({widgets:e}){return e.filter(t=>!t.page_type_id)}function tr(e,{widgets:t,overridePageTypeCheck:r}){if(r)return t;let n=e.map(o=>o.id);return t.filter(o=>n.includes(o.page_type_id))}function rr(e,t,r){let n=or(t);if(n.length>0){let i=n.map(a=>{let c=r.widgets.find(f=>f.widget_id===a.widget_id);if(c)return{...a,widget_id:a.widget_id,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,hooks:a.hooks,hashids:c.overrides.hashids};console.error(`Custom recommendations widget '${a.widget_id}' does not exist`)}).filter(a=>!!a);return{...e,widgets:[...i],overridePageTypeCheck:!0}}let o=r.widgets.map(i=>({widget_id:i.widget_id,page_type_id:i.page_type_id,insertion_point:i.options.insertion_point,insertion_method:i.options.insertion_method,hooks:i.options.hooks,hashids:i.overrides.hashids}));return{...e,widgets:o,overridePageTypeCheck:!1}}function nr(e,{match_type:t,value:r}){switch(t){case"equals":return Ve(e)==Ve(r);case"contains":return e.includes(r);case"starts_with":return e.startsWith(r);case"regex":try{return new RegExp(r,"i").test(e)}catch{return!1}default:return!1}}function Ve(e){try{let t=new URL(e);return t.origin+t.pathname}catch{return e}}function or(e){return e?Array.isArray(e)?[...e]:Object.hasOwn(e,"widget_id")?[{...e}]:[]:[]}async function qe(e,t){if(!e.includes("recommendations"))return;let n=new MutationObserver(()=>{n.disconnect(),t(),n.observe(document,{childList:!0,subtree:!0})});n.observe(document,{childList:!0,subtree:!0})}s();var A="quiz";function ir(e){return[A,{quiz_id:e.quiz_id}]}function sr(e,t,r){let n=r.find(i=>i.name==A&&i.quiz_id==t.quiz_id);if(!n)return console.error(`Doofinder app '${A}' not enabled or wrong quiz_id`),null;let o={quiz_id:t.quiz_id,trigger:t.trigger||n.options.trigger,hashid:n.overrides.hashid,custom_css:n.overrides.custom_css,hooks:t.hooks,account_code:e.account_code};return{...e,...o}}function ar(e,t,r){let n=t[A],o=n.vsn?.[e.zone];return{assets:n[e.device],cdn_prefix:t[A].cdn_prefix,cdn_fallback:n.cdn_fallback,vsn:o,appConfig:e,onRegister:function(i){g.then(()=>{let a=i.create(e);typeof r=="function"&&r(a)})}}}var ae={appName:A,backendAppToScriptApp:ir,buildConfig:sr,buildSettingsConfig:ar};s();s();s();function ze(e,t={}){let r=document.querySelector(e);return r?Promise.resolve(r):new Promise((n,o)=>{let i=0,a=null,c=t.interval||500,f=t.times||10;a=setInterval(function(){i++<f?(r=document.querySelector(e),r&&(clearInterval(a),n(r))):(clearInterval(a),o(`selector '${e}' not found`))},c)})}var He=3,Be="df:trigger:click",cr="df:trigger:focus",lr="df:trigger:input",Fe="df:trigger:submit",K=class{constructor(t){this._minCaptureLength=He,this._elementSelector=t,this.__chooseTriggerElement__(t),this._eventBus=null,this._eventsQueue=[],this._events=[["click",this.handleClick.bind(this),!0],["focus",this.handleFocus.bind(this),!0],["input",this.handleInput.bind(this),!1],["submit",this.handleSubmit.bind(this),!0],["keypress",this.handleKeypress.bind(this),!0],["keyup",this.handleKeypress.bind(this),!0],["keydown",this.handleKeypress.bind(this),!0]],this._handleSubmit=!1,this._enabled=!1,this._redirection=null}__chooseTriggerElement__(t){this._element=Array.from(document.querySelectorAll(t)).find(r=>r.offsetWidth>0&&r.offsetHeight>0)}async updateQuery(t=""){let r=await this.getElement();r instanceof HTMLInputElement&&(r.value=t)}async focus(){let t=await this.getElement();t instanceof HTMLInputElement&&t.focus()}setCaptureLength(t){this._minCaptureLength=t||He}async getElement(){if(!(!this._enabled||!this._elementSelector)){if(!this._element)try{this._element=await ze(this._elementSelector)}catch{this._element=void 0}return this._element}}get enabled(){return this._enabled}set enabled(t){if(this._enabled!==!!t){this._enabled=!!t;let r=document[`${this._enabled?"add":"remove"}EventListener`];this._events.forEach(n=>r(...n))}}get captureSubmit(){return this._handleSubmit}set captureSubmit(t){this._handleSubmit=!!t}get redirection(){if(this._redirection)return{...this._redirection}}set redirection(t){this._redirection=t}setEventBus(t){this._eventBus=t}flushMessages(){if(this._eventsQueue=[...new Map(this._eventsQueue).entries()],this._eventsQueue.length>0){let t=this._eventsQueue.shift();for(;t&&t.length===2;)d("trigger:emit",t),this._eventBus?.emit(...t),t=this._eventsQueue.shift()}else document.activeElement===this._element&&this.notify(Be,this.getPayload())}destroy(){this._events.forEach(t=>window.removeEventListener(...t))}shouldHandle(t){let r=this.getElementFromEvent(t);return r?(this._element=r,!0):!1}getPayload(t){let r={source:this._element,originalEvent:t};if(this._element instanceof HTMLInputElement){let n=this._element.value.trim();(n.length>=this._minCaptureLength||t?.type==="keydown")&&(r.query=n)}return r}getElementFromEvent(t){if(!t.target||t.target===document||t.target===window)return;let r=t.type==="submit"?"querySelector":"closest",n=t.target[r](this._elementSelector);if(n&&!n.closest("[dfd-hook]"))return n}handleClick(t){this.shouldHandle(t)&&(t.preventDefault(),t.stopImmediatePropagation(),this.notify(Be,this.getPayload(t)))}handleFocus(t){this.shouldHandle(t)&&(t.stopImmediatePropagation(),this.notify(cr,this.getPayload(t)))}handleInput(t){this.shouldHandle(t)&&this.notify(lr,this.getPayload(t))}handleSubmit(t){this._handleSubmit&&this.shouldHandle(t)&&(t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),this.notify(Fe,this.getPayload(t)))}handleKeypress(t){t.key==="Enter"&&this.shouldHandle(t)&&(this._redirection||this._handleSubmit)&&(t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),this._redirection?window.location=this._redirection.url:t.type==="keydown"&&this.notify(Fe,this.getPayload(t)))}notify(t,r){this._eventBus?this._eventBus.emit(t,r):this._eventsQueue.push([t,r]),d("[trigger]",this._eventBus?"[emit]":"[queue]",t,r)}};var $="layer";function ur(e){return[$,{}]}function dr(e,t,r){let n=r.find(a=>a.name==$);if(!n)return console.error(`Doofinder app '${$}' not enabled`),null;let o=n.overrides.autoload,i={trigger:t.trigger||n.options.trigger,url_hash:t.url_hash||t.url_hash===void 0&&n.options.url_hash,hooks:t.hooks,params:t.params,search_query_retention:n.overrides.search_query_retention,sort:t.sort,layout:n.overrides.layout,custom_css:n.overrides.custom_css[e.device],custom_properties:n.overrides.custom_properties[e.device],autoload:o&&o[e.device],type:n.type,exportResultsData:t.exportResultsData,zone:t.zone||n.options.zone||e.zone};return{...e,...i}}function fr(e,t,r){let n=t[$],o=e.device=="mobile"?n.mobile:n.desktop[e.layout];e=ce(e);let i=e.custom_properties?.join(` `),a=n.vsn?.[e.zone];return{assets:o,cdn_prefix:n.cdn_prefix,cdn_fallback:n.cdn_fallback,vsn:a,appConfig:e,onRegister:function(c){g.then(()=>{let f=c.create(e);v(`#${f.mount.id} { ${i||""} }`),typeof r=="function"&&r(f)})}}}function ce(e){return e.trigger=mr(e.trigger,e.autoload),e.urlHash=e.url_hash||!1,e.searchQueryRetention=e.search_query_retention,e.layerType=e.layerType||"search",e.installationId=e.store,e}function mr(e,t){let r=new K(e);return r.enabled=!t||t.trigger,r}var le={appName:$,backendAppToScriptApp:ur,buildConfig:dr,buildSettingsConfig:fr};s();var M="chat";function pr(e){return[M,{chat_id:e.chat_id}]}function hr(e,t,r){let n=r.find(i=>i.name==M&&i.chat_id==t.chat_id);if(!n)return console.error(`Doofinder app '${M}' not enabled or wrong chat_id`),null;let o={chat_id:t.chat_id,id:t.id||n.options.id,zone:t.zone||e.zone,trigger:t.trigger||!0,label:t.label,extra_params:t.extra_params||{},meta:t.meta||{}};return{...e,...o}}function _r(e,t,r){let n=t[M],o=n.vsn;return{assets:n[e.device],cdn_prefix:n.cdn_prefix,cdn_fallback:n.cdn_fallback,vsn:o,appConfig:e,onRegister:function(a){g.then(()=>{let c=a.create(e);typeof r=="function"&&r(c)})}}}var ue={appName:M,backendAppToScriptApp:pr,buildConfig:hr,buildSettingsConfig:_r};s();s();function Ge(e){let{hashid:t,url_patterns:r}=e,n=window.location.toString();return d("[category merchandising] __getNewOptions__ category merchandising URL patterns: ",r," url: ",n),gr(t,r,n)}function gr(e,t,r){try{let n=yr(e,t,r);if(!n)return d("[category merchandising] configuration not found for current location, urlStr: ",r),null;let o=de(n),i=[...r.matchAll(o)][0].groups,a=xr(n,i);return a.url_pattern_id=n.id,d("[category merchandising] configuration found for current location, urlStr: ",r,"categoryMerchandisingConfig: ",n,"capturedValues from URL: ",i,"params to open the layer: ",a),a}catch(n){return d("[category merchandising] error trying to get category merchandising search options: ",n),null}}function yr(e,t,r){let n=t.filter(o=>o.hashid===e).find(o=>{let i=de(o);return[...r.matchAll(i)].length>0});return n||t.filter(o=>!o.hashid).find(o=>{let i=de(o);return[...r.matchAll(i)].length>0})}function de(e){let[,,t,r]=e.pattern.match(/(\/?)(.+)\1([a-z]*)/i);r=r||"g";let n=new RegExp(t,r);return d("pattern ",t,"flags",r,"regexp",n),n}function xr(e,t){let r="{{",n="}}",{params:o}=e,i=JSON.stringify(o.search);for(let a in t){let c=`${r}${a}${n}`,f=Sr(e,a,`${t[a]}`);d("[category merchandising] replacing old value: ",c,", new value ",f,"at",i),i=i.replaceAll(c,f)}return JSON.parse(i)}function Sr(e,t,r){let n=e.params?.transformers;if(!n||!n[t])return d("[category merchandising] __applyTransformer__ transformers not found in categoryMerchandisingConfig",e," for ",t),r;try{return Array.isArray(n[t])?br(n[t],r):typeof n[t]=="string"?vr(n[t],r):r}catch(o){d("[category merchandising] __applyTransformer__ error ","category merchandising config: ",e,"key",t,"value",r,"error",o)}return r}function br(e,t){d("[category merchandising] __applyTransformerDefinedAsArray__ ",e);let[r,n]=e,o=r.split("."),i=window[o[0]];return o.slice(1).forEach(a=>i=window[a]),typeof i=="function"?(d("[category merchandising] __applyTransformer__ call function ",r," args: ",[t,n]),i(t,n)):(d("[category merchandising] __applyTransformer__ transformer",r," is not a function. Type: ",typeof i),t)}function vr(e,t){let r=(0,eval)(e);return d("[category merchandising] __applyTransformerDefinedAsString__ completionValue obtained with eval",r," evaluated code ",e),typeof r=="function"?r(t):t}var L="category_merchandising";function wr(e){return[L,{}]}function Er(e,t,r){let n=r.find(a=>a.name==L);if(!n)return console.error(`Doofinder app '${L}' not enabled`),null;let o=n.devices[e.device],i={insertion_point:t.insertion_point||o.options.insertion_point,url_hash:t.url_hash||!1,search:t.search||n.options.search,sort:t.sort||{},hooks:t.hooks,custom_css:o.overrides.custom_css,custom_properties:o.overrides.custom_properties,autoload:o.overrides.autoload,url_patterns:t.url_patterns||n.options.url_patterns,type:"category_pages",zone:t.zone||n.options.zone||e.zone};return{...e,...i}}function Tr(e,t,r){let n=t[L],o=n.vsn?.[e.zone],i=n[e.device??"desktop"];e.layerType="category_pages",e=ce(e);let a=e.custom_properties?.join(` `);return{assets:i,cdn_prefix:n.cdn_prefix,cdn_fallback:n.cdn_fallback,vsn:o,appConfig:e,onRegister:function(c){e.search=Ge(e),g.then(()=>{if(e.search){e.forceOpen=!0;let f=c.create(e);v(`#${f.mount.id} { ${a||""} }`),typeof r=="function"&&r(f)}})}}}var fe={appName:L,backendAppToScriptApp:wr,buildConfig:Er,buildSettingsConfig:Tr};s();var U="recommendations_widgets";function Ar(e){return[U,{}]}function Pr(e,t,r){let n=r.find(a=>a.name==U);if(!n)return console.error(`Doofinder app '${U}' not enabled`),null;let o=Or(e,t,n),i=Cr(o);return{...o,custom_css:n.overrides.custom_css,widgets:[...Ir(i,o),...Dr(o)]}}function kr(e,t,r){if(e.widgets.length===0)return null;let n=t[U];return{assets:n[e.device],cdn_prefix:n.cdn_prefix,vsn:n.vsn,appConfig:e,onRegister:function(o){g.then(()=>{for(let i of e.widgets){if(!i.hashids.includes(e.hashid))continue;let{_widgets:a,...c}=e;o.create({...c,widget:i})}})}}}var me={appName:U,backendAppToScriptApp:Ar,buildConfig:Pr,buildSettingsConfig:kr};function Cr({pageTypeMappings:e}){let t=window.location.href;return e.reduce((r,n)=>{let{match_conditions:o}=n;return o.length===0?r:o.some(i=>Rr(t,i))?[n,...r]:r},[])}function Dr({widgets:e}){return e.filter(t=>!t.page_type_id)}function Ir(e,{widgets:t,overridePageTypeCheck:r}){if(r)return t;let n=e.map(o=>o.id);return t.filter(o=>n.includes(o.page_type_id))}function Or(e,t,r){let n=Nr(t);if(n.length>0){let i=n.map(a=>{let c=r.widgets.find(f=>f.widget_id===a.widget_id);if(c)return{...a,id:a.widget_id,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{...e,widgets:[...i],overridePageTypeCheck:!0}}let o=r.widgets.map(i=>({id:i.widget_id,page_type_id:i.page_type_id,insertion_point:i.options.insertion_point,insertion_method:i.options.insertion_method,hashids:i.overrides.hashids}));return{...e,widgets:o,overridePageTypeCheck:!1}}function Rr(e,{match_type:t,value:r}){switch(t){case"equals":return Ke(e)==Ke(r);case"contains":return e.includes(r);case"starts_with":return e.startsWith(r);case"regex":try{return new RegExp(r,"i").test(e)}catch{return!1}default:return!1}}function Ke(e){try{let t=new URL(e);return t.origin+t.pathname}catch{return e}}function Nr(e){return e?Array.isArray(e)?[...e]:Object.hasOwn(e,"widget_id")?[{...e}]:[]:[]}var $r=le.appName,Ye=fe.appName,Y=ue.appName,Mr=ae.appName,Lr=se.appName,J=me.appName,Je={LAYER:$r,CHAT:Y,QUIZ:Mr,RECOMMENDATIONS:Lr,RECOMMENDATIONS_WIDGETS:J},Qe=[Y,J];function We(e){return e.reduce(function(t,r){return t[r]=new T,t},{})}function Xe(e){return async function(t,r){if(!e[t])throw new Error(`unknown "${t}" app!`);r(await e[t])}}function Ze(e,t){document.dispatchEvent(new CustomEvent("doofinder.register",{detail:{name:e,entrypoint:t}}))}function Q(e){return[fe,le,se,ae,ue,me].find(t=>t.appName===e)}s();var j=".min",x="https://cdn.doofinder.com";function Ur(e){switch(e){case Y:return"0.1.3-lv1.0.2";case J:return"0.1.4-lv1.0.2";default:return"0"}}var w=`/js/dflayer${j}.js`,E="/css/2/common.css",et={js:["/recommendations.min.js"],css:["/recommendations.css"]},tt={js:[`/quiz${j}.js`],css:["/quiz.css"]},rt={mjs:[`/recommendations${j}.js`],css:["/recommendations.css"]};function ot(e){return`${x}/live_view_portal/${Ur(e)}/live_view_portal${j}.js`}var nt={mjs:[`/chat${j}.js`],css:["/chat.css"]},pe=typeof l>"u"?{ap1:"0",eu1:"0",us1:"0","eu1-b":"0"}:l,jr="0.2.12",Vr="0.2.3",it=[{vsn:"1.0",recommendations:{cdn_prefix:x+"/recommendations-v2",desktop:et,mobile:et},layer:{cdn_prefix:x+"/livelayer",cdn_fallback:x+"/livelayer/1",desktop:{Fullscreen:{js:[w],css:[E,"/css/2/fullscreen.css"]},Embedded:{js:[w],css:[E,"/css/2/embedded.css"]},Floating:{js:[w],css:[E,"/css/2/classic.css"]},FloatingEmbedded:{js:[w],css:[E,"/css/2/classic.css","/css/2/embedded.css"]}},mobile:{js:[w],css:[E,"/css/2/mobile.css"]},vsn:pe},category_merchandising:{cdn_prefix:x+"/livelayer",cdn_fallback:x+"/livelayer/1",desktop:{js:[w],css:[E,"/css/2/embedded.css"]},mobile:{js:[w],css:[E,"/css/2/mobile_embedded.css"]},vsn:pe},quiz:{cdn_prefix:x+"/quiz",cdn_fallback:x+"/quiz",desktop:tt,mobile:tt,vsn:pe},chat:{cdn_prefix:x+"/chat",cdn_fallback:x+"/chat",desktop:nt,mobile:nt,vsn:jr},recommendations_widgets:{cdn_prefix:x+"/recommendations-v2/lv",desktop:rt,mobile:rt,vsn:Vr}}];s();function st(e,t,r=""){let n=z("__DF_CDN_PREFIXES__");return n&&n[e]?n[e]:`${t}${r!=""?"/":""}${r}`}function at(e,t,r,n,o,i){let a=it[0],c=Q(r);if(!c)return console.error(`Doofinder app '${r}' not found`),null;let f=c.buildConfig(t,n,o.apps);if(!f)return console.error(`Doofinder app '${r}' not enabled`),null;let _=c.buildSettingsConfig(f,a,i);if(!_)return null;let k=r==Ye?"layer":r;return e(k,_.onRegister),qr(r,_.assets,_.cdn_prefix,_.vsn,_.appConfig.custom_css,_.cdn_fallback),_.appConfig}async function qr(e,t,r,n,o,i){let a=st(e,r,n),c=n?`?v=${n}`:"";he(a,c,i,R,t.js),he(a,c,i,Ue,t.mjs),he(a,c,i,oe,t.css),o&&Array.isArray(o)?o.forEach(v):o&&v(o)}async function he(e,t,r,n,o){o&&o.forEach(i=>n(`${e}${i}${r?"":t}`,r?`${r}${i}${t}`:void 0))}s();async function ct(e,t){let r=zr(e,t),n=await fetch(r);if(!n.ok)throw new Error(`HTTP error! Status: ${n.status}`);return await n.json()}function zr(e,t){let r=z("__DF_STORE_CONFIG__"),n="",o={eu1:"eu-west-1.",us1:""};switch(t=Object.hasOwn(o,t)?t:"eu1",r){case"provisional-bucket":n=`provisional-${t}-df-store-config-files`;break;case"production-bucket":n+=`${t}-df-store-config-files`;break;case"test":return`http://appsloader/store-configs/${t}/${e}.json`;case"local-directory":break;default:n=`${t}-df-store-config-files`}return`https://${n}.s3.${o[t]}amazonaws.com/${e}.json`}s();s();function lt(e){let t=e?.replaceAll("_","-").trim().split("-")||[];function r(n){return n?`-${n.toUpperCase()}`:""}if(t.length<3){let[n,o]=t;return`${n?.toLowerCase()}${r(o)}`}else{let[n,o,i]=t;return`${n?.toLowerCase()}-${o.toUpperCase()}${r(i)}`}}function ut(e){return e?.trim().toUpperCase()}function dt(e,t){let r=Hr(e.language,t),n=Br(r,e.currency,t),o=Fr(e.hashid,r,n,t);return{language:r,currency:n,hashid:o}}function Hr(e,t){let r=e||document.documentElement.getAttribute("lang");if(r){r=lt(r);let n=t.search_engines;return n[r]?r:Gr(n,r)||t.defaults.language}return t.defaults.language}function Br(e,t,r){let n=r.search_engines,o=ut(t);if(o&&n[e]&&n[e][o])return o;let i=n[e]&&Object.keys(n[e]);return i&&!i.includes(r.defaults.currency)?i[0]:r.defaults.currency}function Fr(e,t,r,n){if(e)return e;let o=n.search_engines;return o[t]&&o[t][r]?o[t][r]:n.defaults.hashid}function Gr(e,t){let[r]=t.split("-");if(e[r])return r;let n=Object.keys(e).filter(o=>Kr(o,r)).shift();return e[n]?n:null}function Kr(e,t){let[r]=e.split("-");return r===t}s();s();function V(e){return`https://${e}-api.doofinder.com`}s();async function P(e,t){let n={method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(t)};return n.mode="cors",await fetch(e,n)}async function ft(e){e.hashid?(d("[loader]","[loader]","Registering visit",window.location.href),P(`${V(e.zone)}/api/v2/stats/visit`,{session_id:p.getSessionId(),user_id:p.getUserId(),store:e.store,hashid:e.hashid,url:window.location.href})):d("[loader]","No hashid. Skipping register visit")}s();s();function mt(e){return`https://${e}-admin.doofinder.com`}async function gt(e){if(e.registerCheckouts){let t="",r=new MutationObserver(async function(o){t=await pt(t,e)}),n={subtree:!0,childList:!0};r.observe(document,n),t=await pt(t,e)}}async function pt(e,t){if(window.location.href.split("#")[0]!==e){let r=window.location.pathname,n=window.location.href,o=_t(t.checkout_confirmation_urls,r,n),i=_t(t.checkout_summary_urls,r,n);d("[checkout][logic] isCheckoutUrl",o),d("[checkout][logic] isCheckoutCartUrl",i),o&&Jr(t),i&&Yr(t),e=window.location.href.split("#")[0]}return e}async function Yr(e){let t=e.hashid,r=e.checkout_css_selector;if(r==null){let o=await P(`${mt(e.zone)}/api/introspection/checkout`,{html_content:ht(document.documentElement.outerHTML),hashid:t});if(!o.ok||(o=await o.json(),r=o.checkout_html?.products,!r))return}if(r===""){d("The provided CSS selector is an empty string");return}let n=document.querySelector(r);if(!n){d(`Cannot find element in DOM with CSS Selector ${r}`);return}P(`${V(e.zone)}/api/v2/stats/carts`,{hashid:t,session_id:p.getSessionId(),user_id:p.getUserId(),checkout_html:ht(Wr(n.outerHTML))})}async function Jr(e){let t=e.hashid;P(`${V(e.zone)}/api/v2/stats/sales`,{hashid:t,session_id:p.getSessionId(),user_id:p.getUserId(),has_init:p.isLive("layer")}),document.dispatchEvent(new CustomEvent("doofinder.layer.checkout",{detail:{tag:{_hashid:t},url:window.location.href}})),$e()}function ht(e){let t=new TextEncoder().encode(e),r=Array.from(t,n=>String.fromCharCode(n)).join("");return btoa(r)}function Qr(e){return new RegExp(e.replaceAll("?","\\?").replaceAll(".","\\.").replaceAll("*",".*"))}function Wr(e){return e.replace(/<!--[\s\S]*?-->/g,"")}function _t(e,t,r){return e.filter(n=>n&&n.value&&n.value!=="").some(n=>{d("[checkout][anyUrlMatches] Checking checkout url for",n);let o=Qr(n.value),i=(()=>{switch(n.match_type){case"contains":return t.includes(n.value)||r.includes(n.value);case"equals":return t==n.value||r==n.value;case"regex":return o.test(t)||o.test(r);case"starts_with":return t.startsWith(n.value)||r.startsWith(n.value);default:return!1}})();return d(`[checkout][anyUrlMatches] Result for ${n.match_type}:`,i),i})}s();var vt=Vt(bt());function wt(){let{isPhone:e}=(0,vt.default)(navigator.userAgent);return e?"mobile":"desktop"}s();function Et(e){return e.map(t=>{let r=Q(t.name);return r?r.backendAppToScriptApp(t):(console.error(`Doofinder app '${t.name}' not found`),!1)}).filter(t=>t)}var Tt=!1;function At(e,t,r){if(Tt)throw new Error("Doofinder already exists!");{let _=function(u){let m=c.settings,S=dt(u,m),b=u.register_visits||u.register_visits===void 0&&m.register_visits,It=u.register_checkouts||u.register_checkouts==null&&m.register_checkouts,Ot=u.require_cookies_consent||u.require_cookies_consent===void 0&&m.require_cookies_consent;o={...u,...S,pageTypeMappings:m.page_type_mappings||[],registerVisits:b,registerCheckouts:It,device:u.device||wt(),account_code:m.account_code,require_cookies_consent:Ot,checkout_confirmation_urls:m.checkout_confirmation_urls||[],checkout_summary_urls:m.checkout_summary_urls||[],checkout_css_selector:m.checkout_css_selector}},k=function(u,m,S=null){let b=at(a,o,u,m,c,S);b&&(i[u]||(i[u]=[]),i[u].push(b))},kt=function(){let u=Ct();Dt(u),u.forEach(m=>{k(...m),qe(m,()=>k(...m))})},Ct=function(){if(o.apps==!1)return t;let u=t.map(b=>b[0]),m=c.apps.filter(b=>!u.includes(b.name)),S=Et(m);return t.concat(S)},Dt=function(u){u.forEach(m=>{let S=m[0];Qe.includes(S)&&je(ot(S))})};Tt=!0;let n={},o={},i={},a,c,f=new T;n=We(Object.values(Je)),a=Xe(n),document.addEventListener("doofinder.register",u=>{let{name:m,entrypoint:S}=u.detail;n[m].resolve(S)});async function _e(u){c=u[0],_(e),o.require_cookies_consent||ne(),p.getSessionId(),p.getUserId(),p.getTabId(),y("script-version","2.0"),f.resolve(!0),d("[loader]","Doofinder ready. Apps will be initialized now."),kt(),o.registerVisits&&(ft(o),y("hashid",o.hashid)),gt(o)}return r?_e(r):ct(e.store,e.zone).then(u=>{_e(u)}).catch(u=>{Object.seal(u),f.reject(u)}),{get Session(){return p},getApp(u){return i[u]},getRegistry(u){return n[u]},buildCart(u){return new G(u)},ready(){return f.promise},enableCookies:ne,disableCookies:Te,enableDebug:ve,disableDebug:we,setLayerServerUrl:Le,setCDNServerUrl:Me,init:k,configure:_,registerApp:Ze}}}s();function Pt(){let e=window.DoofinderAppsObject,t=window[e].q,r={},n=[],o=null,i;for(;i=t.shift();){let[a,c,f,_]=i;a==="config"?c==="settings"?o=f:r[c]=f:a==="init"&&n.push([c,f,_])}return{config:r,apps:n,scriptStoreConfig:o}}if(window.DoofinderStarted===void 0){window.DoofinderStarted=!0,xe();let{config:e,apps:t,scriptStoreConfig:r}=Pt(),n=At(e,t,r);Object.defineProperty(window,"Doofinder",{value:n,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 <mflo999@gmail.com> * @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 <mflo999@gmail.com> * @link http://mflo.info * *) */