{"version":3,"file":"shared.quantityInput.min.js","names":["m","$","bindQuantityInput","input","subtractBtn","increaseBtn","onChange","availableStock","parseInt","dataset","isNaN","initialQuantity","value","maxQuantity","Math","min","disabled","max","addEventListener","e","newValue","target","currentAmount","setValue","trigger","window","ooooby","jQuery"],"sources":["shared.quantityInput.js"],"mappings":"CAAC,SAAUA,EAAGC,GACZD,EAAEE,kBAAoB,CACdC,EACAC,EACAC,EACAC,EAAW,QAEX,IAAIC,EAAiBC,SAASL,EAAMM,QAAQF,gBACxCG,MAAMH,KACNA,EAAiB,KAGrB,MAAMI,EAAkBH,SAASL,EAAMS,OACvC,IAAIC,EAAcC,KAAKC,IAAIR,EAAgB,KAE3CH,EAAYY,SAA+B,IAApBL,EACvBN,EAAYW,SAAWL,GAAmBE,EAC1CV,EAAMc,IAAMJ,EACZV,EAAMY,IAAM,EACQ,IAAhBF,IACFV,EAAMa,UAAW,GAGnBb,EAAMe,iBAAiB,QAASC,IAC9B,IAAIC,EAAWZ,SAASW,EAAEE,OAAOT,OACjCQ,EAAWV,MAAMU,GAAY,EAAIA,EACjCA,EAAWN,KAAKC,IAAID,KAAKG,IAAIG,EAAU,GAAIP,GAE3CR,EAAYW,SAAWI,GAAYP,EACnCT,EAAYY,SAAwB,IAAbI,EACvBD,EAAEE,OAAOT,MAAQQ,EACjBd,GAAYA,EAASc,EAAS,IAGhCf,EAAYa,iBAAiB,SAAS,KACpC,MAAMI,EAAgBd,SAASL,EAAMS,OACrCW,EAASD,EAAgB,EAAE,IAG7BlB,EAAYc,iBAAiB,SAAS,KACpC,MAAMI,EAAgBd,SAASL,EAAMS,OACrCW,EAASD,EAAgB,EAAE,IAG7B,MAAMC,EAAYH,IAChBA,EAAWN,KAAKC,IAAID,KAAKG,IAAIG,EAAU,GAAIP,GAE3CR,EAAYW,SAAWI,GAAYP,EACnCT,EAAYY,SAAwB,IAAbI,EACvBjB,EAAMS,MAAQQ,EACdd,GAAYA,EAASc,GACrBnB,EAAEE,GAAOqB,QAAQ,SAAS,EAG5B,MAAO,CAAED,WAAS,CAE5B,CAxDA,CAwDEE,OAAOC,OAASD,OAAOC,QAAU,CAAC,EAAGC","ignoreList":[],"sourcesContent":["(function (m, $) {\n m.bindQuantityInput = (\n input,\n subtractBtn,\n increaseBtn,\n onChange = null\n ) => {\n let availableStock = parseInt(input.dataset.availableStock);\n if (isNaN(availableStock)) {\n availableStock = 100;\n }\n\n const initialQuantity = parseInt(input.value);\n let maxQuantity = Math.min(availableStock, 100);\n \n subtractBtn.disabled = initialQuantity === 0;\n increaseBtn.disabled = initialQuantity >= maxQuantity;\n input.max = maxQuantity;\n input.min = 0;\n if (maxQuantity === 0) {\n input.disabled = true;\n }\n \n input.addEventListener(\"blur\", (e) => {\n let newValue = parseInt(e.target.value);\n newValue = isNaN(newValue) ? 0 : newValue;\n newValue = Math.min(Math.max(newValue, 0), maxQuantity);\n\n increaseBtn.disabled = newValue >= maxQuantity;\n subtractBtn.disabled = newValue === 0;\n e.target.value = newValue;\n onChange && onChange(newValue);\n })\n \n increaseBtn.addEventListener(\"click\", () => {\n const currentAmount = parseInt(input.value);\n setValue(currentAmount + 1);\n });\n \n subtractBtn.addEventListener(\"click\", () => {\n const currentAmount = parseInt(input.value);\n setValue(currentAmount - 1);\n });\n \n const setValue = (newValue) => {\n newValue = Math.min(Math.max(newValue, 0), maxQuantity);\n\n increaseBtn.disabled = newValue >= maxQuantity;\n subtractBtn.disabled = newValue === 0;\n input.value = newValue;\n onChange && onChange(newValue);\n $(input).trigger('change');\n }\n\n return { setValue }\n };\n}(window.ooooby = window.ooooby || {}, jQuery));"]}