{"version":3,"sources":["webpack:///./src/js/components/ResetPasswordComponent.js","webpack:///./src/js/abstracts/BaseComponent.js","webpack:///./src/js/libs/Axios.js","webpack:///./src/js/utilities/SerializeForm.js","webpack:///./src/js/utilities/FormErros.js","webpack:///./src/js/abstracts/BaseFormComponent.js"],"names":["ResetPasswordComponent","element","handleClick","form","successMsg","visible","hide","this","onSubmit","e","action","formButton","a","loading","formData","SerializeForm","currentTarget","getData","post","data","success","error","Error","$el","querySelector","SELECTORS","classList","add","CLASSES","banner","document","title","subtitle","innerHTML","getAttribute","endLoading","console","BaseFormComponent","BaseComponent","_componentElement","setAttribute","compOptions","options","dataset","Object","keys","filter","entry","includes","forEach","optionValue","cleanEntry","cleanOptionKey","JSON","parse","replace","e2","convertType","Freeze","events","cb","elements","Bean","on","stopPropagation","one","off","fire","container","message","EMIT","CUSTOM_MESSAGES","LOADER_EVENTS","show","icon","option","optionReturn","Number","key","str","charAt","toLocaleLowerCase","slice","CommonInterface","recaptchaToken","googleRecaptchaAction","googleRecaptchaClientSide","Promise","resolve","reject","window","grecaptcha","ready","execute","then","token","axios","Axios","create","transformRequest","headers","entries","FormData","value","append","interceptors","request","use","config","googleRecaptchaToken","CancelToken","get","all","spread","serialize","dataType","getFormDataArray","getFormDataObject","join","map","tempData","split","name","newArrayString","nodeName","el","disabled","BLACK_LIST","type","isValidForm","isvalidElement","push","opt","selected","checked","scrollConfig","behavior","block","inline","inputErrorMsg","messageEl","createElement","innerText","showFieldsErrors","errors","parent","closest","appendChild","scrollIntoView","showFieldError","fieldName","addEventListener","handleFocus","parentElement","remove","removeAttribute","removeChild","removeEventListener","showGlobalError","button","parentNode","errorEl","insertBefore","$on","preventDefault","stopImmediatePropagation","cleanCustomError","res","handleRes","errorFields","errorMessage","errorMsg","stringError","querySelectorAll","globaError","length","err","Serialize"],"mappings":"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","file":"js/component-ResetPasswordComponent-js.chunks.js","sourcesContent":["import { post } from '../libs/Axios';\nimport BaseFormComponent from '../abstracts/BaseFormComponent';\nimport SerializeForm from '../utilities/SerializeForm';\n\nexport default class ResetPasswordComponent extends BaseFormComponent {\n get Messages() {\n return {};\n }\n\n get SELECTORS() {\n return {\n form: '.request-password-body',\n successMsg: '.request-password-success',\n };\n }\n\n get CLASSES() {\n return {\n visible: 'visible',\n hide: 'hide'\n };\n }\n\n constructor(element) {\n super(element);\n this.handleClick();\n }\n\n\n handleClick() {\n this.onSubmit(async (e, action, formButton) => {\n try {\n this.loading(formButton);\n const formData = new SerializeForm(e.currentTarget).getData('object');\n const { data } = await post(action, { ...formData });\n const { success, error } = data;\n if (error) throw new Error(error);\n if (!error) {\n this.$el.querySelector(this.SELECTORS.form).classList.add(this.CLASSES.hide);\n const banner = document.querySelector('.reset-banner');\n const title = banner.querySelector('h1');\n const subtitle = banner.querySelector('p');\n title.innerHTML = title.getAttribute('data-attribute-title-reset');\n subtitle.innerHTML = subtitle.getAttribute('data-attribute-subtitle-reset');\n }\n this.endLoading(formButton);\n return data;\n } catch (error) {\n this.endLoading(formButton);\n console.error(error);\n }\n });\n }\n}\n","\nimport Bean from 'bean';\nimport Freeze from '../utilities/Freeze';\nimport CommonInterface from './CommonInterface';\n\nexport default class BaseComponent extends CommonInterface {\n get $el() {\n return this._componentElement;\n }\n\n get $options() {\n const compOptions = {};\n const options = { ...this.$el.dataset };\n const optionsEntires = Object.keys(options).filter(entry => entry.includes('option'));\n optionsEntires.forEach((entry) => {\n try {\n const cleanEntry = BaseComponent.cleanOptionKey(entry);\n let optionValue;\n if (options[entry].includes('{') && options[entry].includes('}')) {\n\n // PDB-786 JSON.parse(\"{\\\"address1\\\":\\\"2 Rue d'Orsel\\\"}\".replace(/'/g, '\"')) => SyntaxError: Unexpected token O in JSON at position 21\n try {\n optionValue = JSON.parse(options[entry].replace(/'/g, '\"'));\n } catch (e2) {\n optionValue = JSON.parse(options[entry]);\n }\n\n } else {\n optionValue = BaseComponent.convertType(options[entry]);\n }\n compOptions[cleanEntry] = optionValue;\n } catch (e) {\n console.error('get $options() from component => ', this._componentElement, e);\n }\n });\n return Freeze(compOptions);\n }\n\n get COMPONENT_NAME() {\n return this.$el.getAttribute('data-component');\n }\n\n /**\n *\n * constructor\n *\n * @param {Element} element\n */\n constructor(element) {\n super();\n this._componentElement = element;\n this._componentElement.setAttribute('data-component-init', true);\n }\n\n static convertType(option) {\n let optionReturn;\n if (Number(option)) return Number(option);\n switch (option) {\n case 'false':\n optionReturn = false;\n break;\n case 'true':\n optionReturn = true;\n break;\n case 'null':\n optionReturn = null;\n break;\n default:\n optionReturn = option;\n break;\n }\n\n return optionReturn;\n }\n\n static cleanOptionKey(key) {\n const str = key.replace('option', '');\n const cleanedKey = `${str.charAt(0).toLocaleLowerCase()}${str.slice(1)}`;\n return cleanedKey;\n }\n\n /**\n *\n * $on\n *\n * @param {String} events\n * @param {Function} cb\n * @param {Element} [element = this.$el]\n * @param {Array|String|Element} [elements = null]\n */\n $on(events, cb, element = this.$el, elements = null) {\n if (!element || !events || !cb) return;\n if (!elements) {\n Bean.on(element, events, (e) => {\n if (e) e.stopPropagation();\n cb(e);\n });\n } else {\n Bean.on(element, events, elements, (e) => {\n if (e) e.stopPropagation();\n cb(e);\n });\n }\n }\n\n /**\n *\n * $one\n *\n * @param {String} events\n * @param {Function} cb\n * @param {Element} [element = this.$el]\n */\n $one(events, cb, element = this.$el) {\n Bean.one(element, events, cb);\n }\n\n /**\n *\n * $off\n *\n * @param {String} events\n * @param {Element} [element = this.$el]\n */\n $off(events, element = this.$el) {\n Bean.off(element, events);\n }\n\n /**\n *\n * $fire\n *\n * @param {String} events\n * @param {Element} [element = this.$el]\n */\n $fire(events, element = this.$el) {\n Bean.fire(element, events);\n }\n\n /**\n *\n * @param {HTMLElement} [container]\n */\n loading(container, message) {\n this.EMIT(this.CUSTOM_MESSAGES.LOADER_EVENTS.show, {\n container: container || this.$el,\n message\n });\n }\n\n /**\n *\n * @param {HTMLElement} [container]\n * @param {String} [message]\n * @param {String} [icon]\n * @param {Boolean} [error=false]\n */\n endLoading(container, message, error = false, icon) {\n this.EMIT(this.CUSTOM_MESSAGES.LOADER_EVENTS.hide, {\n container: container || this.$el,\n message,\n icon,\n error\n });\n }\n}\n","import Axios from 'axios';\n\nconst recaptchaToken = async ({ googleRecaptchaAction, googleRecaptchaClientSide }) => new Promise((resolve, reject) => {\n window.grecaptcha.ready(() => {\n window.grecaptcha.execute(googleRecaptchaClientSide, { action: googleRecaptchaAction }).then((token) => {\n resolve(token);\n });\n });\n});\n\nconst axios = Axios.create({\n transformRequest: [function (data, headers) {\n if (data && Object.entries(data)) {\n const formData = new FormData();\n for (const [key, value] of Object.entries(data)) {\n formData.append(key, value);\n }\n return formData;\n }\n }],\n});\n\n// Add a request interceptor\naxios.interceptors.request.use(async (config) => {\n // Do something before request is sent\n if (config.data && config.data.googleRecaptchaAction && config.data.googleRecaptchaClientSide) {\n const token = await recaptchaToken(config.data);\n config.data.googleRecaptchaToken = token;\n return config;\n }\n return config;\n}, function (error) {\n // Do something with request error\n return Promise.reject(error);\n});\n\nexport const { CancelToken } = Axios;\n\nexport const {\n get, post, all, spread\n} = axios;\n","class SerializeForm {\n static get BLACK_LIST() {\n return {\n elements: ['button', 'file', 'reset', 'submit']\n };\n }\n\n /**\n *\n * @param {HTMLFormElement} form\n */\n constructor(form) {\n this.form = SerializeForm.serialize(form);\n }\n\n /**\n * Get the form serialization data by format\n *\n * @param {String} [dataType] The data type to return ('array', 'object' or empty to return string)\n * @returns {*}\n */\n getData(dataType) {\n switch (dataType) {\n case 'array':\n return SerializeForm.getFormDataArray(this.form);\n case 'object':\n return SerializeForm.getFormDataObject(this.form);\n default:\n return this.form.join('&')\n .replace(/%20/g, '+');\n }\n }\n\n /**\n * Get the form serialization data string\n *\n * @returns {String}\n */\n toString() {\n return this.form.join('&').replace(/%20/g, '+');\n }\n\n /**\n * Get the form serialization data array\n *\n * @returns {Array}\n */\n toArray() {\n return SerializeForm.getFormDataArray(this.form);\n }\n\n /**\n * Get the form serialization data object\n *\n * @returns {Object}\n */\n toObject() {\n return SerializeForm.getFormDataObject(this.form);\n }\n\n /**\n *\n * @param {HTMLFormElement} form\n * @return {Array}\n */\n static getFormDataArray(form) {\n return [\n ...form.map((data) => {\n const tempData = data.split('=');\n return {\n name: tempData[0],\n value: tempData[1]\n };\n })\n ];\n }\n\n /**\n *\n * @param {HTMLFormElement} form\n */\n static getFormDataObject(form) {\n const formData = {};\n form.forEach((data) => {\n const tempData = data.split('=');\n if (formData[tempData[0]]) {\n const newArrayString = `${typeof formData[tempData[0]] === 'object' ? formData[tempData[0]].join('&') : formData[tempData[0]]}&${tempData[1]}`;\n formData[tempData[0]] = newArrayString.split('&');\n } else {\n formData[tempData[0]] = tempData[1];\n }\n });\n\n return formData;\n }\n\n /**\n *\n * @param {HTMLFormElement} form\n * @return {boolean}\n */\n static isValidForm(form) {\n return typeof form === 'object' && form.nodeName === 'FORM';\n }\n\n /**\n *\n * @param {HTMLElement} el\n * @return {boolean}\n */\n static isvalidElement(el) {\n return el.name && !el.disabled && !SerializeForm.BLACK_LIST.elements.includes(el.type);\n }\n\n /**\n *\n * @param {HTMLFormElement} form\n * @return {Array}\n */\n static serialize(form) {\n const data = [];\n if (SerializeForm.isValidForm(form)) {\n [...form.elements].forEach((el) => {\n if (SerializeForm.isvalidElement(el)) {\n if (el.type !== 'checkbox' && el.type !== 'radio') {\n let value = el.value || '';\n data.push(`${el.name}=${value}`);\n } else if (el.type === 'select-multiple') {\n el.options.forEach((opt) => {\n if (opt.selected) data.push(`${el.name}=${opt.value}`);\n });\n } else if (el.checked && el.type === 'checkbox') {\n let value = el.value || true;\n data.push(`${el.name}=${value}`);\n } else if (el.checked && el.type === 'radio' && el.value) {\n let value = el.value;\n data.push(`${el.name}=${value}`);\n }\n }\n });\n }\n return data;\n }\n}\n\nexport default SerializeForm;\n","const scrollConfig = {\n behavior: 'smooth',\n block: 'center',\n inline: 'center'\n};\n\nconst inputErrorMsg = (message) => {\n const messageEl = document.createElement('div');\n messageEl.classList.add('error-message', 'js-error-message');\n messageEl.innerText = message;\n return messageEl;\n};\n\nconst formErroMessage = (message) => {\n const messageEl = document.createElement('div');\n messageEl.classList.add('warning', 'js-form-warning');\n messageEl.innerHTML += '';\n messageEl.innerHTML += message;\n return messageEl;\n};\n\nexport const cleanInputs = (form, cb) => {\n const inputs = form.querySelectorAll('input, select');\n [...inputs].forEach((el) => {\n const parent = error.parentElement;\n const error = parent.querySelector('.error-message');\n el.classList.remove('error');\n el.removeAttribute('aria-describedby');\n el.removeAttribute('aria-invalid');\n parent.removeChild(error);\n });\n};\n\n/**\n * @param {Element}\n */\nexport const showFieldsErrors = (form, errors) => {\n for (const [key, value] of Object.entries(errors)) {\n const el = form.querySelector(`[name=\"${key}\"]`);\n const parent = el.closest('.js-form-input');\n el.classList.add('error');\n el.setAttribute('aria-describedby', `bouncer-error_${key}`);\n el.setAttribute('aria-invalid', true);\n parent.appendChild(inputErrorMsg(value));\n }\n const error = form.querySelector('.error-message');\n if (error) {\n error.scrollIntoView(scrollConfig);\n }\n};\n\nexport const showFieldError = (fieldName, message) => {\n const el = document.querySelector(`[name*=\"${fieldName}\"]`);\n const parent = el.closest('.js-form-input');\n el.classList.add('error');\n el.setAttribute('aria-describedby', `bouncer-error_${el.name}`);\n el.setAttribute('aria-invalid', true);\n if (message) parent.appendChild(inputErrorMsg(message));\n parent.scrollIntoView(scrollConfig);\n el.addEventListener('focus', handleFocus, false);\n};\n\nconst handleFocus = (e) => {\n const el = e.currentTarget;\n const parent = el.parentElement;\n const error = parent.querySelector('.error-message');\n el.classList.remove('error');\n el.removeAttribute('aria-describedby');\n el.removeAttribute('aria-invalid');\n parent.removeChild(error);\n el.removeEventListener('focus', handleFocus, false);\n};\n\nexport const showGlobalError = (form, error) => {\n const button = form.querySelector('button[type=\"submit\"]');\n const parent = button.parentNode;\n const errorEl = formErroMessage(error);\n parent.insertBefore(errorEl, button);\n};\n","import Serialize from '../utilities/SerializeForm';\nimport BaseComponent from './BaseComponent';\nimport { showFieldsErrors, showGlobalError } from '../utilities/FormErros';\n\nexport default class BaseFormComponent extends BaseComponent {\n constructor(element) {\n super(element);\n }\n\n /**\n *\n * @param {CallableFunction} cb - The callback function\n * @return {function}\n */\n onSubmit(cb) {\n return this.$on('bouncerFormValid', async (e) => {\n e.preventDefault();\n e.stopImmediatePropagation();\n const formButton = e.currentTarget.querySelector('button[type=\"submit\"]');\n const action = e.currentTarget.getAttribute('action');\n this.cleanCustomError();\n const res = await cb(e, action, formButton);\n if (res) this.handleRes(res, formButton);\n });\n }\n\n handleRes(res, formButton) {\n const {\n error, errorFields, errorMessage, errorMsg\n } = res;\n if (errorFields) {\n showFieldsErrors(this.$el, errorFields);\n }\n const stringError = errorMessage || errorMsg;\n if (stringError) {\n showGlobalError(this.$el, stringError);\n } else if (error) {\n showGlobalError(this.$el, error);\n }\n\n if (error || errorFields || errorMessage || errorMsg) {\n this.endLoading(formButton);\n }\n }\n\n cleanCustomError() {\n const errorFields = this.$el.querySelectorAll('.js-error-message');\n const globaError = this.$el.querySelectorAll('.js-form-warning');\n\n if (globaError.length > 0) {\n [...globaError].forEach((err) => {\n const parent = err.parentElement;\n parent.removeChild(err);\n });\n }\n if (errorFields.length > 0) {\n [...errorFields].forEach((err) => {\n try {\n const parent = err.parentElement;\n parent.classList.remove(err);\n parent.removeChild(err);\n err.removeAttribute('aria-describedby');\n err.removeAttribute('aria-invalid');\n } catch (e) {\n // TODO error...\n }\n });\n }\n }\n\n /**\n *\n * @param {String} action\n *\n */\n recaptchaClientSide(action) {\n const googleRecaptchaClientSide = document.querySelector('input[name=\"googleRecaptchaClientSide\"]');\n if (googleRecaptchaClientSide) {\n window.grecaptcha.ready(() => {\n window.grecaptcha.execute(googleRecaptchaClientSide.value, { action }).then((token) => {\n this.$el.innerHTML += ``;\n this.$el.innerHTML += ``;\n });\n });\n }\n }\n\n\n /**\n *\n * @param {HTMLFormElement} form\n * @return {SerializeForm}\n */\n serializeForm(form) {\n return new Serialize(form);\n }\n}\n"],"sourceRoot":""}