{"version":3,"file":"list-item-CuuzntD8.js","sources":["../../../app/javascript/entrypoints/js/minicart/list-item.js"],"sourcesContent":["export default class ListItem {\n constructor(listItem) {\n this.listItem = listItem;\n this.decreaseButton = this.listItem.querySelector(\n \"[data-js='minicart-list-item__decrease']\",\n );\n this.increaseButton = this.listItem.querySelector(\n \"[data-js='minicart-list-item__increase']\",\n );\n this.quantity = this.listItem.querySelector(\n \"[data-js='minicart-list-item__quantity']\",\n );\n this.removeButton = this.listItem.querySelector(\n \"[data-js='minicart-list-item__remove']\",\n );\n this.price = this.listItem.querySelector(\n \"[data-js='minicart-list-item__total']\",\n ).textContent;\n this.index = this.listItem.dataset.index;\n this.is_updating = false;\n }\n\n init() {\n console.log(this)\n this.decreaseButton.addEventListener(\"click\", this.decrease.bind(this));\n this.increaseButton.addEventListener(\"click\", this.increase.bind(this));\n this.removeButton.addEventListener(\"click\", this.removeEl.bind(this));\n }\n\n decrease(e) {\n e.preventDefault();\n if (this.is_updating) {\n return false\n }\n if (this.quantity.value > 1) {\n // console.log(\"DECREASE\")\n this.removeItem(e.target, this.index);\n this.quantity.value = parseInt(this.quantity.value, 10) - 1;\n } else {\n this.removeEl(e);\n }\n }\n\n increase(e) {\n e.preventDefault();\n if (this.is_updating) {\n return false\n }\n this.quantity.value = parseInt(this.quantity.value, 10) + 1;\n this.removeItem(e.target, this.index);\n }\n\n removeEl(e) {\n e.preventDefault();\n this.removeItem(e.target, this.index, true);\n }\n\n removeItem(item, i, remove = false) {\n console.log(item)\n let obj = {\n index: i,\n };\n console.log(item.dataset.url)\n this.postData(item.dataset.url, obj).then((data) => {\n this.count = data.item_count;\n\n this.is_updating = false\n if (remove) {\n //this.listItem.remove();\n }\n if (this.count == 0) {\n window.dispatchEvent(new CustomEvent(\"cart-empty\"));\n return false\n } else {\n\n window.dispatchEvent(new CustomEvent(\"cart-update\"));\n }\n });\n }\n async postData(url = \"\", data = {}) {\n this.is_updating = true\n const response = await fetch(url, {\n method: \"POST\",\n mode: \"cors\",\n cache: \"no-cache\",\n credentials: \"same-origin\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CSRF-Token\": document.querySelector('meta[name=\"csrf-token\"]')\n .content,\n },\n redirect: \"follow\",\n referrerPolicy: \"no-referrer\",\n body: JSON.stringify(data),\n });\n return response.json();\n }\n}\n"],"names":["ListItem","listItem","e","item","i","remove","obj","data","url"],"mappings":"AAAe,MAAMA,CAAS,CAC5B,YAAYC,EAAU,CACpB,KAAK,SAAWA,EAChB,KAAK,eAAiB,KAAK,SAAS,cAClC,0CACN,EACI,KAAK,eAAiB,KAAK,SAAS,cAClC,0CACN,EACI,KAAK,SAAW,KAAK,SAAS,cAC5B,0CACN,EACI,KAAK,aAAe,KAAK,SAAS,cAChC,wCACN,EACI,KAAK,MAAQ,KAAK,SAAS,cACzB,uCACD,EAAC,YACF,KAAK,MAAQ,KAAK,SAAS,QAAQ,MACnC,KAAK,YAAc,EACpB,CAED,MAAO,CACL,QAAQ,IAAI,IAAI,EAChB,KAAK,eAAe,iBAAiB,QAAS,KAAK,SAAS,KAAK,IAAI,CAAC,EACtE,KAAK,eAAe,iBAAiB,QAAS,KAAK,SAAS,KAAK,IAAI,CAAC,EACtE,KAAK,aAAa,iBAAiB,QAAS,KAAK,SAAS,KAAK,IAAI,CAAC,CACrE,CAED,SAASC,EAAG,CAEV,GADAA,EAAE,eAAc,EACZ,KAAK,YACP,MAAO,GAEL,KAAK,SAAS,MAAQ,GAExB,KAAK,WAAWA,EAAE,OAAQ,KAAK,KAAK,EACpC,KAAK,SAAS,MAAQ,SAAS,KAAK,SAAS,MAAO,EAAE,EAAI,GAE1D,KAAK,SAASA,CAAC,CAElB,CAED,SAASA,EAAG,CAEV,GADAA,EAAE,eAAc,EACZ,KAAK,YACP,MAAO,GAET,KAAK,SAAS,MAAQ,SAAS,KAAK,SAAS,MAAO,EAAE,EAAI,EAC1D,KAAK,WAAWA,EAAE,OAAQ,KAAK,KAAK,CACrC,CAED,SAASA,EAAG,CACVA,EAAE,eAAc,EAChB,KAAK,WAAWA,EAAE,OAAQ,KAAK,MAAO,EAAI,CAC3C,CAED,WAAWC,EAAMC,EAAGC,EAAS,GAAO,CAClC,QAAQ,IAAIF,CAAI,EAChB,IAAIG,EAAM,CACR,MAAOF,CACb,EACI,QAAQ,IAAID,EAAK,QAAQ,GAAG,EAC5B,KAAK,SAASA,EAAK,QAAQ,IAAKG,CAAG,EAAE,KAAMC,GAAS,CAOlD,GANA,KAAK,MAAQA,EAAK,WAElB,KAAK,YAAc,GAIf,KAAK,OAAS,EAChB,cAAO,cAAc,IAAI,YAAY,YAAY,CAAC,EAC3C,GAGP,OAAO,cAAc,IAAI,YAAY,aAAa,CAAC,CAE3D,CAAK,CACF,CACD,MAAM,SAASC,EAAM,GAAID,EAAO,CAAA,EAAI,CAClC,YAAK,YAAc,IACF,MAAM,MAAMC,EAAK,CAChC,OAAQ,OACR,KAAM,OACN,MAAO,WACP,YAAa,cACb,QAAS,CACP,eAAgB,mBAChB,eAAgB,SAAS,cAAc,yBAAyB,EAC7D,OACJ,EACD,SAAU,SACV,eAAgB,cAChB,KAAM,KAAK,UAAUD,CAAI,CAC/B,CAAK,GACe,MACjB,CACH"}