1"use strict";(self.NiveaXwebpackJsonp=self.NiveaXwebpackJsonp||[]).push([[6040,8870,9631],{48582:(t,e,i)=>{i.r(e),i.d(e,{default:()=>l});var s=i(21464),r=i(59082),n=i(50947);const o='[data-module="RoutineBuilderSelection"]';class l{static setup(t=o){Array.from(document.querySelectorAll(t)).filter(t=>!t.dataset.moduleInitialized).forEach(t=>{new l(t),t.dataset.moduleInitialized="true"})}constructor(t,e={}){this.element=t,this.json=[],this.options=(0,s.$E)(this.element,Object.assign(this.getDefaultOptions(),e)),this.routineStepsNodeList=this.element.querySelectorAll(`[${this.options.routineStepDataAttribute}]`),this.routineBuilderSelectionValidator=new r.default(this.element,this.options),this.RoutineBuilderPreselection=new n.default(this.element,this.options),this.hiddenInputForJSON=document.querySelector(".nx-routine-builder-bottom-content .alpaca-form .nx-hidden input"),this.init()}init(){return this.createNewStepDataOrPreSelected(),this.getWeekDayPickerValue(),this.clickHandler(),this}getWeekDayPickerValue(){return this.routineStepsNodeList.forEach(t=>{t.querySelector(".nx-weekday-picker")?this.setSelectedOptionsListeners(t.querySelector(".nx-weekday-picker"),t):this.setSelectedOptionsListeners(null,t)}),this}createNewStepDataOrPreSelected(){this.hiddenInputForJSON.value.length>0&&!this.stepIdsChanged()?this.applyPreSelectionData():this.createStepsData()}stepIdsChanged(){const t=Array.from(document.querySelectorAll(`.${this.options.routineBuilderStepClass}`)).map(t=>t.getAttribute(`${this.options.routineStepDataAttribute}`)),e=this.RoutineBuilderPreselection.valueFromInputToJson().map(t=>t.stepID);return!this.arrayEquals(t,e)}arrayEquals(t,e){return Array.isArray(t)&&Array.isArray(e)&&t.length===e.length&&t.every((t,i)=>t===e[i])}applyPreSelectionData(){this.json=this.RoutineBuilderPreselection.valueFromInputToJson(),this.hiddenInputForJSON.value="",Array.from(document.querySelectorAll(`.${this.options.routineBuilderStepClass}
1`)).forEach(t=>t.classList.add("nx-valid"))}createStepsData(){const t=Array.from(this.routineStepsNodeList);return this.json=t.map(t=>({stepID:t.getAttribute(`${this.options.routineStepDataAttribute}`),ProductID:"",Options:"",Valid:!1})),this.preSelectFirstProductInSet(),this}setSelectedOptionsListeners(t,e){return null!==t?t.addEventListener("niveax:WeekdayPicker:submit",t=>{this.getSelectedOptions(t,e)}):this.pushToJSONEmptyValue(e),this}pushToJSONEmptyValue(t){const e=t.getAttribute(`${this.options.routineStepDataAttribute}`);this.pushToSelectionObject(e,"Options","")}getSelectedOptions(t,e){const i=e.getAttribute(`${this.options.routineStepDataAttribute}`);return this.pushToSelectionObject(i,"Options",this.parseOptions(t.detail.Options)),this.validateStep(e),this}parseOptions(t){return t.map(t=>t.value)}clickHandler(){return this.element.addEventListener("click",t=>{const e=t.target,i=e.closest(`[${this.options.routineStepDataAttribute}]`),s=e.closest(`[${this.options.productIdDataAttribute}]`);s&&(t.preventDefault(),this.getSelectedProductId(i,s))}),this}getSelectedProductId(t,e){return this.pushToSelectionObject(t.getAttribute(`${this.options.routineStepDataAttribute}`),"ProductID",e.getAttribute(`${this.options.productIdDataAttribute}`)),this.selectStepProduct(e,t),this.validateStep(t),this}pushToSelectionObject(t,e,i){const s=this.findObjectWithStepID(t);return s&&(s[e]=i),this.validateJSON()?this.addJsonToInput():this.hiddenInputForJSON.value="",this}findObjectWithStepID(t){return this.json.find(e=>e.stepID===t)}selectStepProduct(t,e){const i=e.querySelector(`.${this.options.selectProductClass}`);return i&&i.classList.remove(`${this.options.selectProductClass}`),t.classList.add(`${this.options.selectProductClass}`),this}validateStep(t){const e=t.getAttribute(`${this.options.routineStepDataAttribute}`),i=this.findObjectWithStepID(e);return i&&this.routineBuilderSelectionValidator.routineBuilderSelectionValidatorStep(i,t)?this.pushToSelectionObject(e,"Valid",!0):this.pushToSelectionObject(e,"Valid",!1),this}validateJSON(){return this.json.length>0&&this.json.every(t=>!0===t.Valid)}addJsonToInput(){const t=JSON.stringify(this.json);return this.hiddenInputForJSON.value=t}getDefaultOptions(){return{routineStepDataAttribute:"data-routine-step",productIdDataAttribute:"data-product-id",routineBuilderStepClass:"nx-routine-builder-step",selectProductClass:"nx-selected-product",validClass:"nx-valid",invalidClass:"nx-invalid",hiddenClass:"nx-hidden",errorClass:"nx-error"}}getSelectedWeekdays(t,e){const i=e.getAttribute(`${this.options.routineStepDataAttribute}`);return this.pushToSelectionObject(i,"Options",t),this.validateStep(e),this}preSelectFirstProductInSet(){this.routineStepsNodeList.forEach((t,e)=>{var i;const r=t.querySelector(`[${this.options.productIdDataAttribute}]`),n=t.querySelector(".nx-weekday-picker-select-result");if(r){const e=null===(i=t.querySelector(".nx-weekday-picker-layer-data"))||void 0===i?void 0:i.innerHTML,o=e?(0,s.pt)(e.replace(/[\r\n]/gm,"")).shift():null;if(t.classList.add("nx-valid"),o){const{Days:e,MinSelected:i}=o,s=e.slice(0,i);n.innerHTML=s.toString(),this.getSelectedWeekdays(s,t)}this.getSelectedProductId(t,r)}})}}l.setup(o)},50947:(t,e,i)=>{i.r(e),i.d(e,{default:()=>s});class s{constructor(t,e={}){this.element=t,this.options=e,this.init()}init(){return this.setPreselectedValues(this.element),this}valueFromHiddenInput(){return document.querySelector(".nx-routine-builder-bottom-content .alpaca-form .nx-hidden input").value}valueFromInputToJson(){if(!this.valueFromHiddenInput().length)return;return this.valueFromHiddenInput().split("*").filter(t=>t).map(function(t){let e=t.split("|");return{stepID:e[0],ProductID:e[1],Options:e.length>2?e[2].split(/\s*,\s*/):[],Valid:!0}})}setPreselectedValues(t){this.valueFromHiddenInput().length&&this.valueFromInputToJson().forEach(e=>{let i=t.querySelector(`[data-routine-step="${e.stepID}
1"]`),s=null==i?void 0:i.querySelector(`[data-product-id="${e.ProductID}"]`);if(s?s.classList.add("nx-selected-product"):console.warn("product id not found",s,e.ProductID),e.Options.length>0){let t=null==i?void 0:i.querySelector(".nx-weekday-picker-select-result");t&&(t.innerHTML=e.Options.join(", "))}})}}},59082:(t,e,i)=>{i.r(e),i.d(e,{default:()=>s});class s{constructor(t,e={}){this.element=t,this.options=e,this.errorElement=Array.from(this.element.querySelectorAll(".nx-error__item")),this.RoutineBuilderSelectionValidatorStep=new r(this.element,this.options),this.init()}init(){return this.alpacaListener(),this.clickHandler(),this}routineBuilderSelectionValidatorStep(t,e){let i=this.RoutineBuilderSelectionValidatorStep.validateRoutineBuilderSelectionItems(t,e);return i?this.RoutineBuilderSelectionValidatorStep.validStep(e):this.RoutineBuilderSelectionValidatorStep.invalidStep(e),i}clickHandler(){return this.errorElement.forEach(t=>{t.addEventListener("click",()=>this.toggleErrorClass(t))}),this}alpacaListener(){return document.addEventListener("alpaca:forms:form-validated",t=>{!t.detail.isValid&&this.scrollToInvalidStep()}),this}toggleErrorClass(t){return t.classList.toggle("nx-error__item--open"),this}scrollToInvalidStep(){return this.setValidationStepClasses(),this.invalidStep()&&this.invalidStep().scrollIntoView({behavior:"smooth"}),this}invalidStepsList(){return Array.from(document.querySelectorAll(`.${this.options.routineBuilderStepClass}:not(.nx-valid)`))}invalidStep(){return this.invalidStepsList().length>0&&this.invalidStepsList()[0]}setValidationStepClasses(){return Array.from(this.invalidStepsList()).forEach(t=>t.classList.add("nx-invalid")),this}}class r{constructor(t,e={}){this.element=t,this.options=e}validateRoutineBuilderSelectionItems(t,e){const i=this.validateRoutineBuilderSelection(t.ProductID,e,"nx-routine-builder__error"),s=""===t.Options||this.validateRoutineBuilderSelection(this.validateOptionSelection(t,e),e,"nx-weekday-picker__error");return!(!i||!s)}validateOptionSelection(t,e){return t.Options[0]&&this.validateMinOptionSelection(t,e)}validateMinOptionSelection(t,e){return this.getMinSelection(e)<=t.Options.length}getMinSelection(t){return Number(t.querySelector(".nx-weekday-picker").getAttribute("data-min-selected"))}validStep(t){return this.removeInvalidClassFromStep(t),this.addClassToValidStep(t),this}invalidStep(t){return this.removeValidClassFromStep(t),this.addClassToInvalidStep(t),this}validateRoutineBuilderSelection(t,e,i){return t?this.hideErrorItem(e,i):this.showErrorItem(e,i),!!t}addClassToValidStep(t){return t.classList.add(`${this.options.validClass}`)}addClassToInvalidStep(t){return t.classList.add(`${this.options.invalidClass}`)}removeInvalidClassFromStep(t){return t.classList.contains(`${this.options.invalidClass}`)&&t.classList.remove(`${this.options.invalidClass}`)}removeValidClassFromStep(t){return t.classList.contains(`${this.options.validClass}`)&&t.classList.remove(`${this.options.validClass}`)}hideErrorItem(t,e){return t.querySelector(`.${e}`).classList.add(`${this.options.hiddenClass}`)}showErrorItem(t,e){var i;return t.querySelector(`.${e}`).classList.contains(`${this.options.hiddenClass}`)&&(null===(i=t.querySelector(`.${e}`))||void 0===i?void 0:i.classList.remove(`${this.options.hiddenClass}`))}}}}]); 2//# sourceMappingURL=/dist/NiveaX/./modules/RoutineBuilderSelection-RoutineBuilderSelection.fe9567ee.js.8414dcf1.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.