{"version":3,"file":"3532.6b78619265f1ef6a3e86.js","mappings":"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","sources":["webpack://@dgtls-pub/wolf-sb-integration/./src/global/js/ObservableState.ts","webpack://@dgtls-pub/wolf-sb-integration/./src/wolf/components/molecules/m-formstep-resume-step/m-formstep-resume-step-controller.ts","webpack://@dgtls-pub/wolf-sb-integration/./src/wolf/components/organisms/o-form-stepper/o-form-stepper.types.ts","webpack://@dgtls-pub/wolf-sb-integration/./src/wolf/components/organisms/o-form-stepper/o-form-stepper.controller.ts","webpack://@dgtls-pub/wolf-sb-integration/./src/wolf/components/molecules/m-formstep-resume-slice/m-formstep-resume-slice.template.twig","webpack://@dgtls-pub/wolf-sb-integration/./node_modules/uuid/dist/esm-browser/rng.js","webpack://@dgtls-pub/wolf-sb-integration/./node_modules/uuid/dist/esm-browser/regex.js","webpack://@dgtls-pub/wolf-sb-integration/./node_modules/uuid/dist/esm-browser/stringify.js","webpack://@dgtls-pub/wolf-sb-integration/./node_modules/uuid/dist/esm-browser/validate.js","webpack://@dgtls-pub/wolf-sb-integration/./node_modules/uuid/dist/esm-browser/v4.js"],"sourcesContent":["import { BehaviorSubject, Observable } from 'rxjs';\n\n/** @module ObservableState */\n\ntype SideEffect = {\n\tcallback: (prevState?: T) => void;\n\t/** A list of dependencies whose state values trigger the callback function, when the value is updated here */\n\tdeps?: string[];\n\t/** A list of dependencies, which will force a state callback on update, even if their value is the same as the existing one already in the state */\n\t// alwaysTrigger?: string[];\n};\n\ntype SideEffects = Record>;\n\ninterface IObservableState {\n\tset(stateUpdaterCallback: (state: T) => T): void;\n\tget(): T;\n\trunSideEffectsHandler(prevState: T, nextState: T): void;\n}\n\n/**\n * This class build an observable store.\n * It is also in charge for handling side effects on state change,\n * @class module:ObservableState.set\n * @property {Function} set {@link module:ObservableState.ObservableState#set}\n * @property {Functio {@link module:ObservableState.ObservableSta}\n *\n */ export default class ObservableState implements IObservableState {\n\tobservedState: Observable;\n\tprivate _privateState: BehaviorSubject;\n\tsideEffects: SideEffects;\n\n\t/**\n\t * Create a point.\n\t * @param {T} stateToObserve - The state to observe.\n\t * @param {SideEffects} sideEffects - An array of sideEffects actions and deps for equality check trigger.\n\t * If no deps are provided to the side effect, it will run everytime a state change occurs\n\t */\n\tconstructor(stateToObserve: T, sideEffects: SideEffects) {\n\t\tthis._privateState = new BehaviorSubject(stateToObserve);\n\t\tthis.observedState = this._privateState.asObservable();\n\t\tthis.sideEffects = sideEffects;\n\t}\n\n\t/**\n\t * @descripton This method is in charge of setting the values and trig the sideEffects\n\t * @method module:ObservableState.ObservableState#set\n\t */\n\tset(stateUpdaterCallback: (state: T) => T): void {\n\t\tconst prevState = this.get();\n\t\tthis._privateState.next(stateUpdaterCallback(prevState));\n\n\t\tthis.runSideEffectsHandler(prevState, this._privateState.value);\n\t}\n\n\t/**\n\t * @descripton This method is in charge of handling the side effects after a state update\n\t * @method module:ObservableState.runSideEffectsHandler#runSideEffectsHandler\n\t */\n\trunSideEffectsHandler(prevState: T, nextState: T): void {\n\t\tObject.values(this.sideEffects).forEach((sideEffect) => {\n\t\t\tlet shouldBeCalled = false;\n\n\t\t\tconst callSideEffect = () => {\n\t\t\t\tsideEffect.callback(this.get());\n\t\t\t};\n\n\t\t\tif (!sideEffect.deps) return callSideEffect();\n\n\t\t\tconst verifySideEffectShouldBeCalled = (): boolean => {\n\t\t\t\t// const alwaysTrigger = sideEffect.alwaysTrigger || [];\n\t\t\t\tif (sideEffect.deps) {\n\t\t\t\t\tsideEffect.deps.forEach((dep) => {\n\t\t\t\t\t\t// if (alwaysTrigger.indexOf(dep) > -1) {\n\t\t\t\t\t\t// \t// trigger callback regardless, even if value did not change\n\t\t\t\t\t\t// \tshouldBeCalled = true;\n\t\t\t\t\t\t// } else {\n\t\t\t\t\t\t// \tconst currentDepValue = JSON.stringify(prevState[dep])\n\t\t\t\t\t\t// \tconst nextDepValue = JSON.stringify(nextState[dep])\n\t\t\t\t\t\t// \tif (currentDepValue !== nextDepValue && !shouldBeCalled) shouldBeCalled = true\n\t\t\t\t\t\t// }\n\t\t\t\t\t\tconst currentDepValue = JSON.stringify(prevState[dep]);\n\t\t\t\t\t\tconst nextDepValue = JSON.stringify(nextState[dep]);\n\t\t\t\t\t\tif (currentDepValue !== nextDepValue && !shouldBeCalled) shouldBeCalled = true;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn shouldBeCalled;\n\t\t\t};\n\n\t\t\tconst shouldLaunchSideEffect = verifySideEffectShouldBeCalled();\n\t\t\tif (shouldLaunchSideEffect) callSideEffect();\n\t\t});\n\t}\n\n\t/**\n\t * @descripton This method return the observable state values\n\t * @method module:ObservableState.ObservableState#get\n\t */\n\tget(): T {\n\t\t// return Object.freeze(JSON.parse(JSON.stringify(this._privateState.value))) as T\n\t\treturn JSON.parse(JSON.stringify(this._privateState.value)) as T;\n\t}\n}\n","import { OrganismFormStepperEvents } from 'wolf/components/organisms/o-form-stepper/o-form-stepper.events';\nimport controller from 'wolf/global/js/controller-list';\nimport ControllerBase from '../../../../global/js/ControllerBase';\nimport { MoleculeFormStepResumeSliceProps } from '../m-formstep-resume-slice/m-formstep-resume-slice.data';\nconst resumeSliceMolecule = require('components/molecules/m-formstep-resume-slice/m-formstep-resume-slice.template.twig');\n\ntype ComponentRefs = {\n\tresumeContainer: 'step-resumes-container';\n\tcheckboxContainer: 'accept-terms-form';\n};\n\nexport enum ResumeStepEvents {\n\tREQUEST_RESUMES_SLICE_SUMMARY = 'REQUEST_RESUMES_SLICE_SUMMARY',\n\tRECEIVE_RESUMES_SLICE_SUMMARY = 'RECEIVE_RESUMES_SLICE_SUMMARY',\n}\n\nexport default class ControllerFormstepResumeStep extends ControllerBase {\n\tresumeContainer: HTMLDivElement;\n\tcheckboxContainer: HTMLFieldSetElement;\n\tstepResumes: MoleculeFormStepResumeSliceProps[];\n\tformSlice: Record = {};\n\n\tprivate static readonly componentRefs: ComponentRefs = {\n\t\tresumeContainer: 'step-resumes-container',\n\t\tcheckboxContainer: 'accept-terms-form',\n\t};\n\n\tconstructor(element: HTMLElement) {\n\t\tsuper(element, [], Object.values(ControllerFormstepResumeStep.componentRefs));\n\t\tthis.resumeContainer = this.$references[ControllerFormstepResumeStep.componentRefs.resumeContainer];\n\t\tthis.checkboxContainer = this.$references[ControllerFormstepResumeStep.componentRefs.checkboxContainer];\n\t\tthis.initComponent();\n\t\tthis.observeTermsAndConditionsCheckbox();\n\t}\n\n\tobserveTermsAndConditionsCheckbox(): void {\n\t\tconst checkboxes = this.$element.getElementsByTagName('input');\n\n\t\tArray.from(checkboxes).forEach((element) => {\n\t\t\telement.addEventListener('change', (e: Event) => {\n\t\t\t\tconst currentCheckbox = e.target as HTMLInputElement;\n\t\t\t\tconst currentCheckboxName = currentCheckbox.name;\n\t\t\t\tthis.formSlice[currentCheckboxName] = currentCheckbox.checked;\n\t\t\t\tthis.sendControlledFormToParentStepper();\n\t\t\t});\n\t\t});\n\t}\n\n\tregisterEvents(): void {\n\t\twindow.addEventListener(\n\t\t\tResumeStepEvents.RECEIVE_RESUMES_SLICE_SUMMARY,\n\t\t\t(event: CustomEvent<{ stepResumes: MoleculeFormStepResumeSliceProps[][] }>) => {\n\t\t\t\tthis.stepResumes = event.detail.stepResumes.flat();\n\t\t\t\tif (this.stepResumes.length) {\n\t\t\t\t\tthis.resumeContainer.innerHTML = '';\n\t\t\t\t\tconst nodesArray: string[] = [];\n\t\t\t\t\tthis.stepResumes.forEach((data) => nodesArray.push(resumeSliceMolecule({ data })));\n\t\t\t\t\tnodesArray.forEach((twigString) => {\n\t\t\t\t\t\tconst sliceElement = this.domUtils.appendRawHtmlToDomElement(this.resumeContainer, twigString, 'beforeend') as HTMLElement;\n\t\t\t\t\t\treturn new controller.ControllerFormStepResumeSlice(sliceElement);\n\t\t\t\t\t});\n\t\t\t\t\t// (window as any).App.mountComponents(true)\n\t\t\t\t}\n\t\t\t},\n\t\t);\n\t}\n\n\tsendControlledFormToParentStepper(): void {\n\t\tthis.dispatchCustomEvent(\n\t\t\tOrganismFormStepperEvents.RECEIVE_CONTROLLED_FORM_SLICE,\n\t\t\t{\n\t\t\t\tstepId: 'termsAndConditions', // this is in the final payload object\n\t\t\t\tformSlice: this.formSlice,\n\t\t\t},\n\t\t\tfalse,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\tinitComponent(): void {\n\t\tthis.registerEvents();\n\t\tthis.validateCheckboxes();\n\t}\n\n\tvalidateCheckboxes(): void {\n\t\tconst checkboxNames = ['confirmIsWolfInstaller', 'confirmIsInstalledByWolf'];\n\t\tconst checkboxes = Array.from(this.checkboxContainer?.querySelectorAll('input[type=\"checkbox\"]'));\n\t\tconst filteredCheckboxes = checkboxes?.filter((checkbox: HTMLInputElement) => {\n\t\t\treturn checkboxNames?.indexOf(checkbox?.name) !== -1;\n\t\t});\n\n\t\tfilteredCheckboxes?.forEach((checkbox: HTMLInputElement) => {\n\t\t\tcheckbox.addEventListener('change', (e: Event) => {\n\t\t\t\tconst checkBoxChecked = e.target as HTMLInputElement;\n\n\t\t\t\tfilteredCheckboxes?.filter((checkbox: HTMLInputElement) => {\n\t\t\t\t\tif (checkBoxChecked.name !== checkbox.name) {\n\t\t\t\t\t\tcheckbox.checked = false;\n\t\t\t\t\t\tcheckbox?.previousElementSibling?.children[0]?.classList.add('uk-hidden');\n\t\t\t\t\t\tcheckbox?.nextElementSibling?.classList.add('uk-hidden');\n\t\t\t\t\t\tcheckbox.removeAttribute('required');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcheckbox?.previousElementSibling?.children[0]?.classList.remove('uk-hidden');\n\t\t\t\t\t\tcheckbox.setAttribute('required', '');\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (filteredCheckboxes?.every((checkbox: HTMLInputElement) => checkbox.checked === false)) {\n\t\t\t\t\tfilteredCheckboxes?.forEach((checkbox: HTMLInputElement) => {\n\t\t\t\t\t\tcheckbox.setAttribute('required', '');\n\t\t\t\t\t\tcheckbox?.previousElementSibling?.children[0]?.classList.remove('uk-hidden');\n\t\t\t\t\t\tconst errorHandlerDiv = checkbox?.nextElementSibling as HTMLDivElement;\n\t\t\t\t\t\tif (errorHandlerDiv) {\n\t\t\t\t\t\t\terrorHandlerDiv.classList.add('uk-hidden');\n\t\t\t\t\t\t\terrorHandlerDiv.style.display = 'none';\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n}\n","import { FormFieldErrors } from 'global/interfaces/http.interface';\nimport { SelectOptionTypes } from 'global/react-mui/atoms/Select';\nimport { MoleculeFormStepResumeSliceProps } from 'wolf/components/molecules/m-formstep-resume-slice/m-formstep-resume-slice.data';\n// import { VerifyPartErrorResponse } from 'wolf/components/molecules/m-formstep-warranty-wolf-products/m-formstep-warranty-wolf-products.types';\nimport { HttpActionErrorResponse, HttpActionResponse } from '../../../../global/interfaces/http.interface';\nimport { FormStepValidationConfig } from './o-form-stepper.data';\nimport { ResumeSliceSummary } from './o-form-stepper.events';\n\nexport type SubmitUserProfilingResponseSuccess = HttpActionResponse;\nexport type SubmitUserProfilingResponseFailed = HttpActionErrorResponse;\nexport type SubmitUserProfilingResponse = SubmitUserProfilingResponseSuccess | SubmitUserProfilingResponseFailed;\n// export type FormStepValidResponseSuccess = HttpActionResponse;\n// export type FormStepValidResponseFailed = HttpActionErrorResponse;\n\n// export type GenericFormStepValidationResponse = HttpActionResponse & HttpActionErrorResponse;\n\nexport type VerifyStepResponse = {\n\tresumeSliceMolecule: MoleculeFormStepResumeSliceProps;\n\tcomponentPartOptions?: SelectOptionTypes[];\n};\n\nexport type GenericFormStepValidationResponseWithSliceSuccess = HttpActionResponse;\nexport type GenericFormStepValidationResponseWithSliceError = HttpActionErrorResponse;\nexport type GenericFormStepValidationResponseWithSliceResponse =\n\t| GenericFormStepValidationResponseWithSliceSuccess\n\t| GenericFormStepValidationResponseWithSliceError;\n\nexport interface FormStepperStateStepValidation {\n\t/** zero indexed step number */\n\tstepNumber: number;\n\tvalidationScoreRequired: number;\n\tvalidationScoreCurrent: number;\n}\n\nexport type FormStepperComponentRefs = {\n\tformComponent: 'o-form-stepper__submit-form';\n\tswitcher: 'o-form-stepper-switcher';\n\tsidebarWrapper: 'o-form-stepper-sidebar';\n\tnextStepButton: 'form-next-step-button';\n\tprevStepButton: 'form-prev-step-button';\n\tformSubmitButton: 'form-submit-button';\n\tbottomNavigation: 'o-form-stepper__bottom-navigation';\n\ttopBackButton: 'o-form-stepper__top-back';\n\ttopCloseButton: 'o-form-stepper__top-close';\n\tsubmissionAlert: 'o-form-stepper-submission-alert';\n};\nexport interface FormStepperState {\n\ttotalSteps: number;\n\t/** The zero-indexed step that we are on */\n\tcurrentStep: number;\n\t/** The zero-indexed step that we are trying to go to */\n\trequestedStep: number;\n\t/** The zero-indexed step that we are on */\n\tcurrentDirection: 'next' | 'prev';\n\t/** A list of validation configs for each step. Index = step index */\n\tvalidationConfig: FormStepValidationConfig[];\n\t/** A list of valid zero-index step indexes */\n\tvalidatedSteps: FormStepperStateStepValidation[];\n\t/** A list of validated molecules for the final step */\n\tstepResumes: ResumeSliceSummary[];\n\t/** A list of validated field, works as a controlled form */\n\tcontrolledForm: Record>;\n\tselectedOptions: string[];\n}\n\nexport const FORM_STEPPER_CONFIG_ID = 'form-stepper-config';\n","import { FormFieldGenericErrorResponse } from 'global/interfaces/http.interface';\nimport ObservableState from 'global/js/ObservableState';\nimport { MoleculeFormEvents } from 'wolf/components/molecules/m-form/m-form.events';\nimport { ResumeStepEvents } from 'wolf/components/molecules/m-formstep-resume-step/m-formstep-resume-step-controller';\nimport ControllerBase from '../../../../global/js/ControllerBase';\nimport {\n\tFormstepSelectImageEvents,\n\tMoleculeSelectImageOptionChangedEvent,\n} from '../../molecules/m-formstep-select-image/m-formstep-select-image.events';\nimport { FormStepValidationConfig, OrganismFormStepperProps } from './o-form-stepper.data';\nimport {\n\tFormStepperValidationEvent,\n\tFormStepperValidationEventClientServerEnum,\n\tOrganismFormStepperEvents,\n\tValidationEventMapper,\n} from './o-form-stepper.events';\nimport {\n\tFormStepperComponentRefs,\n\tFormStepperState,\n\tFormStepperStateStepValidation,\n\tFORM_STEPPER_CONFIG_ID,\n\tGenericFormStepValidationResponseWithSliceError,\n\tGenericFormStepValidationResponseWithSliceResponse,\n\tSubmitUserProfilingResponse,\n\tSubmitUserProfilingResponseFailed,\n} from './o-form-stepper.types';\nconst alertTemplate = require('../../molecules/m-alert/m-alert.template.twig') as ({ data }) => string;\n\n// dirty logging without env - turn off logging easily\nconst logs = false;\n\nexport default class ConrollerFormSteps extends ControllerBase {\n\tprivate static readonly componentRefs: FormStepperComponentRefs = {\n\t\tformComponent: 'o-form-stepper__submit-form',\n\t\tswitcher: 'o-form-stepper-switcher',\n\t\tsidebarWrapper: 'o-form-stepper-sidebar',\n\t\tnextStepButton: 'form-next-step-button',\n\t\tprevStepButton: 'form-prev-step-button',\n\t\tformSubmitButton: 'form-submit-button',\n\t\tbottomNavigation: 'o-form-stepper__bottom-navigation',\n\t\ttopBackButton: 'o-form-stepper__top-back',\n\t\ttopCloseButton: 'o-form-stepper__top-close',\n\t\tsubmissionAlert: 'o-form-stepper-submission-alert',\n\t};\n\n\tprivate formComponent: HTMLFormElement;\n\tprivate switcher: HTMLUListElement;\n\tprivate sidebarWrapper: HTMLDivElement;\n\tprivate sidebar: HTMLUListElement | null;\n\tprivate nextStepButton: HTMLButtonElement;\n\tprivate prevStepButton: HTMLButtonElement;\n\tprivate formSubmitButton: HTMLInputElement;\n\tprivate formConfig: {\n\t\tsteps: OrganismFormStepperProps['formSteps'];\n\t\tsettings: OrganismFormStepperProps['formSettings'];\n\t};\n\tprivate bottomNavigation: HTMLDivElement;\n\tprivate submissionAlert: HTMLDivElement;\n\tprivate topBackButton: HTMLAnchorElement;\n\tprivate topCloseButton: HTMLAnchorElement;\n\n\tprivate state: ObservableState;\n\n\tprivate readonly _defaultState: FormStepperState = {\n\t\ttotalSteps: 0,\n\t\tcurrentStep: 0,\n\t\trequestedStep: 0,\n\t\tcurrentDirection: 'next',\n\t\tvalidationConfig: [],\n\t\tvalidatedSteps: [],\n\t\tstepResumes: [],\n\t\tcontrolledForm: {},\n\t\tselectedOptions: [],\n\t};\n\n\tconstructor(element: HTMLElement) {\n\t\tsuper(element, [], Object.values(ConrollerFormSteps.componentRefs));\n\n\t\tthis.formComponent = this.$references[ConrollerFormSteps.componentRefs.formComponent] as HTMLFormElement;\n\t\tthis.switcher = this.$references[ConrollerFormSteps.componentRefs.switcher] as HTMLUListElement;\n\t\tthis.sidebarWrapper = this.$references[ConrollerFormSteps.componentRefs.sidebarWrapper] as HTMLDivElement;\n\t\tthis.sidebar = this.sidebarWrapper ? this.sidebarWrapper.querySelector<'ul'>('ul') : null;\n\t\tthis.nextStepButton = this.$references[ConrollerFormSteps.componentRefs.nextStepButton] as HTMLButtonElement;\n\t\tthis.prevStepButton = this.$references[ConrollerFormSteps.componentRefs.prevStepButton] as HTMLButtonElement;\n\t\tthis.formSubmitButton = this.$references[ConrollerFormSteps.componentRefs.formSubmitButton] as HTMLInputElement;\n\t\tthis.bottomNavigation = this.$references[ConrollerFormSteps.componentRefs.bottomNavigation] as HTMLDivElement;\n\t\tthis.topBackButton = this.$references[ConrollerFormSteps.componentRefs.topBackButton] as HTMLAnchorElement;\n\t\tthis.topCloseButton = this.$references[ConrollerFormSteps.componentRefs.topCloseButton] as HTMLAnchorElement;\n\t\tthis.submissionAlert = this.$references[ConrollerFormSteps.componentRefs.submissionAlert] as HTMLDivElement;\n\n\t\tthis.state = new ObservableState(this._defaultState, {\n\t\t\tRUN_VALIDATIONS_ON_STEP_CHANGE: {\n\t\t\t\tcallback: this.onValidateStepChange,\n\t\t\t\t// deps: ['currentStep']\n\t\t\t\tdeps: ['requestedStep'],\n\t\t\t\t// alwaysTrigger: ['requestedStep'],\n\t\t\t},\n\t\t\tUPDATE_NAVIGATION_ITEMS: {\n\t\t\t\tcallback: this.onUpdateNavigation,\n\t\t\t\tdeps: ['validatedSteps', 'currentStep'],\n\t\t\t},\n\t\t});\n\t\tthis.initApp();\n\t}\n\n\tprivate goToStep = (): void => {\n\t\tconst { requestedStep, currentDirection } = this.state.get();\n\t\t// show the new requested step\n\t\tthis.showStep(requestedStep);\n\t\tlogs && console.log('Going to step ', requestedStep);\n\t\tthis.state.set((prevState) => ({ ...prevState, currentStep: requestedStep }));\n\n\t\tconst newState = this.state.get();\n\n\t\tconst stepHasAScore = newState.validationConfig[newState.currentStep] !== undefined;\n\t\tif (stepHasAScore) {\n\t\t\t// check if step only has front end validation\n\t\t\tconst onlyHasFrontendValidation =\n\t\t\t\tnewState.validationConfig[newState.currentStep].validationScoreRequired === FormStepperValidationEventClientServerEnum.Frontend;\n\t\t\t// if (currentDirection === 'next' && !onlyHasFrontendValidation) this.resetValidationScore(requestedStep)\n\t\t}\n\n\t\tlogs && console.warn('New state ', this.state.get());\n\t};\n\n\tprivate onUpdateNavigation = (currentState: FormStepperState): void => {\n\t\tthis.updateSidebarNavigationClickableItems(currentState);\n\t\tthis.updateIconsAndActiveSidebarItem(currentState);\n\t\tthis.manageStepButtonsState(currentState);\n\t};\n\n\tprivate manageStepButtonsState = (currentState: FormStepperState): void => {\n\t\tconst valid = this.stepIsValid(currentState.currentStep);\n\t\tif (!valid) {\n\t\t\tthis.domUtils.toggleElementState(this.nextStepButton, ['disable']);\n\t\t} else {\n\t\t\tthis.domUtils.toggleElementState(this.nextStepButton, ['enable']);\n\t\t}\n\n\t\tif (currentState.currentStep === 0) {\n\t\t\tthis.domUtils.toggleElementState(this.prevStepButton, ['disable']);\n\t\t} else {\n\t\t\tthis.domUtils.toggleElementState(this.prevStepButton, ['show', 'enable']);\n\t\t}\n\n\t\tif (currentState.totalSteps === currentState.currentStep + 1) {\n\t\t\tthis.domUtils.toggleElementState(this.formSubmitButton, ['show']);\n\t\t\tthis.formSubmitButton.classList.remove('uk-hidden');\n\t\t\tthis.domUtils.toggleElementState(this.nextStepButton, ['hide']);\n\t\t} else {\n\t\t\tthis.domUtils.toggleElementState(this.formSubmitButton, ['hide']);\n\t\t\tthis.formSubmitButton.classList.add('uk-hidden');\n\t\t\tthis.domUtils.toggleElementState(this.nextStepButton, ['show']);\n\t\t}\n\n\t\tif (currentState.totalSteps === currentState.currentStep) {\n\t\t\tthis.domUtils.toggleElementState(this.bottomNavigation, ['hide']);\n\t\t}\n\t};\n\n\tprivate updateSidebarNavigationClickableItems(currentState: FormStepperState): void {\n\t\t[...(this.sidebar?.querySelectorAll('a') as NodeListOf)].forEach((item, i) => {\n\t\t\tconst isFirstElement = item.dataset.step === '0';\n\t\t\t// const shouldEnableClickability = currentState.validatedSteps.includes(i) && currentState.validatedSteps.includes(i - 1)\n\t\t\tconst shouldEnableClickability = this.stepIsValid(i) && this.stepIsValid(i - 1);\n\t\t\tif (isFirstElement || shouldEnableClickability) {\n\t\t\t\titem.setAttribute('style', 'pointer-events: auto');\n\t\t\t} else {\n\t\t\t\titem.setAttribute('style', 'pointer-events: none');\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Returns true if the current step has met the validation score required to make the current step valid\n\t * Takes into consideration validation from frontend and backend, or none at all\n\t * @param {FormStepperState['currentStep']} step\n\t * @returns boolean\n\t */\n\tprivate stepIsValid(step: FormStepperState['currentStep']): boolean {\n\t\tif (step < 0) return true; // support for checking steps which don't exist\n\t\tif (this.state.get().validatedSteps[step] === undefined) return true; // support for final step having no config\n\t\treturn this.state.get().validatedSteps[step].validationScoreCurrent >= this.state.get().validatedSteps[step].validationScoreRequired;\n\t}\n\n\t/**\n\t * Update this step's validity score by setting a new score\n\t * @param {boolean} valid\n\t * @param {FormStepperState['currentStep']} step\n\t * @returns void\n\t */\n\tprivate setStepValidity = (callbackValidationType: FormStepperValidationEventClientServerEnum, validity: 'valid' | 'invalid'): void => {\n\t\t// get current validation list\n\t\tconst validatedSteps = this.state.get().validatedSteps;\n\t\tconst { currentStep } = this.state.get();\n\n\t\tconst config = this.getStepValidationConfig();\n\t\t// bitwise comparison to see if this validation type is required\n\t\tconst isRequired = (config.validationScoreRequired & callbackValidationType) > 0;\n\t\t// see if score bit is set yet\n\t\tconst isSet = (validatedSteps[currentStep].validationScoreCurrent & callbackValidationType) > 0;\n\n\t\tif (isRequired) {\n\t\t\tif (!isSet && validity === 'valid') {\n\t\t\t\t// add the validation type value to the current score for this step\n\t\t\t\tvalidatedSteps[currentStep].validationScoreCurrent += callbackValidationType;\n\t\t\t} else if (isSet && validity === 'invalid') {\n\t\t\t\tlogs && console.warn('invalidate the score flag for value: ', { step: currentStep, type: callbackValidationType });\n\t\t\t\t// remove validation score\n\t\t\t\tvalidatedSteps[currentStep].validationScoreCurrent -= callbackValidationType;\n\t\t\t}\n\t\t}\n\n\t\tthis.state.set((prevState) => ({ ...prevState, validatedSteps }));\n\t};\n\n\tprivate resetValidationScore(step: FormStepperState['currentStep']): void {\n\t\tconst { validatedSteps } = this.state.get();\n\t\tvalidatedSteps[step].validationScoreCurrent = 0;\n\t\tthis.state.set((prevState) => ({ ...prevState, validatedSteps }));\n\t}\n\n\tprivate getStepValidationConfig(step?: number): FormStepValidationConfig {\n\t\tif (step && step > -1) {\n\t\t\treturn this.state.get().validationConfig[step];\n\t\t}\n\n\t\tconst { currentStep } = this.state.get();\n\n\t\treturn this.state.get().validationConfig[currentStep];\n\t}\n\n\t/**\n\t * Get validation score for the current step\n\t * steps need to achieve this score in order to pass validation and go to the next step\n\t * score: 0 = no validation necessary\n\t * score: 1 = requires frontend\n\t * score: 2 = requires backend\n\t * score: 3 = requires frontend and backend\n\t * @param {string|null} event\n\t * @param {string|null} url\n\t * @returns FormStepValidationConfig\n\t */\n\tprivate getStepValidationScoreRequired(event: string | null, url: string | null): FormStepValidationConfig['validationScoreRequired'] {\n\t\tlet score = 0;\n\t\tif (event) {\n\t\t\tscore += FormStepperValidationEventClientServerEnum.Frontend;\n\t\t}\n\t\tif (url) {\n\t\t\tscore += FormStepperValidationEventClientServerEnum.Backend;\n\t\t}\n\t\treturn score;\n\t}\n\n\tprivate onValidationSuccess = (callbackValidationType?: FormStepperValidationEventClientServerEnum): void => {\n\t\tconst { currentStep } = this.state.get();\n\t\t// const { validationScoreRequired } = this.getStepValidationConfig();\n\n\t\tconst currentDirectionIsNext = this.state.get().currentDirection === 'next';\n\n\t\t// callbackValidationType && this.setStepValidity(callbackValidationType, 'valid', currentDirectionIsNext ? currentStep - 1 : currentStep);\n\t\tcallbackValidationType && currentDirectionIsNext && this.setStepValidity(callbackValidationType, 'valid');\n\t\t// this.setCurrentStep(currentStep);\n\t\tconst requestedStep = currentDirectionIsNext ? currentStep + 1 : currentStep - 1;\n\t\tthis.setRequestedStep(requestedStep);\n\n\t\t// TODO - check this score before being allowed to go to the next step...\n\t\tif (this.stepIsValid(currentStep)) {\n\t\t\tthis.goToStep();\n\t\t} else {\n\t\t\tlogs && console.warn('Step not valid current score is: ', this.state.get().validatedSteps[currentStep]);\n\t\t}\n\t};\n\n\tprivate onValidationError = (callbackValidationType?: FormStepperValidationEventClientServerEnum): void => {\n\t\tconst currentDirectionIsNext = this.state.get().currentDirection === 'next';\n\t\tcallbackValidationType && currentDirectionIsNext && this.setStepValidity(callbackValidationType, 'invalid');\n\t\t// update the requested step so the side effect will run when the user clicks next\n\n\t\tconst { currentStep } = this.state.get();\n\t\tthis.setRequestedStep(currentStep);\n\t};\n\n\t/**\n\t * Build a form data payload for fields inside a specific step\n\t * @returns FormData\n\t */\n\tprivate getStepValidationData = (): { stepId: string; formSlice: Record; formData: FormData } | undefined => {\n\t\tconst { currentStep } = this.state.get();\n\t\tconst stepLi = this.switcher.children[currentStep] as HTMLLIElement;\n\t\tif (!stepLi) return undefined;\n\n\t\tconst fieldsetId = stepLi.querySelector('fieldset')?.id;\n\t\tconst formData = new FormData();\n\t\tconst fields = Array.from(stepLi.querySelectorAll('input, textarea, select'));\n\t\tfields.forEach((field: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement) => {\n\t\t\t// only append field if it has a name\n\t\t\tif (field.name) {\n\t\t\t\tswitch (field.type.toLowerCase()) {\n\t\t\t\t\tcase 'checkbox': {\n\t\t\t\t\t\tformData.append(field.name, (field as HTMLInputElement).checked === true ? 'true' : 'false');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\tformData.append(field.name, field.value);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tconst parsedFormFields: Record = {};\n\t\tconst formEntriesPairs: [string, FormDataEntryValue][] = [...formData.entries()];\n\t\tformEntriesPairs.forEach((element) => {\n\t\t\tconst el = element as string[];\n\t\t\tparsedFormFields[el[0]] = el[1];\n\t\t});\n\n\t\treturn { stepId: fieldsetId || '', formSlice: parsedFormFields, formData };\n\t};\n\n\tprivate runValidationViaUrl = async (): Promise => {\n\t\tconst { currentStep } = this.state.get();\n\t\tconst { validationUrl } = this.getStepValidationConfig();\n\n\t\tif (validationUrl) {\n\t\t\tconst stepValidationData = this.getStepValidationData();\n\t\t\tif (stepValidationData) {\n\t\t\t\tconst { stepId, formSlice, formData } = stepValidationData;\n\t\t\t\tthis.performValidationRequest(validationUrl, formData)\n\t\t\t\t\t.then((resp) => {\n\t\t\t\t\t\t// HTTP 200\n\t\t\t\t\t\tif (resp.success === true && resp.data) {\n\t\t\t\t\t\t\tthis.onValidationSuccess(FormStepperValidationEventClientServerEnum.Backend);\n\t\t\t\t\t\t\tconst resumeSlices = resp.data ? [resp.data.resumeSliceMolecule] : [];\n\t\t\t\t\t\t\tthis.dispatchCustomEvent(\n\t\t\t\t\t\t\t\tOrganismFormStepperEvents.RECEIVE_RESUME_SLICE,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tstep: currentStep,\n\t\t\t\t\t\t\t\t\tresumeSlices,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tthis.dispatchCustomEvent(OrganismFormStepperEvents.RECEIVE_CONTROLLED_FORM_SLICE, { stepId, formSlice }, false, true);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// if (resp.error === true && resp.message) {\n\t\t\t\t\t\t\tlogs && console.warn('Some error occured with the server');\n\t\t\t\t\t\t\tthis.onValidationError(FormStepperValidationEventClientServerEnum.Backend);\n\n\t\t\t\t\t\t\tthis.dispatchCustomEvent(\n\t\t\t\t\t\t\t\tMoleculeFormEvents.DISPLAY_VALIDATION_ERRORS,\n\t\t\t\t\t\t\t\t(resp as GenericFormStepValidationResponseWithSliceError).error,\n\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch((err: FormFieldGenericErrorResponse) => {\n\t\t\t\t\t\t// if (err.error === true && err.message)\n\t\t\t\t\t\t// !== HTTP 200\n\t\t\t\t\t\tthis.domUtils.toggleElementState(this.nextStepButton, ['disable']);\n\t\t\t\t\t\tthis.onValidationError(FormStepperValidationEventClientServerEnum.Backend);\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t};\n\n\tprivate runValidationsViaEvent = async (): Promise => {\n\t\tconst { validationEvent, validationUrl } = this.getStepValidationConfig();\n\n\t\tif (validationEvent) {\n\t\t\tconst { currentStep } = this.state.get();\n\t\t\tconst eventDetail: FormStepperValidationEvent = {\n\t\t\t\tonValidationSuccess: this.onValidationSuccess,\n\t\t\t\t// onValidationSuccess: () => this.onValidationSuccess(FormStepperValidationEventClientServerEnum.Backend),\n\n\t\t\t\tonValidationError: () => {\n\t\t\t\t\tlogs && console.warn('Todo...Some error occured during validation');\n\t\t\t\t\tthis.onValidationError(FormStepperValidationEventClientServerEnum.Backend);\n\t\t\t\t},\n\t\t\t\tcurrentStep: currentStep,\n\t\t\t};\n\n\t\t\tthis.dispatchCustomEvent(validationEvent, eventDetail, false, true);\n\n\t\t\tif (validationUrl) this.runValidationViaUrl();\n\t\t}\n\t};\n\n\tprivate performValidationRequest = async (validationUrl: string, body?: FormData): Promise => {\n\t\tconst url = new URL(validationUrl);\n\t\treturn await this.validateStep(url, {\n\t\t\tbody: body,\n\t\t});\n\t};\n\n\t/** Side-effect function triggered when a new step is requested */\n\tprivate onValidateStepChange = (): void => {\n\t\tconst { currentDirection, requestedStep, currentStep, totalSteps } = this.state.get();\n\t\t// only run if requested step is valid\n\t\tif (requestedStep < 0) {\n\t\t\t// this.resetValidationScore(currentStep);\n\t\t\tlogs && console.warn('Requested step is now: ', requestedStep);\n\t\t\treturn;\n\t\t}\n\n\t\tconst { validationEvent, validationUrl } = this.getStepValidationConfig();\n\t\tconst hasNoValidation = !validationEvent && !validationUrl;\n\t\tlogs && console.warn({ hasNoValidation, validationEvent, validationUrl, state: this.state.get() });\n\n\t\t// the final submission doesn't require step validation, just show the finishing screen\n\t\tif (requestedStep === totalSteps || hasNoValidation) {\n\t\t\t// go to confirmation screen\n\t\t\tthis.goToStep();\n\t\t\treturn;\n\t\t}\n\n\t\tif (currentDirection === 'prev') {\n\t\t\tthis.goToStep();\n\t\t\treturn;\n\t\t}\n\n\t\tif (validationEvent) {\n\t\t\tthis.runValidationsViaEvent();\n\t\t} else if (validationUrl) {\n\t\t\tthis.runValidationViaUrl();\n\t\t}\n\t};\n\n\tprivate setCurrentStep = (currentStep: FormStepperState['currentStep']): void => {\n\t\tthis.state.set((prevState) => ({ ...prevState, currentStep }));\n\t};\n\n\tprivate setCurrentDirection = (currentDirection: FormStepperState['currentDirection']): void => {\n\t\tthis.state.set((prevState) => ({ ...prevState, currentDirection }));\n\t};\n\n\tprivate calculateTotalSteps(): void {\n\t\tthis.state.set((prevState) => ({ ...prevState, totalSteps: this.formConfig.steps.length }));\n\t}\n\n\tprivate setRequestedStep(directionOrStepNumber: 'next' | 'prev' | number): void {\n\t\tconst { currentStep } = this.state.get();\n\t\tlet newStep: FormStepperState['requestedStep'];\n\n\t\tif (directionOrStepNumber === 'next') {\n\t\t\tnewStep = currentStep + 1;\n\t\t} else if (directionOrStepNumber === 'prev') {\n\t\t\tnewStep = currentStep - 1 > 0 ? currentStep - 1 : 0;\n\t\t} else {\n\t\t\tnewStep = directionOrStepNumber;\n\t\t}\n\t\tconst direction = newStep > currentStep ? 'next' : 'prev';\n\t\t// set direction first\n\t\tthis.setCurrentDirection(direction);\n\t\t// trigger an effect\n\t\tthis.setRequestedNextStep(newStep);\n\t\t// this.setCurrentStep(newStep);\n\t}\n\n\tprivate setRequestedNextStep(requestedStep: FormStepperState['requestedStep']): void {\n\t\tthis.state.set((prevState) => ({ ...prevState, requestedStep }));\n\t}\n\n\tprivate observeStepsHandler(): void {\n\t\tthis.inputUtils.observeElementEvents(this.nextStepButton, 'click', () => this.setRequestedStep('next'));\n\t\tthis.inputUtils.observeElementEvents(this.prevStepButton, 'click', () => this.setRequestedStep('prev'));\n\t}\n\n\tprivate addResumeSliceToSummary = (event: CustomEvent): void => {\n\t\tconst stepResumesStateUpdated = this.state.get().stepResumes;\n\t\tconst newResumeSlice = event.detail;\n\t\tconst shouldUpdateResumeStep = stepResumesStateUpdated.map(({ step }) => step).some((step) => step === newResumeSlice.step);\n\t\tif (shouldUpdateResumeStep) {\n\t\t\tconst indexSliceToReplace = stepResumesStateUpdated.findIndex(({ step }) => step === newResumeSlice.step);\n\t\t\tstepResumesStateUpdated[indexSliceToReplace] = newResumeSlice;\n\t\t} else stepResumesStateUpdated.push(newResumeSlice);\n\n\t\tthis.state.set((prevState) => ({ ...prevState, stepResumes: stepResumesStateUpdated }));\n\t\tthis.dispatchCustomEvent(\n\t\t\tResumeStepEvents.RECEIVE_RESUMES_SLICE_SUMMARY,\n\t\t\t{ stepResumes: stepResumesStateUpdated.map(({ resumeSlices }) => resumeSlices) },\n\t\t\tfalse,\n\t\t\ttrue,\n\t\t);\n\t};\n\n\tprivate addSliceToControlledForm = (event: CustomEvent): void => {\n\t\tconst controlledFormUpdated = this.state.get().controlledForm;\n\t\tconst newControlledFormSlice = event.detail;\n\t\tcontrolledFormUpdated[newControlledFormSlice.stepId] = newControlledFormSlice;\n\t\tthis.state.set((prevState) => ({ ...prevState, controlledForm: controlledFormUpdated }));\n\t};\n\n\tprivate removeSliceFromControlledForm = (event: CustomEvent): void => {\n\t\tconst controlledFormUpdated = this.state.get().controlledForm;\n\t\tconst newControlledFormSlice = event.detail;\n\t\tdelete controlledFormUpdated[newControlledFormSlice.stepId];\n\n\t\tthis.state.set((prevState) => ({ ...prevState, controlledForm: controlledFormUpdated }));\n\t};\n\n\tprivate formDataChangedByStep = (event: CustomEvent): void => {\n\t\tconst { currentStep } = this.state.get();\n\t\tthis.resetValidationScore(currentStep);\n\n\t\tlogs && console.warn('FormDataChangedByStep ', this.state.get());\n\t};\n\n\tprivate selectedImageOptionsChanged = (event: CustomEvent): void => {\n\t\tconst { selectedOptions } = this.state.get();\n\t\tconst selectedValue = event.detail.selectedValue;\n\t\tconst isSelected = event.detail.isSelected;\n\n\t\t// add or remove selectedValue to the state\n\t\tif (isSelected) {\n\t\t\tselectedOptions.push(selectedValue);\n\t\t} else {\n\t\t\tconst indexToDelete = selectedOptions.indexOf(selectedValue, 0);\n\t\t\tif (indexToDelete > -1) {\n\t\t\t\tselectedOptions.splice(indexToDelete, 1);\n\t\t\t}\n\t\t}\n\n\t\t// save selectedOptions back to state\n\t\tthis.state.set((prevState) => ({ ...prevState, selectedOptions: selectedOptions }));\n\n\t\tthis.dispatchCustomEvent(\n\t\t\tFormstepSelectImageEvents.SELECT_OPTION_CHANGED,\n\t\t\t{\n\t\t\t\tselectedOptions: selectedOptions,\n\t\t\t},\n\t\t\ttrue,\n\t\t\tfalse,\n\t\t);\n\t};\n\n\tprivate resetValidationScoreByStep = (event: CustomEvent): void => {\n\t\tconst step = event.detail;\n\n\t\tthis.resetValidationScore(step);\n\t};\n\n\t/**\n\t * Listen for component events\n\t * 1. Next step button disabling\n\t * 2. Form submission\n\t * 3. UK Switcher slide transitions\n\t * 4. Add/Remove Slice to/from controlledForm\n\t * 5. Form data changed\n\t */\n\tprivate registerEvents = (): void => {\n\t\twindow.addEventListener(OrganismFormStepperEvents.DISABLE_GO_TO_NEXT_STEP, this.disableNextStepButton);\n\n\t\tthis.formComponent.addEventListener('submit', this.onSubmitForm);\n\n\t\twindow.addEventListener(OrganismFormStepperEvents.RECEIVE_RESUME_SLICE, this.addResumeSliceToSummary);\n\n\t\twindow.addEventListener(OrganismFormStepperEvents.RECEIVE_CONTROLLED_FORM_SLICE, this.addSliceToControlledForm);\n\n\t\twindow.addEventListener(OrganismFormStepperEvents.REMOVE_CONTROLLED_FORM_SLICE, this.removeSliceFromControlledForm);\n\n\t\twindow.addEventListener(OrganismFormStepperEvents.FORM_DATA_CHANGED_BY_STEP, this.formDataChangedByStep);\n\n\t\twindow.addEventListener(OrganismFormStepperEvents.REQUEST_GO_TO_STEP, (event: CustomEvent) => {\n\t\t\t// @todo - check this...\n\t\t\t// this.setCurrentStep(event.detail)\n\t\t\t// this.goToStep()\n\t\t\tthis.setRequestedStep(event.detail);\n\t\t});\n\n\t\twindow.addEventListener(FormstepSelectImageEvents.SELECT_IMAGE, this.selectedImageOptionsChanged);\n\n\t\twindow.addEventListener(OrganismFormStepperEvents.RESET_VALIDATION_SCORE_BY_STEP, this.resetValidationScoreByStep);\n\n\t\tthis.nextStepButton.addEventListener('click', (e) => {\n\t\t\t// prevent button default action\n\t\t\te.preventDefault();\n\t\t\t// this.goToStep('next')\n\t\t});\n\t\tthis.prevStepButton.addEventListener('click', (e) => {\n\t\t\te.preventDefault();\n\t\t\t// prevent button default action\n\t\t\t// this.goToStep('prev')\n\t\t});\n\n\t\tthis.formComponent.addEventListener('submit', this.onSubmitForm);\n\n\t\tconst sidebarItems = this.sidebar?.querySelectorAll('a');\n\t\t/**\n\t\t * This listener in charge of keeping the sidebar and the state synchro\n\t\t */\n\t\tif (sidebarItems) {\n\t\t\tsidebarItems.forEach((element) => {\n\t\t\t\tif (element) {\n\t\t\t\t\telement.addEventListener('click', (e) => {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tconst element = e.target as HTMLAnchorElement;\n\t\t\t\t\t\tconst newCurrentStep = Number(element.dataset.step);\n\t\t\t\t\t\t// const { currentStep } = this.state.get();\n\t\t\t\t\t\t// const direction = newCurrentStep > currentStep ? 'next' : 'prev';\n\t\t\t\t\t\tthis.setRequestedStep(newCurrentStep);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis.topBackButton &&\n\t\t\tthis.topBackButton.addEventListener('click', (e) => {\n\t\t\t\te.preventDefault();\n\t\t\t\t//TO-DO\n\t\t\t});\n\n\t\tthis.topCloseButton &&\n\t\t\tthis.topCloseButton.addEventListener('click', (e) => {\n\t\t\t\te.preventDefault();\n\t\t\t\t//TO-DO\n\t\t\t});\n\t};\n\n\tprivate disableNextStepButton = (e: CustomEvent): void => {\n\t\tthis.nextStepButton.disabled = e.detail;\n\t};\n\n\tprivate updateIconsAndActiveSidebarItem(state: FormStepperState): void {\n\t\tif (!this.sidebar) return;\n\n\t\tconst currentStep = state.currentStep;\n\t\tconst newCheckedEl = document.getElementById('sourceCheckIcon')?.cloneNode(true).firstChild as HTMLSpanElement;\n\t\tconst newEl = document.createElement('span');\n\t\tnewEl.classList.add('uk-badge');\n\n\t\tArray.from(this.sidebar.querySelectorAll<'li'>('li')).forEach((link, index) => {\n\t\t\tif (link.classList.contains('uk-active') && currentStep !== index) {\n\t\t\t\tlink.classList.remove('uk-active');\n\t\t\t}\n\t\t\tif (currentStep === index) {\n\t\t\t\tlink.classList.add('uk-active');\n\t\t\t}\n\n\t\t\tconst linkChild = link.firstChild;\n\t\t\tconst idIndex = (index + 1).toString();\n\t\t\tconst textEl = linkChild?.lastChild;\n\n\t\t\tif (linkChild && textEl) {\n\t\t\t\tconst hasBadge = document.getElementById(idIndex);\n\t\t\t\tconst hasBadgeChecked = document.getElementById(idIndex + '-checked');\n\n\t\t\t\tif (currentStep > index) {\n\t\t\t\t\tif (hasBadge && newCheckedEl) {\n\t\t\t\t\t\tnewCheckedEl.setAttribute('id', idIndex + '-checked');\n\t\t\t\t\t\tlinkChild.removeChild(hasBadge);\n\t\t\t\t\t\tlinkChild.insertBefore(newCheckedEl, textEl);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (hasBadgeChecked) {\n\t\t\t\t\t\tconst elContent = document.createTextNode(idIndex);\n\t\t\t\t\t\tnewEl.setAttribute('id', idIndex);\n\t\t\t\t\t\tnewEl.appendChild(elContent);\n\t\t\t\t\t\tlinkChild.removeChild(hasBadgeChecked);\n\t\t\t\t\t\tlinkChild.insertBefore(newEl, textEl);\n\t\t\t\t\t\tlink.classList.remove('valid');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate showStep(currentStep: FormStepperState['currentStep']): void {\n\t\tif (!this.switcher) return;\n\n\t\tArray.from(this.switcher.querySelectorAll<'li'>('li')).forEach((page, index) => {\n\t\t\tif (currentStep !== index) {\n\t\t\t\tpage.classList.remove('uk-active');\n\t\t\t\tpage.classList.add('uk-hidden');\n\t\t\t} else {\n\t\t\t\tpage.classList.remove('uk-hidden');\n\t\t\t\tpage.classList.add('uk-active');\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * This method transform the data as needed in every situation\n\t * @returns { formData: Record}\n\t */\n\tprivate formDataBuilder = (): Record => {\n\t\tconst formData: Record = {};\n\t\tconst { formType } = this.formConfig.settings;\n\t\tconst controlledData = this.state.get().controlledForm;\n\n\t\tswitch (formType) {\n\t\t\tcase 'five-year-warranty':\n\t\t\t\tObject.keys(controlledData).forEach((key) => {\n\t\t\t\t\tlogs && console.warn(key.includes('system-component'), key);\n\t\t\t\t\tif (key.includes('system-component')) {\n\t\t\t\t\t\tif (!formData.systemComponents) formData.systemComponents = [];\n\t\t\t\t\t\tformData.systemComponents.push(controlledData[key].formSlice);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tformData[key] = controlledData[key].formSlice;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tObject.keys(controlledData).forEach((key) => (formData[key] = controlledData[key].formSlice));\n\t\t}\n\n\t\treturn formData;\n\t};\n\n\tprivate renderAlert(message) {\n\t\tthis.domUtils.renderDomElement(\n\t\t\tConrollerFormSteps.componentRefs.submissionAlert,\n\t\t\talertTemplate({\n\t\t\t\tdata: {\n\t\t\t\t\titems: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmessage,\n\t\t\t\t\t\t\ttype: 'primary',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t}),\n\t\t);\n\t}\n\n\tprivate submitControlledForm(url: string): void {\n\t\tconst formData = this.formDataBuilder();\n\n\t\tfetch(url.toString(), {\n\t\t\tmethod: 'POST',\n\t\t\tbody: JSON.stringify(formData),\n\t\t})\n\t\t\t.then((resp) => {\n\t\t\t\treturn resp.json();\n\t\t\t})\n\t\t\t.then((body: SubmitUserProfilingResponse) => {\n\t\t\t\tif (body.success === true) {\n\t\t\t\t\tconst finalStep = this.state.get().totalSteps;\n\t\t\t\t\tthis.setRequestedStep(finalStep);\n\t\t\t\t\tthis.initDisableSidebarElements();\n\t\t\t\t} else {\n\t\t\t\t\tlogs && console.warn('Form submission was not accepted by backend: ', body);\n\t\t\t\t\tthis.renderAlert((body as SubmitUserProfilingResponseFailed).error);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tlogs && console.warn(error);\n\t\t\t});\n\t}\n\n\tprivate submitFormData(event: SubmitEvent, url: string): void {\n\t\tconst formData = new FormData(event.target as HTMLFormElement);\n\n\t\tfetch(url.toString(), {\n\t\t\tmethod: 'POST',\n\t\t\tbody: formData,\n\t\t})\n\t\t\t.then((resp) => {\n\t\t\t\treturn resp.json();\n\t\t\t})\n\t\t\t.then((body: SubmitUserProfilingResponse) => {\n\t\t\t\tif (body.success === true) {\n\t\t\t\t\tconst finalStep = this.state.get().totalSteps;\n\t\t\t\t\tthis.setRequestedStep(finalStep);\n\t\t\t\t\tthis.initDisableSidebarElements();\n\t\t\t\t} else {\n\t\t\t\t\tlogs && console.log('Form submission was not accepted by backend: ', body);\n\t\t\t\t\tthis.renderAlert((body as SubmitUserProfilingResponseFailed).error);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tlogs && console.log(error);\n\t\t\t});\n\t}\n\n\tprivate onSubmitForm = (event: SubmitEvent): void => {\n\t\tevent.preventDefault();\n\t\tconst { controlledForm, action } = this.formConfig.settings;\n\t\t// @todo - standardize this?\n\t\tif (controlledForm) this.submitControlledForm(action);\n\t\telse this.submitFormData(event, action);\n\t};\n\n\tprivate async validateStep(url: URL, reqOptions: Partial = {}): Promise {\n\t\t// merge payload onto req\n\t\tconst payload = Object.assign(\n\t\t\t{\n\t\t\t\tmethod: 'POST',\n\t\t\t},\n\t\t\treqOptions,\n\t\t);\n\n\t\tconst resp = await fetch(url.toString(), payload);\n\t\treturn (await resp.json()) as T;\n\t}\n\n\tprivate setFormConfig(): void {\n\t\tthis.formConfig = this.domUtils.parseDOMScriptTag(FORM_STEPPER_CONFIG_ID);\n\t}\n\n\tprivate initDisableSidebarElements = (excpetions: number[] = []): void => {\n\t\t[...(this.sidebar?.querySelectorAll('a') as NodeListOf)].forEach(\n\t\t\t(item, i) => !excpetions.includes[i] && item.setAttribute('style', 'pointer-events: none'),\n\t\t);\n\t};\n\n\t/**\n\t * Build validation configs for all steps and save to state\n\t * @returns void\n\t */\n\tprivate initValidationConfig(): void {\n\t\tconst configs: FormStepValidationConfig[] = [];\n\t\tconst initialValidation: FormStepperStateStepValidation[] = [];\n\n\t\tthis.formConfig.steps.map((step, index) => {\n\t\t\tconst { validation } = step || {};\n\n\t\t\tconst validationEventType = (validation && validation.eventType) || null;\n\t\t\tconst validationUrl = (validation && validation.url) || null;\n\t\t\tconst validationEvent = validationEventType ? ValidationEventMapper[validationEventType] : null;\n\t\t\tconst validationScoreRequired = this.getStepValidationScoreRequired(validationEvent, validationUrl);\n\t\t\tconst config: FormStepValidationConfig = {\n\t\t\t\tvalidationEvent: validationEvent || '',\n\t\t\t\tvalidationUrl: validationUrl || '',\n\t\t\t\tvalidationScoreRequired,\n\t\t\t};\n\t\t\tconfigs.push(config);\n\t\t\t// set up initial validation states\n\t\t\tinitialValidation.push({\n\t\t\t\tstepNumber: index,\n\t\t\t\tvalidationScoreCurrent: 0,\n\t\t\t\tvalidationScoreRequired,\n\t\t\t});\n\t\t});\n\n\t\tthis.state.set((prevState) => ({ ...prevState, validationConfig: configs, validatedSteps: initialValidation }));\n\t}\n\n\t/**\n\t * Init the app\n\t * @returns void\n\t */\n\tprivate initApp(): void {\n\t\tthis.setFormConfig();\n\t\tthis.registerEvents();\n\t\tthis.calculateTotalSteps();\n\t\tthis.observeStepsHandler();\n\t\tthis.initDisableSidebarElements([0]);\n\t\tthis.initValidationConfig();\n\t\t// this.initPrevalidatedField()\n\t\tthis.showStep(0);\n\t}\n}\n","require(\"@base/models/component.twig\");\nrequire(\"@components/atoms/a-button/a-button.template.twig\"); \nvar twig = require(\"twig\").twig;\nvar tpl = twig({\"allowInlineIncludes\":true,\"data\":[{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.extends\",\"stack\":[{\"type\":\"Twig.expression.type.string\",\"value\":\"src/base/models/component.twig\"}],\"position\":{\"start\":0,\"end\":43}},\"position\":{\"start\":0,\"end\":43}},{\"type\":\"raw\",\"value\":\"\\n\",\"position\":{\"start\":44,\"end\":45}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.set\",\"key\":\"config\",\"expression\":[{\"type\":\"Twig.expression.type.object.start\",\"value\":\"{\",\"match\":[\"{\"]},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\":\",\"precidence\":16,\"associativity\":\"rightToLeft\",\"operator\":\":\",\"key\":\"name\"},{\"type\":\"Twig.expression.type.string\",\"value\":\"m-formstep-resume-slice\"},{\"type\":\"Twig.expression.type.comma\"},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\":\",\"precidence\":16,\"associativity\":\"rightToLeft\",\"operator\":\":\",\"key\":\"tag\"},{\"type\":\"Twig.expression.type.string\",\"value\":\"div\"},{\"type\":\"Twig.expression.type.comma\"},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\":\",\"precidence\":16,\"associativity\":\"rightToLeft\",\"operator\":\":\",\"key\":\"controller\"},{\"type\":\"Twig.expression.type.string\",\"value\":\"ControllerFormStepResumeSlice\"},{\"type\":\"Twig.expression.type.object.end\",\"value\":\"}\",\"match\":[\"}\"]}],\"position\":{\"start\":45,\"end\":165}},\"position\":{\"start\":45,\"end\":165}},{\"type\":\"raw\",\"value\":\"\\n\",\"position\":{\"start\":166,\"end\":167}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.set\",\"key\":\"attributes\",\"expression\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"attributes\",\"match\":[\"attributes\"]},{\"type\":\"Twig.expression.type.filter\",\"value\":\"default\",\"match\":[\"|default\",\"default\"],\"params\":[{\"type\":\"Twig.expression.type.parameter.start\",\"value\":\"(\",\"match\":[\"(\"]},{\"type\":\"Twig.expression.type.object.start\",\"value\":\"{\",\"match\":[\"{\"]},{\"type\":\"Twig.expression.type.object.end\",\"value\":\"}\",\"match\":[\"}\"]},{\"type\":\"Twig.expression.type.parameter.end\",\"value\":\")\",\"match\":[\")\"],\"expression\":false}]},{\"type\":\"Twig.expression.type.filter\",\"value\":\"merge\",\"match\":[\"|merge\",\"merge\"],\"params\":[{\"type\":\"Twig.expression.type.parameter.start\",\"value\":\"(\",\"match\":[\"(\"]},{\"type\":\"Twig.expression.type.object.start\",\"value\":\"{\",\"match\":[\"{\"]},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\":\",\"precidence\":16,\"associativity\":\"rightToLeft\",\"operator\":\":\",\"key\":\"id\"},{\"type\":\"Twig.expression.type.variable\",\"value\":\"data\",\"match\":[\"data\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"id\"},{\"type\":\"Twig.expression.type.object.end\",\"value\":\"}\",\"match\":[\"}\"]},{\"type\":\"Twig.expression.type.parameter.end\",\"value\":\")\",\"match\":[\")\"],\"expression\":false}]}],\"position\":{\"start\":167,\"end\":239}},\"position\":{\"start\":167,\"end\":239}},{\"type\":\"raw\",\"value\":\"\\n\",\"position\":{\"start\":240,\"end\":241}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.block\",\"blockName\":\"body\",\"position\":{\"start\":241,\"end\":257},\"output\":[{\"type\":\"raw\",\"value\":\"\\t
\\n\\t\\t\",\"position\":{\"start\":327,\"end\":340}},{\"type\":\"output\",\"position\":{\"start\":340,\"end\":354},\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"data\",\"match\":[\"data\"],\"position\":{\"start\":340,\"end\":354}},{\"type\":\"Twig.expression.type.key.period\",\"position\":{\"start\":340,\"end\":354},\"key\":\"label\"}]},{\"type\":\"raw\",\"value\":\"\\n\\t\\t\",\"position\":{\"start\":354,\"end\":364}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.include\",\"only\":4,\"ignoreMissing\":false,\"stack\":[{\"type\":\"Twig.expression.type.string\",\"value\":\"src/wolf/components/atoms/a-button/a-button.template.twig\"}],\"withStack\":[{\"type\":\"Twig.expression.type.object.start\",\"value\":\"{\",\"match\":[\"{\"]},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\":\",\"precidence\":16,\"associativity\":\"rightToLeft\",\"operator\":\":\",\"key\":\"data\"},{\"type\":\"Twig.expression.type.object.start\",\"value\":\"{\",\"match\":[\"{\"]},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\":\",\"precidence\":16,\"associativity\":\"rightToLeft\",\"operator\":\":\",\"key\":\"icon\"},{\"type\":\"Twig.expression.type.object.start\",\"value\":\"{\",\"match\":[\"{\"]},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\":\",\"precidence\":16,\"associativity\":\"rightToLeft\",\"operator\":\":\",\"key\":\"name\"},{\"type\":\"Twig.expression.type.variable\",\"value\":\"data\",\"match\":[\"data\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"icon\"},{\"type\":\"Twig.expression.type.object.end\",\"value\":\"}\",\"match\":[\"}\"]},{\"type\":\"Twig.expression.type.comma\"},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\":\",\"precidence\":16,\"associativity\":\"rightToLeft\",\"operator\":\":\",\"key\":\"href\"},{\"type\":\"Twig.expression.type.string\",\"value\":\"#\"},{\"type\":\"Twig.expression.type.comma\"},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\":\",\"precidence\":16,\"associativity\":\"rightToLeft\",\"operator\":\":\",\"key\":\"text\"},{\"type\":\"Twig.expression.type.string\",\"value\":\"\"},{\"type\":\"Twig.expression.type.comma\"},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\":\",\"precidence\":16,\"associativity\":\"rightToLeft\",\"operator\":\":\",\"key\":\"type\"},{\"type\":\"Twig.expression.type.string\",\"value\":\"icon-small\"},{\"type\":\"Twig.expression.type.comma\"},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\":\",\"precidence\":16,\"associativity\":\"rightToLeft\",\"operator\":\":\",\"key\":\"title\"},{\"type\":\"Twig.expression.type.string\",\"value\":\"Edit field\"},{\"type\":\"Twig.expression.type.comma\"},{\"type\":\"Twig.expression.type.object.end\",\"value\":\"}\",\"match\":[\"}\"]},{\"type\":\"Twig.expression.type.comma\"},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\":\",\"precidence\":16,\"associativity\":\"rightToLeft\",\"operator\":\":\",\"key\":\"attributes\"},{\"type\":\"Twig.expression.type.object.start\",\"value\":\"{\",\"match\":[\"{\"]},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\":\",\"precidence\":16,\"associativity\":\"rightToLeft\",\"operator\":\":\",\"key\":\"data-ref\"},{\"type\":\"Twig.expression.type.string\",\"value\":\"cta-edit-step\"},{\"type\":\"Twig.expression.type.comma\"},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\":\",\"precidence\":16,\"associativity\":\"rightToLeft\",\"operator\":\":\",\"key\":\"data-slice-id\"},{\"type\":\"Twig.expression.type.variable\",\"value\":\"data\",\"match\":[\"data\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"id\"},{\"type\":\"Twig.expression.type.comma\"},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\":\",\"precidence\":16,\"associativity\":\"rightToLeft\",\"operator\":\":\",\"key\":\"data-step-idx\"},{\"type\":\"Twig.expression.type.variable\",\"value\":\"data\",\"match\":[\"data\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"originalFormStep\"},{\"type\":\"Twig.expression.type.object.end\",\"value\":\"}\",\"match\":[\"}\"]},{\"type\":\"Twig.expression.type.comma\"},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\":\",\"precidence\":16,\"associativity\":\"rightToLeft\",\"operator\":\":\",\"key\":\"classes\"},{\"type\":\"Twig.expression.type.array.start\",\"value\":\"[\",\"match\":[\"[\"]},{\"type\":\"Twig.expression.type.variable\",\"value\":\"config\",\"match\":[\"config\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"name\"},{\"type\":\"Twig.expression.type.string\",\"value\":\"__mobile-enlarger\"},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\"~\",\"precidence\":6,\"associativity\":\"leftToRight\",\"operator\":\"~\"},{\"type\":\"Twig.expression.type.comma\"},{\"type\":\"Twig.expression.type.variable\",\"value\":\"data\",\"match\":[\"data\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"isEditable\"},{\"type\":\"Twig.expression.type.string\",\"value\":\"\"},{\"type\":\"Twig.expression.type.string\",\"value\":\"uk-hidden\"},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\"?\",\"precidence\":16,\"associativity\":\"rightToLeft\",\"operator\":\"?\"},{\"type\":\"Twig.expression.type.array.end\",\"value\":\"]\",\"match\":[\"]\"]},{\"type\":\"Twig.expression.type.object.end\",\"value\":\"}\",\"match\":[\"}\"]}],\"position\":{\"start\":364,\"end\":790}},\"position\":{\"start\":364,\"end\":790}},{\"type\":\"raw\",\"value\":\"\\t
\\n\\t
\\n\\t\\t\",\"position\":{\"start\":791,\"end\":864}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.for\",\"keyVar\":null,\"valueVar\":\"field\",\"expression\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"data\",\"match\":[\"data\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"fields\"}],\"position\":{\"start\":864,\"end\":894},\"output\":[{\"type\":\"raw\",\"value\":\"\\t\\t\\t
\\n\\t\\t\\t\\t\",\"position\":{\"start\":967,\"end\":976}},{\"type\":\"output\",\"position\":{\"start\":976,\"end\":991},\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"field\",\"match\":[\"field\"],\"position\":{\"start\":976,\"end\":991}},{\"type\":\"Twig.expression.type.key.period\",\"position\":{\"start\":976,\"end\":991},\"key\":\"label\"}]},{\"type\":\"raw\",\"value\":\"\\n\\t\\t\\t\\t

\",\"position\":{\"start\":1028,\"end\":1043}},{\"type\":\"output\",\"position\":{\"start\":1043,\"end\":1058},\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"field\",\"match\":[\"field\"],\"position\":{\"start\":1043,\"end\":1058}},{\"type\":\"Twig.expression.type.key.period\",\"position\":{\"start\":1043,\"end\":1058},\"key\":\"value\"}]},{\"type\":\"raw\",\"value\":\"

\\n\\t\\t\\t
\\n\\t\\t\",\"position\":{\"start\":1058,\"end\":1075}}]},\"position\":{\"open\":{\"start\":864,\"end\":894},\"close\":{\"start\":1075,\"end\":1087}}},{\"type\":\"raw\",\"value\":\"\\t
\\n\\n\",\"position\":{\"start\":1088,\"end\":1097}}]},\"position\":{\"open\":{\"start\":241,\"end\":257},\"close\":{\"start\":1097,\"end\":1111}}}],\"id\":\"src/wolf/components/molecules/m-formstep-resume-slice/m-formstep-resume-slice.template.twig\",\"rethrow\":true});\nmodule.exports = function(context) { return tpl.render(context); };\nmodule.exports.id = \"src/wolf/components/molecules/m-formstep-resume-slice/m-formstep-resume-slice.template.twig\";\nmodule.exports.default = module.exports;\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;"],"names":["ObservableState","constructor","stateToObserve","sideEffects","this","_privateState","observedState","asObservable","set","stateUpdaterCallback","prevState","get","next","runSideEffectsHandler","value","nextState","Object","values","forEach","sideEffect","shouldBeCalled","callSideEffect","callback","deps","dep","JSON","stringify","parse","resumeSliceMolecule","ResumeStepEvents","ControllerFormstepResumeStep","element","super","componentRefs","formSlice","resumeContainer","$references","checkboxContainer","initComponent","observeTermsAndConditionsCheckbox","checkboxes","$element","getElementsByTagName","Array","from","addEventListener","e","currentCheckbox","target","currentCheckboxName","name","checked","sendControlledFormToParentStepper","registerEvents","window","RECEIVE_RESUMES_SLICE_SUMMARY","event","stepResumes","detail","flat","length","innerHTML","nodesArray","data","push","twigString","sliceElement","domUtils","appendRawHtmlToDomElement","ControllerFormStepResumeSlice","dispatchCustomEvent","RECEIVE_CONTROLLED_FORM_SLICE","stepId","validateCheckboxes","checkboxNames","querySelectorAll","filteredCheckboxes","filter","checkbox","indexOf","checkBoxChecked","previousElementSibling","children","classList","add","nextElementSibling","removeAttribute","remove","setAttribute","every","errorHandlerDiv","style","display","alertTemplate","ConrollerFormSteps","ControllerBase","_defaultState","totalSteps","currentStep","requestedStep","currentDirection","validationConfig","validatedSteps","controlledForm","selectedOptions","goToStep","state","showStep","newState","undefined","validationScoreRequired","Frontend","onUpdateNavigation","currentState","updateSidebarNavigationClickableItems","updateIconsAndActiveSidebarItem","manageStepButtonsState","stepIsValid","toggleElementState","nextStepButton","prevStepButton","formSubmitButton","bottomNavigation","setStepValidity","callbackValidationType","validity","isRequired","getStepValidationConfig","isSet","validationScoreCurrent","onValidationSuccess","currentDirectionIsNext","setRequestedStep","onValidationError","getStepValidationData","stepLi","switcher","fieldsetId","querySelector","id","formData","FormData","field","type","toLowerCase","append","parsedFormFields","entries","el","runValidationViaUrl","validationUrl","stepValidationData","performValidationRequest","then","resp","success","Backend","resumeSlices","RECEIVE_RESUME_SLICE","step","DISPLAY_VALIDATION_ERRORS","error","catch","err","runValidationsViaEvent","validationEvent","eventDetail","body","url","URL","validateStep","onValidateStepChange","setCurrentStep","setCurrentDirection","addResumeSliceToSummary","stepResumesStateUpdated","newResumeSlice","map","some","indexSliceToReplace","findIndex","addSliceToControlledForm","controlledFormUpdated","newControlledFormSlice","removeSliceFromControlledForm","formDataChangedByStep","resetValidationScore","selectedImageOptionsChanged","selectedValue","isSelected","indexToDelete","splice","SELECT_OPTION_CHANGED","resetValidationScoreByStep","DISABLE_GO_TO_NEXT_STEP","disableNextStepButton","formComponent","onSubmitForm","REMOVE_CONTROLLED_FORM_SLICE","FORM_DATA_CHANGED_BY_STEP","REQUEST_GO_TO_STEP","SELECT_IMAGE","RESET_VALIDATION_SCORE_BY_STEP","preventDefault","sidebarItems","sidebar","newCurrentStep","Number","dataset","topBackButton","topCloseButton","disabled","formDataBuilder","formType","formConfig","settings","controlledData","keys","key","includes","systemComponents","action","submitControlledForm","submitFormData","initDisableSidebarElements","excpetions","item","i","sidebarWrapper","submissionAlert","RUN_VALIDATIONS_ON_STEP_CHANGE","UPDATE_NAVIGATION_ITEMS","initApp","isFirstElement","shouldEnableClickability","getStepValidationScoreRequired","score","calculateTotalSteps","steps","directionOrStepNumber","newStep","direction","setRequestedNextStep","observeStepsHandler","inputUtils","observeElementEvents","newCheckedEl","document","getElementById","cloneNode","firstChild","newEl","createElement","link","index","contains","linkChild","idIndex","toString","textEl","lastChild","hasBadge","hasBadgeChecked","removeChild","insertBefore","elContent","createTextNode","appendChild","page","renderAlert","message","renderDomElement","items","fetch","method","json","finalStep","reqOptions","payload","assign","setFormConfig","parseDOMScriptTag","initValidationConfig","configs","initialValidation","validation","validationEventType","eventType","config","stepNumber","tpl","twig","module","exports","context","render","getRandomValues","rnds8","Uint8Array","rng","crypto","bind","msCrypto","Error","byteToHex","substr","arr","offset","arguments","uuid","test","TypeError","options","buf","rnds","random"],"sourceRoot":""}