PageSourceSearch

https://bartesian.com/cdn/shop/t/772/assets/bartesian-pricing-ui.j…=1669791442433410151788878038?v=1790242253

js bartesian.com collected 2026-09-24 09:31:21 UTC 26,236 bytes, 298 lines download raw bytes

1import{oosCanadaProductIds,oosUkProductIds,oosUsaProductIds}from"./geolocation-handler.js";class BartesianPricingUI extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),this.initializeProperties(),this.removeLoaderElements(),this.shadowRoot.append(this.createStyles(),this.createStructure()),this.setupEventListeners(),this.checkAvailability(),this.checkOutOfStock()}initializeProperties(){this.sideCart=document.querySelector("side-cart"),this.uiType=this.getAttribute("ui-type"),this.variantId=this.getAttribute("variant-id"),this.productId=this.getAttribute("product-id"),this.price=JSON.parse(this.getAttribute("price")),this.currentTemplate=this.getAttribute("current-template"),this.oosStates=disableStickyATC[this.productId],this.showModifiedPricing=!1,this.modifiedPricing=this.price?.amount||null,this.availability=this.getAttribute("availability"),this.productId==="7697851908295"||this.productId==="7701507276999"?this.numCapsulesPerBox=6:this.productId==="8035822534855"||this.productId==="8773255692487"||this.productId==="7519374901447"?this.numCapsulesPerBox=12:this.productId==="8166638452935"?this.numCapsulesPerBox=4:this.numCapsulesPerBox=8}removeLoaderElements(){document.querySelectorAll(".line-of-dots")?.forEach(element=>{element.classList.remove("line-of-dots")})}setupEventListeners(){this.boundHandleOutsideClick=this.handleOutsideClick.bind(this),document.addEventListener("click",this.boundHandleOutsideClick)}createStyles(){const style=document.createElement("style");return style.textContent=`
2      :root {
3        --custom-loader-primary: #008fbb;
4      }
5      .bartesian-pricing-ui-wrapper {
6        display: flex;
7        align-items: center;
8        justify-content: space-between;
9        width: 100%;
10        position: relative;
11      }
12      .bartesian-pricing-ui-wrapper-pdp {
13        align-items: flex-start;
14      }
15      .bartesian-pricing-ui-wrapper-plp {
16        padding-left: 1rem;
17      }
18      .bartesian-pricing-ui-inner-wrapper {
19        display: flex;
20        flex-direction: column;
21        align-items: flex-start;
22        justify-content: center;
23      }
24      .bartesian-pricing-ui-inner-wrapper-pdp {
25        flex-direction: column;
26        align-items: flex-start;
27        margin-top: 1rem;
28        width: 100%;
29      }
30      .add-to-cart-btn:hover {
31        cursor: pointer;
32      }
33      .add-to-cart-btn:disabled {
34        cursor: not-allowed;
35        ${this.currentTemplate==="product"?"width: 100%;":"width: 50px;"}
36      }
37      .price span,
38      .default-price-per-unit span {
39        color: rgb(var(--color-foreground));
40        font-size: 13px;
41        font-family: Encode Sans, sans-serif;
42        letter-spacing: 0;
43      }
44      .price-per-capsule span,
45      .price-per-box span {
46        font-size: 16px;
47        color: #008FBB;
48        font-weight: bold;
49      }
50      .price-font-normal span {
51        font-weight: normal;
52      }
53      .add-to-cart {
54
55      }
56      .add-to-cart-pdp {
57        width: 100%;
58      }
59      .add-to-cart-btn {
60        display: flex;
61        color: white;
62        background: #008FBB;
63        width: 50px;
64        height: 50px;
65        justify-content: center;
66        align-items: center;
67        border: 1px solid #008FBB;
68        margin: .5rem 1rem;
69        font-size: 1.5rem;
70        border-radius: 50%;
71        position: relative;
72      }
73      .add-to-cart-btn .sold-out {
74        font-size: 11px;
75        position: absolute;
76        top: 50%;
77        left: 50%;
78        transform: translate(-50%, -50%);
79      }
80      .add-to-cart-btn-pdp {
81        background-color: #008FBB;
82        font-family: "Encode Sans Condensed", sans-serif;
83        font-size: 14px;
84        letter-spacing: 2px;
85        width: 100%;
86        margin: 1rem auto;
87        height: 40px;
88        border: none;
89        border-radius: unset;
90      }
91      .add-to-cart-btn-pdp .sold-out {
92        font-size: 16px;
93      }
94      .add-to-cart-btn-pdp:hover {
95        box-shadow: 0 0 0 0 #008FBB;
96        border: unset;
97      }
98      .add-to-cart-btn-pdp:disabled {
99        cursor: not-allowed;
100      }
101      .quantity-selector {
102        display: none;
103        position: absolute;
104        background: #e0e0e0;
105        border: 1px solid #ccc;
106        padding: 2rem;
107        z-index: 100;
108        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
109        box-sizing: border-box;
110        text-align: center;
111        ${this.currentTemplate==="product"?"transform: translate(-50%, -75%);":"transform: translate(-50%, -125%);"}
112        left: 50%;
113        ${this.currentTemplate==="product"?"":"top: 50%;"}
114        max-height: 260px;
115      }
116      .quantity-selector h3 {
117        font-size: 2rem;
118        margin: 0;
119      }
120      .quantity-selector__container {
121        gap: 0.5rem;
122        display: flex;
123        flex-direction: column;
124        justify-items: center;
125        align-items: center;
126      }
127      .predefined-quantity-list {
128        display: grid;
129        grid-template-columns: repeat(4, 1fr);
130        padding: 0;
131        gap: 1rem;
132        width: 100%;
133        margin: 1rem auto 0;
134      }
135      .predefined-quantity-list__quantity {
136        list-style: none;
137        margin: 0;
138        padding: 0;
139      }
140      .predefined-quantity-list__quantity-button {
141        width: 50px;
142        height: 50px;
143        background: #fff;
144        border: 2px solid #ccc;
145        cursor: pointer;
146        font-size: 1em;
147        display: flex;
148        justify-content: center;
149        align-items: center;
150        transition: background 0.3s, color 0.3s;
151      }
152      .predefined-quantity-list__quantity-button:hover {
153        background: #f0f0f0;
154      }
155      .predefined-quantity-list__quantity-button.selected {
156        background: white;
157        color: black;
158        border: 2px solid #008FBB;
159      }
160      .text-field__input {
161        width: 110px;
162        padding: 10px;
163        box-sizing: border-box;
164        font-size: 1em;
165        border: 2px solid #ccc;
166        margin-right: 1rem;
167      }
168      .text-field__input::placeholder {
169        font-size: 1.2rem;
170      }
171      input.text-field__input[type="number"]::-webkit-outer-spin-button,
172      input.text-field__input[type="number"]::-webkit-inner-spin-button {
173        -webkit-appearance: none;
174        margin: 0;
175      }
176      input.text-field__input[type="number"]:focus {
177        outline: 1px solid #ccc;
178        border: 1px solid #ccc;
179      }
180      .quantity-selector-custom-field__button-ok {
181        width: 110px;
182        height: 50px;
183        background: #008FBB;
184        color: #fff;
185        border: none;
186        cursor: pointer;
187        font-size: 14px;
188        transition: background 0.3s;
189        letter-spacing: 1px;
190      }
191      .quantity-selector-custom-field__container {
192        width: 100%;
193        display: flex;
194      }
195      @media screen and (max-width: 768px) {
196        .quantity-selector {
197          position: fixed;
198          top: 50%;
199          left: 50%;
200          transform: translate(-50%, -50%);
201        }
202        .add-to-cart-btn {
203          width: 35px;
204          height: 35px;
205        }
206        .add-to-cart-btn-pdp {
207          width: 100%;
208        }
209        .bartesian-pricing-ui-wrapper-plp .price-per-capsule span {
210          font-size: 13px;
211        }
212        .bartesian-pricing-ui-wrapper-plp .price-per-box span {
213          font-size: 13px;
214          max-width: 60px !important;
215          display: block;
216        }
217        .bartesian-pricing-ui-wrapper-plp .default-price-per-unit span {
218          font-size: 11px;
219        }
220        .bartesian-pricing-ui-wrapper-plp .add-to-cart {
221          margin-right: 0.5rem;
222        }
223        .add-to-cart-btn .sold-out {
224          font-size: 10px;
225        }
226        .add-to-cart-btn-pdp .sold-out {
227          font-size: 14px;
228        }
229        .add-to-cart-btn:disabled {
230          cursor: not-allowed;
231          ${this.currentTemplate==="product"?"width: 100%;":"width: 35px;"}
232        }
233      }
234    `,this.classList.contains("holiday-theme")&&(style.textContent+=`
235        .add-to-cart {
236          display: none !important;
237        }
238        .price-per-capsule span, .price-per-box span {
239          color: black !important;
240
241        }
242        .bartesian-pricing-ui-wrapper-plp {
243          padding-left: 0 !important;
244        }
245      `),style}createStructure(){const wrapper=document.createElement("div");wrapper.classList.add("bartesian-pricing-ui-wrapper"),this.currentTemplate==="product"?wrapper.classList.add("bartesian-pricing-ui-wrapper-pdp"):wrapper.classList.add("bartesian-pricing-ui-wrapper-plp");const innerWrapper=document.createElement("div");return innerWrapper.classList.add("bartesian-pricing-ui-inner-wrapper"),this.currentTemplate==="product"?(innerWrapper.classList.add("bartesian-pricing-ui-inner-wrapper-pdp"),this.uiType==="non-variety"?innerWrapper.append(this.createPriceElement(),this.createDefaultPricePerUnitElement(),this.createButtonContainer()):innerWrapper.append(this.createPerBoxPriceElement(),this.createButtonContainer()),wrapper.append(innerWrapper)):this.uiType==="non-variety"?(innerWrapper.append(this.createPriceElement(),this.createDefaultPricePerUnitElement()),wrapper.append(innerWrapper,this.createButtonContainer())):(innerWrapper.append(this.createPerBoxPriceElement()),wrapper.append(innerWrapper,this.createButtonContainer())),wrapper}createPriceElement(){const price=document.createElement("div");price.classList.add("price"),price.classList.add("price-per-capsule"),this.uiType!=="non-variety"&&this.currentTemplate;const amount=parseFloat(this.price.amount/this.numCapsulesPerBox),formattedPrice=(()=>{switch(this.price.currency_code){case"USD":case"CAD":case"AUD":return`$${amount.toFixed(2)}`;case"GBP":return`\xA3${amount.toFixed(2)}`;case"EUR":return`\u20AC${amount.toFixed(2)}`;default:return`${amount.toFixed(2)} ${this.price.currency_code}`}})();return price.innerHTML=`<span>${formattedPrice} ${this.currentTemplate==="product"?window.cartStrings.perCapsule:""}</span>`,price}createPerBoxPriceElement(){const price=document.createElement("div");price.classList.add("price"),price.classList.add("price-per-box");const amount=parseFloat(this.price.amount),formattedPrice=(()=>{switch(this.price.currency_code){case"USD":case"CAD":case"AUD":return`$${amount.toFixed(2)}`;case"GBP":return`\xA3${amount.toFixed(2)}`;case"EUR":return`\u20AC${amount.toFixed(2)}`;default:return`${amount.toFixed(2)} ${this.price.currency_code}`}})();return price.innerHTML=`<span>${formattedPrice} / box of ${this.numCapsulesPerBox}</span>`,price}createButtonContainer(){const buttonContainer=document.createElement("div");return buttonContainer.classList.add("add-to-cart"),this.currentTemplate==="product"&&buttonContainer.classList.add("add-to-cart-pdp"),buttonContainer.dataset.productId=this.productId,buttonContainer.dataset.variantId=this.variantId,buttonContainer.dataset.buttonSize="small",buttonContainer.dataset.initialized="true",buttonContainer.innerHTML=`
246      <div class="add-to-cart-btn__container">
247        <div id="add-to-cart-btn__button-${this.variantId}">
248          <button
249            class="add-to-cart-btn add-to-cart-btnSmall add-to-cart-btnSmall--active ${this.currentTemplate==="product"?"add-to-cart-btn-pdp":""}"
250            data-focus-id="add-to-cart-btn__button-${this.variantId}"
251            type="button"
252          >
253            <div aria-hidden="true" class="add-to-cart-btnSmall__quantity">${this.currentTemplate==="product"?"ADD TO CART":"+"}</div>
254          </button>
255          ${this.createQuantitySelector()}
256        </div>
257      </div>
258    `,buttonContainer}createQuantitySelector(){let predefinedQuantityList=[];return this.productId==="8035822534855"||this.productId==="8773255692487"||this.productId==="7519374901447"?predefinedQuantityList=[0,1,2,3,4]:predefinedQuantityList=this.uiType==="non-variety"?[0,8,16,24,32,40,48,56]:[0,1,2,3,4,5,6,7],`
259      <div
260        class="quantity-selector"
261        id="quantity-selector__wrapper-${this.variantId}"
262        role="dialog"
263        aria-labelledby="quantity-selector__title-${this.variantId}"
264        aria-describedby="quantity-selector__description-${this.variantId}"
265      >
266        <h3>${this.uiType==="non-variety"?"Select Capsule Quantity":"Select Box Quantity"}</h3>
267        <div class="quantity-selector__container">
268          <ul class="predefined-quantity-list">
269            ${predefinedQuantityList.map(quantity=>`
270                <li class="predefined-quantity-list__quantity">
271                  <button id="quantity-selector__predefined-${quantity}" class="predefined-quantity-list__quantity-button" data-quantity="${quantity}">
272                    <span aria-hidden="true" class="notranslate">${quantity}</span>
273                  </button>
274                </li>
275              `).join("")}
276          </ul>
277          <div id="quantity-message"></div>
278          <form class="quantity-selector-custom-field__container" novalidate="">
279            <input
280              id="quantity-selector__custom-field-${this.variantId}"
281              data-focus-id="quantity-selectorCustomField__field"
282              type="number"
283              min="0"
284              class="text-field__input quantity-selectorCustomField__input"
285              placeholder="Other Amount"
286            >
287            <button
288              id="quantity-selector__custom-ok-${this.variantId}"
289              class="quantity-selector-custom-field__button-ok"
290              type="submit"
291            >
292              UPDATE
293            </button>
294          </form>
295        </div>
296      </div>
297    `}createDefaultPricePerUnitElement(){const defaultPricePerUnit=document.createElement("div");defaultPricePerUnit.classList.add("default-price-per-unit"),this.currentTemplate;const amount=parseFloat(this.price.amount),formattedPrice=(()=>{switch(this.price.currency_code){case"USD":case"CAD":case"AUD":return`$${amount.toFixed(2)}`;case"GBP":return`\xA3${amount.toFixed(2)}`;case"EUR":return`\u20AC${amount.toFixed(2)}`;default:return`${amount.toFixed(2)} ${this.price.currency_code}`}})();return defaultPricePerUnit.innerHTML=`<span>${formattedPrice} / box of ${this.numCapsulesPerBox} ${this.currentTemplate==="product"?"capsules":""}</span>`,defaultPricePerUnit}addEventListeners(){const addToCartButton=this.shadowRoot.querySelector(".add-to-cart-btn");addToCartButton?addToCartButton.addEventListener("click",()=>this.toggleQuantitySelector(this.variantId)):console.error("Add-to-cart button not found");const quantityButtons=this.shadowRoot.querySelectorAll(".predefined-quantity-list__quantity-button");quantityButtons.length>0?quantityButtons.forEach(button=>{button.addEventListener("click",event=>this.handlePredefinedQuantityButtonClick(event))}):console.error("Predefined quantity buttons not found");const customFieldContainer=this.shadowRoot.querySelector(".quantity-selector-custom-field__container");customFieldContainer?customFieldContainer.addEventListener("submit",event=>{event.preventDefault(),this.updateCustomQuantity(this.variantId)}):console.error("Custom field container not found")}handlePredefinedQuantityButtonClick(event){const currentBtn=event.currentTarget;this.shadowRoot.querySelectorAll(".predefined-quantity-list__quantity-button").forEach(btn=>btn.classList.remove("selected")),currentBtn.classList.add("selected");const quantity=Number(currentBtn.getAttribute("data-quantity")),customQuantityInput=this.shadowRoot.querySelector(".text-field__input.quantity-selectorCustomField__input");customQuantityInput&&(customQuantityInput.value=quantity),quantity===0&&this.updateQuantity(quantity,this.variantId)}async fetchInitialQuantity(openCart=!1){if(!this.sideCart||typeof this.sideCart.getCart!="function"){console.error("sideCart is not defined or getCart method is not available");return}const cartItems=await this.sideCart.getCart();openCart||this.closeSideCart();const cartItem=cartItems.items.find(item=>item.variant_id.toString()===this.variantId),initialQuantity=cartItem?cartItem.quantity:0;let quantity=this.uiType==="variety"?initialQuantity:initialQuantity*8;this.setAttribute("quantity",quantity),this.updateQuantityDisplayForVariant(this.variantId,quantity)}updateQuantityDisplayForVariant(variantId,quantity){const quantityDisplay=this.shadowRoot.querySelector(`#add-to-cart-btn__button-${variantId} .add-to-cart-btnSmall__quantity`);quantityDisplay&&this.updateQuantityDisplay(quantityDisplay,quantity),this.shadowRoot.querySelectorAll(".predefined-quantity-list__quantity-button").forEach(button=>button.classList.remove("selected"));const predefinedButton=this.shadowRoot.querySelector(`.predefined-quantity-list__quantity-button[data-quantity="${quantity}"]`);predefinedButton&&predefinedButton.classList.add("selected")}toggleQuantitySelector(variantId){const quantitySelector=this.shadowRoot.getElementById(`quantity-selector__wrapper-${variantId}`),quantitySelectorTitle=this.shadowRoot.querySelector(".quantity-selector h3"),quantityBtnList=this.shadowRoot.querySelector(".predefined-quantity-list");quantitySelector?(quantitySelectorTitle.style.display="block",quantityBtnList.style.display="grid",quantitySelector.style.display=quantitySelector.style.display==="block"?"none":"block"):console.error("Quantity selector not found")}async updateQuantity(quantity,variantId){let formattedQuantity=this.uiType==="variety"?quantity:quantity/this.numCapsulesPerBox;const quantityDisplay=this.shadowRoot.querySelector(`#add-to-cart-btn__button-${variantId} .add-to-cart-btnSmall__quantity`);if(quantityDisplay&&(this.currentTemplate!=="product"&&this.updateQuantityDisplay(quantityDisplay,quantity),this.toggleQuantitySelector(variantId),this.setAttribute("quantity",quantity)),this.sideCart){const cartItems=await this.sideCart.getCart();this.closeSideCart(),cartItems?.items?.some(item=>item.variant_id.toString()===variantId)?await this.updateCartItem(variantId,formattedQuantity):await this.addOrUpdateCartItem(variantId,formattedQuantity)}}updateQuantityDisplay(quantityDisplay,quantity){const displayQuantity=Number(quantity);quantityDisplay.textContent=displayQuantity===0?"+":displayQuantity}closeSideCart(){this.sideCart&&(this.sideCart.classList.remove("cart--open"),document.querySelector("body").classList.remove("overflow-hidden"))}async updateCartItem(variantId,quantity){if(!this.sideCart)return;const cart=await this.sideCart.getCart(),index=cart.items.findIndex(item=>String(item.variant_id??item.id)===String(variantId));if(index===-1){console.warn("Variant not found in cart:",variantId,cart.items);return}const lineIndex=index+1;await this.sideCart.updateCart(lineIndex,quantity),this.openSideCart()}async addOrUpdateCartItem(variantId,quantity){quantity!==0&&this.sideCart&&(await this.sideCart.addToCart(variantId,quantity,void 0,{_showModifiedPricing:this.showModifiedPricing,_modifiedPricing:this.modifiedPricing,_numCapsulesPerBox:this.numCapsulesPerBox}),this.openSideCart())}openSideCart(){this.sideCart&&(this.sideCart.classList.add("cart--open"),document.querySelector("body").classList.add("overflow-hidden"))}updateCustomQuantity(variantId){const customQuantityInput=this.shadowRoot.getElementById(`quantity-selector__custom-field-${variantId}`),quantitySelector=this.shadowRoot.querySelector(".quantity-selector"),quantitySelectorTitle=this.shadowRoot.querySelector(".quantity-selector h3"),quantityBtnList=this.shadowRoot.querySelector(".predefined-quantity-list"),quantityMessageDiv=this.shadowRoot.getElementById("quantity-message");quantitySelectorTitle.style.display="block",quantityBtnList.style.display="grid";let quantity=Number(customQuantityInput.value);if(quantity%this.numCapsulesPerBox!==0&&this.uiType==="non-variety"){const closestMultiple=Math.ceil(quantity/this.numCapsulesPerBox)*this.numCapsulesPerBox;quantityMessageDiv.innerHTML=`<p>Available in multiples of ${this.numCapsulesPerBox}</p><p><strong>Modified quantity to ${closestMultiple}</strong></p>`,quantity=closestMultiple,quantitySelectorTitle.style.display="none",quantityBtnList.style.display="none",customQuantityInput.value=quantity,customQuantityInput.focus(),quantitySelector.style.bottom==="-10rem"&&(quantitySelector.style.bottom="0")}else{this.updateQuantity(quantity,variantId),customQuantityInput&&(customQuantityInput.value=quantity);const predefinedButtons=this.shadowRoot.querySelectorAll(".predefined-quantity-list__quantity-button");let matchedButton=null;predefinedButtons.forEach(button=>{Number(button.getAttribute("data-quantity"))===quantity&&(matchedButton=button),button.classList.remove("selected")}),matchedButton&&matchedButton.classList.add("selected"),quantityMessageDiv.textContent=""}}handleOutsideClick(event){this.shadowRoot.querySelectorAll(".quantity-selector").forEach(selector=>{const quantityBtnList=this.shadowRoot.querySelector(".predefined-quantity-list"),addToCartButton=this.shadowRoot.querySelector(".add-to-cart-btn"),customFieldContainer=this.shadowRoot.querySelector(".quantity-selector-custom-field__container");if(this.currentTemplate==="product"){const stickyAtcButton=document.querySelector("sticky-atc");selector.style.display==="block"&&!selector.contains(event.target)&&!event.composedPath().includes(addToCartButton)&&!event.composedPath().includes(quantityBtnList)&&!event.composedPath().includes(cu
297stomFieldContainer)&&!event.composedPath().includes(stickyAtcButton)&&(selector.style.display="none",selector.style.position="absolute",selector.style.bottom="unset")}else selector.style.display==="block"&&!selector.contains(event.target)&&!event.composedPath().includes(addToCartButton)&&!event.composedPath().includes(quantityBtnList)&&!event.composedPath().includes(customFieldContainer)&&(selector.style.display="none")})}disableAtc(){const atcButton=this.shadowRoot.querySelector("button.add-to-cart-btn");atcButton.setAttribute("disabled",!0),this.currentTemplate==="product"?atcButton.innerHTML='<span class="sold-out">SOLD OUT</span>':atcButton.innerHTML='<span class="sold-out">SOLD<br>OUT</span>',this.price.currency_code==="AUD"&&(atcButton.innerHTML='<span class="sold-out">Coming Soon</span>')}enableAtc(){const atcButton=this.shadowRoot.querySelector("button.add-to-cart-btn");atcButton.removeAttribute("disabled"),this.currentTemplate==="product"?atcButton.innerHTML='<div aria-hidden="true" class="add-to-cart-btnSmall__quantity">ADD TO CART</div>':atcButton.innerHTML='<div aria-hidden="true" class="add-to-cart-btnSmall__quantity">+</div>'}checkAvailability(){const atcButton=this.shadowRoot.querySelector("button.add-to-cart-btn");this.availability==="false"&&(atcButton.setAttribute("disabled",!0),this.currentTemplate==="product"?atcButton.innerHTML='<span class="sold-out">SOLD OUT</span>':atcButton.innerHTML='<span class="sold-out">SOLD<br>OUT</span>',this.price.currency_code==="AUD"&&(atcButton.innerHTML='<span class="sold-out">Coming Soon</span>'))}disableProductsByMarket(productIds,region){productIds.length===0||!(region===""?!window.location.href.includes("/en-ca/")&&!window.location.href.includes("/en-gb/"):window.location.href.includes(`/${region}/`))||productIds.forEach(productId=>
297{const atcBtnWrapper=this.shadowRoot.querySelector(`[data-product-id="${productId}"]`);if(atcBtnWrapper){const atcButton=atcBtnWrapper.querySelector("button.add-to-cart-btn");atcButton&&(atcButton.setAttribute("disabled",!0),this.currentTemplate==="product"?atcButton.innerHTML='<span class="sold-out">SOLD OUT</span>':atcButton.innerHTML='<span class="sold-out">SOLD<br>OUT</span>',this.price.currency_code==="AUD"&&(atcButton.innerHTML='<span class="sold-out">Coming Soon</span>'))}})}showModifiedPricingPerRegion(data){const regionCode=data.region_code,wrapper=this.parentElement,quickshopWrapper=wrapper.parentElement.querySelector(".quickshop__wrapper"),regionCodeSpan=wrapper.querySelector(".region-code");this.showModifiedPricing=!0,wrapper.classList.add("modified-pricing-enabled"),quickshopWrapper&&quickshopWrapper.classList.add("modified-pricing-enabled"),regionCodeSpan&&(regionCodeSpan.textContent=regionCode),this.classList.remove("hide-pricing-related-element")}async checkOutOfStock(){this.disableProductsByMarket(oosCanadaProductIds,"en-ca"),this.disableProductsByMarket(oosUkProductIds,"en-gb"),this.disableProductsByMarket(oosUsaProductIds,"");
297const storedGeoData=sessionStorage.getItem("geoDetails");if(storedGeoData){const data=JSON.parse(storedGeoData);this.checkRegionCodes(data)}this.addEventListeners()}checkRegionCodes(data){const regionCodeActions={no_CA:["AZ","CA","ID","MT","NV","OR","UT","WA"],no_TX:["KS","NM","AR","LA","OK","TX","CO","WY"],no_IL:["ND","SD","NE","IL","WI","MN","IA","MO","IN","AK","HI","PR"],no_OH:["WV","OH","MI","KY","VA"],no_PA:["ME","NH","VT","MA","RI","CT","NJ","DE","MD","NY","PA","DC"],no_DOTH:["AL","MS","SC","NC","TN","FL","GA"]},{country_code:country,region_code:regionCode}=data;if(this.oosStates&&this.oosStates.length>0&&this.oosStates[0]!=="")if(country==="US"){for(const[key,regions]of Object.entries(regionCodeActions))if(this.oosStates.includes(key))if(regions.includes(regionCode)){this.disableAtc();return}else this.enableAtc();this.oosStates.includes("no_US")&&this.disableAtc()}else country==="CA"&&this.oosStates.includes("no_CAN")?this.disableAtc():country==="GB"&&this.oosStates.includes("no_UK")&&this.disableAtc()}disableAtcByRegionCode(regionCode,containerSelector=`product-form[data-product-id="${this.productId}"]`){const container=document.querySelector(containerSelector);if(!container){console.warn(`Container element '${containerSelector}' not found.`);return}const atcButton=container.querySelector("button.custom-atc"),selectElement=container.querySelector("select");atcButton?(atcButton.setAttribute("disabled",!0),atcButton.innerHTML="SOLD OUT",this.price.currency_code==="AUD"&&(atcButton.innerHTML='<span class="sold-out">Coming Soon</span>')):console.warn("ATC button not found in the container."),selectElement?selectElement.setAttribute("disabled",!0):console.warn("Select element not found in the container.")}disconnectedCallback(){document.removeEventListener("click",this.boundHandleOutsideClick)}}customElements.define("bartesian-pricing-ui",BartesianPricingUI);
298//# sourceMappingURL=/cdn/shop/t/772/assets/bartesian-pricing-ui.js.map?v=1669791442433410151788878038%3Fv%3D1790242253

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.