{"version":3,"file":"scripts/app.a4fa0819.js","mappings":"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","sources":["webpack://@priva/b2c-templates/webpack/runtime/chunk loaded","webpack://@priva/b2c-templates/./src/scripts/shared/visibility-toggler.js","webpack://@priva/b2c-templates/./src/scripts/shared/observer.js","webpack://@priva/b2c-templates/./src/scripts/shared/utilities.js","webpack://@priva/b2c-templates/./src/scripts/templates/self-asserted.dom.js","webpack://@priva/b2c-templates/./src/scripts/templates/auth.js","webpack://@priva/b2c-templates/./src/scripts/templates/self-asserted.js","webpack://@priva/b2c-templates/./src/scripts/templates/b2c.js","webpack://@priva/b2c-templates/./src/scripts/templates/unified.js","webpack://@priva/b2c-templates/./src/scripts/templates/account-linked.js","webpack://@priva/b2c-templates/./src/scripts/main.js","webpack://@priva/b2c-templates/./src/scripts/shared/progress.js","webpack://@priva/b2c-templates/webpack/bootstrap","webpack://@priva/b2c-templates/webpack/runtime/global","webpack://@priva/b2c-templates/webpack/runtime/hasOwnProperty shorthand","webpack://@priva/b2c-templates/webpack/runtime/jsonp chunk loading","webpack://@priva/b2c-templates/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","/**\r\n * Prepare wrapper for togglers\r\n *\r\n * @type {HTMLDivElement}\r\n */\r\nconst togglerWrapper = document.createElement('div');\r\ntogglerWrapper.classList.add('ui-toggle');\r\n\r\nconst noErrorElsQuery = '[aria-hidden]:not(.error)';\r\nconst errorElsQuery = '.error[aria-hidden]';\r\n\r\n\r\n/**\r\n * Setup conditional togglers\r\n */\r\nexport function setupConditionalTogglers() {\r\n document.body.appendChild(togglerWrapper);\r\n\r\n createConditionalToggler(noErrorElsQuery, 'fa-eye' , 'slash');\r\n createConditionalToggler(errorElsQuery, 'fa-bell' , 'slash');\r\n}\r\n\r\n\r\n/**\r\n * Create conditional togglers\r\n *\r\n * @param elsQuery\r\n * @param iconClass\r\n * @param iconModifierClass\r\n */\r\nexport function createConditionalToggler(elsQuery, iconClass, iconModifierClass) {\r\n const toggler = document.createElement('button');\r\n toggler.setAttribute('data-action', 'show');\r\n toggler.classList.add('ui-toggle__trigger', 'ui-toggle__trigger--base', 'far', `${iconClass}-${iconModifierClass}`);\r\n\r\n togglerWrapper.appendChild(toggler);\r\n\r\n toggler.addEventListener('click', () => toggle());\r\n toggler.addEventListener('keydown', () => toggle());\r\n\r\n function toggle() {\r\n const els = document.querySelectorAll(elsQuery);\r\n\r\n if (toggler.getAttribute('data-action') === 'show') {\r\n toggler.setAttribute('data-action', 'hide');\r\n conditionalToggler(true, els);\r\n } else {\r\n toggler.setAttribute('data-action', 'show');\r\n conditionalToggler(false, els);\r\n }\r\n\r\n toggler.classList.toggle(iconClass);\r\n toggler.classList.toggle(`${iconClass}-${iconModifierClass}`);\r\n }\r\n}\r\n\r\n\r\n/**\r\n * Conditional toggler\r\n *\r\n * @param show\r\n * @param els\r\n */\r\nexport function conditionalToggler(show, els) {\r\n for (let i = 0; i < els.length; i++) {\r\n if (show) {\r\n showEl(els[i]);\r\n } else {\r\n hideEl(els[i]);\r\n }\r\n }\r\n}\r\n\r\n\r\n/**\r\n * Conditional hide\r\n *\r\n * @param el\r\n */\r\nexport function hideEl(el) {\r\n el.setAttribute('aria-hidden', 'true');\r\n el.style.display = 'none';\r\n\r\n if (el.classList.contains('itemLevel')) {\r\n el.classList.remove('show');\r\n }\r\n}\r\n\r\n\r\n/**\r\n * Conditional show\r\n * @param el\r\n */\r\nexport function showEl(el) {\r\n el.setAttribute('aria-hidden', 'false');\r\n el.style.removeProperty('display');\r\n\r\n if (el.classList.contains('itemLevel')) {\r\n el.classList.add('show');\r\n }\r\n}\r\n","export const MutationObserver = window.MutationObserver || window.WebKitMutationObserver;\r\n\r\n/**\r\n * Observe DOM\r\n *\r\n * Uses mutation observer with fallback\r\n *\r\n * @type {Function}\r\n */\r\nexport const observeDom = (function () {\r\n return function (obj, config, callback, log = false) {\r\n if (!obj || !obj.nodeType === 1) return; // dom element validator\r\n\r\n if (MutationObserver) {\r\n // define a new observer\r\n const obs = new MutationObserver(function (mutations, observer) {\r\n callback(mutations, observer);\r\n\r\n if (log) {\r\n let addedNodes = [], removedNodes = [], changedNodes = [];\r\n\r\n mutations.forEach(record => record.addedNodes.length & addedNodes.push(...record.addedNodes));\r\n mutations.forEach(record => record.removedNodes.length & removedNodes.push(...record.removedNodes));\r\n mutations.forEach(record => (record.addedNodes.length === 0 && record.removedNodes.length === 0) ? changedNodes.push(record.target) : '');\r\n\r\n console.log('Added:', addedNodes, 'Removed:', removedNodes, 'Changed:', changedNodes);\r\n }\r\n });\r\n // have the observer observe foo for changes in children\r\n obs.observe(obj, config);\r\n } else if (window.addEventListener) {\r\n obj.addEventListener('DOMNodeInserted', callback);\r\n obj.addEventListener('DOMNodeRemoved', callback);\r\n }\r\n };\r\n})();\r\n\r\n/**\r\n *\r\n *\r\n * @param observer\r\n * @param callback\r\n */\r\nexport const observeDomDisconnect = (observer, callback) => {\r\n if (MutationObserver) {\r\n observer.disconnect();\r\n } else if (window.addEventListener) {\r\n observer.removeEventListener('DOMNodeInserted', callback);\r\n observer.removeEventListener('DOMNodeRemoved', callback);\r\n }\r\n};\r\n","/**\r\n * Wrap an element\r\n *\r\n * @param el\r\n * @param wrapper\r\n */\r\nexport function wrapEl(el, wrapper) {\r\n el.parentNode.insertBefore(wrapper, el);\r\n wrapper.appendChild(el);\r\n}\r\n\r\n\r\n/**\r\n * Insert new node after reference node\r\n *\r\n * @param referenceNode\r\n * @param newNode\r\n */\r\nexport function insertAfter(referenceNode, newNode) {\r\n referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);\r\n}\r\n\r\n\r\n/**\r\n * Debounce\r\n *\r\n * Returns a function, that, as long as it continues to be invoked, will not\r\n * be triggered. The function will be called after it stops being called for\r\n * N milliseconds. If `immediate` is passed, trigger the function on the\r\n * leading edge, instead of the trailing.\r\n *\r\n * credits: underscore.js\r\n *\r\n * @param func\r\n * @param wait\r\n * @param immediate\r\n * @returns {Function}\r\n */\r\nexport function debounce(func, wait, immediate) {\r\n let timeout;\r\n return function () {\r\n const context = this, args = arguments;\r\n const later = function () {\r\n timeout = null;\r\n if (!immediate) func.apply(context, args);\r\n };\r\n const callNow = immediate && !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n if (callNow) func.apply(context, args);\r\n };\r\n}\r\n\r\n\r\n/**\r\n * Replace string by prefix\r\n *\r\n * Replace every occurrence in a string starting with provided prefix\r\n *\r\n * @param string\r\n * @param prefix\r\n * @param value\r\n * @returns {*}\r\n */\r\nexport function replaceStringByPrefix(string, prefix, value) {\r\n const regx = new RegExp('\\\\b' + prefix + '[^ ]*[ ]?\\\\b', 'g');\r\n return string.replace(regx, `${prefix}${value}`);\r\n}\r\n\r\n\r\nexport const replaceFieldvalue = (e, pattern, modifiers) => {\r\n e.preventDefault();\r\n const regex = new RegExp(pattern, modifiers);\r\n\r\n let pastedText = '';\r\n\r\n if (e.clipboardData && e.clipboardData.getData) {// Standards Compliant FIRST!\r\n pastedText = e.clipboardData.getData('text/plain');\r\n } else if (window.clipboardData && window.clipboardData.getData) {// IE\r\n pastedText = window.clipboardData.getData('Text');\r\n }\r\n\r\n e.target.value = pastedText.replace(regex, '');\r\n};\r\n","export const fieldList = document.querySelector('#attributeList > ul');\r\n\r\n\r\n/**\r\n * Email\r\n */\r\nexport const emailField = document.getElementById('email');\r\nexport const emailFieldlabel = document.querySelector('label[for=\"email\"]');\r\nexport const emailFieldEditButton = document.getElementById('email_ver_but_edit');\r\nexport const emailFieldErrorFormat = document.getElementById('email_incorrect_format');\r\nexport const emailFieldWrapper = document.createElement('div');\r\nexport const emailFieldReadOnly = document.createElement('span');\r\n\r\n\r\n/**\r\n * Password\r\n */\r\nexport const passwordChooseField = document.getElementById('newPassword');\r\nexport const passwordConfirmField = document.getElementById('reenterPassword');\r\nexport const passwordForgotLink = document.getElementById('forgotPassword');\r\n\r\n/**\r\n * MFA checkbox\r\n */\r\nexport const mfaField = document.getElementById('extension_mfaEnabled_true');\r\n\r\n\r\n/**\r\n * Verification code\r\n */\r\nexport const verificationSendButton = document.getElementById('email_ver_but_send');\r\nexport const verificationCodeLabel = document.getElementById('email_ver_input_label');\r\nexport const verificationCodeField = document.getElementById('email_ver_input');\r\nexport const verificationCodeHelp = document.getElementById('verification-code-help');\r\nexport const verificationCodeVerifyButton = document.getElementById('email_ver_but_verify');\r\nexport const verificationCodeResendButton = document.getElementById('email_ver_but_resend');\r\nexport const verificationFieldSuccess = document.getElementById('email_success');\r\nexport const verificationFieldErrorRetry = document.getElementById('email_fail_retry');\r\nexport const verificationFieldErrorNoRetry = document.getElementById('email_fail_no_retry');\r\nexport const verificationFieldErrorThrottled = document.getElementById('email_fail_throttled');\r\nexport const verificationFieldErrorCodeExpired = document.getElementById('email_fail_code_expired');\r\nexport const verificationFieldErrorServer = document.getElementById('email_fail_server');\r\nexport const verificationCodeFieldWrapper = document.createElement('div');\r\n\r\n\r\n/**\r\n * Display name\r\n */\r\nexport const displayNameField = document.getElementById('displayName');\r\n\r\n\r\n/**\r\n * CTA\r\n */\r\nexport const createAccountButton = document.getElementById('continue');\r\n","export const authTemplate = document.querySelector('.template-auth');\r\n","import { debounce, insertAfter, replaceFieldvalue, replaceStringByPrefix, wrapEl } from '../shared/utilities';\r\n\r\nimport * as b2c from './self-asserted.dom';\r\nimport { b2cPage, isB2cDemo } from \"./b2c\";\r\n\r\nimport { setupPasswordTogglers } from \"../shared/password-toggler\";\r\nimport { hideEl, showEl } from \"../shared/visibility-toggler\";\r\nimport { authTemplate } from \"./auth\";\r\nimport { observeDom, observeDomDisconnect } from \"../shared/observer\";\r\n\r\n\r\n/**\r\n * Switch step\r\n *\r\n * @param targetStep\r\n */\r\nexport function switchStep(targetStep) {\r\n const stepPrefix = `${authTemplate.id}--step-`;\r\n\r\n if (targetStep === 0) {\r\n authTemplate.classList.add(`${stepPrefix}0`);\r\n } else {\r\n authTemplate.className = replaceStringByPrefix(authTemplate.className, stepPrefix, targetStep);\r\n }\r\n\r\n /* Trigger template specific page logic */\r\n switch(b2cPage) {\r\n case 'sign-up':\r\n initSignUp(targetStep);\r\n break;\r\n case 'reset-password':\r\n if(b2c.emailField) {\r\n initResetPasswordCheck(targetStep);\r\n } else {\r\n initResetPassword(targetStep);\r\n }\r\n break;\r\n }\r\n}\r\n\r\n\r\nexport function initSignUp(targetStep) {\r\n selfAssertedEmail(targetStep);\r\n selfAssertedVerificationCode(targetStep);\r\n selfAssertedPassword(targetStep);\r\n selfAssertedMFA(targetStep);\r\n selfAssertedDisplayName(targetStep);\r\n selfAssertedCtaButtons(targetStep);\r\n}\r\n\r\nexport function initResetPasswordCheck(targetStep) {\r\n selfAssertedEmail(targetStep);\r\n selfAssertedVerificationCode(targetStep);\r\n selfAssertedCtaButtons(targetStep);\r\n}\r\n\r\nexport function initResetPassword(targetStep) {\r\n selfAssertedPassword(targetStep);\r\n}\r\n\r\n\r\n/**\r\n * Initialize SelfAsserted template logic\r\n */\r\nexport function initSelfAsserted() {\r\n /* Separate preparation(step 0) logic from step 1 logic */\r\n switchStep(0);\r\n switchStep(1);\r\n}\r\n\r\n\r\n/**\r\n * Email logic\r\n *\r\n * @param step\r\n */\r\nexport function selfAssertedEmail(step) {\r\n switch (step) {\r\n case 1:\r\n hideEl(b2c.emailFieldEditButton);\r\n break;\r\n case 2:\r\n if(isB2cDemo) {\r\n b2c.emailField.setAttribute('disabled', 'true');\r\n b2c.emailField.value = 'dev@test.me';\r\n }\r\n\r\n /* Set readonly email field */\r\n showEl(b2c.emailFieldEditButton);\r\n hideEl(b2c.emailField);\r\n\r\n b2c.emailFieldlabel.removeAttribute('for');\r\n b2c.emailFieldReadOnly.innerText = b2c.emailField.value;\r\n\r\n b2c.emailFieldEditButton.classList.add('show');\r\n showEl(b2c.emailFieldReadOnly);\r\n\r\n break;\r\n case 3:\r\n break;\r\n default:\r\n b2c.emailField.setAttribute('placeholder', '');\r\n\r\n b2c.emailFieldWrapper.classList.add('email-field-wrapper', 'form-control-wrapper');\r\n b2c.emailFieldWrapper.setAttribute('id', 'email-field-wrapper');\r\n\r\n b2c.emailFieldReadOnly.classList.add('email-field-readonly');\r\n b2c.emailFieldReadOnly.setAttribute('id', 'email-field-readonly');\r\n\r\n /* Manipulate dom */\r\n insertAfter(b2c.emailField, b2c.emailFieldReadOnly);\r\n wrapEl(b2c.emailFieldReadOnly, b2c.emailFieldWrapper);\r\n b2c.emailFieldWrapper.appendChild(b2c.emailFieldEditButton);\r\n insertAfter(b2c.emailFieldWrapper, b2c.emailFieldErrorFormat);\r\n\r\n /* Reload page and restart flow to change email */\r\n b2c.emailFieldEditButton.addEventListener('click', function () {\r\n location.reload();\r\n });\r\n }\r\n}\r\n\r\n\r\n/**\r\n * Password logic\r\n *\r\n * @param step\r\n */\r\nexport function selfAssertedPassword(step) {\r\n const passwordChooseWrapper = b2c.passwordChooseField.closest('li');\r\n const passwordConfirmWrapper = b2c.passwordConfirmField.closest('li');\r\n\r\n switch (step) {\r\n case 1:\r\n break;\r\n case 2:\r\n break;\r\n case 3:\r\n if (b2cPage === 'sign-up') {\r\n showEl(passwordChooseWrapper);\r\n showEl(passwordConfirmWrapper);\r\n }\r\n break;\r\n default:\r\n b2c.passwordChooseField.setAttribute('placeholder', '');\r\n b2c.passwordConfirmField.setAttribute('placeholder', '');\r\n\r\n if (b2cPage === 'sign-up') {\r\n hideEl(passwordChooseWrapper);\r\n hideEl(passwordConfirmWrapper);\r\n }\r\n\r\n /* TODO: setup togglers for reset-password page (listen for insertion of password fields in mutation observer) */\r\n /* TODO: add password toggle triggers without wrapping the password field (this destroys B2C validation messages toggle logic for this field somehow) */\r\n //setupPasswordTogglers();\r\n }\r\n}\r\n\r\n\r\n/**\r\n * MFA logic\r\n *\r\n * @param step\r\n */\r\nexport function selfAssertedMFA(step) {\r\n if (b2c.mfaField === null) { return; }\r\n const mfaFieldWrapper = b2c.mfaField.closest('li');\r\n\r\n switch (step) {\r\n case 1:\r\n break;\r\n case 2:\r\n break;\r\n case 3:\r\n if (b2cPage === 'sign-up') {\r\n showEl(mfaFieldWrapper);\r\n }\r\n break;\r\n default:\r\n if (b2cPage === 'sign-up') {\r\n hideEl(mfaFieldWrapper);\r\n b2c.fieldList.appendChild(mfaFieldWrapper);\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\n/**\r\n * Verification code logic\r\n * @param step\r\n */\r\nexport function selfAssertedVerificationCode(step) {\r\n const verificationButtons = b2c.verificationSendButton.closest('.buttons.verify');\r\n\r\n switch (step) {\r\n case 1:\r\n b2c.verificationSendButton.addEventListener('click', function () {\r\n if (!b2c.emailField.classList.contains('invalid')) {\r\n switchStep(2);\r\n }\r\n });\r\n\r\n break;\r\n case 2:\r\n if (b2cPage === 'sign-up' || b2cPage === 'reset-password') {\r\n const observeVerificationSuccessConfig = {\r\n attributes: true\r\n };\r\n\r\n showEl(b2c.verificationCodeHelp);\r\n observeDom(b2c.verificationFieldSuccess, observeVerificationSuccessConfig, observeVerificationSuccess);\r\n\r\n if(isB2cDemo) {\r\n b2c.verificationCodeVerifyButton.addEventListener('click', function () {\r\n b2c.verificationFieldSuccess.setAttribute('aria-hidden', 'false');\r\n });\r\n }\r\n\r\n function observeVerificationSuccess(mutations, observer) {\r\n if (b2c.verificationFieldSuccess.getAttribute('aria-hidden') === 'false') {\r\n switchStep(3);\r\n observeDomDisconnect(observer, observeVerificationSuccess);\r\n }\r\n }\r\n }\r\n\r\n if(isB2cDemo) {\r\n hideEl(b2c.verificationSendButton);\r\n showEl(b2c.verificationCodeLabel);\r\n showEl(b2c.verificationCodeField);\r\n showEl(b2c.verificationCodeVerifyButton);\r\n showEl(b2c.verificationCodeResendButton);\r\n }\r\n break;\r\n case 3:\r\n hideEl(verificationButtons);\r\n hideEl(b2c.verificationCodeLabel);\r\n hideEl(b2c.verificationCodeHelp);\r\n break;\r\n default:\r\n b2c.verificationCodeField.addEventListener('paste', function (e) {\r\n replaceFieldvalue(e, /\\D/, 'g');\r\n }, false);\r\n\r\n const processInput = debounce((e) => {\r\n e.target.value = e.target.value.replace(/\\D/g, '');\r\n }, 250);\r\n\r\n b2c.verificationCodeField.addEventListener('input', function (e) {\r\n processInput(e);\r\n }, false);\r\n\r\n b2c.verificationCodeResendButton.addEventListener('click', function () {\r\n b2c.verificationCodeField.value = '';\r\n b2c.verificationCodeField.focus();\r\n });\r\n\r\n\r\n /**\r\n * Dom changes\r\n */\r\n b2c.verificationCodeField.setAttribute('placeholder', '123456');\r\n b2c.verificationCodeField.setAttribute('autocomplete', 'nope');\r\n b2c.verificationCodeField.setAttribute('maxlength', '6');\r\n\r\n /* Wrapper */\r\n b2c.verificationCodeFieldWrapper.classList.add('verification-field-wrapper', 'form-control-wrapper');\r\n b2c.verificationCodeFieldWrapper.setAttribute('id', 'verification-field-wrapper');\r\n wrapEl(b2c.verificationCodeField, b2c.verificationCodeFieldWrapper);\r\n insertAfter(b2c.emailFieldWrapper, b2c.verificationFieldErrorServer);\r\n\r\n /* Move help text */\r\n hideEl(b2c.verificationCodeHelp);\r\n insertAfter(b2c.verificationCodeLabel, b2c.verificationCodeHelp);\r\n\r\n /* Move errors */\r\n insertAfter(b2c.verificationCodeFieldWrapper, b2c.verificationFieldErrorRetry);\r\n insertAfter(b2c.verificationCodeFieldWrapper, b2c.verificationFieldErrorNoRetry);\r\n insertAfter(b2c.verificationCodeFieldWrapper, b2c.verificationFieldErrorThrottled);\r\n insertAfter(b2c.verificationCodeFieldWrapper, b2c.verificationFieldErrorCodeExpired);\r\n }\r\n}\r\n\r\n\r\n/**\r\n * Display name logic\r\n *\r\n * @param step\r\n */\r\nexport function selfAssertedDisplayName(step) {\r\n switch (step) {\r\n case 1:\r\n break;\r\n case 2:\r\n break;\r\n case 3:\r\n if (b2cPage === 'sign-up') {\r\n showEl(b2c.displayNameField.closest('li'));\r\n }\r\n break;\r\n default:\r\n /* Remove placeholder */\r\n b2c.displayNameField.setAttribute('placeholder', '');\r\n\r\n const displayNameWrapper = b2c.displayNameField.closest('li');\r\n insertAfter(b2c.emailFieldWrapper.closest('li'), displayNameWrapper);\r\n\r\n hideEl(displayNameWrapper);\r\n }\r\n}\r\n\r\n\r\n/**\r\n * CTA buttons logic\r\n *\r\n * @param step\r\n */\r\nexport function selfAssertedCtaButtons(step) {\r\n const ctaButtons = b2c.createAccountButton.closest('.buttons');\r\n\r\n switch (step) {\r\n case 1:\r\n break;\r\n case 2:\r\n break;\r\n case 3:\r\n showEl(ctaButtons);\r\n\r\n if(isB2cDemo) {\r\n b2c.createAccountButton.addEventListener('click', function () {\r\n window.location.href = 'account-linked.html';\r\n });\r\n }\r\n\r\n break;\r\n default:\r\n hideEl(ctaButtons);\r\n }\r\n}\r\n","import { loadingAnimation } from '../shared/loader';\r\nimport { observeDom, observeDomDisconnect } from '../shared/observer';\r\nimport { initSelfAsserted } from \"./self-asserted\";\r\nimport { initUnified } from \"./unified\";\r\n\r\n\r\n/**\r\n * Container element where Microsoft B2C API nodes are injected\r\n *\r\n * @type {HTMLElement}\r\n */\r\nexport const b2cContainer = document.getElementById('api');\r\n\r\n\r\n/**\r\n * Check whether b2cContainer HTMLElement exists\r\n *\r\n * @type {boolean}\r\n */\r\nexport const isB2cpage = !!b2cContainer;\r\n\r\n\r\n/**\r\n * Name of the b2c page\r\n *\r\n * @type {string}\r\n */\r\nexport const b2cPage = !!b2cContainer ? b2cContainer.dataset.page : '';\r\n\r\n\r\n/**\r\n * Name of the b2c template\r\n *\r\n * @type {string}\r\n */\r\nexport const b2cTemplate = !!b2cContainer ? b2cContainer.dataset.name : '';\r\n\r\n\r\n/**\r\n * Check whether Microsoft B2C API nodes are injected\r\n *\r\n * @type {boolean}\r\n */\r\nexport let isB2cApiLoaded = false;\r\n\r\n\r\n/**\r\n * B2C demo\r\n * @type {boolean}\r\n */\r\nexport const isB2cDemo = false;\r\n\r\n\r\n/**\r\n * Use loader\r\n * @type {boolean}\r\n */\r\nexport const useLoader = false;\r\n\r\n\r\n/**\r\n * Fake API change\r\n */\r\nconst fakeApiChange = (timeOut) => {\r\n setTimeout(() => {\r\n console.log('fake change');\r\n const fakeNode = document.createElement('span');\r\n b2cContainer.appendChild(fakeNode);\r\n }, timeOut);\r\n};\r\n\r\n\r\n/**\r\n * Setup B2C template logic\r\n */\r\nexport const initB2C = () => {\r\n if(useLoader) {\r\n const content = document.getElementById('content');\r\n const contentLoader = document.getElementById('content-loader');\r\n const stopAnimation = loadingAnimation(500, 1000, content, contentLoader);\r\n }\r\n\r\n const observeB2cApiConfig = {\r\n childList: true,\r\n subtree: true\r\n };\r\n\r\n /* Only initiate loadingAnimation and observeDom if API content is not injected jet */\r\n if (b2cContainer && b2cContainer.childNodes.length !== 0 && !isB2cDemo) {\r\n setupB2c();\r\n\r\n if(useLoader) {\r\n stopAnimation();\r\n }\r\n\r\n isB2cApiLoaded = true;\r\n }\r\n\r\n observeDom(b2cContainer, observeB2cApiConfig, observeB2cApi);\r\n\r\n function observeB2cApi(mutations, observer) {\r\n if (!isB2cApiLoaded) {\r\n setupB2c();\r\n\r\n if(useLoader) {\r\n stopAnimation();\r\n }\r\n }\r\n\r\n /**\r\n * Set to true in order to stop triggering script on api dom change\r\n * disconnect on detected change\r\n *\r\n * @type {boolean}\r\n */\r\n isB2cApiLoaded = true;\r\n observeDomDisconnect(observer, observeB2cApi);\r\n }\r\n\r\n if(isB2cDemo) {\r\n fakeApiChange(500);\r\n }\r\n};\r\n\r\n\r\n/**\r\n * Check which B2C logic to initialize\r\n */\r\nexport const setupB2c = () => {\r\n switch (b2cTemplate) {\r\n case 'SelfAsserted':\r\n initSelfAsserted();\r\n break;\r\n case 'Unified':\r\n initUnified();\r\n break;\r\n default:\r\n }\r\n};\r\n","import { setupPasswordTogglers } from \"../shared/password-toggler\";\r\nimport * as b2c from \"./self-asserted.dom\";\r\n\r\n\r\n/**\r\n * Initialize Unified template logic\r\n */\r\nexport function initUnified() {\r\n unifiedEmail();\r\n unifiedPassword();\r\n}\r\n\r\n\r\n/**\r\n * Password logic\r\n */\r\nexport function unifiedEmail() {\r\n /* Remove placeholder */\r\n b2c.emailField ? b2c.emailField.setAttribute('placeholder', '') : '';\r\n}\r\n\r\n/**\r\n * Password logic\r\n */\r\nexport function unifiedPassword() {\r\n /* Remove placeholders */\r\n b2c.passwordChooseField ? b2c.passwordChooseField.setAttribute('placeholder', '') : '';\r\n b2c.passwordConfirmField ? b2c.passwordConfirmField.setAttribute('placeholder', '') : '';\r\n b2c.passwordForgotLink ? b2c.passwordForgotLink.setAttribute('tabindex', '-1') : '';\r\n\r\n /* TODO: setup togglers for reset-password page (listen for insertion of password fields in mutation observer) */\r\n /* TODO: add password toggle triggers without wrapping the password field (this destroys B2C validation messages toggle logic for this field somehow) */\r\n // setupPasswordTogglers();\r\n}\r\n","import { progress } from \"../shared/progress\";\r\n\r\nexport const accountLinkedPage = document.getElementById('page-account-linked');\r\n\r\nexport function initAccountLinkedPage() {\r\n const progressEl = document.getElementById('account-linked-progress');\r\n const progressSuccessText = 'Account linked succesfully';\r\n\r\n setTimeout(() => {\r\n progress(progressEl, 3000, 100, progressSuccessText, finalizeAccountLinkedPage);\r\n }, 1000);\r\n}\r\n\r\nconst finalizeAccountLinkedPage = () => {\r\n const accountLinkedCta = document.getElementById('account-linked-cta');\r\n accountLinkedCta.classList.add('auth-cta--visible');\r\n};\r\n","import '../styles/styles.scss';\r\n\r\nimport 'core-js/stable';\r\nimport 'focus-visible';\r\nimport 'element-closest-polyfill';\r\n\r\nimport { setupConditionalTogglers } from './shared/visibility-toggler';\r\n\r\nimport { initB2C, isB2cpage } from './templates/b2c';\r\nimport { authTemplate } from './templates/auth';\r\nimport { accountLinkedPage, initAccountLinkedPage } from \"./templates/account-linked\";\r\n\r\n\r\n/**\r\n * Logic to enhance native B2C authentication flow\r\n **/\r\n\r\n\r\n/**\r\n * Initialize\r\n **/\r\nconst init = () => {\r\n /**\r\n * Init B2C templates\r\n */\r\n\r\n if (isB2cpage) {\r\n initB2C();\r\n }\r\n\r\n\r\n /**\r\n * Init specific pages\r\n */\r\n\r\n if (accountLinkedPage) {\r\n initAccountLinkedPage();\r\n }\r\n};\r\n\r\n\r\n/**\r\n * Execute when DOM content is loaded\r\n **/\r\nif (document.readyState === 'loading') {\r\n document.addEventListener('DOMContentLoaded', init);\r\n} else {\r\n init();\r\n}\r\n\r\n/**\r\n * Execute when whole page is loaded\r\n */\r\nwindow.onload = function () {\r\n const autoFocusField = document.getElementById(authTemplate.dataset.autofocusId);\r\n\r\n if (isB2cpage && !!autoFocusField) {\r\n autoFocusField.focus();\r\n }\r\n};\r\n","export function progress(target, durationMs, steps, completedText, completedFunction) {\r\n const timeOut = durationMs / steps;\r\n\r\n /* Elements */\r\n const labelValueEl = document.getElementById('progress-bar__value');\r\n const indicatorValueEl = document.getElementById('progress-bar__indicator-value');\r\n const labelEl = document.getElementById('progress-bar__step-description');\r\n\r\n let i = 0;\r\n\r\n // This block will be executed x(steps) times.\r\n setInterval(function () {\r\n if (i === steps) {\r\n clearInterval(this);\r\n\r\n labelEl.innerText = completedText;\r\n\r\n completedFunction();\r\n } else {\r\n i++;\r\n setCount(i);\r\n }\r\n }, timeOut);\r\n\r\n function setCount(count) {\r\n labelValueEl.innerText = count;\r\n indicatorValueEl.setAttribute('aria-valuenow', count.toString());\r\n }\r\n}\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunk_priva_b2c_templates\"] = self[\"webpackChunk_priva_b2c_templates\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [506], function() { return __webpack_require__(34745); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","hideEl","el","setAttribute","style","display","classList","contains","remove","showEl","removeProperty","add","document","createElement","MutationObserver","window","WebKitMutationObserver","observeDom","obj","config","callback","log","arguments","length","undefined","nodeType","mutations","observer","addedNodes","removedNodes","changedNodes","forEach","record","push","apply","_toConsumableArray","target","console","observe","addEventListener","observeDomDisconnect","disconnect","removeEventListener","wrapEl","wrapper","parentNode","insertBefore","appendChild","insertAfter","referenceNode","newNode","nextSibling","replaceFieldvalue","e","pattern","modifiers","preventDefault","regex","RegExp","pastedText","clipboardData","getData","value","replace","fieldList","querySelector","emailField","getElementById","emailFieldlabel","emailFieldEditButton","emailFieldErrorFormat","emailFieldWrapper","emailFieldReadOnly","passwordChooseField","passwordConfirmField","passwordForgotLink","mfaField","verificationSendButton","verificationCodeLabel","verificationCodeField","verificationCodeHelp","verificationCodeVerifyButton","verificationCodeResendButton","verificationFieldSuccess","verificationFieldErrorRetry","verificationFieldErrorNoRetry","verificationFieldErrorThrottled","verificationFieldErrorCodeExpired","verificationFieldErrorServer","verificationCodeFieldWrapper","displayNameField","createAccountButton","authTemplate","switchStep","targetStep","string","prefix","regx","stepPrefix","concat","id","className","b2cPage","selfAssertedEmail","selfAssertedVerificationCode","selfAssertedPassword","step","b2c","mfaFieldWrapper","selfAssertedMFA","displayNameWrapper","selfAssertedDisplayName","selfAssertedCtaButtons","initSignUp","initResetPasswordCheck","initResetPassword","isB2cDemo","location","reload","passwordChooseWrapper","passwordConfirmWrapper","func","timeout","verificationButtons","attributes","observeVerificationSuccess","processInput","context","this","args","clearTimeout","setTimeout","ctaButtons","href","b2cContainer","isB2cpage","dataset","page","b2cTemplate","name","isB2cApiLoaded","setupB2c","accountLinkedPage","finalizeAccountLinkedPage","init","childNodes","childList","subtree","observeB2cApi","fakeNode","steps","completedText","completedFunction","timeOut","labelValueEl","indicatorValueEl","labelEl","i","setInterval","count","clearInterval","innerText","toString","readyState","onload","autoFocusField","autofocusId","focus","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","call","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","Object","keys","every","key","splice","r","g","globalThis","Function","o","prop","prototype","hasOwnProperty","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","chunkLoadingGlobal","self","bind","__webpack_exports__"],"sourceRoot":""}