PageSourceSearch

https://xavierderome.com/cdn/shop/t/66/assets/quantity-selector.js?v=17195247431242784881788266116

js xavierderome.com collected 2026-09-27 03:48:02 UTC 2,358 bytes, 2 lines download raw bytes

1class QuantitySelector extends HTMLElement{constructor(){super(),this.quantityInput=null,this.minusButton=null,this.plusButton=null,this.previousValue=null}connectedCallback(){this.quantityInput=this.querySelector('input[type="number"]'),this.minusButton=this.querySelector('button[name="minus"]'),this.plusButton=this.querySelector('button[name="plus"]'),this.previousValue=this.quantityInput.value,this.minusButton.addEventListener("click",this.decreaseQuantity.bind(this)),this.plusButton.addEventListener("click",this.increaseQuantity.bind(this)),this.quantityInput.addEventListener("change",this.#validateQuantity.bind(this)),this.#updateButtonStates()}disconnectedCallback(){this.minusButton.removeEventListener("click",this.decreaseQuantity.bind(this)),this.plusButton.removeEventListener("click",this.increaseQuantity.bind(this)),this.quantityInput.removeEventListener("change",this.#validateQuantity.bind(this))}increaseQuantity(event){event.preventDefault(),this.previousValue=this.quantityInput.value,this.quantityInput.stepUp(),this.#updateButtonStates(),this.quantityInput.dispatchEvent(new Event("change"))}decreaseQuantity(event){event.preventDefault(),this.previousValue=this.quantityInput.value,this.quantityInput.stepDown(),this.#updateButtonStates(),this.quantityInput.dispatchEvent(new Event("change"))}setQuantity(quantity){this.previousValue=this.quantityInput.value,this.quantityInput.value=quantity,this.#validateQuantity(),this.#updateButtonStates(),this.quantityInput.dispatchEvent(new Event("change"))}#validateQuantity(){const value=parseInt(this.quantityInput.value),min=parseInt(this.quantityInput.min)||1,max=parseInt(this.quantityInput.max)||1/0;if(value<min||value>max||isNaN(value)){this.quantityInput.value=this.previousValue,this.#updateButtonStates();return}this.previousValue=value,this.#updateButtonStates()}#updateButtonStates(){const currentValue=parseInt(this.quantityInput.value),min=parseInt(this.quantityInput.min)||1,max=parseInt(this.quantityInput.max)||1/0;currentValue<=min?this.minusButton.disabled=!0:this.minusButton.disabled=!1,currentValue>=max?this.plusButton.disabled=!0:this.plusButton.disabled=!1}}customElements.get("quantity-selector")||customElements.define("quantity-selector",QuantitySelector);
2//# sourceMappingURL=/cdn/shop/t/66/assets/quantity-selector.js.map?v=17195247431242784881788266116

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.