PageSourceSearch

https://lalalandshop.com.au/cdn/shop/t/92/assets/component-complem…?v=74402360187270423631781674713

js lalalandshop.com.au collected 2026-09-26 01:43:12 UTC 49,352 bytes, 628 lines download raw bytes

vendor: 13,942 bytes, lines 1-15
1(()=>{"use strict";var __webpack_modules__={931:(()=>{/**
2 * @license
3 * Copyright 2019 Google LLC
4 * SPDX-License-Identifier: BSD-3-Clause
5 */const css_tag_t=window,e=css_tag_t.ShadowRoot&&(css_tag_t.ShadyCSS===void 0||css_tag_t.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,s=Symbol(),n=new WeakMap;class o{constructor(t2,e2,n2){if(this._$cssResult$=!0,n2!==s)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t2,this.t=e2}get styleSheet(){let t2=this.o;const s2=this.t;if(e&&t2===void 0){const e2=s2!==void 0&&s2.length===1;e2&&(t2=n.get(s2)),t2===void 0&&((this.o=t2=new CSSStyleSheet).replaceSync(this.cssText),e2&&n.set(s2,t2))}return t2}toString(){return this.cssText}}const r=t2=>new o(typeof t2=="string"?t2:t2+"",void 0,s),i=(t2,...e2)=>{const n2=t2.length===1?t2[0]:e2.reduce(((e3,s2,n3)=>e3+(t3=>{if(t3._$cssResult$===!0)return t3.cssText;if(typeof t3=="number")return t3;throw Error("Value passed to 'css' function must be a 'css' function result: "+t3+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(s2)+t2[n3+1]),t2[0]);return new o(n2,t2,s)},S=(s2,n2)=>{e?s2.adoptedStyleSheets=n2.map((t2=>t2 instanceof CSSStyleSheet?t2:t2.styleSheet)):n2.forEach((e2=>{const n3=document.createElement("style"),o2=css_tag_t.litNonce;o2!==void 0&&n3.setAttribute("nonce",o2),n3.textContent=e2.cssText,s2.appendChild(n3)}))},c=e?t2=>t2:t2=>t2 instanceof CSSStyleSheet?(t3=>{let e2="";for(const s2 of t3.cssRules)e2+=s2.cssText;return r(e2)})(t2):t2;/**
6 * @license
7 * Copyright 2017 Google LLC
8 * SPDX-License-Identifier: BSD-3-Clause
9 */var reactive_element_s;const reactive_element_e=window,reactive_element_r=reactive_element_e.trustedTypes,h=reactive_element_r?reactive_element_r.emptyScript:"",reactive_element_o=reactive_element_e.reactiveElementPolyfillSupport,reactive_element_n={toAttribute(t2,i2){switch(i2){case Boolean:t2=t2?h:null;break;case Object:case Array:t2=t2==null?t2:JSON.stringify(t2)}return t2},fromAttribute(t2,i2){let s2=t2;switch(i2){case Boolean:s2=t2!==null;break;case Number:s2=t2===null?null:Number(t2);break;case Object:case Array:try{s2=JSON.parse(t2)}catch{s2=null}}return s2}},a=(t2,i2)=>i2!==t2&&(i2==i2||t2==t2),l={attribute:!0,type:String,converter:reactive_element_n,reflect:!1,hasChanged:a},d="finalized";class u extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(t2){var i2;this.finalize(),((i2=this.h)!==null&&i2!==void 0?i2:this.h=[]).push(t2)}static get observedAttributes(){this.finalize();const t2=[];return this.elementProperties.forEach(((i2,s2)=>{const e2=this._$Ep(s2,i2);e2!==void 0&&(this._$Ev.set(e2,s2),t2.push(e2))})),t2}static createProperty(t2,i2=l){if(i2.state&&(i2.attribute=!1),this.finalize(),this.elementProperties.set(t2,i2),!i2.noAccessor&&!this.prototype.hasOwnProperty(t2)){const s2=typeof t2=="symbol"?Symbol():"__"+t2,e2=this.getPropertyDescriptor(t2,s2,i2);e2!==void 0&&Object.defineProperty(this.prototype,t2,e2)}}static getPropertyDescriptor(t2,i2,s2){return{get(){return this[i2]},set(e2){const r2=this[t2];this[i2]=e2,this.requestUpdate(t2,r2,s2)},configurable:!0,enumerable:!0}}static getPropertyOptions(t2){return this.elementProperties.get(t2)||l}static finalize(){if(this.hasOwnProperty(d))return!1;this[d]=!0;const t2=Object.getPrototypeOf(this);if(t2.finalize(),t2.h!==void 0&&(this.h=[...t2.h]),this.elementProperties=new Map(t2.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){const t3=this.properties,i2=[...Object.getOwnPropertyNames(t3),...Object.getOwnPropertySymbols(t3)];for(const s2 of i2)this.createProperty(s2,t3[s2])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(i2){const s2=[];if(Array.isArray(i2)){const e2=new Set(i2.flat(1/0).reverse());for(const i3 of e2)s2.unshift(c(i3))}else i2!==void 0&&s2.push(c(i2));return s2}static _$Ep(t2,i2){const s2=i2.attribute;return s2===!1?void 0:typeof s2=="string"?s2:typeof t2=="string"?t2.toLowerCase():void 0}_$Eu(){var t2;this._$E_=new Promise((t3=>this.enableUpdating=t3)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),(t2=this.constructor.h)===null||t2===void 0||t2.forEach((t3=>t3(this)))}addController(t2){var i2,s2;((i2=this._$ES)!==null&&i2!==void 0?i2:this._$ES=[]).push(t2),this.renderRoot!==void 0&&this.isConnected&&((s2=t2.hostConnected)===null||s2===void 0||s2.call(t2))}removeController(t2){var i2;(i2=this._$ES)===null||i2===void 0||i2.splice(this._$ES.indexOf(t2)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((t2,i2)=>{this.hasOwnProperty(i2)&&(this._$Ei.set(i2,this[i2]),delete this[i2])}))}createRenderRoot(){var t2;const s2=(t2=this.shadowRoot)!==null&&t2!==void 0?t2:this.attachShadow(this.constructor.shadowRootOptions);return S(s2,this.constructor.elementStyles),s2}connectedCallback(){var t2;this.renderRoot===void 0&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(t2=this._$ES)===null||t2===void 0||t2.forEach((t3=>{var i2;return(i2=t3.hostConnected)===null||i2===void 0?void 0:i2.call(t3)}))}enableUpdating(t2){}disconnectedCallback(){var t2;(t2=this._$ES)===null||t2===void 0||t2.forEach((t3=>{var i2;return(i2=t3.hostDisconnected)===null||i2===void 0?void 0:i2.call(t3)}))}attributeChangedCallback(t2,i2,s2){this._$AK(t2,s2)}_$EO(t2,i2,s2=l){var e2;const r2=this.constructor._$Ep(t2,s2);if(r2!==void 0&&s2.reflect===!0){const h2=(((e2=s2.converter)===null||e2===void 0?void 0:e2.toAttribute)!==void 0?s2.converter:reactive_element_n).toAttribute(i2,s2.type);this._$El=t2,h2==null?this.removeAttribute(r2):this.setAttribute(r2,h2),this._$El=null}}_$AK(t2,i2){var s2;const e2=this.constructor,r2=e2._$Ev.get(t2);if(r2!==void 0&&this._$El!==r2){const t3=e2.getPropertyOptions(r2),h2=typeof t3.converter=="function"?{fromAttribute:t3.converter}:((s2=t3.converter)===null||s2===void 0?void 0:s2.fromAttribute)!==void 0?t3.converter:reactive_element_n;this._$El=r2,this[r2]=h2.fromAttribute(i2,t3.type),this._$El=null}}requestUpdate(t2,i2,s2){let e2=!0;t2!==void 0&&(((s2=s2||this.constructor.getPropertyOptions(t2)).hasChanged||a)(this[t2],i2)?(this._$AL.has(t2)||this._$AL.set(t2,i2),s2.reflect===!0&&this._$El!==t2&&(this._$EC===void 0&&(this._$EC=new Map),this._$EC.set(t2,s2))):e2=!1),!this.isUpdatePending&&e2&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(t3){Promise.reject(t3)}const t2=this.scheduleUpdate();return t2!=null&&await t2,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t2;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((t3,i3)=>this[i3]=t3)),this._$Ei=void 0);let i2=!1;const s2=this._$AL;try{i2=this.shouldUpdate(s2),i2?(this.willUpdate(s2),(t2=this._$ES)===null||t2===void 0||t2.forEach((t3=>{var i3;return(i3=t3.hostUpdate)===null||i3===void 0?void 0:i3.call(t3)})),this.update(s2)):this._$Ek()}catch(t3){throw i2=!1,this._$Ek(),t3}i2&&this._$AE(s2)}willUpdate(t2){}_$AE(t2){var i2;(i2=this._$ES)===null||i2===void 0||i2.forEach((t3=>{var i3;return(i3=t3.hostUpdated)===null||i3===void 0?void 0:i3.call(t3)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t2)),this.updated(t2)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t2){return!0}update(t2){this._$EC!==void 0&&(this._$EC.forEach(((t3,i2)=>this._$EO(i2,this[i2],t3))),this._$EC=void 0),this._$Ek()}updated(t2){}firstUpdated(t2){}}u[d]=!0,u.elementProperties=new Map,u.elementStyles=[],u.shadowRootOptions={mode:"open"},reactive_element_o?.({ReactiveElement:u}),((reactive_element_s=reactive_element_e.reactiveElementVersions)!==null&&reactive_element_s!==void 0?reactive_element_s:reactive_element_e.reactiveElementVersions=[]).push("1.6.3");/**
10 * @license
11 * Copyright 2017 Google LLC
12 * SPDX-License-Identifier: BSD-3-Clause
13 */var lit_html_t;const lit_html_i=window,lit_html_s=lit_html_i.trustedTypes,lit_html_e=lit_html_s?lit_html_s.createPolicy("lit-html",{createHTML:t2=>t2}):void 0,lit_html_o="$lit$",lit_html_n=`lit$${(Math.random()+"").slice(9)}$`,lit_html_l="?"+lit_html_n,lit_html_h=`<${lit_html_l}>`,lit_html_r=document,lit_html_u=()=>lit_html_r.createComment(""),lit_html_d=t2=>t2===null||typeof t2!="object"&&typeof t2!="function",lit_html_c=Array.isArray,v=t2=>lit_html_c(t2)||typeof t2?.[Symbol.iterator]=="function",lit_html_a=`[ 	
14\f\r]`,f=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${lit_html_a}(?:([^\\s"'>=/]+)(${lit_html_a}*=${lit_html_a}*(?:[^ 	
15\f\r"'\`<>=]|("|')|))|$)`,"g"),g=/'/g,$=/"/g,y=/^(?:script|style|textarea|title)$/i,w=t2=>(i2,...s2)=>({_$litType$:t2,strings:i2,values:s2}),x=w(1),b=w(2),T=Symbol.for("lit-noChange"),A=Symbol.for("lit-nothing"),E=new WeakMap,C=lit_html_r.createTreeWalker(lit_html_r,129,null,!1);function P(t2,i2){if(!Array.isArray(t2)||!t2.hasOwnProperty("raw"))throw Error("invalid template strings array");return lit_html_e!==void 0?lit_html_e.createHTML(i2):i2}const V=(t2,i2)=>{const s2=t2.length-1,e2=[];let l2,r2=i2===2?"<svg>":"",u2=f;for(let i3=0;i3<s2;i3++){const s3=t2[i3];let d2,c2,v2=-1,a2=0;for(;a2<s3.length&&(u2.lastIndex=a2,c2=u2.exec(s3),c2!==null);)a2=u2.lastIndex,u2===f?c2[1]==="!--"?u2=_:c2[1]!==void 0?u2=m:c2[2]!==void 0?(y.test(c2[2])&&(l2=RegExp("</"+c2[2],"g")),u2=p):c2[3]!==void 0&&(u2=p):u2===p?c2[0]===">"?(u2=l2??f,v2=-1):c2[1]===void 0?v2=-2:(v2=u2.lastIndex-c2[2].length,d2=c2[1],u2=c2[3]===void 0?p:c2[3]==='"'?$:g):u2===$||u2===g?u2=p:u2===_||u2===m?u2=f:(u2=p,l2=void 0);const w2=u2===p&&t2[i3+1].startsWith("/>")?" ":"";r2+=u2===f?s3+lit_html_h:v2>=0?(e2.push(d2),s3.slice(0,v2)+lit_html_o+s3.slice(v2)+lit_html_n+w2):s3+lit_html_n+(v2===-2?(e2.push(void 0),i3):w2)}return[P(t2,r2+(t2[s2]||"<?>")+(i2===2?"</svg>":"")),e2]};class N{constructor({strings:t2,_$litType$:i2},e2){let h2;this.parts=[];let r2=0,d2=0;const c2=t2.length-1,v2=this.parts,[a2,f2]=V(t2,i2);if(this.el=N.createElement(a2,e2),C.currentNode=this.el.content,i2===2){const t3=this.el.content,i3=t3.firstChild;i3.remove(),t3.append(...i3.childNodes)}for(;(h2=C.nextNode())!==null&&v2.length<c2;){if(h2.nodeType===1){if(h2.hasAttributes()){const t3=[];for(const i3 of h2.getAttributeNames())if(i3.endsWith(lit_html_o)||i3.startsWith(lit_html_n)){const s2=f2[d2++];if(t3.push(i3),s2!==void 0){const t4=h2.getAttribute(s2.toLowerCase()+lit_html_o).split(lit_html_n),i4=/([.?@])?(.*)/.exec(s2);v2.push({type:1,index:r2,name:i4[2],strings:t4,ctor:i4[1]==="."?H:i4[1]==="?"?L:i4[1]==="@"?z:k})}else v2.push({type:6,index:r2})}for(const i3 of t3)h2.removeAttribute(i3)}if(y.test(h2.tagName)){const t3=h2.textContent.split(lit_html_n),i3=t3.length-1;if(i3>0){h2.textContent=lit_html_s?lit_html_s.emptyScript:"";for(let s2=0;s2<i3;s2++)h2.append(t3[s2],lit_html_u()),C.nextNode(),v2.push({type:2,index:++r2});h2.append(t3[i3],lit_html_u())}}}else if(h2.nodeType===8)if(h2.data===lit_html_l)v2.push({type:2,index:r2});else{let t3=-1;for(;(t3=h2.data.indexOf(lit_html_n,t3+1))!==-1;)v2.push({type:7,index:r2}),t3+=lit_html_n.length-1}r2++}}static createElement(t2,i2){const s2=lit_html_r.createElement("template");return s2.innerHTML=t2,s2}}function lit_html_S(t2,i2,s2=t2,e2){var o2,n2,l2,h2;if(i2===T)return i2;let r2=e2!==void 0?(o2=s2._$Co)===null||o2===void 0?void 0:o2[e2]:s2._$Cl;const u2=lit_html_d(i2)?void 0:i2._$litDirective$;return r2?.constructor!==u2&&((n2=r2?._$AO)===null||n2===void 0||n2.call(r2,!1),u2===void 0?r2=void 0:(r2=new u2(t2),r2._$AT(t2,s2,e2)),e2!==void 0?((l2=(h2=s2)._$Co)!==null&&l2!==void 0?l2:h2._$Co=[])[e2]=r2:s2._$Cl=r2),r2!==void 0&&(i2=lit_html_S(t2,r2._$AS(t2,i2.values),r2,e2)),i2}class M{constructor(t2,i2){this._$AV=[],this._$AN=void 0,this._$AD=t2,this._$AM=i2}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t2){var i2;const{el:{content:s2},parts:e2}=this._$AD,o2=((i2=t2?.creationScope)!==null&&i2!==void 0?i2:lit_html_r).importNode(s2,!0);C.currentNode=o2;let n2=C.nextNode(),l2=0,h2=0,u2=e2[0];for(;u2!==void 0;){if(l2===u2.index){let i3;u2.type===2?i3=new R(n2,n2.nextSibling,this,t2):u2.type===1?i3=new u2.ctor(n2,u2.name,u2.strings,this,t2):u2.type===6&&(i3=new Z(n2,this,t2)),this._$AV.push(i3),u2=e2[++h2]}l2!==u2?.index&&(n2=C.nextNode(),l2++)}return C.currentNode=lit_html_r,o2}v(t2){let i2=0;for(const s2 of this._$AV)s2!==void 0&&(s2.strings!==void 0?(s2._$AI(t2,s2,i2),i2+=s2.strings.length-2):s2._$AI(t2[i2])),i2++}}class R{constructor(t2,i2,s2,e2){var o2;this.type=2,this._$AH=A,this._$AN=void 0,this._$AA=t2,this._$AB=i2,this._$AM=s2,this.options=e2,this._$Cp=(o2=e2?.isConnected)===null||o2===void 0||o2}get _$AU(){var t2,i2;return(i2=(t2=this._$AM)===null||t2===void 0?void 0:t2._$AU)!==null&&i2!==void 0?i2:this._$Cp}get parentNode(){let t2=this._$AA.parentNode;const i2=this._$AM;return i2!==void 0&&t2?.nodeType===11&&(t2=i2.parentNode),t2}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t2,i2=this){t2=lit_html_S(this,t2,i2),lit_html_d(t2)?t2===A||t2==null||t2===""?(this._$AH!==A&&this._$AR(),this._$AH=A):t2!==this._$AH&&t2!==T&&this._(t2):t2._$litType$!==void 0?this.g(t2):t2.nodeType!==void 0?this.$(t2):v(t2)?this.T(t2):this._(t2)}k(t2){return this._$AA.parentNode.insertBefore(t2,this._$AB)}$(t2){this._$AH!==t2&&(this._$AR(),this._$AH=this.k(t2))}_(t2){this._$AH!==A&&lit_html_d(this._$AH)?this._$AA.nextSibling.data=t2:this.$(lit_html_r.createTextNode(t2)),this._$AH=t2}g(t2){var i2;const{values:s2,_$litType$:e2}=t2,o2=typeof e2=="number"?this._$AC(t2):(e2.el===void 0&&(e2.el=N.createElement(P(e2.h,e2.h[0]),this.options)),e2);if(((i2=this._$AH)===null||i2===void 0?void 0:i2._$AD)===o2)this._$AH.v(s2);else{const t3=new M(o2,this),i3=t3.u(this.options);t3.v(s2),this.$(i3),this._$AH=t3}}_$AC(t2){let i2=E.get(t2.strings);
vendor: 5,106 bytes, lines 15-27
15return i2===void 0&&E.set(t2.strings,i2=new N(t2)),i2}T(t2){lit_html_c(this._$AH)||(this._$AH=[],this._$AR());const i2=this._$AH;let s2,e2=0;for(const o2 of t2)e2===i2.length?i2.push(s2=new R(this.k(lit_html_u()),this.k(lit_html_u()),this,this.options)):s2=i2[e2],s2._$AI(o2),e2++;e2<i2.length&&(this._$AR(s2&&s2._$AB.nextSibling,e2),i2.length=e2)}_$AR(t2=this._$AA.nextSibling,i2){var s2;for((s2=this._$AP)===null||s2===void 0||s2.call(this,!1,!0,i2);t2&&t2!==this._$AB;){const i3=t2.nextSibling;t2.remove(),t2=i3}}setConnected(t2){var i2;this._$AM===void 0&&(this._$Cp=t2,(i2=this._$AP)===null||i2===void 0||i2.call(this,t2))}}class k{constructor(t2,i2,s2,e2,o2){this.type=1,this._$AH=A,this._$AN=void 0,this.element=t2,this.name=i2,this._$AM=e2,this.options=o2,s2.length>2||s2[0]!==""||s2[1]!==""?(this._$AH=Array(s2.length-1).fill(new String),this.strings=s2):this._$AH=A}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t2,i2=this,s2,e2){const o2=this.strings;let n2=!1;if(o2===void 0)t2=lit_html_S(this,t2,i2,0),n2=!lit_html_d(t2)||t2!==this._$AH&&t2!==T,n2&&(this._$AH=t2);else{const e3=t2;let l2,h2;for(t2=o2[0],l2=0;l2<o2.length-1;l2++)h2=lit_html_S(this,e3[s2+l2],i2,l2),h2===T&&(h2=this._$AH[l2]),n2||(n2=!lit_html_d(h2)||h2!==this._$AH[l2]),h2===A?t2=A:t2!==A&&(t2+=(h2??"")+o2[l2+1]),this._$AH[l2]=h2}n2&&!e2&&this.j(t2)}j(t2){t2===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t2??"")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t2){this.element[this.name]=t2===A?void 0:t2}}const I=lit_html_s?lit_html_s.emptyScript:"";class L extends k{constructor(){super(...arguments),this.type=4}j(t2){t2&&t2!==A?this.element.setAttribute(this.name,I):this.element.removeAttribute(this.name)}}class z extends k{constructor(t2,i2,s2,e2,o2){super(t2,i2,s2,e2,o2),this.type=5}_$AI(t2,i2=this){var s2;if((t2=(s2=lit_html_S(this,t2,i2,0))!==null&&s2!==void 0?s2:A)===T)return;const e2=this._$AH,o2=t2===A&&e2!==A||t2.capture!==e2.capture||t2.once!==e2.once||t2.passive!==e2.passive,n2=t2!==A&&(e2===A||o2);o2&&this.element.removeEventListener(this.name,this,e2),n2&&this.element.addEventListener(this.name,this,t2),this._$AH=t2}handleEvent(t2){var i2,s2;typeof this._$AH=="function"?this._$AH.call((s2=(i2=this.options)===null||i2===void 0?void 0:i2.host)!==null&&s2!==void 0?s2:this.element,t2):this._$AH.handleEvent(t2)}}class Z{constructor(t2,i2,s2){this.element=t2,this.type=6,this._$AN=void 0,this._$AM=i2,this.options=s2}get _$AU(){return this._$AM._$AU}_$AI(t2){lit_html_S(this,t2)}}const j={O:lit_html_o,P:lit_html_n,A:lit_html_l,C:1,M:V,L:M,R:v,D:lit_html_S,I:R,V:k,H:L,N:z,U:H,F:Z},B=lit_html_i.litHtmlPolyfillSupport;B?.(N,R),((lit_html_t=lit_html_i.litHtmlVersions)!==null&&lit_html_t!==void 0?lit_html_t:lit_html_i.litHtmlVersions=[]).push("2.8.0");const D=(t2,i2,s2)=>{var e2,o2;const n2=(e2=s2?.renderBefore)!==null&&e2!==void 0?e2:i2;let l2=n2._$litPart$;if(l2===void 0){const t3=(o2=s2?.renderBefore)!==null&&o2!==void 0?o2:null;n2._$litPart$=l2=new R(i2.insertBefore(lit_html_u(),t3),t3,void 0,s2??{})}return l2._$AI(t2),l2};/**
16 * @license
17 * Copyright 2017 Google LLC
18 * SPDX-License-Identifier: BSD-3-Clause
19 */var lit_element_l,lit_element_o;const lit_element_r=null;class lit_element_s extends u{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var t2,e2;const i2=super.createRenderRoot();return(t2=(e2=this.renderOptions).renderBefore)!==null&&t2!==void 0||(e2.renderBefore=i2.firstChild),i2}update(t2){const i2=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t2),this._$Do=D(i2,this.renderRoot,this.renderOptions)}connectedCallback(){var t2;super.connectedCallback(),(t2=this._$Do)===null||t2===void 0||t2.setConnected(!0)}disconnectedCallback(){var t2;super.disconnectedCallback(),(t2=this._$Do)===null||t2===void 0||t2.setConnected(!1)}render(){return T}}lit_element_s.finalized=!0,lit_element_s._$litElement$=!0,(lit_element_l=globalThis.litElementHydrateSupport)===null||lit_element_l===void 0||lit_element_l.call(globalThis,{LitElement:lit_element_s});const lit_element_n=globalThis.litElementPolyfillSupport;lit_element_n?.({LitElement:lit_element_s});const lit_element_h={_$AK:(t2,e2,i2)=>{t2._$AK(e2,i2)},_$AL:t2=>t2._$AL};((lit_element_o=globalThis.litElementVersions)!==null&&lit_element_o!==void 0?lit_element_o:globalThis.litElementVersions=[]).push("3.3.3");/**
20 * @license
21 * Copyright 2017 Google LLC
22 * SPDX-License-Identifier: BSD-3-Clause
23 */const directive_t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},directive_e=t2=>(...e2)=>({_$litDirective$:t2,values:e2});class directive_i{constructor(t2){}get _$AU(){return this._$AM._$AU}_$AT(t2,e2,i2){this._$Ct=t2,this._$AM=e2,this._$Ci=i2}_$AS(t2,e2){return this.update(t2,e2)}update(t2,e2){return this.render(...e2)}}/**
24 * @license
25 * Copyright 2017 Google LLC
26 * SPDX-License-Identifier: BSD-3-Clause
27 */class unsafe_html_e extends directive_i{constructor(i2){if(super(i2),this.et=A,i2.type!==directive_t.CH
27ILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(r2){if(r2===A||r2==null)return this.ft=void 0,this.et=r2;if(r2===T)return r2;if(typeof r2!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(r2===this.et)return this.ft;this.et=r2;const s2=[r2];return s2.raw=s2,this.ft={_$litType$:this.constructor.resultType,strings:s2,values:[]}}}unsafe_html_e.directiveName="unsafeHTML",unsafe_html_e.resultType=1;const unsafe_html_o=directive_e(unsafe_html_e);/**
28 * @license
29 * Copyright 2017 Google LLC
30 * SPDX-License-Identifier: BSD-3-Clause
31 */class unsafe_svg_t extends unsafe_html_e{}unsafe_svg_t.directiveName="unsafeSVG",unsafe_svg_t.resultType=2;const unsafe_svg_o=directive_e(unsafe_svg_t);/**
32 * @license
33 * Copyright 2018 Google LLC
34 * SPDX-License-Identifier: BSD-3-Clause
35 */const class_map_o=directive_e(class extends directive_i{constructor(t2){var i2;if(super(t2),t2.type!==directive_t.ATTRIBUTE||t2.name!=="class"||((i2=t2.strings)===null||i2===void 0?void 0:i2.length)>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(t2){return" "+Object.keys(t2).filter((i2=>t2[i2])).join(" ")+" "}update(i2,[s2]){var r2,o2;if(this.it===void 0){this.it=new Set,i2.strings!==void 0&&(this.nt=new Set(i2.strings.join(" ").split(/\s/).filter((t2=>t2!==""))));for(const t2 in s2)s2[t2]&&!(!((r2=this.nt)===null||r2===void 0)&&r2.has(t2))&&this.it.add(t2);return this.render(s2)}const e2=i2.element.classList;this.it.forEach((t2=>{t2 in s2||(e2.remove(t2),this.it.delete(t2))}));for(const t2 in s2){const i3=!!s2[t2];i3===this.it.has(t2)||!((o2=this.nt)===null||o2===void 0)&&o2.has(t2)||(i3?(e2.add(t2),this.it.add(t2)):(e2.remove(t2),this.it.delete(t2)))}return T}}),moneyFormat="${{amount}}";function formatMoney(cents,format){typeof cents=="string"&&(cents=cents.replace(".",""));let value="";const placeholderRegex=/\{\{\s*(\w+)\s*\}\}/,formatString=format||moneyFormat;function formatWithDelimiters(number,precision=2,thousands=",",decimal="."){if(isNaN(number)||number==null)return 0;number=(number/100).toFixed(precision);const parts=number.split("."),dollarsAmount=parts[0].replace(/(\d)(?=(\d\d\d)+(?!\d))/g,`$1${thousands}`),centsAmount=parts[1]?decimal+parts[1]:"";return dollarsAmount+centsAmount}switch(formatString.match(placeholderRegex)[1]){case"amount":value=formatWithDelimiters(cents,2);break;case"amount_no_decimals":value=formatWithDelimiters(cents,0);break;case"amount_with_comma_separator":value=formatWithDelimiters(cents,2,".",",");break;case"amount_no_decimals_with_comma_separator":value=formatWithDelimiters(cents,0,".",",");break}return formatString.replace(placeholderRegex,value)}class ProductCrossSell extends lit_element_s{static get styles(){return i`
36      :host {
37        display: block;
38        display: flex;
39        flex-direction: columns;
40        width: 100%;
41      }
42
43      .grid__image div.aspect-ratio--natural {
44        display: flex;
45      }
46
47      .featured-image {
48        width: 100%;
49        height: auto;
50      }
51
52      svg.icon.icon--placeholder {
53        background: #969696;  /* in line with img placeholder color */
54        fill: #5D5D5D;        /* in line with img placeholder color */
55        border: 1px solid #858585;    /* in line with img placeholder color */
56      }
57
58      .info {
59        display: flex;
60        flex: 1;
61        row-gap: 15px;
62      }
63
64      .info.vertical {
65        flex-direction: column;
66      }
67
68      .product-info {
69        width: 100%;
70      }
71
72      .title {
73        display: inline;
74        padding: 0 0 5px 0;
75        font-size: var(--base-font-size);
76        line-height: 1.6;
77        color: var(--text-color);
78        font-family: var(--body-font-stack);
79        font-weight: var(--body-font-weight);
80        font-style: var(--body-font-style);
81      }
82
83      .title a {
84        color: var(--text-color);
85        text-decoration: none;
86        word-wrap: break-word;
87        word-break: break-word;
88      }
89
90      .price {
91        font-family: var(--header-font-stack);
92        font-weight: var(--header-font-weight);
93        font-style: var(--header-font-style);
94        text-transform: var(--heading-font-case);
95      }
96
97      .price a {
98        text-decoration: none;
99        color: var(--text-color);
100      }
101
102      .price a .icon {
103        display: inline-block;
104        margin-right: 5px;
105      }
106
107      .price .price-line-through {
108        text-decoration: line-through;
109      }
110
111      .price .money.sale-price {
112        color: var(--text-color);
113        opacity: .4;
114        padding-right: 5px;
115      }
116
117      .price .money:not(.sale-price):not(.price-line-through) {
118        color: var(--text-color);
119      }
120
121      .money.sale-price+.money:not(.sale-price):not(.price-line-through) {
122        color: var(--on-sale-color);
123      }
124
125      .buttons {
126        flex-shrink: 0;
127        padding-left: 15px;
128        display: flex;
129        align-items: flex-end;
130        padding-bottom: 1px;
131      }
132
133      .product-image {
134        width: 90px;
135        padding-right: 15px;
136      }
137
138      .product-image .grid__image {
139        display: block;
140        margin: 0 auto;
141      }
142
143      .aspect-ratio:not(.aspect-ratio--natural) {
144        position: relative;
145        margin-left: auto;
146        margin-right: auto;
147      }
148
149      .aspect-ratio.aspect-ratio--square {
150        padding-bottom: 100%;
151      }
152
153      .aspect-ratio.aspect-ratio--tall {
154        padding-bottom: 150%;
155      }
156
157      .aspect-ratio.aspect-ratio--wide {
158        padding-bottom: 75%;
159      }
160
161      .aspect-ratio:not(.aspect-ratio--natural) img,
162      .aspect-ratio:not(.aspect-ratio--natural) svg {
163        width: 100%;
164        height: 100%;
165        -o-object-fit: cover;
166        object-fit: cover;
167        position: absolute;
168        left: 50%;
169        top: 50%;
170        transform: translate(-50%,-50%);
171      }
172
173      @media only screen and (max-width: 989px) {
174        .info {
175          flex-wrap: wrap;
176          align-content: space-between;
177        }
178
179        .info .product-info {
180          width: 100%;
181          padding-right: 0;
182        }
183
184        .buttons {
185          padding-left: 0;
186        }
187
188        .buttons button.text-link-animated {
189          margin-left: 0;
190        }
191      }
192
193      button.disabled {
194        opacity: .50;
195        pointer-events: none;
196      }
197
198      button.unavailable {
199        opacity: .50;
200        pointer-events: none;
201      }
202
203      .lds-dual-ring {
204        display: inline-block;
205        width: 15px;
206        height: 15px;
207      }
208
209      .lds-dual-ring:after {
210        content: " ";
211        display: block;
212        width: 15px;
213        height: 15px;
214        border-radius: 50%;
215        border: 3px solid #000;
216        border-color: var(--text-color) transparent var(--text-color) transparent;
217        animation: lds-dual-ring 1.2s linear infinite;
218      }
219
220      @keyframes lds-dual-ring {
221        0% {
222          transform: rotate(0deg);
223        }
224
225        100% {
226          transform: rotate(360deg);
227        }
228      }
229
230      button.text-link-animated .cross-sells__button-label {
231        display: inline-flex;
232        text-decoration: none;
233        padding-bottom: 2px;
234        position: relative;
235        background: linear-gradient(to top, var(--text-color-transparent5) 0, var(--text-color-transparent5) 0), linear-gradient(to top, currentColor 0, currentColor 0);
236        background-size: 100% 0.1em, 0 0.1em;
237        background-position: 100% 100%, 0 100%;
238        background-repeat: no-repeat;
239        transition-property: background-size;
240        transition-timing-function: ease;
241        transition-duration: .25s;
242        text-transform: var(--button-text-case);
243
244        &:hover,
245        &:focus {
246          background-size: 0 0.1em, 100% 0.1em;
247        }
248
249        .cross-sells__button-label--content {
250          display: inline-flex;
251          gap: 10px;
252
253          svg {
254            display: block;
255          }
256        }
257      }
258
259      .cross-sells__button-label--content .icon {
260        display: flex;
261        align-items: center;
262        color: currentColor;
263      }
264
265      .cross-sells__button-label--content .icon svg {
266        min-width: 16px;
267        min-height: 16px;
268        max-width: 16px;
269        max-height: 16px;
270        width: 16px;
271        height: 16px;
272        display: inline-block;
273        margin: 0;
274      }
275
276      button.text-link-animated {
277        display: block;
278        cursor: pointer;
279        margin-left: auto;
280        letter-spacing: var(--button-text-spacing-px);
281        font-size: var(--button-font-size-px);
282        text-transform: var(--button-text-case);
283        height: 18px;
284        color: var(--text-color);
285        border: none;
286        background: 0 0;
287        font-family: var(--body-font-stack);
288        font-weight: var(--body-font-weight);
289        font-style: var(--body-font-style);
290        padding: 0;
291      }
292
293      .sr-only {
294        position: absolute;
295        left: -10000px;
296        top: auto;
297        width: 1px;
298        height: 1px;
299        overflow: hidden;
300      }
301
302      select {
303        appearance: none;
304        background-color: transparent;
305        border: none;
306        padding: 6px 1em 6px 6px;
307        margin: 0;
308        width: 100%;
309        font-family: inherit;
310        font-size: 0.85rem;
311        cursor: inherit;
312        line-height: inherit;
313        outline: none;
314        border: 1px solid var(--border-color);
315      }
316
317      .not-available {
318        font-weight: bold;
319        text-align: center;
320        padding: 2px 6px;
321        margin-bottom: 8px;
322        opacity: 0.6;
323        border: 1px solid var(--border-color);
324        width: 100%;
325      }
326
327      .select-wrapper {
328        position: relative;
329        margin-top: 8px;
330      }
331
332      .select-wrapper button {
333        text-align: left;
334        border: 1px solid var(--border-color);
335        padding: 8px 36px 8px 10px;
336        position: relative;
337        background: none;
338        min-width: 100%;
339        z-index: 1;
340        font-size: var(--base-font-size);
341        font-family: var(--body-font-stack);
342        font-weight: var(--body-font-weight);
343        font-style: var(--body-font-style);
344        display: grid;
345      }
346
347      .select-wrapper button:focus {
348        outline: var(--text-color-lighten70) solid 1px;
349      }
350
351      .select-wrapper button span {
352        overflow: hidden;
353        width: 100%;
354        color: var(--text-color);
355      }
356
357      .select-wrapper button .icon {
358        position: absolute;
359        width: auto;
360        display: flex;
361        height: 100%;
362        right: 0;
363        align-items: center;
364        color: currentColor;
365      }
366
367      .select-wrapper button .chevron {
368        min-width: 16px;
369        min-height: 16px;
370        max-width: 16px;
371        max-height: 16px;
372        width: 16px;
373        height: 16px;
374        display: inline-block;
375        margin-right: 10px;
376        margin-left: 10px;
377      }
378
379      .select-wrapper button.open .chevron {
380        transform: rotate(180deg);
381      }
382
383      ul {
384        display: none;
385        flex-direction: column;
386        text-align: left;
387        position: absolute;
388        left: 0;
389        right: 0;
390        top: calc(100% - 1px);
391        bottom: auto;
392        list-style: none;
393        margin: 0;
394        padding: 0;
395        color: var(--text-color);
396        background-color: var(--body-color);
397        border: 1px solid var(--border-color);
398        max-height: 40vh;
399        overflow: auto;
400        max-height: calc( (var(--base-font-size) * 3) + 69px );
401        opacity: 0;
402        transition: opacity 0.2s ease-in-out;
403        z-index: 0;
404        pointer-events: none;
405      }
406
407      ul::-webkit-scrollbar {
408        width: 3px;
409      }
410      
411      /* Track */
412      ul::-webkit-scrollbar-track {
413        background: var(--text-color-transparent30);
414      }
415      
416      /* Handle */
417      ul::-webkit-scrollbar-thumb {
418        background: var(--text-color-transparent5);
419      }
420
421      @supports (-webkit-touch-callout: none) {
422        ul {
423          top: top: calc(100% - 2px);
424          width: 100%;
425        }
426      }
427
428      ul.open {
429        display: flex;
430        opacity: 1;
431        z-index: 3;
432        pointer-events: all;
433      }
434
435      ul:focus {
436        outline: var(--text-color-light) auto 0;
437        box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.10);
438      }
439
440      ul li {
441        font-size: var(--base-font-size);
442        padding: 10px;
443        margin: 0;
444        font-family: inherit;
445        font-weight: inherit;
446        font-weight: inherit;
447        line-height: normal;
448        cursor: pointer;
449        word-wrap: break-word;
450        word-break: break-word;
451      }
452
453      ul li:hover,
454      ul li.selected {
455        background-color: var(--filter-bg-color);
456      }
457    `}static properties={button:{type:String},variant:{type:String},optionSelects:{type:Array},selectButtonLabels:{type:Array},currentVariant:{type:Array},featuredImage:{type:String},allOptionsChosen:{type:Boolean},focusedIndex:{type:Array}};constructor(){super()}connectedCallback(){super.connectedCallback(),this.addToCart=this.dataset.addToCart,this.shoppingBagIcon=this.dataset.shoppingBagIcon,this.dropdownChevron=this.dataset.dropdownChevron,this.soldOut=this.dataset.soldOut,this.chooseOption=this.dataset.chooseOption,this.from=this.dataset.from,this.notAvailable=this.dataset.notAvailable,this.added=this.dataset.added,this.loading=this.dataset.loading,this.productRegularPrice=this.dataset.productsRegularPrice,this.productPriceDisplay=this.dataset.productPriceDisplay,this.showMaxPrice=this.dataset.showMaxPrice,this.productData=JSON.parse(this.getAttribute("product")),this.moneyFormat=this.getAttribute("money-format"),this.currentVariant=this._firstAvailableVariant(),this.productImagePlaceholder=this.getAttribute("product-image-placeholder"),this.imageAspectRatio=this.getAttribute("image-aspect-ratio"),this.imageSrcSet=this.getAttribute("image-srcset"),this.defaultImage=this.productData.featured_image,this.featuredImage=this.defaultImage,this.optionSelects=[],this.button=this._getButton(),this.focusedIndex=this.productData.options.map(()=>-1),this.selectButtonLabels=[...this.productData.options],this.allOptionsChosen=!this.productData.options.some(r2=>this.selectButtonLabels.includes(r2)),this.cartAction=document.getElementById("PageContainer").dataset.cartAction,this.cartType=document.getElementById("PageContainer").dataset.cartType,this.showCurrencyCode=document.getElementById("PageContainer").dataset.showCurrencyCode,this.currencyCode=document.getElementById("PageContainer").dataset.currencyCode}_firstAvailableVariant(){const available=this.productData.variants.find(variant=>variant.available);return available||this.productData.variants[0]}_imageAtSize(url,size){if(!url)return;let fullFileName=url;fullFileName=fullFileName.replace(/_([0-9]+x+)/,"");let separatorIndex=fullFileName.lastIndexOf("."),fileName=fullFileName.substr(0,separatorIndex),extension=fullFileName.substr(separatorIndex);return`${fileName}_${size}${extension}`}_renderStringWithIcon(string,icon){return x`
458      <span class="cross-sells__button-label--content"><span class="icon">${unsafe_svg_o(icon)}</span><span class="text">${string}</span></span>
459    `}_productHasVariants(){return this.productData.variants[0].public_title!==null}_disableButton(){this.button=x`
460      <button
461        type="button"
462        class="disabled text-link-animated"
463        disabled
464        aria-label="${this.loading}"
465      >
466        <div class="lds-dual-ring"></div>
467        <span class="sr-only">${this.loading}</span>
468      </button>
469    `}_enableButton(){this.button=this._getButton(!0)}_addedButton(){this.button=x`
470      <button
471        type="button"
472        class="disabled text-link-animated"
473        disabled
474        aria-label="${this.added}"
475      >
476      <span class="cross-sells__button-label">${this.added}</span>
477      </button>
478    `}_getButton(showAdd=!1){return!this.currentVariant.available&&this.optionSelects.length>0?x`
479        <button
480          type="button"
481          @click=${()=>this._handleButtonClick()}
482          class="unavailable text-link-animated"
483          aria-label="${this.soldOut}"
484        >
485        <span class="cross-sells__button-label">${this.soldOut}</span>
486        </button>
487      `:this._productHasVariants()&&!showAdd&&!this.allOptionsChosen||!this.currentVariant.available?x`
488        <button
489          type="button"
490          @click=${()=>this._handleButtonClick()}
491          class="text-link-animated"
492          aria-label="${this.chooseOption}"
493        >
494          <span class="cross-sells__button-label">${this._renderStringWithIcon(this.chooseOption,this.shoppingBagIcon)}</span>
495        </button>
496      `:x`
497      <button
498        type="button"
499        @click=${()=>this._handleButtonClick()}
500        class="action-add text-link-animated"
501        aria-label="${this.addToCart}"
502      >
503        <span class="cross-sells__button-label">${this._renderStringWithIcon(this.addToCart,this.shoppingBagIcon)}</span>
504      </button>
505    `}_getOptions(){let optionsDeDupe=[];for(const[optionIndex,option]of Object.entries(this.productData.options)){optionsDeDupe[optionIndex]={label:"",options:[]};let theseOptions=[];for(const[variantIndex,variant]of Object.entries(this.productData.variants))theseOptions.push(variant[`option${parseInt(optionIndex)+1}`]);let uniqueOptions=[...new Set(theseOptions)];optionsDeDupe[optionIndex].label=option,optionsDeDupe[optionIndex].options=uniqueOptions}this.optionSelects=optionsDeDupe}async _addToCart(){let formData={items:[{id:this.currentVariant.id,quantity:1}]};this.cartType=="drawer"&&(formData.sections="cart-drawer");try{const fetchResult=await window.fetch("/cart/add.js",{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify(formData)}),responseJson=await fetchResult.json();if(!fetchResult.ok)console.error("Unable to add to cart: ",responseJson);else return this._updateCart(responseJson),responseJson}catch(e2){console.error("Unable to add to cart: ",e2)}}async _updateCart(responseJson){this.cartType=="drawer"&&window.eventBus.emit("update:cart:drawer",responseJson);const cart=await(await fetch("/cart.js")).json();this.cartType=="drawer"&&this.cartAction=="go_to_or_open_cart"&&window.eventBus.emit("open:cart:drawer",{scrollToTop:!0}),window.wetheme.updateCartCount(cart)}async _handleButtonClick(){if(!this._productHasVariants()||this.allOptionsChosen){this._disableButton();let json=await this._addToCart();this._addedButton(),setTimeout(()=>this._enableButton(),3e3)}else{const selectButtons=this.renderRoot.querySelectorAll(".select-button");if(selectButtons.length===0){this._getOptions();return}Array.from(selectButtons).find(input=>input.value===input.getAttribute("aria-label")).focus()}}_toggleDropdown(index){this.renderRoot.querySelector(`#option-${index}`).classList.toggle("open"),this.renderRoot.querySelector(`#ul-${index}`).classList.toggle("open")}_closeDropdown(index){this.renderRoot.querySelector(`#option-${index}`).classList.remove("open"),this.renderRoot.querySelector(`#ul-${index}`).classList.remove("open")}_openDropdown(index){this.renderRoot.querySelector(`#option-${index}`).classList.remove("open"),this.renderRoot.querySelector(`#ul-${index}`).classList.remove("open")}_findVariantIndex(option,optionIndex){var index;return this.optionSelects[optionIndex].options.forEach(function(o2,i2){o2===option&&(index=i2)}),index}_updateSelectedIndex(updatedOptionIndex,selectIndex){const lis=this.renderRoot.querySelector(`#ul-${selectIndex}`).querySelectorAll("li");lis[this.focusedIndex[selectIndex]]?.classList.remove("selected"),updatedOptionIndex>=0&&updatedOptionIndex<lis.length?(this.focusedIndex[selectIndex]=updatedOptionIndex,lis[this.focusedIndex[selectIndex]].classList.add("selected")):this.focusedIndex[selectIndex]=-1}async _handleOptionClick(value,index){this.selectButtonLabels[index]=value,this._updateSelectedIndex(this._findVariantIndex(value,index),index),await this.update();const selects=this.renderRoot.querySelectorAll(".select-button"),unorderedList=this.renderRoot.querySelector(`#ul-${index}`);
505if(unorderedList.querySelectorAll(`#ul-${index} li`).forEach(li=>li.getAttribute("aria-label")===value?li.classList.add("selected"):li.classList.remove("selected")),this.allOptionsChosen=!this.productData.options.some(r2=>this.selectButtonLabels.includes(r2)),!this.allOptionsChosen){unorderedList.classList.contains("open")&&Array.from(selects).find(select=>select.value===select.getAttribute("aria-label")).focus();return}let vals=[];for(const[index2,selectButton]of Object.entries(selects))vals.push(selectButton.value);const title=vals.join(" / "),variant=this.productData.variants.find(obj=>obj.title==title);variant?(this.currentVariant=variant,this.currentVariant.featured_image&&(this.featuredImage=this.currentVariant.featured_image.src)):(this.currentVariant={available:!1},this.featuredImage=this.defaultImage),this.button=this._getButton(this.currentVariant.available)}async _moveFocusedIndex(e2){let focusedIndex=this.focusedIndex[e2.target.dataset.index];const ul=this.renderRoot.querySelector(`#ul-${e2.target.dataset.index}`),lis=ul.querySelectorAll("li");let newFocusedIndex,focusedOption;switch(e2.key){case"ArrowDown":e2.preventDefault(),newFocusedIndex=focusedIndex+1,newFocusedIndex>=0&&newFocusedIndex<lis.length&&(ul.classList.contains("open")===!1?(focusedOption=this.optionSelects[e2.target.dataset.index].options[newFocusedIndex],this._handleOptionClick(focusedOption,e2.target.dataset.index)):this._updateSelectedIndex(newFocusedIndex,e2.target.dataset.index));break;case"ArrowUp":e2.preventDefault(),newFocusedIndex=focusedIndex-1,newFocusedIndex>=0&&newFocusedIndex<lis.length&&(ul.classList.contains("open")===!1?(focusedOption=this.optionSelects[e2.target.dataset.index].options[newFocusedIndex],this._handleOptionClick(focusedOption,e2.target.dataset.index)):this._updateSelectedIndex(newFocusedIndex,e2.target.dataset.index));break;case"Enter":ul.classList.contains("open")===!1?this._openDropdown(e2.target.dataset.index):(focusedOption=this.optionSelects[e2.target.dataset.index].options[this.focusedIndex[e2.target.dataset.index]],focusedOption&&this._handleOptionClick(focusedOption,e2.target.dataset.index));break;case" ":ul.classList.contains("open")===!1?this._openDropdown(e2.target.dataset.index):(focusedOption=this.optionSelects[e2.target.dataset.index].options[this.focusedIndex[e2.target.dataset.index]],focusedOption&&this._handleOptionClick(focusedOption,e2.target.dataset.index));break;case"Escape":this._closeDropdown(e2.target.dataset.index);break;default:break}}render(){if(this.productData.available===!1)return window.Shopify.designMode?x`
506          <div class="not-available">
507            ${this.productData.title} ${this.notAvailable}.
508          </div>
509        `:void 0;const optionsList=(option,index)=>{const sanitizedId=encodeURIComponent(option.replace(" ","")).toLowerCase();return x`
510        <li
511          id="${sanitizedId}"
512          @mousedown=${()=>this._handleOptionClick(option,index)}
513          key="${sanitizedId}"
514          aria-label="${option}"
515        >
516          ${option}
517        </li>
518      `};return x`
519      <div class="product-image">
520        <a href="/products/${this.productData.handle}" class="grid__image" target="_blank" title="Opens ${this.productData.title} in a new tab">
521          <div class="aspect-ratio aspect-ratio--${this.imageAspectRatio}">
522            ${this.defaultImage!=null?x`
523              <img
524                class="featured-image"
525                loading="lazy"
526                srcset="
527                  ${this.imageSrcSet}
528                "
529                sizes="(min-width: 1200px) 300px, (min-width: 750px) 200px, 100px"
530                src="${this.featuredImage}"
531                alt="${this.currentVariant.title}"
532                width="90px"
533              />
534            `:x`${unsafe_svg_o(this.productImagePlaceholder)}`}
535          </div>
536        </a>
537      </div>
538      <div class="${class_map_o({info:!0,vertical:this.optionSelects.length>0})}">
539        <div class="product-info">
540          <div class="title">
541            <a
542              href="/products/${this.productData.handle}"
543              target="_blank"
544              title="Opens ${this.productData.title} in a new tab"
545              >${this.productData.title}</a
546            >
547          </div>
548          <div class="price">
549            ${this.currentVariant.available?x`
550                <a href="/products/${this.productData.handle}" target="_blank" title="Opens ${this.productData.title} in a new tab">
551                  ${this.productData.price_varies&&this._productHasVariants()&&this.showMaxPrice=="false"&&!this.allOptionsChosen?this.from:""}
552                  ${this.showMaxPrice=="false"&&!this.allOptionsChosen&&this.productData.compare_at_price_min>this.productData.price_min?x`
553                    <span class="amount_no_decimals_with_comma_separator price-line-through sale-price">
554                    <span class="sr-only">${this.productRegularPrice}</span>
555                      ${formatMoney(this.productData.compare_at_price_min,this.moneyFormat)}
556                      ${this.showCurrencyCode=="true"?x`<span class="currency-code">${this.currencyCode}</span>`:""}
557                    </span>`:this.showMaxPrice=="true"&&!this.allOptionsChosen&&this.productData.compare_at_price_max>this.productData.price_max?x`
558                    <span class="money price-line-through sale-price">
559                    <span class="sr-only">${this.productRegularPrice}</span>
560                      ${formatMoney(this.productData.compare_at_price_max,this.moneyFormat)}
561                      ${this.showCurrencyCode=="true"?x`<span class="currency-code">${this.currencyCode}</span>`:""}
562                    </span>`:this.currentVariant.compare_at_price>this.currentVariant.price?x`
563                    <span class="money price-line-through sale-price">
564                    <span class="sr-only">${this.productRegularPrice}</span>
565                      ${formatMoney(this.currentVariant.compare_at_price,this.moneyFormat)}
566                      ${this.showCurrencyCode=="true"?x`<span class="currency-code">${this.currencyCode}</span>`:""}
567                    </span>
568                    `:""}
569
570                  ${this.showMaxPrice=="false"&&!this.allOptionsChosen?x`
571                    <span class="amount_no_decimals_with_comma_separator">
572                      ${formatMoney(this.productData.price_min,this.moneyFormat)}
573                      ${this.showCurrencyCode=="true"?x`<span class="currency-code">${this.currencyCode}</span>`:""}
574                    </span>
575                  `:this.showMaxPrice=="true"&&!this.allOptionsChosen?x`
576                    <span class="amount_no_decimals_with_comma_separator">
577                      ${formatMoney(this.productData.price_max,this.moneyFormat)}
578                      ${this.showCurrencyCode=="true"?x`<span class="currency-code">${this.currencyCode}</span>`:""}
579                    </span>
580                  `:x`
581                    <span class="amount_no_decimals_with_comma_separator">
582                      ${formatMoney(this.currentVariant.price,this.moneyFormat)}
583                      ${this.showCurrencyCode=="true"?x`<span class="currency-code">${this.currencyCode}</span>`:""}
584                    </span>
585                  `}
586                </a>
587              `:x`<span>Sold out</span>`}
588          </div>
589          ${this.optionSelects.length>0?x`
590            <div class="options">
591              ${this.optionSelects.map((item,index)=>x`
592                  <div class="select-wrapper">
593                    <button
594                      class="alt-focus select-button"
595                      id="option-${index}"
596                      value="${this.selectButtonLabels[index]}"
597                      type="button"
598                      readonly="true"
599                      tabindex="0"
600                      aria-haspopup="listbox"
601                      aria-label="${item.label}"
602                      aria-controls="ul-${index}"
603                      data-index="${index}"
604                      @click=${()=>this._toggleDropdown(index)}
605                      @blur=${()=>this._closeDropdown(index)}
606                      @keydown="${this._moveFocusedIndex}"
607                    >
608                      <span>${this.selectButtonLabels[index]}</span><span class="icon inline-icon--wrapper dropdown-icon">${unsafe_svg_o(this.dropdownChevron)}</span>
609                      
610                    </button>
611                    <ul
612                      role="listbox"
613                      tabindex="0"
614                      id="ul-${index}"
615                    >
616                      ${item.options.map(option=>optionsList(option,index))}
617                    </ul>
618                  </div>
619                `)}
620            </div>
621          `:""}
622        </div>
623        <div class="buttons">
624          ${this.button}
625        </div>
626      </div>
627    `}}customElements.get("product-cross-sell")||customElements.define("product-cross-sell",ProductCrossSell)})},__webpack_module_cache__={};function __webpack_require__(moduleId){var cachedModule=__webpack_module_cache__[moduleId];if(cachedModule!==void 0)return cachedModule.exports;
627var module=__webpack_module_cache__[moduleId]={exports:{}};return __webpack_modules__[moduleId](module,module.exports,__webpack_require__),module.exports}var _product_cross_sell_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(931);class complementaryProducts extends HTMLElement{constructor(){super()}connectedCallback(){this.init()}init(){fetch(this.dataset.url).then(response=>response.text()).then(text=>{const html=document.createElement("div");html.innerHTML=text;const recommendations=html.querySelector("complementary-products");recommendations&&recommendations.innerHTML.trim().length?(this.innerHTML=recommendations.innerHTML,this.closest(".complementary-products").classList.remove("hidden")):this.closest(".complementary-products").remove()}).catch(e=>{console.error(e)})}}customElements.define("complementary-products",complementaryProducts)})();
628//# sourceMappingURL=/cdn/shop/t/92/assets/component-complementary-products.js.map?v=74402360187270423631781674713

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