{"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":""}