{"version":3,"file":"2972.a2757081.js","mappings":"4lBAIe,MAAAA,UAAcC,EAAAA,GAiBzBC,UAAAA,IACIC,EAAAA,EAAAA,IAAYC,KAAM,CAACC,KAAM,KAC7B,CAEAC,eAAAA,GACIF,KAAKG,gBAAgBC,UAAUC,OAAO,UACtCL,KAAKM,oBAAoBC,UAAY,kBACzC,CAEAC,gBAAAA,GACIR,KAAKG,gBAAgBC,UAAUK,IAAI,UACnCT,KAAKM,oBAAoBC,UAAY,oBACzC,CAEAG,UAAAA,CAAWC,GACW,KAAdA,EAAEC,SACFZ,KAAKa,mBAEb,CAEA,uBAAMA,GACF,MAAMC,EAAiBd,KAAKG,gBAAgBY,cAAc,SAC1D,GAA6B,KAAzBD,EAAeE,MAEf,YADAC,OAAOC,iBAAiB,mDAI5B,MAAMC,EAAW,IAAIC,SACrBD,EAASE,OAAO,OAAQP,EAAeE,aAEjCM,MAAMtB,KAAKuB,kBAAmB,CAChCC,OAAQ,OACRC,KAAMN,IAELO,MAAMC,IACH,GAAwB,MAApBA,EAASC,OACT,MAAM,IAAIC,MAGd,OAAOF,EAASG,MAAM,IAEzBJ,MAAMK,IACCC,OAAOC,KAAKF,GAAWG,OAAS,GAChClC,KAAK+B,UAAYA,EACjB/B,KAAKmC,oBAAoBC,UAAYpC,KAAK+B,UAAUM,KAAOrC,KAAK+B,UAAUM,KAAO,GACjFrC,KAAKsC,oBAAoBF,UAAYpC,KAAK+B,UAAUQ,YAAcvC,KAAK+B,UAAUQ,YAAc,GAC/FvC,KAAKwC,kBAAkBxB,MAAQhB,KAAK+B,UAAUU,GAC9CzC,KAAKwC,kBAAkBE,UAAW,EAClCzB,OAAO0B,mBAAmB,sBAC1B3C,KAAK4C,gBAAgBxC,UAAUK,IAAI,UACnCT,KAAK6C,qBAAqBzC,UAAUC,OAAO,UAC3CL,KAAKQ,oBAELS,OAAOC,iBAAiB,+CAC5B,IAEH4B,OAAM,KAC2B,iBAAnB9C,KAAK+B,UACZd,OAAOC,iBACH,8EAGJD,OAAOC,iBAAiB,uBAC5B,GAEZ,CAEA6B,eAAAA,GACI/C,KAAK4C,gBAAgBxC,UAAUC,OAAO,UACtCL,KAAK6C,qBAAqBzC,UAAUK,IAAI,UACxCT,KAAKwC,kBAAkBE,UAAW,EAClC1C,KAAK+B,eAAY,CACrB,EACHiB,EAAApD,EAAA,UAzFoB,CACb,YACA,iBACA,gBACA,gBACA,cACA,YACA,kBACHoD,EAAApD,EAAA,SAEe,CACZqD,aAAcC,SACjBF,EAAApD,EAAA,YAEkB,CAAC,qB","sources":["webpack://@bang/www/./assets/controllers/upgrade_controller.js"],"sourcesContent":["import {Controller} from '@hotwired/stimulus';\nimport {useDebounce} from 'stimulus-use';\n\n/* stimulusFetch: 'lazy' */\nexport default class extends Controller {\n static targets = [\n 'promoCode',\n 'promoCodeLabel',\n 'promoCodeName',\n 'promoCodeDesc',\n 'promoCodeId',\n 'promoForm',\n 'promoCodeText',\n ];\n\n static values = {\n promoCodeUrl: String,\n };\n\n static debounces = ['onPromoCodeSubmit'];\n\n initialize() {\n useDebounce(this, {wait: 500});\n }\n\n togglePromoCode() {\n this.promoCodeTarget.classList.remove('hidden');\n this.promoCodeTextTarget.innerText = 'Enter Promo Code';\n }\n\n onClosePromoCode() {\n this.promoCodeTarget.classList.add('hidden');\n this.promoCodeTextTarget.innerText = 'Have a Promo Code?';\n }\n\n promoKeyup(e) {\n if (e.keyCode === 13) {\n this.onPromoCodeSubmit();\n }\n }\n\n async onPromoCodeSubmit() {\n const promoCodeInput = this.promoCodeTarget.querySelector('input');\n if (promoCodeInput.value === '') {\n window.showErrorMessage('You need to enter promo code before applying it');\n return;\n }\n\n const formData = new FormData();\n formData.append('code', promoCodeInput.value);\n\n await fetch(this.promoCodeUrlValue, {\n method: 'POST',\n body: formData,\n })\n .then((response) => {\n if (response.status !== 200) {\n throw new Error();\n }\n\n return response.json();\n })\n .then((promotion) => {\n if (Object.keys(promotion).length > 0) {\n this.promotion = promotion;\n this.promoCodeNameTarget.innerHTML = this.promotion.name ? this.promotion.name : '';\n this.promoCodeDescTarget.innerHTML = this.promotion.description ? this.promotion.description : '';\n this.promoCodeIdTarget.value = this.promotion.id;\n this.promoCodeIdTarget.disabled = false;\n window.showSuccessMessage('Promo Code applied');\n this.promoFormTarget.classList.add('hidden');\n this.promoCodeLabelTarget.classList.remove('hidden');\n this.onClosePromoCode();\n } else {\n window.showErrorMessage('There was an error while applying promo code');\n }\n })\n .catch(() => {\n if (typeof this.promotion === 'object') {\n window.showErrorMessage(\n 'There was an error applying new promo code. Old promo code is still active'\n );\n } else {\n window.showErrorMessage('Promo Code not found');\n }\n });\n }\n\n removePromoCode() {\n this.promoFormTarget.classList.remove('hidden');\n this.promoCodeLabelTarget.classList.add('hidden');\n this.promoCodeIdTarget.disabled = true;\n this.promotion = void 0;\n }\n}\n"],"names":["_class","Controller","initialize","useDebounce","this","wait","togglePromoCode","promoCodeTarget","classList","remove","promoCodeTextTarget","innerText","onClosePromoCode","add","promoKeyup","e","keyCode","onPromoCodeSubmit","promoCodeInput","querySelector","value","window","showErrorMessage","formData","FormData","append","fetch","promoCodeUrlValue","method","body","then","response","status","Error","json","promotion","Object","keys","length","promoCodeNameTarget","innerHTML","name","promoCodeDescTarget","description","promoCodeIdTarget","id","disabled","showSuccessMessage","promoFormTarget","promoCodeLabelTarget","catch","removePromoCode","_defineProperty","promoCodeUrl","String"],"sourceRoot":""}