{"version":3,"file":"diContainer.dc93899a0967cacae53c.bundle.js","mappings":"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","sources":["webpack://elc-service-subscriptions/./src/internal/constants/AutoReplenishment.ts","webpack://elc-service-subscriptions/./src/internal/constants/AutoReplenishmentTimingTypes.ts","webpack://elc-service-subscriptions/./src/service-setup/ConfigStore.tsx","webpack://elc-service-subscriptions/./node_modules/@estee/elc-service/src/ViewController.ts","webpack://elc-service-subscriptions/./src/internal/controllers/AutoReplenishmentViewController.ts","webpack://elc-service-subscriptions/./src/service-setup/diContainer.tsx"],"sourcesContent":["import { TIMING_TYPE } from './AutoReplenishmentTimingTypes';\n\nexport enum TOGGLE_TYPE {\n CHECKBOX = 'checkbox',\n SWITCH = 'switch'\n}\n\nexport enum INFO_POPUP_TRIGGER {\n ICON = 'icon',\n TEXT = 'text'\n}\n\nexport const WEEK_DAYS = 7;\nexport const MONTH_DAYS = 30;\n\nexport const DAYS = {\n [TIMING_TYPE.DAYS]: 1,\n [TIMING_TYPE.WEEKS]: WEEK_DAYS,\n [TIMING_TYPE.MONTHS]: MONTH_DAYS\n};\n\nexport const FREQUENCY_REGEX = /::FREQUENCY::/gi;\nexport const DAYS_REGEX = /::DAYS::/gi;\nexport const DAYS_PLACEHOLDER = '::days::';\n","export enum TIMING_TYPE {\n WEEKS = 'weeks',\n DAYS = 'days',\n MONTHS = 'months'\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { observable, action } from 'mobx';\n\nexport class ConfigStore {\n @observable public config: any = {};\n\n constructor(config: any) {\n this.updateConfig(config);\n }\n\n @action\n public updateConfig(config: any) {\n this.config = { ...this.config, ...config };\n }\n}\n","import { observable } from 'mobx';\nimport {\n IComponentViewController,\n IViewControllerData,\n ViewControllerLoadedMethod\n} from '@estee/elc-universal-utils';\n\nexport class ViewController implements IComponentViewController {\n public id?: string;\n public dataState?: IViewControllerData;\n public loaded?: ViewControllerLoadedMethod;\n public configMergeStrategy?: Function;\n @observable public isLoading: boolean = true;\n\n public setSSRState = (data?: IViewControllerData) => {\n this.dataState = data;\n };\n\n public setId = (id?: string) => {\n this.id = id && btoa(unescape(encodeURIComponent(id)));\n };\n\n public get data(): IViewControllerData {\n return {};\n }\n}\n","import { ViewController } from '@estee/elc-service';\nimport { action, computed, observable } from 'mobx';\nimport {\n IAutoReplenishment,\n IAutoReplenishOptions\n} from '../../exported/auto-replenishment/AutoReplenishment';\nimport { DAYS } from '~constants/AutoReplenishment';\nimport { TIMING_TYPE } from '~constants/AutoReplenishmentTimingTypes';\n\nexport interface IAutoReplenishmentControllerConfig {\n autoReplenishment: IAutoReplenishOptions;\n onSelect(option: number): void;\n}\n\nexport class AutoReplenishmentViewController extends ViewController {\n private config: IAutoReplenishmentControllerConfig;\n @observable public isAutoReplenishSelected = false;\n @observable private _selectedAutoReplenishOption: number = 0;\n\n /**\n * Sets the config.\n *\n * @remarks\n * If a default auto replenishment option is present, set the currently\n * selected option without triggering the onSelect event.\n */\n @action\n public initialize = ({ config }: IAutoReplenishment) => {\n this.config = config as IAutoReplenishmentControllerConfig;\n\n const {\n autoReplenishment: { defaultInterval, timingType }\n } = this.config;\n\n if (defaultInterval) {\n const daysPerInterval = DAYS[timingType ?? TIMING_TYPE.DAYS];\n const defaultAutoReplenishOption = defaultInterval * daysPerInterval;\n\n this.selectedAutoReplenishOption = defaultAutoReplenishOption;\n }\n };\n\n @computed\n public get componentConfig() {\n const { autoReplenishment = {} } = this.config || {};\n const { ...autoReplenishmentConfig } = autoReplenishment;\n\n return { ...autoReplenishmentConfig };\n }\n\n @computed\n public get data() {\n const { intervals = [], toggleType, timingType } = this.componentConfig;\n\n return {\n componentConfig: this.componentConfig,\n isAutoReplenishSelected: this.isAutoReplenishSelected,\n selectedAutoReplenishOption: this.selectedAutoReplenishOption,\n intervals,\n toggleType,\n timingType\n };\n }\n\n @computed\n public get infoModalConfig() {\n const { infoPopupTriggerType, infoPopupNodeId } = this.componentConfig;\n\n return {\n infoPopupTriggerType,\n infoPopupNodeId\n };\n }\n\n @computed\n public get selectedAutoReplenishOption() {\n return this._selectedAutoReplenishOption;\n }\n\n /**\n * Sets the auto replenishment option\n *\n * @remarks\n * NADTX0-1758 PG expects 7 Weeks as 120 days now (instead of 119).\n *\n * {@link https://jira.esteeonline.com/browse/NADTX0-1758}\n */\n public set selectedAutoReplenishOption(value: number) {\n this._selectedAutoReplenishOption = value === 119 ? 120 : value;\n }\n\n @action\n public setAutoReplenishOption = (option: number) => {\n this.selectedAutoReplenishOption = option;\n this.config.onSelect(this.selectedAutoReplenishOption);\n };\n\n @action\n public setAutoReplenishSelection = (isSelected: boolean) => {\n this.isAutoReplenishSelected = isSelected;\n\n if (this.isAutoReplenishSelected) {\n this.config.onSelect(this.selectedAutoReplenishOption);\n } else {\n this.config.onSelect(0);\n }\n };\n\n public toggleAutoReplenishSelection = () => {\n this.setAutoReplenishSelection(!this.isAutoReplenishSelected);\n };\n}\n","//tslint:disable:export-name\nimport { Container } from 'hypo-container';\nimport { ConfigStore } from './ConfigStore';\nimport { SubscriptionsService } from './SubscriptionsService';\nimport { AutoReplenishmentViewController } from '../internal/controllers/AutoReplenishmentViewController';\nimport serviceNames from '~setup/SubscriptionsService';\nimport { IAppConfig } from '@estee/elc-universal-utils';\n\nexport const diContainer = new Container();\n\nexport const setConfig = (configJSON: IAppConfig) => {\n diContainer.config = configJSON;\n};\n\ndiContainer\n .register(serviceNames.subscriptionsService, (c) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new SubscriptionsService(setConfig);\n })\n .register(serviceNames.configStore, (c) => new ConfigStore(c.config))\n .register(\n serviceNames.autoReplenishmentViewController,\n diContainer.factory((c) => new AutoReplenishmentViewController())\n );\n"],"names":["TOGGLE_TYPE","INFO_POPUP_TRIGGER","DAYS","FREQUENCY_REGEX","DAYS_REGEX","DAYS_PLACEHOLDER","TIMING_TYPE","ConfigStore","constructor","config","this","updateConfig","ViewController","isLoading","setSSRState","data","dataState","setId","id","btoa","unescape","encodeURIComponent","AutoReplenishmentViewController","isAutoReplenishSelected","_selectedAutoReplenishOption","initialize","autoReplenishment","defaultInterval","timingType","defaultAutoReplenishOption","selectedAutoReplenishOption","setAutoReplenishOption","option","onSelect","setAutoReplenishSelection","isSelected","toggleAutoReplenishSelection","componentConfig","intervals","toggleType","infoModalConfig","infoPopupTriggerType","infoPopupNodeId","value","diContainer","Container","setConfig","configJSON","register","c","SubscriptionsService","factory"],"sourceRoot":""}