{"version":3,"file":"make-donation.02e377167dc916d5ea26.js","mappings":"i8DAMA,IAEMA,EAAqB,SAAAC,GAAA,SAAAD,IAAA,IAAAE,G,4FAAAC,CAAA,KAAAH,GAAA,QAAAI,EAAAC,UAAAC,OAAAC,EAAA,IAAAC,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAsFtB,OAtFsBC,EAAAR,EAAAS,EAAA,KAAAX,EAAA,GAAAY,OAAAL,IAAA,kBAwDN,SAACM,GAGTX,EAAKY,KAAKC,kBAAkBC,SAC7Bd,EAAKe,uBAAuBJ,EAAEK,OAEtC,IAACR,EAAAR,EAAA,sBAWoB,WAGjBA,EAAKY,KAAKC,kBAAkBC,SAAU,CAC1C,IAACN,EAAAR,EAAA,sBAEoB,WACDA,EAAKY,KAAKK,iBAAiBC,MAAMC,MAAM,0BAEnDnB,EAAKoB,UAAYpB,EAAKY,KAAKK,iBAAiBC,MAE5ClB,EAAKY,KAAKK,iBAAiBC,MAAQlB,EAAKoB,SAEhD,IAACpB,CAAA,Q,qRAAAqB,CAAAvB,EAAAC,G,EAAAD,E,EAcA,EAAAwB,IAAA,eAAAJ,MAnGD,WACI,MAAO,eACX,K,EAmFC,EAAAI,IAAA,SAAAJ,MAhFD,WAAS,IAAAK,EAAA,KACLC,KAAKJ,UAAY,GACjBI,KAAKC,aAAe,IAAIC,EAAAA,EAASF,KAAKG,QAAS,CAC3CC,cAAeJ,KAAKG,QAAQE,cAAc,yBAC1CC,mBAAoB,SAACC,GACjBR,EAAKS,gBACDD,EAASE,KAAKC,SAAWH,EAASE,KAAKE,cACvCC,OAAOC,SAASC,KAAOP,EAASE,KAAKE,YAE7C,EACAI,eAAgB,SAACC,GACbC,QAAQD,MAAMA,EAClB,EACAE,QArBS,OAsBTC,cAAeC,EAAAA,EACfC,OAAO,EACPC,QAAS,CACLC,WAAY,aACZC,aAAc,WACdC,cAAe,iEACfC,cAAe,iBAInB1B,KAAKZ,KAAKuC,eAAiB7C,MAAM8C,QAAQ5B,KAAKZ,KAAKuC,gBACnD3B,KAAKZ,KAAKuC,aAAe,CAAC3B,KAAKZ,KAAKuC,eAGpC3B,KAAKZ,KAAKuC,cACV3B,KAAKZ,KAAKuC,aAAaE,SAAQ,SAACC,GAC5B/B,EAAKgC,YAAYD,EAAa,SAAU/B,EAAKiC,eACjD,IAKAhC,KAAKZ,KAAKC,oBACVW,KAAK+B,YAAY/B,KAAKZ,KAAKC,kBAAmB,SAAUW,KAAKgC,gBACrChC,KAAKZ,KAAKC,kBAAkB4C,MAGpDjC,KAAKZ,KAAKK,mBACVO,KAAK+B,YAAY/B,KAAKZ,KAAKK,iBAAkB,QAASO,KAAKkC,oBAC3DlC,KAAK+B,YAAY/B,KAAKZ,KAAKK,iBAAkB,QAASO,KAAKmC,qBAG/DnC,KAAK+B,YAAY/B,KAAKG,QAAS,SAAUH,KAAKoC,aAElD,GAAC,CAAAtC,IAAA,yBAAAJ,MAUD,SAAuB2C,GACnB,IAAMC,EAASC,OAAOF,EAAmBG,QAAQF,QAE7CA,IACAtC,KAAKZ,KAAKK,iBAAiBC,MAAQ4C,EACnCtC,KAAKZ,KAAKK,iBAAiBgD,cAAc,IAAIC,MAAM,UAE3D,GAAC,CAAA5C,IAAA,gBAAAJ,MAiBD,WACI,IAAMiD,EAAOC,EAAAA,EAAIC,UAAU,QACrBnD,EAAQM,KAAK8C,2BACnBC,EAAAA,GAAWC,UAAUhD,KAAKiD,QAAQC,KAAMxD,EAAO,YAAFR,OAAcyD,GAC/D,GAAC,CAAA7C,IAAA,2BAAAJ,MAED,WACI,YAAmCyD,IAA/BnD,KAAKZ,KAAKK,iBACHO,KAAKZ,KAAKK,iBAAiBC,MAG/BM,KAAKiD,QAAQvD,KACxB,M,yFAjGC,CAHsB,CAAS0D,EAAAA,IAuGpC,IC3GAC,EAAAA,GAAUC,SAAShF,E","sources":["webpack://@deleteagency/boilerplate/./Content/assets/shared/donation-form/js/donation-form.component.js","webpack://@deleteagency/boilerplate/./Content/assets/shared/donation-form/index.js"],"sourcesContent":["import { baseApi } from 'project/api';\r\nimport { BaseComponent } from 'project/general';\r\nimport { BaseForm } from 'shared/base-form';\r\nimport { gtmService } from 'project/services';\r\nimport { app } from 'general';\r\n\r\nconst ENCTYPE_JSON = 'json';\r\n\r\nclass DonationFormComponent extends BaseComponent {\r\n static getNamespace() {\r\n return 'donation-form';\r\n }\r\n\r\n\r\n onInit() {\r\n this.lastValue = '';\r\n this.formInstance = new BaseForm(this.element, {\r\n submitElement: this.element.querySelector('button[type=\"submit\"]'),\r\n onSuccessfulSubmit: (response) => {\r\n this.trackDonation();\r\n if (response.data.success && response.data.redirectUrl) {\r\n window.location.href = response.data.redirectUrl;\r\n }\r\n },\r\n onFailedSubmit: (error) => {\r\n console.error(error);\r\n },\r\n enctype: ENCTYPE_JSON,\r\n axiosInstance: baseApi,\r\n async: true,\r\n parsley: {\r\n errorClass: 'is-invalid',\r\n successClass: 'is-valid',\r\n errorsWrapper: '
',\r\n errorTemplate: '
',\r\n }\r\n });\r\n\r\n if (this.refs.fixedOptions && !Array.isArray(this.refs.fixedOptions)) {\r\n this.refs.fixedOptions = [this.refs.fixedOptions];\r\n }\r\n\r\n if (this.refs.fixedOptions) {\r\n this.refs.fixedOptions.forEach((fixedOption) => {\r\n this.addListener(fixedOption, 'change', this.onChangeOption);\r\n });\r\n }\r\n\r\n let otherAmountOptionName = '';\r\n\r\n if (this.refs.otherAmountOption) {\r\n this.addListener(this.refs.otherAmountOption, 'change', this.onChangeOption);\r\n otherAmountOptionName = this.refs.otherAmountOption.name;\r\n }\r\n\r\n if (this.refs.otherAmountInput) {\r\n this.addListener(this.refs.otherAmountInput, 'input', this.onInputOtherAmount);\r\n this.addListener(this.refs.otherAmountInput, 'focus', this.onFocusOtherAmount);\r\n }\r\n\r\n this.addListener(this.element, 'submit', this.onSubmitRoot);\r\n\r\n }\r\n\r\n onChangeOption = (e) => {\r\n // if 'other amount' hidden option unchecked (due to checking\r\n // one of the fixed options) populate 'other amount' input with pre-defined amount\r\n if (!this.refs.otherAmountOption.checked) {\r\n this.prepopulateOtherAmount(e.target);\r\n }\r\n };\r\n\r\n prepopulateOtherAmount(sourceAmountOption) {\r\n const amount = Number(sourceAmountOption.dataset.amount);\r\n\r\n if (amount) {\r\n this.refs.otherAmountInput.value = amount;\r\n this.refs.otherAmountInput.dispatchEvent(new Event('input'));\r\n }\r\n }\r\n\r\n onFocusOtherAmount = () => {\r\n // if 'other amount' input is focused it means user\r\n // selected 'other amount' option\r\n this.refs.otherAmountOption.checked = true;\r\n };\r\n\r\n onInputOtherAmount = () => {\r\n const matched = this.refs.otherAmountInput.value.match(/^(\\d*?(?:\\.\\d{0,2})?)$/);\r\n if (matched) {\r\n this.lastValue = this.refs.otherAmountInput.value;\r\n } else {\r\n this.refs.otherAmountInput.value = this.lastValue;\r\n }\r\n };\r\n\r\n trackDonation() {\r\n const page = app.getConfig('page');\r\n const value = this.getTrackingDonationValue();\r\n gtmService.pushEvent(this.options.type, value, `Donate > ${page}`);\r\n }\r\n\r\n getTrackingDonationValue() {\r\n if (this.refs.otherAmountInput !== undefined) {\r\n return this.refs.otherAmountInput.value;\r\n }\r\n\r\n return this.options.value;\r\n }\r\n}\r\n\r\nexport default DonationFormComponent;\r\n","import './scss/index.scss';\r\nimport { dcFactory } from 'dc';\r\nimport DonationFormComponent from './js/donation-form.component.js';\r\n\r\ndcFactory.register(DonationFormComponent);\r\n"],"names":["DonationFormComponent","_BaseComponent","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_defineProperty","_callSuper","concat","e","refs","otherAmountOption","checked","prepopulateOtherAmount","target","otherAmountInput","value","match","lastValue","_inherits","key","_this2","this","formInstance","BaseForm","element","submitElement","querySelector","onSuccessfulSubmit","response","trackDonation","data","success","redirectUrl","window","location","href","onFailedSubmit","error","console","enctype","axiosInstance","baseApi","async","parsley","errorClass","successClass","errorsWrapper","errorTemplate","fixedOptions","isArray","forEach","fixedOption","addListener","onChangeOption","name","onInputOtherAmount","onFocusOtherAmount","onSubmitRoot","sourceAmountOption","amount","Number","dataset","dispatchEvent","Event","page","app","getConfig","getTrackingDonationValue","gtmService","pushEvent","options","type","undefined","BaseComponent","dcFactory","register"],"sourceRoot":""}