{"version":3,"file":"js/component-notifymeForm.chunk.js","mappings":"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","sources":["webpack:///./assets/src/scripts/utilities/freeze.ts","webpack:///./assets/src/scripts/constants/customMessages.ts","webpack:///./assets/src/scripts/constants/whatInput.ts","webpack:///./assets/src/scripts/utilities/whatInput.ts","webpack:///./assets/src/scripts/base/commonInterface.ts","webpack:///./assets/src/scripts/base/baseComponent.ts","webpack:///./assets/src/scripts/components/notifymeForm.ts","webpack:///./assets/src/scripts/utilities/focusableElementUtils.ts"],"sourcesContent":["export default function deepFreeze(o) {\n Object.freeze(o);\n Object.getOwnPropertyNames(o).forEach(function (prop) {\n if (Object.hasOwnProperty.call(o, prop) && o[prop] !== null && (typeof o[prop] === 'object' || typeof o[prop] === 'function') && !Object.isFrozen(o[prop])) {\n deepFreeze(o[prop]);\n }\n });\n return o;\n}\n","import deepFreeze from '../utilities/freeze';\nexport default deepFreeze({\n WINDOW: {\n CLICK_EVENT: 'body:click:event',\n },\n BODY: {\n TOGGLE_OVERLAY: 'toggle:overlay',\n ON_OVERLAY: 'on:overlay',\n OFF_OVERLAY: 'off:overlay',\n },\n HEADER: {\n UPDATE_TRAP: 'header:trap:update',\n IN_PDP: 'header:inPdp',\n },\n BURGER: {\n TOGGLE_MENU: 'menu:toggle',\n },\n BREAKPOINTER: {\n BREAKPOINT_CHANGE: 'breakpoint:change',\n },\n DROP_DOWN: {\n OPEN: 'dropdown:open',\n CLOSE: 'dropdown:close',\n },\n PRODUCT_CAROUSEL: {\n UPDATE_IMAGES: 'product:carousel:update_images',\n UPDATE_ZOOM_IMAGES: 'product:carousel:update_zoom_images',\n },\n BRANDS: {\n UPDATE_GRID: 'brands:update:grid',\n UPDATE_STORES: 'brands:update:stores',\n SEARCH_BY_STORE: 'brands:search:bystore',\n },\n MODAL_EVENTS: {\n show: 'modal:show',\n close: 'modal:close',\n },\n});\n","import deepFreeze from '../utilities/freeze';\nexport default deepFreeze({\n INPUT: {\n KEYBOARD: 'keyboard',\n MOUSE: 'mouse'\n }\n});\n","import whatInput from 'what-input';\nexport const ask = (strategy = 'input') => {\n return whatInput.ask(strategy);\n};\n","import { getAllFocusableElements, getFirstFocusable } from '../utilities/focusableElementUtils';\nimport CustomMessages from '../constants/customMessages';\nimport EventBus from '../libs/eventBus';\nimport WHAT_INPUT from '../constants/whatInput';\nimport { ask } from '../utilities/whatInput';\nimport config from 'gia/config';\nexport default class CommonInterface {\n constructor() {\n config.set('log', true);\n window.EventBus = EventBus;\n window.CUSTOM_MESSAGES = this.CUSTOM_MESSAGES;\n this._grabMessages();\n }\n get CUSTOM_MESSAGES() {\n return CustomMessages;\n }\n get Messages() {\n return {};\n }\n get isKeyboard() {\n return this._isKeyboard();\n }\n get isMouse() {\n return this._isMouse();\n }\n get whatInput() {\n return this._whatInput();\n }\n _checkMessages() {\n for (const message in this.Messages) {\n if (window.eventQueue.get(message)) {\n const ref = this.Messages[message].bind(this);\n window.eventQueue.get(message).map((payload) => {\n ref(payload);\n });\n window.eventQueue.delete(message);\n }\n }\n }\n _grabMessages() {\n this._messages = {};\n for (const message in this.Messages) {\n if (this.Messages[message]) {\n const __ref__ = this.Messages[message].bind(this);\n this._messages[message] = __ref__;\n this.GRAB(message, __ref__);\n }\n }\n }\n _ungrabMessages() {\n for (const message in this._messages) {\n this.UNGRAB(message, this._messages[message]);\n }\n }\n objectIsEmpty(object) {\n for (let key in object) {\n if (object.hasOwnProperty(key))\n return false;\n }\n return true;\n }\n /**\n *\n * EMIT\n *\n * @param {string} message\n * @param {Object} payload\n */\n EMIT(message, payload) {\n return EventBus.emit(message, payload);\n }\n /**\n *\n * GRAB\n *\n * @param {string} message\n * @param {Function} callBack\n */\n GRAB(message, callBack) {\n if (!callBack)\n return;\n EventBus.on(message, callBack);\n }\n /**\n *\n * UNGRAB\n *\n * @param {string} message\n * @param {Function} callBack\n */\n UNGRAB(message, callBack) {\n if (!callBack)\n return;\n EventBus.off(message, callBack);\n }\n getFirstFocusable(parent) {\n return getFirstFocusable(parent);\n }\n getFocusableElements(parent) {\n return getAllFocusableElements(parent);\n }\n _isMouse() {\n return ask() === WHAT_INPUT.INPUT.MOUSE;\n }\n _isKeyboard() {\n return ask() === WHAT_INPUT.INPUT.KEYBOARD;\n }\n _whatInput() {\n return ask();\n }\n _destroy() {\n this._ungrabMessages();\n }\n}\n","import Bean from 'bean';\nimport CommonInterface from './commonInterface';\nimport deepFreeze from '../utilities/freeze';\nexport default class BaseComponent extends CommonInterface {\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 this._checkMessages();\n //console.log(`%c[${this.COMPONENT_NAME}]%c initialized`, 'color:orange;', 'color:white;');\n }\n /**\n * @returns {ComponentElement}\n */\n get _el() {\n return this._componentElement;\n }\n get _options() {\n const compOptions = {};\n const options = Object.assign({}, this._el.dataset);\n const optionsEntires = Object.keys(options).filter((entry) => entry.includes('option'));\n optionsEntires.forEach((entry) => {\n const cleanEntry = BaseComponent.cleanOptionKey(entry);\n let optionValue;\n if (options[entry].includes('{') && options[entry].includes('}')) {\n optionValue = JSON.parse(options[entry].replace(/'/g, '\"'));\n }\n else {\n optionValue = BaseComponent.convertType(options[entry]);\n }\n compOptions[cleanEntry] = optionValue;\n });\n return deepFreeze(compOptions);\n }\n get COMPONENT_NAME() {\n return this._el.getAttribute('data-component');\n }\n static convertType(option) {\n let optionReturn;\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 return optionReturn;\n }\n static cleanOptionKey(key) {\n const str = key.replace('option', '');\n return `${str.charAt(0).toLocaleLowerCase()}${str.slice(1)}`;\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)\n return;\n if (!elements) {\n Bean.on(element, events, (e) => {\n if (e)\n e.stopPropagation();\n cb(e);\n });\n }\n else {\n Bean.on(element, events, elements, (e) => {\n if (e)\n e.stopPropagation();\n cb(e);\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 * $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 * $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 updateAriaAttributes(element) {\n const attributes = [...element.attributes]\n .filter((attr) => {\n return attr.nodeName.indexOf('has') === -1;\n })\n .filter((attr) => {\n return attr.nodeName.indexOf('aria') > -1 && (attr.nodeValue === 'true' || attr.nodeValue === 'false');\n })\n .map((attr) => {\n return attr.nodeName;\n });\n attributes.forEach((attr) => {\n element.setAttribute(attr, element.getAttribute(attr) === 'true' ? 'false' : 'true');\n });\n }\n}\n","import BaseComponent from '../base/baseComponent';\nimport micromodalInstance from '../libs/micromodalInstance';\nexport default class NotifymeForm extends BaseComponent {\n constructor(element) {\n super(element);\n this.emailIsValid = false;\n this.timeToClose = 5000;\n this.handleSubmit();\n this.handlePrivacyChange();\n this.handleEmailChange();\n }\n get SELECTORS() {\n return {\n form: '.form-content',\n submitBtn: '.notifyme-submit',\n privacy: '#notifyMePrivacy',\n email: '#userEmail',\n invalidFeedback: '.privacy-error',\n };\n }\n get CLASSES() {\n return {\n loading: 'loading',\n invalid: 'is-invalid',\n visible: 'visible',\n };\n }\n handleSubmit() {\n this._el.addEventListener('submit', (e) => {\n e.preventDefault();\n let checkboxPrivacy = this._el.querySelector(this.SELECTORS.privacy);\n if (checkboxPrivacy) {\n this.setErrors(false);\n if (!checkboxPrivacy.checked) {\n this.setErrors(true);\n }\n }\n if (!this.emailIsValid) {\n let emailInput = this._el.querySelector(this.SELECTORS.email);\n emailInput.parentElement.classList.add(this.CLASSES.invalid);\n emailInput.setAttribute('aria-invalid', 'true');\n emailInput.parentElement.querySelector('.invalid--feedback').classList.add(this.CLASSES.visible);\n }\n if (!this.emailIsValid || !checkboxPrivacy.checked) {\n return;\n }\n this.manageData();\n });\n }\n handleEmailChange() {\n let emailInput = this._el.querySelector(this.SELECTORS.email);\n emailInput.addEventListener('blur', (e) => {\n if (/^[\\w.%+-]+@[\\w.-]+\\.[\\w]{2,6}$/.test(emailInput.value) && emailInput.value !== '') {\n emailInput.parentElement.classList.remove(this.CLASSES.invalid);\n emailInput.removeAttribute('aria-invalid');\n emailInput.parentElement.querySelector('.invalid--feedback').classList.remove(this.CLASSES.visible);\n this.emailIsValid = true;\n }\n else {\n emailInput.parentElement.classList.add(this.CLASSES.invalid);\n emailInput.setAttribute('aria-invalid', 'true');\n emailInput.parentElement.querySelector('.invalid--feedback').classList.add(this.CLASSES.visible);\n this.emailIsValid = false;\n }\n });\n }\n handlePrivacyChange() {\n let checkboxPrivacy = this._el.querySelector(this.SELECTORS.privacy);\n checkboxPrivacy.addEventListener('change', (e) => {\n if (!e.currentTarget.checked) {\n this.setErrors(true);\n }\n else {\n this.setErrors(false);\n }\n });\n }\n setErrors(isError) {\n let checkboxPrivacy = this._el.querySelector(this.SELECTORS.privacy);\n let privacyError = this._el.querySelector(this.SELECTORS.invalidFeedback);\n if (checkboxPrivacy) {\n let checkboxParent = checkboxPrivacy.closest('.checkbox');\n if (isError) {\n checkboxParent.classList.add(this.CLASSES.invalid);\n checkboxPrivacy.setAttribute('aria-invalid', 'true');\n privacyError.classList.add(this.CLASSES.visible);\n }\n else {\n checkboxPrivacy.removeAttribute('aria-invalid');\n checkboxParent.classList.remove(this.CLASSES.invalid);\n privacyError.classList.remove(this.CLASSES.visible);\n }\n }\n }\n async manageData() {\n const submitBtn = this._el.querySelector(this.SELECTORS.submitBtn);\n try {\n submitBtn.classList.add(this.CLASSES.loading);\n let response = await this.sendData();\n submitBtn.classList.remove(this.CLASSES.loading);\n this.setFeedbackMessage(response.success);\n }\n catch (ev) {\n console.error(ev);\n submitBtn.classList.remove(this.CLASSES.loading);\n }\n }\n setFeedbackMessage(isSuccess) {\n let message = isSuccess ? this._options['feedback.success'] : this._options['feedback.error'];\n let feedbackIcon = `\n <svg class=\"icon--${isSuccess ? 'valid' : 'error'} icon--m no-stroke\">\n <use href=\"#sprite-${isSuccess ? 'valid' : 'error'}\"></use>\n </svg>\n `;\n let modalContent = this._el.closest('.notifyme-content');\n modalContent.style.display = 'none';\n let modalFeedback = modalContent.closest('.modal--micromodal-dialog').querySelector('.modal-feedback');\n modalFeedback.querySelector('.feedback-message').innerHTML = message;\n modalFeedback.querySelector('.icon-container').innerHTML = feedbackIcon;\n modalFeedback.removeAttribute('style');\n setTimeout(() => {\n modalFeedback.style.display = 'none';\n modalFeedback.querySelector('.feedback-message').innerHTML = '';\n modalFeedback.querySelector('.icon-container').innerHTML = '';\n modalContent.removeAttribute('style');\n micromodalInstance.forceClose('modal-notifyme');\n }, 3500);\n }\n async sendData() {\n const formData = new FormData(this._el.querySelector(this.SELECTORS.form));\n return await fetch(this._options.endpoint, {\n method: 'POST',\n body: formData,\n headers: {\n 'X-Requested-With': 'XMLHttpRequest',\n },\n }).then(function (response) {\n return response.json();\n });\n }\n}\n","const focusableSelectors = 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"]), [role=\"button\"]';\nexport const getFirstFocusable = (parent) => parent.querySelector(focusableSelectors);\nexport const getAllFocusableElements = (parent) => parent.querySelectorAll(focusableSelectors);\n"],"names":["deepFreeze","o","Object","freeze","getOwnPropertyNames","forEach","prop","hasOwnProperty","call","isFrozen","WINDOW","CLICK_EVENT","BODY","TOGGLE_OVERLAY","ON_OVERLAY","OFF_OVERLAY","HEADER","UPDATE_TRAP","IN_PDP","BURGER","TOGGLE_MENU","BREAKPOINTER","BREAKPOINT_CHANGE","DROP_DOWN","OPEN","CLOSE","PRODUCT_CAROUSEL","UPDATE_IMAGES","UPDATE_ZOOM_IMAGES","BRANDS","UPDATE_GRID","UPDATE_STORES","SEARCH_BY_STORE","MODAL_EVENTS","show","close","INPUT","KEYBOARD","MOUSE","ask","strategy","CommonInterface","constructor","config","window","EventBus","CUSTOM_MESSAGES","this","_grabMessages","Messages","isKeyboard","_isKeyboard","isMouse","_isMouse","whatInput","_whatInput","_checkMessages","message","eventQueue","get","ref","bind","map","payload","delete","_messages","__ref__","GRAB","_ungrabMessages","UNGRAB","objectIsEmpty","object","key","EMIT","callBack","getFirstFocusable","parent","getFocusableElements","_destroy","BaseComponent","element","super","_componentElement","setAttribute","_el","_options","compOptions","options","assign","dataset","keys","filter","entry","includes","cleanEntry","cleanOptionKey","optionValue","JSON","parse","replace","convertType","COMPONENT_NAME","getAttribute","static","option","optionReturn","str","charAt","toLocaleLowerCase","slice","$on","events","cb","elements","e","stopPropagation","$one","$off","$fire","updateAriaAttributes","attributes","attr","nodeName","indexOf","nodeValue","NotifymeForm","emailIsValid","timeToClose","handleSubmit","handlePrivacyChange","handleEmailChange","SELECTORS","form","submitBtn","privacy","email","invalidFeedback","CLASSES","loading","invalid","visible","addEventListener","preventDefault","checkboxPrivacy","querySelector","setErrors","checked","emailInput","parentElement","classList","add","manageData","test","value","remove","removeAttribute","currentTarget","isError","privacyError","checkboxParent","closest","async","response","sendData","setFeedbackMessage","success","ev","console","error","isSuccess","feedbackIcon","modalContent","style","display","modalFeedback","innerHTML","setTimeout","formData","FormData","fetch","endpoint","method","body","headers","then","json","focusableSelectors","getAllFocusableElements","querySelectorAll"],"sourceRoot":""}