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.