{ "version": 3, "sources": ["../../../Vettvangur.Frontend/src/scripts/components/wizard.ts"], "sourcesContent": ["import loader from './loader'\n\nconst wizard = {\n el: {\n triggers: document.querySelectorAll(`a[href='#profid'], .wizard__background, .wizard__close-button`),\n inputs: document.querySelectorAll('.wizard__modal input'),\n modal: document.querySelector('.wizard__modal'),\n progressItems: document.querySelectorAll('.wizard__progress-item'),\n stepButtons: document.querySelectorAll('.wizard__buttons [data-go-to-step]'),\n submitButton: document.querySelector(`.wizard__button[type='submit']`),\n subscriptionCheckbox: document.querySelector('#wizard-subscription-checkbox'),\n subscriptionInput: document.querySelector('#wizard-subscription'),\n wizard: document.querySelector('.wizard'),\n },\n\n init(): void {\n this.el.triggers.forEach((trigger) => {\n trigger.addEventListener('click', this.toggleWizard.bind(this))\n })\n\n this.el.stepButtons.forEach((stepButton) => {\n stepButton.addEventListener('click', () => {\n this.el.modal.dataset.currentStep = stepButton.dataset.goToStep\n this.handleProgress()\n })\n })\n\n this.handleProgress()\n this.handleStepButtons()\n this.handleSubscriptionCheckbox()\n\n this.el.modal.addEventListener('change', this.handleStepButtons.bind(this))\n this.el.modal.addEventListener('submit', this.submitWizard.bind(this))\n\n window.addEventListener('hashchange', this.toggleWizardOnHashChange.bind(this))\n this.toggleWizardOnHashChange(null)\n },\n\n closeOnEscPress(event): void {\n if (event.key.match('Escape') && this.el.wizard.classList.contains('wizard--active')) {\n this.toggleWizard(null)\n }\n },\n\n handleProgress(): void {\n this.el.progressItems.forEach((progressItem, index) => {\n if (Number.parseInt(this.el.modal.dataset.currentStep) > index + 1) {\n progressItem.classList.add('wizard__progress-item--active')\n } else {\n progressItem.classList.remove('wizard__progress-item--active')\n }\n })\n },\n\n handleStepButtons(): void {\n const currentStep = Number.parseInt(this.el.modal.dataset.currentStep)\n const inputs = this.el.modal.querySelectorAll(`.wizard__step[data-step='${currentStep}'] input`)\n const nextButton = this.el.modal.querySelector(`.wizard__step[data-step='${currentStep}'] .wizard__button--next`)\n\n if (inputs.length < 1 || currentStep === 6) {\n return\n }\n\n let checkedInputs = 0\n\n inputs.forEach((input: HTMLInputElement) => {\n if (input.checked) {\n checkedInputs++\n }\n })\n\n if (checkedInputs > 0) {\n nextButton.disabled = false\n } else {\n nextButton.disabled = true\n }\n },\n\n handleSubscriptionCheckbox(): void {\n this.el.subscriptionCheckbox.addEventListener('change', (event) => {\n if ((event.target as HTMLInputElement).checked) {\n this.el.subscriptionInput.setAttribute('required', '')\n } else {\n this.el.subscriptionInput.removeAttribute('required')\n }\n })\n },\n\n submitWizard(event): void {\n event.preventDefault()\n\n const formData = new FormData(this.el.modal)\n const concatenatedValues = []\n\n formData.forEach((value) => {\n concatenatedValues.push(value)\n })\n\n const resultString = concatenatedValues.join(';')\n document.cookie = `wizardData=${encodeURIComponent(resultString)};path=/;max-age=3600`\n\n this.el.submitButton.classList.add('button--loading')\n this.el.submitButton.disabled = true\n this.el.wizard.classList.add('wizard--submitted')\n\n this.el.inputs.forEach((input: HTMLInputElement) => {\n input.value = ''\n })\n\n setTimeout(() => {\n const anchor = document.createElement('a')\n\n anchor.href = this.el.modal.getAttribute('action')\n this.el.wizard.classList.remove('wizard--active')\n\n loader.redirect(event, anchor)\n }, 789)\n },\n\n toggleWizard(event): void {\n event && event.preventDefault()\n\n if (this.el.wizard.classList.contains('wizard--active')) {\n this.el.wizard.classList.remove('wizard--active')\n this.el.modal.dataset.currentStep = '1'\n window.removeEventListener('keydown', this.closeOnEscPress.bind(this))\n if (window.location.hash === '#profid') {\n history.replaceState(null, null, window.location.href.split('#')[0])\n }\n } else {\n this.el.wizard.classList.add('wizard--active')\n window.addEventListener('keydown', this.closeOnEscPress.bind(this))\n }\n },\n\n toggleWizardOnHashChange(event): void {\n event && event.preventDefault()\n\n if (window.location.hash === '#profid') {\n this.toggleWizard(null)\n }\n },\n}\n\nexport default wizard\n"], "mappings": "4IAEA,IAAMA,EAAS,CACb,GAAI,CACF,SAAU,SAAS,iBAA8B,+DAA+D,EAChH,OAAQ,SAAS,iBAAmC,sBAAsB,EAC1E,MAAO,SAAS,cAA+B,gBAAgB,EAC/D,cAAe,SAAS,iBAA8B,wBAAwB,EAC9E,YAAa,SAAS,iBAA8B,oCAAoC,EACxF,aAAc,SAAS,cAAiC,gCAAgC,EACxF,qBAAsB,SAAS,cAAgC,+BAA+B,EAC9F,kBAAmB,SAAS,cAAgC,sBAAsB,EAClF,OAAQ,SAAS,cAA2B,SAAS,CACvD,EAEA,MAAa,CACX,KAAK,GAAG,SAAS,QAASC,GAAY,CACpCA,EAAQ,iBAAiB,QAAS,KAAK,aAAa,KAAK,IAAI,CAAC,CAChE,CAAC,EAED,KAAK,GAAG,YAAY,QAASC,GAAe,CAC1CA,EAAW,iBAAiB,QAAS,IAAM,CACzC,KAAK,GAAG,MAAM,QAAQ,YAAcA,EAAW,QAAQ,SACvD,KAAK,eAAe,CACtB,CAAC,CACH,CAAC,EAED,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,EAEhC,KAAK,GAAG,MAAM,iBAAiB,SAAU,KAAK,kBAAkB,KAAK,IAAI,CAAC,EAC1E,KAAK,GAAG,MAAM,iBAAiB,SAAU,KAAK,aAAa,KAAK,IAAI,CAAC,EAErE,OAAO,iBAAiB,aAAc,KAAK,yBAAyB,KAAK,IAAI,CAAC,EAC9E,KAAK,yBAAyB,IAAI,CACpC,EAEA,gBAAgBC,EAAa,CACvBA,EAAM,IAAI,MAAM,QAAQ,GAAK,KAAK,GAAG,OAAO,UAAU,SAAS,gBAAgB,GACjF,KAAK,aAAa,IAAI,CAE1B,EAEA,gBAAuB,CACrB,KAAK,GAAG,cAAc,QAAQ,CAACC,EAAcC,IAAU,CACjD,OAAO,SAAS,KAAK,GAAG,MAAM,QAAQ,WAAW,EAAIA,EAAQ,EAC/DD,EAAa,UAAU,IAAI,+BAA+B,EAE1DA,EAAa,UAAU,OAAO,+BAA+B,CAEjE,CAAC,CACH,EAEA,mBAA0B,CACxB,IAAME,EAAc,OAAO,SAAS,KAAK,GAAG,MAAM,QAAQ,WAAW,EAC/DC,EAAS,KAAK,GAAG,MAAM,iBAAiB,4BAA4BD,CAAW,UAAU,EACzFE,EAAa,KAAK,GAAG,MAAM,cAAiC,4BAA4BF,CAAW,0BAA0B,EAEnI,GAAIC,EAAO,OAAS,GAAKD,IAAgB,EACvC,OAGF,IAAIG,EAAgB,EAEpBF,EAAO,QAASG,GAA4B,CACtCA,EAAM,SACRD,GAEJ,CAAC,EAEGA,EAAgB,EAClBD,EAAW,SAAW,GAEtBA,EAAW,SAAW,EAE1B,EAEA,4BAAmC,CACjC,KAAK,GAAG,qBAAqB,iBAAiB,SAAWL,GAAU,CAC5DA,EAAM,OAA4B,QACrC,KAAK,GAAG,kBAAkB,aAAa,WAAY,EAAE,EAErD,KAAK,GAAG,kBAAkB,gBAAgB,UAAU,CAExD,CAAC,CACH,EAEA,aAAaA,EAAa,CACxBA,EAAM,eAAe,EAErB,IAAMQ,EAAW,IAAI,SAAS,KAAK,GAAG,KAAK,EACrCC,EAAqB,CAAC,EAE5BD,EAAS,QAASE,GAAU,CAC1BD,EAAmB,KAAKC,CAAK,CAC/B,CAAC,EAED,IAAMC,EAAeF,EAAmB,KAAK,GAAG,EAChD,SAAS,OAAS,cAAc,mBAAmBE,CAAY,CAAC,uBAEhE,KAAK,GAAG,aAAa,UAAU,IAAI,iBAAiB,EACpD,KAAK,GAAG,aAAa,SAAW,GAChC,KAAK,GAAG,OAAO,UAAU,IAAI,mBAAmB,EAEhD,KAAK,GAAG,OAAO,QAASJ,GAA4B,CAClDA,EAAM,MAAQ,EAChB,CAAC,EAED,WAAW,IAAM,CACf,IAAMK,EAAS,SAAS,cAAc,GAAG,EAEzCA,EAAO,KAAO,KAAK,GAAG,MAAM,aAAa,QAAQ,EACjD,KAAK,GAAG,OAAO,UAAU,OAAO,gBAAgB,EAEhDC,EAAO,SAASb,EAAOY,CAAM,CAC/B,EAAG,GAAG,CACR,EAEA,aAAaZ,EAAa,CACxBA,GAASA,EAAM,eAAe,EAE1B,KAAK,GAAG,OAAO,UAAU,SAAS,gBAAgB,GACpD,KAAK,GAAG,OAAO,UAAU,OAAO,gBAAgB,EAChD,KAAK,GAAG,MAAM,QAAQ,YAAc,IACpC,OAAO,oBAAoB,UAAW,KAAK,gBAAgB,KAAK,IAAI,CAAC,EACjE,OAAO,SAAS,OAAS,WAC3B,QAAQ,aAAa,KAAM,KAAM,OAAO,SAAS,KAAK,MAAM,GAAG,EAAE,CAAC,CAAC,IAGrE,KAAK,GAAG,OAAO,UAAU,IAAI,gBAAgB,EAC7C,OAAO,iBAAiB,UAAW,KAAK,gBAAgB,KAAK,IAAI,CAAC,EAEtE,EAEA,yBAAyBA,EAAa,CACpCA,GAASA,EAAM,eAAe,EAE1B,OAAO,SAAS,OAAS,WAC3B,KAAK,aAAa,IAAI,CAE1B,CACF,EAEOc,EAAQjB", "names": ["wizard", "trigger", "stepButton", "event", "progressItem", "index", "currentStep", "inputs", "nextButton", "checkedInputs", "input", "formData", "concatenatedValues", "value", "resultString", "anchor", "loader_default", "wizard_default"] }