{"version":3,"sources":["webpack:///./pericles/utility/validation/index.ts","webpack:///./pericles/widgets/alert-sign-up/js/alert-sign-up.ts"],"names":["input","select","checkbox","email","error","jsError","small","inputError","previousErrors","jsRequired","isEmail","prototype","isSelected","selectElement","selectedIndex","isChecked","checked","validationHandler","condition","element","document","getElementById","getAttribute","remove","setAttribute","classList","clearError","isMsgExist","errElement","createElement","textContent","add","parentNode","querySelector","selectors","appendChild","focus","showValidationError","validate","e","form","target","invalidFields","querySelectorAll","this","forEach","requiredElement","tagName","texts","push","includes","FormValidation","Selectors","Elements","ClassList","Texts","spinner","show","hide","opened","required","html","successAlert","alertSignUpLink","alertSignUpSection","alertSignUpForm","alertVerifyEmail","alertUnVerifyEmail","alertSignUpBox","userEmail","userLocation","formExtra","formExtraInner","recaptcha","formFooter","formCollapse","continueBtn","verifyEmailBtn","emailAddress","emailRequiredMark","errorMsg","contactSupport","piplCheckbox","piplInput","elements","flags","isPIPLEnabled","chinaSelected","isRegionChina","noSelection","expandExtraElements","contains","value","setTimeout","handleFormExtraHeight","style","maxHeight","offsetHeight","chinaPipleViewer","chinaCheckboxViewer","chinaSelectHandler","options","text","toLowerCase","piplEnabled","china","display","removeAttribute","widgetRebuilding","data","parsedHtml","UX","utils","parseHtml","innerHTML","init","recaptchaReInit","requestVerifyEmail","window","adobeDataLayer","adobeDigitalData","eTOCEvents","requestVerification","requestURL","$","ajax","type","url","success","result","hideAlertUnVerifyEmail","console","log","message","showSuccessAlert","successCTA","signUpForEmailAlerts","preventDefault","subscribeLink","fetch","then","res","location","href","catch","err","handleContactSupport","currentTarget","setElements","setFlags","eventListeners","addEventListener","once","formSubmit","bind","formValidation","formAction","action","formData","FormData","URLSearchParams","toString","replaceAll","response","submitForm","requestVerificationShown","recaptchaSrc","previousElementSibling","src","headScripts","head","script","length","append"],"mappings":"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","file":"js/alertSignUpSection-e77ccd10588072cb9828.js","sourcesContent":["import {\n ComponentElements,\n ComponentInjector,\n ComponentObject,\n ComponentService,\n ComponentSelectors,\n Validator,\n Injectable\n} from '@atypon/ui-utils';\n\nclass Texts extends ComponentObject {\n input = \"INPUT\";\n select = \"SELECT\";\n checkbox = \"checkbox\";\n email = \"email\"\n}\n\nclass ClassList extends ComponentObject {\n error = \"error\";\n jsError = \"js-error\";\n small = \"small\";\n inputError = \"input--error\";\n}\n\nclass Selectors extends ComponentSelectors {\n previousErrors = '.error:not(.js-error)';\n jsRequired = '.js-required';\n}\n\nclass Elements extends ComponentElements { }\n\ninterface FormValidation extends ComponentService { }\n\n@Injectable()\n@ComponentInjector(Selectors, Elements, ClassList, Texts)\nclass FormValidation {\n\n /**\n * check if it matches email schema\n */\n isEmail(email: string | HTMLInputElement) {\n return Validator.prototype.isEmail(email)\n }\n\n /**\n * check if some option was selected\n */\n isSelected(selectElement: HTMLSelectElement) {\n return selectElement.selectedIndex > 0;\n };\n\n /**\n * check if checkbox was checked\n */\n isChecked(checkbox: HTMLInputElement) {\n return checkbox.checked;\n };\n\n /**\n * helper , used within this class only\n */\n validationHandler(condition, element) {\n const showValidationError = element => {\n const isMsgExist = document.getElementById(`${element.getAttribute('name')}-invalid`);\n let errElement = document.createElement('div');\n errElement.textContent = element.getAttribute('data-error-msg');\n errElement.classList.add(this.classList.error, this.classList.small, this.classList.jsError);\n errElement.setAttribute('id', `${element.getAttribute('name')}-invalid`);\n element.parentNode.querySelector(this.selectors.previousErrors)?.remove();\n isMsgExist || element.parentNode.appendChild(errElement);\n element.setAttribute('prev-describedby', element.getAttribute('aria-describedby'));\n element?.setAttribute('aria-describedby', errElement.getAttribute('id'));\n element?.classList.add(this.classList.inputError);\n element.focus();\n };\n\n const clearError = element => {\n document.getElementById(`${element.getAttribute('name')}-invalid`)?.remove();\n element?.getAttribute('prev-describedby') &&\n element?.setAttribute('aria-describedby', element?.getAttribute('prev-describedby'));\n element?.classList.remove(this.classList.inputError);\n };\n\n if (!condition) {\n showValidationError(element);\n return true;\n }\n clearError(element);\n return false;\n };\n\n\n\n /**\n * need to add '.js-required' to the required field + data-error-msg\n * returns true if there is an invalid field\n */\n\n validate(e) {\n const form = e.target;\n let invalidFields = [];\n\n form.querySelectorAll(this.selectors.jsRequired).forEach(requiredElement => {\n const elementType = requiredElement.tagName;\n let condition = false;\n\n switch (elementType) {\n case this.texts.input:\n if (requiredElement.getAttribute('type') === this.texts.email) {\n if (this.isEmail(requiredElement)) {\n condition = true;\n }\n } else if (requiredElement.getAttribute('type') === this.texts.checkbox) {\n if (this.isChecked(requiredElement)) {\n condition = true;\n }\n }\n break;\n\n case this, this.texts.select:\n if (this.isSelected(requiredElement)) {\n condition = true;\n }\n break;\n\n default:\n break;\n }\n\n invalidFields.push(this.validationHandler(condition, requiredElement));\n });\n\n return invalidFields.includes(true);\n };\n\n}\n\nexport default FormValidation","// @ts-nocheck \nimport {Inject} from \"@atypon/ui-utils\"\nimport FormValidation from '../../../utility/validation';\nexport default class AlertSignUp {\n\n @Inject()\n protected formValidation:FormValidation\n\n classList = {\n spinner: 'js--loading',\n show: 'js--show',\n hide: 'hidden',\n opened: 'js--opened',\n required: 'js-required'\n };\n\n html = {\n spinner: '
',\n successAlert: `\n \n `,\n };\n\n selectors = {\n alertSignUpLink: '.alert-sign-up__link',\n alertSignUpSection: '.alert-sign-up',\n alertSignUpForm: '.alert-sign-up__form',\n alertVerifyEmail: '.alert-verify-email',\n alertUnVerifyEmail: '.alert-unVerify-email',\n alertSignUpBox: '.alert-sign-up__box',\n userEmail: 'input[name=\"email\"]',\n userLocation: '#alert-user-location',\n formExtra: '.alert-sign-up__form-extra',\n formExtraInner: '.alert-sign-up__form-extra .inner',\n recaptcha: '.g-recaptcha',\n formFooter: '.alert-sign-up__form-footer',\n formCollapse: '.alert-sign-up__form-collapse',\n continueBtn: '.continue-btn',\n verifyEmailBtn: '.verify-email-btn',\n emailAddress: '.email-address',\n emailRequiredMark: '.email-required-mark',\n errorMsg: '#marketableError',\n contactSupport: '.text-reset',\n piplCheckbox: '.pipl-checkbox',\n piplInput: 'input[name=\"acceptPIPLConsent\"]',\n };\n\n elements = {\n alertSignUpLink: null,\n alertSignUpSection: null,\n alertSignUpForm: null,\n alertVerifyEmail: null,\n alertUnVerifyEmail: null,\n alertSignUpBox: null,\n userEmail: null,\n userLocation: null,\n formExtra: null,\n formExtraInner: null,\n recaptcha: null,\n formFooter: null,\n formCollapse: null,\n continueBtn: null,\n verifyEmailBtn: null,\n emailAddress: null,\n emailRequiredMark: null,\n contactSupport: null,\n piplCheckbox: null,\n piplInput: null,\n };\n\n flags = {\n isPIPLEnabled: null,\n chinaSelected: null,\n isRegionChina: null,\n noSelection: null,\n };\n\n setElements() {\n this.elements.alertSignUpLink = document.querySelector(this.selectors.alertSignUpLink);\n this.elements.alertSignUpSection = document.querySelector(this.selectors.alertSignUpSection);\n this.elements.alertSignUpForm = this.elements.alertSignUpSection.querySelector(this.selectors.alertSignUpForm);\n this.elements.alertVerifyEmail = this.elements.alertSignUpSection.querySelector(\n this.selectors.alertVerifyEmail\n );\n this.elements.alertUnVerifyEmail = this.elements.alertSignUpSection.querySelector(\n this.selectors.alertUnVerifyEmail\n );\n this.elements.alertSignUpBox = this.elements.alertSignUpSection.querySelector(this.selectors.alertSignUpBox);\n this.elements.userEmail = this.elements.alertSignUpSection.querySelector(this.selectors.userEmail);\n this.elements.userLocation = this.elements.alertSignUpSection.querySelector(this.selectors.userLocation);\n this.elements.formExtra = this.elements.alertSignUpSection.querySelector(this.selectors.formExtra);\n this.elements.formExtraInner = this.elements.alertSignUpSection.querySelector(this.selectors.formExtraInner);\n this.elements.recaptcha = this.elements.alertSignUpSection.querySelector(this.selectors.recaptcha);\n this.elements.formFooter = this.elements.alertSignUpSection.querySelector(this.selectors.formFooter);\n this.elements.formCollapse = this.elements.alertSignUpSection.querySelector(this.selectors.formCollapse);\n this.elements.continueBtn = this.elements.alertSignUpSection.querySelector(this.selectors.continueBtn);\n this.elements.verifyEmailBtn = this.elements.alertSignUpSection.querySelector(this.selectors.verifyEmailBtn);\n this.elements.emailAddress = this.elements.alertSignUpSection.querySelector(this.selectors.emailAddress);\n this.elements.emailRequiredMark = this.elements.alertSignUpSection.querySelector(this.selectors.emailRequiredMark);\n this.elements.contactSupport = this.elements.alertSignUpSection.querySelector(this.selectors.contactSupport);\n this.elements.piplCheckbox = this.elements.alertSignUpSection.querySelector(this.selectors.piplCheckbox);\n this.elements.piplInput = this.elements.piplCheckbox?.querySelector(this.selectors.piplInput);\n }\n\n setFlags() {\n this.flags.isPIPLEnabled = this.elements.piplCheckbox?.getAttribute('data-pipl-feature-enabled');\n }\n\n constructor() {\n this.init();\n }\n\n init() {\n this.setElements();\n this.setFlags();\n this.eventListeners();\n this.flags.isPIPLEnabled && this.chinaPipleViewer();\n }\n\n eventListeners() {\n this.elements.verifyEmailBtn?.addEventListener('click', this.requestVerifyEmail);\n this.elements.continueBtn?.addEventListener('click', this.expandExtraElements, {once: true});\n this.elements.alertSignUpForm?.addEventListener('submit', this.formSubmit.bind(this));\n this.elements.alertSignUpLink?.addEventListener('click', this.signUpForEmailAlerts);\n this.elements.contactSupport?.addEventListener('click', e => this.handleContactSupport(e), {once: true});\n this.flags.isPIPLEnabled && this.elements.userLocation.addEventListener('change', this.chinaSelectHandler);\n }\n\n expandExtraElements = () => {\n if (!this.elements.formExtra.classList.contains(this.classList.opened)) {\n this.elements.formExtra.classList.add(this.classList.opened);\n this.elements.formCollapse.classList.add(this.classList.hide);\n this.elements.formFooter.classList.remove(this.classList.hide);\n this.elements.userEmail.value === '' ? this.elements.userEmail.focus() : this.elements.userLocation.focus();\n this.elements.userEmail.classList.add(this.classList.required);\n this.elements.userEmail.setAttribute('aria-required', 'true');\n this.elements.emailRequiredMark.classList.remove('hidden');\n\n setTimeout(() => {\n this.handleFormExtraHeight();\n }, 50);\n }\n };\n\n handleFormExtraHeight = () => {\n this.elements.formExtra.querySelector(this.selectors.errorMsg)\n ? (this.elements.formExtra.style.maxHeight = `${this.elements.formExtraInner.offsetHeight + 100}px`)\n : (this.elements.formExtra.style.maxHeight = `${this.elements.formExtraInner.offsetHeight + 20}px`);\n }\n\n chinaPipleViewer = () => {\n this.flags.isRegionChina = this.elements.piplCheckbox.getAttribute('data-pipl-china');\n this.chinaCheckboxViewer(this.flags.isPIPLEnabled, this.flags.isRegionChina);\n this.chinaSelectHandler();\n };\n\n chinaSelectHandler = () => {\n this.flags.chinaSelected =\n this.elements.userLocation.options[this.elements.userLocation.selectedIndex].text.toLowerCase() === 'china';\n this.flags.noSelection =\n this.elements.userLocation.options[this.elements.userLocation.selectedIndex].getAttribute('disabled') ===\n 'disabled';\n this.chinaCheckboxViewer(\n this.flags.isPIPLEnabled,\n this.flags.chinaSelected || (this.flags.isRegionChina && this.flags.noSelection)\n );\n };\n\n chinaCheckboxViewer = (piplEnabled, china) => {\n if (piplEnabled && china) {\n this.elements.piplCheckbox.style.display = 'block';\n this.elements.piplInput.setAttribute('required', true);\n this.flags.isRegionChina\n ? (this.elements.formExtra.style.maxHeight = '578px')\n : (this.elements.formExtra.style.maxHeight = `${\n this.elements.formExtra.offsetHeight + this.elements.piplCheckbox.offsetHeight\n }px`);\n } else if (!this.flags.isRegionChina) {\n this.elements.piplCheckbox.style.display = 'none';\n this.elements.piplInput.removeAttribute('required');\n }\n };\n\n formSubmit(e) {\n e.preventDefault(); \n if (this.formValidation.validate(e)) {\n this.handleFormExtraHeight();\n return\n }\n let formAction = e.target.action,\n formData = new FormData(e.target),\n formSerialize = new URLSearchParams(formData).toString(),\n url = `${formAction}&${formSerialize}&submit=true`;\n\n if (url.includes('=on')) {\n url = url.replaceAll('=on', '=true');\n } else if (url.includes('=off')) {\n url = url.replaceAll('=off', '=false');\n }\n this.elements.alertSignUpSection.classList.add('js--loading');\n fetch(url)\n .then(response => response.text())\n .then(this.widgetRebuilding)\n .then(() => {\n this.elements.formExtra?.querySelector(this.selectors.errorMsg) && this.expandExtraElements();\n !this.elements.formExtra?.querySelector(this.selectors.errorMsg) &&\n window.adobeDataLayer &&\n UX.adobeDigitalData.eTOCEvents.submitForm();\n this.elements.alertSignUpSection.querySelector(this.selectors.alertUnVerifyEmail) &&\n window.adobeDataLayer &&\n UX.adobeDigitalData.eTOCEvents.requestVerificationShown();\n });\n }\n\n widgetRebuilding = data => {\n let parsedHtml = UX.utils.parseHtml(data).querySelector(\"#etoc-signup\").innerHTML\n this.elements.alertSignUpSection.classList.remove('js--loading');\n this.elements.alertSignUpSection.innerHTML=parsedHtml;\n this.init();\n this.recaptchaReInit();\n };\n\n recaptchaReInit() {\n if (this.elements.recaptcha) {\n const recaptchaSrc = this.elements.recaptcha.previousElementSibling.src,\n headScripts = document.head.querySelectorAll(`script[src=\"${recaptchaSrc}\"]`),\n script = document.createElement('script');\n\n if (headScripts.length) headScripts.forEach(script => script.remove());\n script.type = 'text/javascript';\n if (recaptchaSrc) {\n script.src = recaptchaSrc;\n document.head.append(script);\n }\n }\n }\n\n requestVerifyEmail = () => {\n window.adobeDataLayer && UX.adobeDigitalData.eTOCEvents.requestVerification();\n const requestURL = this.elements.verifyEmailBtn.getAttribute('data-url'),\n hideAlertUnVerifyEmail = data => {\n this.elements.alertSignUpSection.innerHTML = `\n `;\n\n this.elements.alertSignUpBox?.focus();\n };\n\n $.ajax({\n type: 'GET',\n url: requestURL,\n success: function (data) {\n if (data.result === 0) hideAlertUnVerifyEmail(data);\n },\n error: function (data) {\n console.log(data.message); // eslint-disable-line no-console\n },\n });\n };\n\n showSuccessAlert = () => {\n this.elements.alertSignUpSection.innerHTML = this.html.successAlert;\n window.adobeDataLayer && UX.adobeDigitalData.eTOCEvents.successCTA();\n };\n\n signUpForEmailAlerts = e => {\n e.preventDefault();\n const subscribeLink = this.elements.alertSignUpLink.getAttribute('href');\n fetch(subscribeLink)\n .then(res => {\n if (res.url.includes('redirect')) {\n window.location.href = res.url;\n } else {\n this.showSuccessAlert();\n }\n })\n .catch(err => console.log(err.message)); // eslint-disable-line no-console\n };\n\n handleContactSupport = e => {\n e.preventDefault();\n window.adobeDataLayer && UX.adobeDigitalData.eTOCEvents.contactSupport();\n window.location.href = e.currentTarget.getAttribute('href');\n };\n}\n"],"sourceRoot":""}