{"version":3,"file":"diContainer.a0453436c3028ac5547d.bundle.js","mappings":"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","sources":["webpack://elc-service-account/./node_modules/@estee/elc-base-theme/src/Breakpoints.ts","webpack://elc-service-account/./src/internal/repositories/AuthenticatedRepository.ts","webpack://elc-service-account/./src/internal/views/sidebar/sections.ts","webpack://elc-service-account/./node_modules/@estee/elc-service/src/ViewController.ts","webpack://elc-service-account/./src/internal/use-cases/AccountPageLoadedUseCase.ts","webpack://elc-service-account/./src/exported/account-dashboard/AccountDashboardController.ts","webpack://elc-service-account/./src/exported/account-orders/AccountOrdersController.ts","webpack://elc-service-account/./src/internal/use-cases/AccountSidebarLoadedUseCase.ts","webpack://elc-service-account/./src/exported/account-sidebar/AccountSidebarController.ts","webpack://elc-service-account/./src/internal/domain/entities/AccountOverlay.ts","webpack://elc-service-account/./src/internal/domain/entities/Config.ts","webpack://elc-service-account/./src/internal/repositories/AccountRepository.ts","webpack://elc-service-account/./src/internal/repositories/ConfigRepository.ts","webpack://elc-service-account/./src/internal/use-cases/AccountServiceStartedUseCase.ts","webpack://elc-service-account/./src/internal/use-cases/AccountSidebarVisibilityUseCase.ts","webpack://elc-service-account/./src/service-setup/ServiceBusController.ts","webpack://elc-service-account/./src/service-setup/diContainer.ts"],"sourcesContent":["export interface IBreakpoints {\n [key: string]: number;\n}\n\nexport const layoutPageContentWidth: number = 1260;\n\nexport const Breakpoints: IBreakpoints = {\n desktop: 768,\n largeScreen: 1024,\n extraLargeScreen: 1200\n};\n\nexport const breakpoint = (brp: string) => (\n code: TemplateStringsArray,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ...placeholders: any[]\n) => {\n // interleave the code with the placeholders\n let result = placeholders.reduce((acc, holder, idx) => `${acc}${code[idx]}${holder}`, '');\n\n // add the code literal\n result = `${result}${code[code.length - 1]}`;\n\n return `@media(min-width: ${Breakpoints[brp]}px) {${result}}`;\n};\n","import { action, computed, observable } from 'mobx';\n\nimport { query, serviceQueries, ServiceQueriesResponseType } from '@estee/elc-service-bus';\n\nenum Status {\n IDLE = 'IDLE',\n LOADING = 'LOADING',\n ERROR = 'ERROR',\n LOADED = 'LOADED'\n}\n\ntype AuthState = typeof serviceQueries.GET_USER_AUTH_STATE;\ntype UserAuthState = Pick[AuthState];\n\nexport const authStates: { [key: string]: UserAuthState } = {\n SIGNEDIN: 'SIGNEDIN',\n ANONYMOUS: 'ANONYMOUS',\n RECOGNIZED: 'RECOGNIZED'\n};\n\nexport class AuthenticatedRepository {\n private initialPromise: Promise;\n @observable private status: Status = Status.IDLE;\n @observable public authState: UserAuthState = authStates.ANONYMOUS;\n @observable public fetchedUserAuth: Boolean = false;\n\n @action public ensureData() {\n if (this.isUnfulfilled) {\n this.initialPromise = this.loadData();\n }\n\n return this.initialPromise;\n }\n\n @action private async loadData() {\n try {\n this.status = Status.LOADING;\n\n if (this.authState === authStates.SIGNEDIN) {\n await this.fetchData();\n this.status = Status.LOADED;\n }\n } catch (err) {\n this.status = Status.ERROR;\n }\n }\n\n @action public async fetchData() {}\n\n @action public async fetchUserAuthState() {\n if (!this.fetchedUserAuth) {\n try {\n this.authState = (await query(serviceQueries.GET_USER_AUTH_STATE)) as UserAuthState;\n this.fetchedUserAuth = true;\n } catch (err) {\n throw new Error(err);\n }\n }\n }\n\n @computed public get isUnfulfilled() {\n return [Status.IDLE, Status.ERROR].includes(this.status);\n }\n}\n","export const sidebarSections = {\n loyalty: 'loyaltyTier',\n menu: 'accountLinks',\n showcase: 'showcase',\n welcome: 'profileWelcome'\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 { root } from '@estee/elc-universal-utils';\n\nimport { IServiceAppConfig } from '~domain/entities/IConfig';\nimport { AuthenticatedRepository, authStates } from '~repositories/AuthenticatedRepository';\nimport { diContainer } from '~setup/diContainer';\nimport serviceNames from '~setup/AccountService';\n\nexport class AccountPageLoadedUseCase {\n private authenticatedRepository: AuthenticatedRepository;\n private accountRoutes: IServiceAppConfig;\n\n constructor() {\n this.authenticatedRepository = diContainer.get(serviceNames.authenticatedRepository);\n const config = diContainer.get(serviceNames.config);\n this.accountRoutes = config?.accountRoutes;\n }\n\n public async execute() {\n await this.authenticatedRepository.fetchUserAuthState();\n const { authState } = this.authenticatedRepository;\n\n if (authState !== authStates.SIGNEDIN) {\n root.location.href = this.accountRoutes?.signInPath;\n }\n }\n}\n","import { action, computed, observable } from 'mobx';\n\nimport { Breakpoints } from '@estee/elc-base-theme';\nimport { ViewController } from '@estee/elc-service';\n\nimport { AccountPageLoadedUseCase } from '~use-cases/AccountPageLoadedUseCase';\n\nclass AccountDashboardController extends ViewController {\n @observable public isMobileDevice: boolean;\n\n constructor() {\n super();\n this.setUserDevice = this.setUserDevice.bind(this);\n }\n\n public loaded = async () => {\n this.isLoading = true;\n await new AccountPageLoadedUseCase().execute();\n this.isLoading = false;\n this.setUserDevice();\n window.addEventListener('resize', this.setUserDevice);\n };\n\n @action private setUserDevice() {\n this.isMobileDevice = window.innerWidth < Breakpoints.desktop;\n }\n\n public unMounted = () => {\n window.removeEventListener('resize', this.setUserDevice);\n };\n\n @computed public get data() {\n return {\n isMobileDevice: this.isMobileDevice,\n isLoading: this.isLoading\n };\n }\n}\n\nexport default AccountDashboardController;\n","import { computed } from 'mobx';\n\nimport { ViewController } from '@estee/elc-service';\n\nimport { AccountPageLoadedUseCase } from '~use-cases/AccountPageLoadedUseCase';\n\nclass AccountOrdersController extends ViewController {\n public loaded = async () => {\n this.isLoading = true;\n await new AccountPageLoadedUseCase().execute();\n this.isLoading = false;\n };\n\n @computed public get data() {\n return {\n isLoading: this.isLoading\n };\n }\n}\n\nexport default AccountOrdersController;\n","import { AccountRepository } from '~repositories/AccountRepository';\nimport { diContainer } from '~setup/diContainer';\nimport serviceNames from '~setup/AccountService';\n\nexport class AccountSidebarLoadedUseCase {\n private accountRepository: AccountRepository;\n\n constructor() {\n this.accountRepository = diContainer.get(serviceNames.accountRepository);\n }\n\n public async execute() {\n return this.accountRepository.fetchData();\n }\n}\n","import { action, computed, observable } from 'mobx';\n\nimport { IOrderConfig } from '@estee/elc-layouts';\nimport { ViewController } from '@estee/elc-service';\nimport { command, emit, events, serviceCommands } from '@estee/elc-service-bus';\n\nimport { AccountOverlay } from '~domain/entities/AccountOverlay';\nimport { AccountRepository } from '~repositories/AccountRepository';\nimport { AuthenticatedRepository } from '~repositories/AuthenticatedRepository';\nimport { AccountSidebarLoadedUseCase } from '~use-cases/AccountSidebarLoadedUseCase';\nimport { IMenuLink } from '~views/sidebar/menu/Menu';\nimport { sidebarSections as sdb } from '~views/sidebar/sections';\nimport { IShowcaseItem } from '~views/sidebar/showcase/IShowcase';\n\ninterface IAccountSidebarController {\n accountOverlay: AccountOverlay;\n accountRepository: AccountRepository;\n authenticatedRepository: AuthenticatedRepository;\n}\n\nclass AccountSidebarController extends ViewController {\n private accountRepository: AccountRepository;\n private authenticatedRepository: AuthenticatedRepository;\n @observable private accountOverlay: AccountOverlay;\n @observable private orderableConfig: IOrderConfig;\n\n constructor({\n accountOverlay,\n accountRepository,\n authenticatedRepository\n }: IAccountSidebarController) {\n super();\n this.accountOverlay = accountOverlay;\n this.authenticatedRepository = authenticatedRepository;\n this.accountRepository = accountRepository;\n }\n\n public loaded = async () => {\n await new AccountSidebarLoadedUseCase().execute();\n };\n\n private setMenuListConfig(menuList: IMenuLink[], keysToRemove: Set) {\n return menuList.filter(({ menuKey }: IMenuLink) => !keysToRemove.has(menuKey));\n }\n\n public updated = () => {\n if (this.data.isOverlayVisible) {\n emit(events.ACCOUNT_SIDEBAR_OVERLAY_OPENED);\n }\n };\n\n @computed\n public get accountSidebarConfig() {\n const { showLoyalty } = this.accountRepository;\n\n const { [sdb.loyalty]: loyaltyTier, ...remainingConfig } = this.orderableConfig;\n\n if (showLoyalty === false) {\n const menuConfigParams = remainingConfig[sdb.menu]?.params || {};\n const menuList = menuConfigParams?.[sdb.menu] ?? [];\n\n const keysToRemove = new Set(['sidebarReferAFriend']);\n menuConfigParams[sdb.menu] = this.setMenuListConfig(menuList, keysToRemove);\n\n return remainingConfig;\n }\n\n return this.orderableConfig;\n }\n\n @computed\n public get totalSections() {\n const totalOrderableRegions = Object.keys(this.accountSidebarConfig).length || 1;\n\n return totalOrderableRegions;\n }\n\n @action\n public setOrderableConfig = (orderableConfig: IOrderConfig) => {\n this.orderableConfig = orderableConfig;\n };\n\n public handleMenuLinkOnClick = (menuLinkData: IMenuLink) => {\n const { label } = menuLinkData;\n emit(events.ACCOUNT_SIDEBAR_MENU_LINK_CLICKED, { label });\n };\n\n public handleShowcaseOnClick = (showcaseData: IShowcaseItem) => {\n const { title, showCaseKey } = showcaseData;\n const analyticsPayload = {\n item_title: title,\n key: showCaseKey\n };\n emit(events.ACCOUNT_SIDEBAR_SHOWCASE_LINK_CLICKED, analyticsPayload);\n };\n\n @action\n public hideOverlay = () => {\n void command(serviceCommands.ACCOUNT_OVERLAY_HIDE);\n };\n\n @computed public get data() {\n return {\n isOverlayVisible: this.accountOverlay.isOverlayVisible,\n authState: this.authenticatedRepository.authState\n };\n }\n}\n\nexport default AccountSidebarController;\n","import { observable, action } from 'mobx';\n\nexport class AccountOverlay {\n @observable public isOverlayVisible: boolean = false;\n\n @action\n public setVisibility = (newState: boolean) => {\n this.isOverlayVisible = newState;\n };\n\n @action\n public toggle = () => {\n this.isOverlayVisible = !this.isOverlayVisible;\n };\n}\n","import { observable, action, computed } from 'mobx';\nimport { IAppAndBUIDConfigs, IServiceAppConfig, IServiceAppConfigs } from './IConfig';\n\ninterface IAccountRoutes {\n signInPath: string;\n signOutPath: string;\n}\n\nexport class Config {\n @observable public config: IServiceAppConfigs;\n\n constructor(appConfig: IServiceAppConfig) {\n this.updateConfig({ appConfig, buidConfig: {} });\n }\n\n @action\n public updateConfig(config: IAppAndBUIDConfigs) {\n this.config = {\n ...this.config,\n ...config?.appConfig,\n ...config?.buidConfig\n };\n }\n\n @computed\n public get languageId(): string {\n return this.config?.language?.id;\n }\n\n @computed\n public get accountRoutes(): IAccountRoutes {\n const { accountRoutes } = this.config?.accountConfig || {};\n const { signIn: signInPath = '/', signOut: signOutPath = '/' } = accountRoutes || {};\n\n return { signInPath, signOutPath };\n }\n}\n","import { query, serviceQueries } from '@estee/elc-service-bus';\nimport { action, computed, observable } from 'mobx';\n\nimport { AuthenticatedRepository } from './AuthenticatedRepository';\n\ninterface IData {\n isLoyaltyMember: boolean;\n}\n\nexport class AccountRepository extends AuthenticatedRepository {\n @observable private isLoyaltyMember: boolean;\n\n constructor() {\n super();\n }\n\n @action public fetchAccountInfo = async () => {\n return super.ensureData();\n };\n\n @action public fetchData = async () => {\n const isLoyaltyMember = !!(await query(serviceQueries.IS_LOYALTY_MEMBER));\n\n this.setData({ isLoyaltyMember });\n };\n\n @action public setData = ({ isLoyaltyMember }: IData) => {\n this.isLoyaltyMember = isLoyaltyMember;\n };\n\n @computed public get showLoyalty() {\n return this.isLoyaltyMember;\n }\n}\n","import { computed, observable } from 'mobx';\n\nimport { query, serviceQueries } from '@estee/elc-service-bus';\n\nimport { Config } from '~domain/entities/Config';\nimport { IAppConfigWithRequestedBUIDKeys } from '~domain/entities/IConfig';\n\ninterface IConfigRepository {\n entity: Config;\n}\nexport class ConfigRepository {\n @observable private _config: Config;\n\n constructor(opts: IConfigRepository) {\n this._config = opts.entity;\n }\n\n public fetchConfigs = async (configs: IAppConfigWithRequestedBUIDKeys) => {\n const buidConfig = await query(serviceQueries.GET_CONFIG, configs.requestedBuidConfigs);\n\n this._config.updateConfig({\n appConfig: configs.appConfig,\n buidConfig\n });\n };\n\n @computed\n public get config(): Config {\n return this._config;\n }\n}\n","import { IAppConfigWithRequestedBUIDKeys } from '~domain/entities/IConfig';\nimport { AuthenticatedRepository } from '~repositories/AuthenticatedRepository';\nimport { ConfigRepository } from '~repositories/ConfigRepository';\nimport { diContainer } from '~setup/diContainer';\nimport serviceNames from '~setup/AccountService';\n\nexport class AccountServiceStartedUseCase {\n private configRepository: ConfigRepository;\n private configs: IAppConfigWithRequestedBUIDKeys;\n private authenticatedRepository: AuthenticatedRepository;\n\n constructor(configs: IAppConfigWithRequestedBUIDKeys) {\n this.configRepository = diContainer.get(serviceNames.configRepository);\n this.authenticatedRepository = diContainer.get(serviceNames.authenticatedRepository);\n this.configs = configs;\n }\n\n public execute = async () => {\n await this.authenticatedRepository.fetchUserAuthState();\n await this.configRepository.fetchConfigs(this.configs);\n };\n}\n","import { AccountOverlay } from '~domain/entities/AccountOverlay';\nimport { diContainer } from '~setup/diContainer';\nimport serviceNames from '~setup/AccountService';\n\nexport class AccountSidebarVisibilityUseCase {\n private isOpen: boolean;\n private overlay: AccountOverlay;\n\n constructor(isOpen: boolean) {\n this.isOpen = isOpen;\n this.overlay = diContainer.get(serviceNames.accountOverlay);\n }\n\n public execute() {\n this.overlay.setVisibility(this.isOpen);\n }\n}\n","import { AccountSidebarVisibilityUseCase } from '~use-cases/AccountSidebarVisibilityUseCase';\n\nexport class ServiceBusController {\n public showOverlay = () => {\n new AccountSidebarVisibilityUseCase(true).execute();\n };\n\n public hideOverlay = () => {\n new AccountSidebarVisibilityUseCase(false).execute();\n };\n}\n","import { Container } from 'hypo-container';\nimport { HttpTransport } from '@estee/elc-http-transport';\nimport { IAppConfig } from '@estee/elc-universal-utils';\nimport AccountDashboardController from '~exported/account-dashboard/AccountDashboardController';\nimport AccountOrdersController from '~exported/account-orders/AccountOrdersController';\nimport AccountSidebarController from '~exported/account-sidebar/AccountSidebarController';\nimport { AccountOverlay } from '~domain/entities/AccountOverlay';\nimport { Config } from '~domain/entities/Config';\nimport { AccountRepository } from '~repositories/AccountRepository';\nimport { AuthenticatedRepository } from '~repositories/AuthenticatedRepository';\nimport { ConfigRepository } from '~repositories/ConfigRepository';\nimport { AccountServiceStartedUseCase } from '~use-cases/AccountServiceStartedUseCase';\nimport serviceNames from '~setup/AccountService';\nimport { AccountService } from './AccountService';\nimport { ServiceBusController } from './ServiceBusController';\n\nexport const diContainer = new Container();\n\nexport const setConfig = (configJSON: IAppConfig) => {\n diContainer.appConfig = configJSON;\n};\n\nasync function serviceInitializer(appConfig: IAppConfig) {\n setConfig(appConfig);\n\n const requestedBuidConfigs = ['language'];\n const useCase = new AccountServiceStartedUseCase({\n appConfig,\n requestedBuidConfigs\n });\n\n await useCase.execute();\n}\n\ndiContainer\n .register(serviceNames.config, (c) => new Config(c.config))\n .register(serviceNames.httpTransport, (c) => new HttpTransport())\n .register(serviceNames.serviceBusController, (c) => new ServiceBusController())\n .register(serviceNames.accountOverlay, (c) => new AccountOverlay())\n .register(serviceNames.authenticatedRepository, (c) => new AuthenticatedRepository())\n .register(serviceNames.accountDashboardViewController, (c) => new AccountDashboardController())\n .register(serviceNames.accountOrdersViewController, (c) => new AccountOrdersController())\n .register(serviceNames.accountRepository, (c) => new AccountRepository())\n .register(\n serviceNames.accountSidebarViewController,\n (c) =>\n new AccountSidebarController({\n accountOverlay: c.get(serviceNames.accountOverlay),\n accountRepository: c.get(serviceNames.accountRepository),\n authenticatedRepository: c.get(serviceNames.authenticatedRepository)\n })\n )\n .register(\n serviceNames.configRepository,\n (c) =>\n new ConfigRepository({\n entity: c.get(serviceNames.config)\n })\n )\n .register(serviceNames.accountService, () => new AccountService(serviceInitializer));\n"],"names":["Breakpoints","desktop","largeScreen","extraLargeScreen","breakpoint","brp","code","placeholders","result","reduce","acc","holder","idx","length","Status","authStates","SIGNEDIN","ANONYMOUS","RECOGNIZED","AuthenticatedRepository","status","IDLE","authState","fetchedUserAuth","ensureData","this","isUnfulfilled","initialPromise","loadData","LOADING","fetchData","LOADED","err","ERROR","fetchUserAuthState","query","serviceQueries","Error","includes","observable","action","computed","sidebarSections","loyalty","menu","showcase","welcome","ViewController","isLoading","setSSRState","data","dataState","setId","id","btoa","unescape","encodeURIComponent","AccountPageLoadedUseCase","constructor","authenticatedRepository","diContainer","get","config","accountRoutes","execute","signInPath","AccountDashboardController","super","loaded","setUserDevice","window","addEventListener","unMounted","removeEventListener","bind","isMobileDevice","innerWidth","AccountOrdersController","AccountSidebarLoadedUseCase","accountRepository","AccountSidebarController","accountOverlay","updated","isOverlayVisible","emit","events","setOrderableConfig","orderableConfig","handleMenuLinkOnClick","menuLinkData","label","handleShowcaseOnClick","showcaseData","title","showCaseKey","analyticsPayload","item_title","key","hideOverlay","command","serviceCommands","setMenuListConfig","menuList","keysToRemove","filter","menuKey","has","accountSidebarConfig","showLoyalty","loyaltyTier","remainingConfig","menuConfigParams","params","Set","totalSections","Object","keys","AccountOverlay","setVisibility","newState","toggle","Config","appConfig","updateConfig","buidConfig","languageId","language","accountConfig","signIn","signOut","signOutPath","AccountRepository","fetchAccountInfo","isLoyaltyMember","setData","ConfigRepository","opts","fetchConfigs","configs","requestedBuidConfigs","_config","entity","AccountServiceStartedUseCase","configRepository","AccountSidebarVisibilityUseCase","isOpen","overlay","ServiceBusController","showOverlay","Container","setConfig","configJSON","useCase","register","c","HttpTransport","AccountService","serviceInitializer"],"sourceRoot":""}