1export class QuantityAdjuster extends window.BAO.CustomElement(){static get observedAttributes(){return["value","disabled","min","max"]}constructor(){super(),this.setup()}connectedCallback(){super.connectedCallback(),this.hasAttribute("value")||this.setAttribute("value",this.min.toString()),this.hasAttribute("min")||this.setAttribute("value",this.min.toString()),this._upgradeProperty("value"),this._upgradeProperty("disabled")}attributeChangedCallback(name,oldValue,newValue){const isANumber=isNaN(parseInt(newValue,10))===!1;switch(name){case"value":{if(!isANumber||parseInt(oldValue,10)===parseInt(newValue,10))break;this.handleValueChangeSideEffects(parseInt(newValue,10));break}case"min":{if(!isANumber)break;this.value<parseInt(newValue,10)&&(this.value=parseInt(newValue,10));break}case"max":{if(!isANumber)break;this.value>parseInt(newValue,10)&&(this.value=parseInt(newValue,10));break}case"disabled":{const hasValue=newValue!=null;this.minusButton.disabled=hasValue,this.plusButton.disabled=hasValue,this.input.disabled=hasValue}}}setup(){this.input.setAttribute("value",this.value.toString()),this.input.value=this.value.toString(),this.input.name=this.name,this.value===1&&(this.minusButton.disabled=!0)}setupListeners(){super.setupListeners(),this.onMinusClick=this.onMinusClick.bind(this),this.onPlusClick=this.onPlusClick.bind(this),this.onInputChange=this.onInputChange.bind(this),this.onInputInput=this.onInputInput.bind(this),this.listeners.add(this.minusButton,"click",this.onMinusClick),this.listeners.add(this.plusButton,"click",this.onPlusClick),this.listeners.add(this.input,"change",this.onInputChange),this.listeners.add(this.input,"input",this.onInputInput)}onMinusClick(){this.value!==1&&(this.value-=1)}onPlusClick(){this.value+=1}onInputChange(e){isNaN(e.target.valueAsNumber)===!1&&(this.value=e.target.valueAsNumber)}onInputInput(e){isNaN(e.target.valueAsNumber)===!1&&(this.value=e.target.valueAsNumber)}handleValueChangeSideEffects(val){const oldVal=this.value;oldVal!==val&&(this.input.value=val.toString(),this.minusButton.disabled=val===this.min,this.plusButton.disabled=this.max!=null&&val===this.max,this.dispatchEvent(new CustomEvent(window.BAO.EVENTS.QUANTITY_ADJUSTER.CHANGE,{detail:{oldValue:oldVal,value:val},bubbles:!0})))}set value(val){val<this.min&&(val=this.min),this.handleValueChangeSideEffects(val),this.setAttribute("value",val.toString())}get value(){return parseInt(this.getAttribute("value"),10)}get min(){return parseInt(this.getAttribute("min"),10)||1}get max(){return parseInt(this.getAttribute("max"),10)||null}get name(){return this.getAttribute("name")||"quantity"}get minusButton(){return this.els.minus.element}get plusButton(){return this.els.plus.element}get input(){return this.els.input.element}}customElements.get("quantity-adjuster")||customElements.define("quantity-adjuster",QuantityAdjuster); 2//# sourceMappingURL=/cdn/shop/t/914/assets/quantity-adjuster.js.map?v=155642904276754785981787650544
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.