PageSourceSearch

https://gaala.com/cdn/shop/t/168/assets/made-to-order.js?v=140834949469631994841790187917

js gaala.com collected 2026-09-26 04:36:37 UTC 3,297 bytes, 2 lines download raw bytes

1(()=>{"use strict";const PRODUCT_SELECTOR=".thb-product-detail.product",INVENTORY_SELECTOR='[id^="ProductInventoryData-"]',AVAILABILITY_SELECTOR='fieldset[data-handle="availability"]',IN_STOCK="In stock",MADE_TO_ORDER="Made-to-order";function getProductRoot(){return document.querySelector(PRODUCT_SELECTOR)}function getVariants(){const element=document.querySelector(INVENTORY_SELECTOR);if(!element)return console.error("Availability: inventory JSON not found"),[];try{return JSON.parse(element.textContent)}catch(error){return console.error("Availability: invalid inventory JSON",error),[]}}function getSelectedValue(root,optionIndex){const fieldset=root.querySelector(`fieldset[data-index="option${optionIndex}"]`);if(!fieldset)return"";const radio=fieldset.querySelector('input[type="radio"]:checked');return radio?radio.value:fieldset.querySelector("select")?.value||""}function getControl(fieldset,value){const input=[...fieldset.querySelectorAll('input[type="radio"]')].find(item=>item.value===value);return{input,label:input?fieldset.querySelector(`label[for="${input.id}"]`):null}}function show(control){control.input?.style.removeProperty("display"),control.label?.style.removeProperty("display")}function hide(control){control.input?.style.setProperty("display","none","important"),control.label?.style.setProperty("display","none","important")}function triggerThemeVariantUpdate(input){input.dispatchEvent(new Event("change",{bubbles:!0}))}function updateAvailability(){const root=getProductRoot();if(!root)return;const availability=root.querySelector(AVAILABILITY_SELECTOR);if(!availability)return;const option1=getSelectedValue(root,1),option2=getSelectedValue(root,2),inStockExists=!!getVariants().find(variant=>variant.option1===option1&&variant.option2===option2&&variant.option3===IN_STOCK&&Number(variant.inventory_quantity)>0),inStockControl=getControl(availability,IN_STOCK),madeToOrderControl=getControl(availability,MADE_TO_ORDER);!inStockControl.input||!madeToOrderControl.input||(inStockExists?(inStockControl.input.disabled=!1,inStockControl.input.classList.remove("is-disabled"),madeToOrderControl.input.disabled=!0,madeToOrderControl.input.classList.add("is-disabled"),show(inStockControl),hide(madeToOrderControl),inStockControl.input.checked||(inStockControl.input.checked=!0,triggerThemeVariantUpdate(inStockControl.input))):(inStockControl.input.disabled=!0,inStockControl.input.classList.add("is-disabled"),madeToOrderControl.input.disabled=!1,madeToOrderControl.input.classList.remove("is-disabled"),hide(inStockControl),show(madeToOrderControl),madeToOrderControl.input.checked||(madeToOrderControl.input.checked=!0,triggerThemeVariantUpdate(madeToOrderControl.input))))}function init(){const root=getProductRoot();if(!root)return;let timer;function scheduleUpdate(){clearTimeout(timer),timer=window.setTimeout(updateAvailability,200)}root.addEventListener("change",event=>{const optionFieldset=event.target.closest("fieldset[data-index]");optionFieldset&&optionFieldset.dataset.index!=="option3"&&scheduleUpdate()}),window.setTimeout(updateAvailability,300)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",init,{once:!0}):init()})();
2//# sourceMappingURL=/cdn/shop/t/168/assets/made-to-order.js.map?v=140834949469631994841790187917

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.