{"version":3,"sources":["webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/src/views/pages/onboardingPage/js/onboardingPage.js"],"names":["CLS","OnboardingPage","element","_this","this","_classCallCheck","$this","$element","$","$tplScroller","$form","find","$formAction","attr","$navDots","concat","$progressBar","$totalSteps","$currentStep","each","checkboxes","radios","select","textarea","inputtext","nextBtn","data","on","event","removeClass","is","addClass","preventDefault","stepCurrentValue","currentTarget","stepCurrentTarget","stepTargetValue","goToStep","array","serializeArray","formData","map","n","i","_","forOwn","value","key","isNil","trim","json_text","JSON","stringify","request","Request","method","body","headers","Content-Type","fetch","then","response","status","hide","statusText","catch","error","not","fadeOut","fadeIn"],"mappings":"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","file":"page-13.2f662a3aa586e55a56ca.js","sourcesContent":["/* eslint-disable no-invalid-this */\nconst NS = 'OnboardingPage';\nconst CLS = 'onboardingPage';\n\nexport class OnboardingPage {\n constructor(element) {\n const $this = this;\n this.element = element;\n this.$element = $(this.element);\n this.$tplScroller = $('.tpl-scroller');\n this.$form = this.$element.find('form');\n this.$formAction = this.$form.attr('action');\n this.$navDots = this.$element.find(`.${CLS}-stepper-nav-dots`);\n this.$progressBar = this.$element.find(`.${CLS}-progressBar-progress`);\n this.$totalSteps = 0;\n this.$currentStep = 0;\n \n // Init\n $.each($('[data-step]', this.$element), function() {\n const checkboxes = $(this).find(`input[type=\"checkbox\"]`);\n const radios = $(this).find(`input[type=\"radio\"]`);\n const select = $(this).find(`select`);\n const textarea = $(this).find(`textarea`);\n const inputtext = $(this).find(`input[type=\"text\"]`);\n const nextBtn = $(this).find('[data-next-btn]');\n const prevBtn = $(this).find('.btn-text-link--prev');\n \n // Total questions\n if($(this).data('step') !== 'success') {\n $this.$totalSteps++;\n }\n\n // Field validation - radio\n radios.on('change', (event) => {\n nextBtn.removeClass('disabled');\n });\n \n // Field validation - checkboxes\n checkboxes.on('change', (event) => {\n if($(checkboxes).is(':checked') ) {\n nextBtn.removeClass('disabled');\n }\n else {\n nextBtn.addClass('disabled');\n }\n });\n \n select.on('change', (event) => {\n nextBtn.removeClass('disabled');\n });\n\n inputtext.on('change', (event) => {\n nextBtn.removeClass('disabled');\n });\n\n textarea.on('change', (event) => {\n nextBtn.removeClass('disabled');\n });\n\n });\n\n // Form back buttons\n this.$element.on('click', '.btn-text-link--prev', (event) => {\n event.preventDefault();\n\n // Current Slide\n let stepCurrentValue = $(event.currentTarget).data('stepCurrent');\n let stepCurrentTarget = this.$element.find(`[data-step='${stepCurrentValue}']`);\n\n // Update count\n if($(stepCurrentTarget).data('step') !== 'success') {\n if($(stepCurrentTarget).data('stepResult') !== 'true') {\n this.$currentStep--;\n }\n $(stepCurrentTarget).data('stepResult', 'true');\n }\n\n // Next slide, or quiz end?\n let stepTargetValue = $(event.currentTarget).data('stepTarget');\n this.goToStep(stepTargetValue);\n });\n\n // Form skip / submit buttons\n this.$element.on('click', '.btn-text-link--next', (event) => {\n event.preventDefault();\n\n // Current Slide\n let stepCurrentValue = $(event.currentTarget).data('stepCurrent');\n let stepCurrentTarget = this.$element.find(`[data-step='${stepCurrentValue}']`);\n\n // Update count\n if($(stepCurrentTarget).data('step') !== 'success') {\n if($(stepCurrentTarget).data('stepResult') !== 'true') {\n this.$currentStep++;\n }\n $(stepCurrentTarget).data('stepResult', 'true');\n }\n // Next slide, or quiz end?\n let stepTargetValue = $(event.currentTarget).data('stepTarget');\n if(stepTargetValue === 'submit') {\n // Submit\n // this.$element.find('form').trigger('submit');\n var array = this.$form.serializeArray();\n var formData = {};\n $.map(array, function (n, i) {\n formData[n['name']] = n['value'];\n });\n\n // Removes empty field values\n _.forOwn(formData, (value, key) => {\n if(_.isNil(value) || value.trim() === '') {\n delete formData[key];\n }\n });\n\n var json_text = JSON.stringify(formData);\n let request = new Request(this.$formAction, {\n method: 'POST',\n body: json_text,\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n\n // submit form data using fetch api\n fetch(request)\n .then((response) => {\n if(response.status === 200) {\n $this.goToStep('success');\n $this.$navDots.hide();\n }\n else {\n response.statusText;\n }\n })\n .catch((error) => {\n // errors (failed call)\n response.error;\n });\n }\n else {\n // Next Slide\n this.goToStep(stepTargetValue);\n }\n });\n\n // Form next / submit buttons\n this.$element.on('click', '[data-next-btn]', (event) => {\n event.preventDefault();\n\n // Current Slide\n let stepCurrentValue = $(event.currentTarget).data('stepCurrent');\n let stepCurrentTarget = this.$element.find(`[data-step='${stepCurrentValue}']`);\n // Update count\n if($(stepCurrentTarget).data('step') !== 'success') {\n if($(stepCurrentTarget).data('stepResult') !== 'true') {\n this.$currentStep++;\n }\n $(stepCurrentTarget).data('stepResult', 'true');\n }\n\n // Next slide, or quiz end?\n let stepTargetValue = $(event.currentTarget).data('stepTarget');\n\n var array = this.$form.serializeArray();\n var formData = {};\n $.map(array, function (n, i) {\n formData[n['name']] = n['value'];\n });\n\n // Removes empty field values\n _.forOwn(formData, (value, key) => {\n if(_.isNil(value) || value.trim() === '') {\n delete formData[key];\n }\n });\n\n var json_text = JSON.stringify(formData);\n let request = new Request(this.$formAction, {\n method: 'POST',\n body: json_text,\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n\n // submit form data using fetch api\n fetch(request)\n .then((response) => {\n if(response.status === 200) {\n if(stepTargetValue === 'submit') {\n $this.goToStep('success');\n }\n else{\n $this.goToStep(stepTargetValue);\n }\n $this.$navDots.hide();\n }\n else {\n response.statusText;\n }\n })\n .catch((error) => {\n // errors (failed call)\n response.error;\n });\n });\n }\n\n // Go to slide\n goToStep(stepTargetValue) {\n // Hide current slide\n this.$element.find('[data-step]').not(`[data-step='${stepTargetValue}']`).fadeOut(0).removeClass('is-active');\n\n // Show new slide\n let $stepTarget = this.$element.find(`[data-step='${stepTargetValue}']`);\n $stepTarget.fadeIn(250).addClass('is-active');\n\n // Update dots\n this.$element.find('[data-dots-btn]').removeClass('active');\n this.$element.find(`.${CLS}-stepper-nav-dots-dot[data-step-target='${stepTargetValue}']`).addClass('active');\n }\n}"],"sourceRoot":""}