{"version":3,"file":"static/js/e4be2e019e974554893b.bundle.js","mappings":"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","sources":["webpack://henrys-ecommerce/./src/modules/hei-preferred-store-button/hei-preferred-store-button.tsx?915c","webpack://henrys-ecommerce/./src/modules/hei-preferred-store-button/hei-preferred-store-button.view.tsx?10fe","webpack://henrys-ecommerce/./lib/hei-preferred-store-button/module-registration.js?ccd9","webpack://henrys-ecommerce/./src/store-selector-state-manager/base-store-selector-state-manager.ts?281e","webpack://henrys-ecommerce/./src/store-selector-state-manager/map-store-selector-state-manager.ts?2ae0","webpack://henrys-ecommerce/./src/store-selector-state-manager/store-selector-state-manager-data-action.ts?bd3e","webpack://henrys-ecommerce/external var \"React\"?0d3b","webpack://henrys-ecommerce/external var \"ReactDOM\"?853b"],"sourcesContent":["import { OrgUnitLocation, OrgUnitsDataActions } from '@msdyn365-commerce/retail-proxy';\r\nimport { useEffect, useState } from 'react';\r\nimport { IHeiPreferredStoreButtonData } from './hei-preferred-store-button.data';\r\nimport { IHeiPreferredStoreButtonProps } from './hei-preferred-store-button.props.autogenerated';\r\n\r\nexport interface IHeiPreferredStoreButtonViewProps extends IHeiPreferredStoreButtonProps {\r\n store: OrgUnitLocation;\r\n}\r\n\r\nconst HeiPreferredStoreButton = (props: IHeiPreferredStoreButtonProps) => {\r\n const {\r\n config: { orgUnitNumber },\r\n context\r\n } = props;\r\n\r\n const [orgUnitLocation, setOrgUnitLocation] = useState();\r\n const [storeInfoLoaded, setStoreInfoLoaded] = useState(false);\r\n\r\n useEffect(() => {\r\n const ctx = { callerContext: context.actionContext };\r\n\r\n if (storeInfoLoaded) {\r\n return;\r\n }\r\n\r\n setStoreInfoLoaded(true);\r\n\r\n void (async () => {\r\n try {\r\n const allStores = await OrgUnitsDataActions.searchOrgUnitLocationsAsync(ctx, {\r\n OrgUnitNumber: orgUnitNumber\r\n });\r\n\r\n const store = allStores?.find(s => s.OrgUnitNumber === orgUnitNumber);\r\n\r\n if (store) {\r\n setOrgUnitLocation(store);\r\n }\r\n } catch (error) {\r\n context.telemetry.exception(error as Error);\r\n }\r\n })();\r\n }, [orgUnitNumber]);\r\n\r\n if (!orgUnitLocation) {\r\n return null;\r\n }\r\n\r\n return props.renderView({\r\n ...props,\r\n store: orgUnitLocation\r\n });\r\n};\r\n\r\nexport default HeiPreferredStoreButton;\r\n","import * as React from 'react';\r\nimport { IHeiPreferredStoreButtonViewProps } from './hei-preferred-store-button';\r\nimport classnames from 'classnames';\r\n\r\nexport default (props: IHeiPreferredStoreButtonViewProps) => {\r\n const {\r\n context: {\r\n actionContext: {\r\n requestContext: { cookies }\r\n }\r\n },\r\n config: { className },\r\n data: { storeSelectorStateManager },\r\n resources,\r\n store\r\n } = props;\r\n\r\n const [preferredStoreId, setPreferredStoreId] = React.useState(storeSelectorStateManager?.result?.preferredStore?.StoreId || '');\r\n\r\n const mgr = storeSelectorStateManager?.result;\r\n if (!mgr) {\r\n return null;\r\n }\r\n\r\n const isPreferredStore = preferredStoreId === store.OrgUnitNumber;\r\n\r\n return (\r\n
\r\n {isPreferredStore ? (\r\n {\r\n await mgr.clearPreferredStore(cookies?.isConsentGiven());\r\n setPreferredStoreId('');\r\n }}\r\n >\r\n {resources.preferredStoreText}\r\n \r\n ) : (\r\n {\r\n await mgr.setPreferredStoreLocation(\r\n store.OrgUnitNumber,\r\n store.OrgUnitName,\r\n cookies?.isConsentGiven(),\r\n store.Latitude,\r\n store.Longitude\r\n );\r\n\r\n setPreferredStoreId(store.OrgUnitNumber || '');\r\n }}\r\n >\r\n {resources.setAsPreferredStoreText}\r\n \r\n )}\r\n
\r\n );\r\n};\r\n","const binding = { modules: {}, dataActions: {} };\n\n const registerActionId = (actionPath) => {\n if (binding.dataActions[actionPath] &&\n binding.dataActions[actionPath].default &&\n binding.dataActions[actionPath].default.prototype &&\n binding.dataActions[actionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[actionPath].default.prototype.id] = binding.dataActions[actionPath];\n } else {\n Object.keys(binding.dataActions[actionPath] || {}).forEach(exportName => {\n if (binding.dataActions[actionPath][exportName] &&\n binding.dataActions[actionPath][exportName].prototype &&\n binding.dataActions[actionPath][exportName].prototype.Action) {\n binding.dataActions[binding.dataActions[actionPath][exportName].prototype.id] = binding.dataActions[actionPath][exportName];\n }\n })\n }\n };\n\n const registerSanitizedActionPath = (sanitizedActionPath, dataAction) => {\n if (process.env.NODE_ENV === 'development') {\n if (!dataAction.default) {\n throw new Error('Data action path does not have a default export');\n }\n if (!(dataAction.default.prototype.id && binding.dataActions[dataAction.default.prototype.id]) || !binding.dataActions[sanitizedActionPath]) {\n binding.dataActions[sanitizedActionPath] = dataAction;\n }\n } else {\n binding.dataActions[sanitizedActionPath] = dataAction;\n if (!binding.dataActions[sanitizedActionPath].default) {\n throw new Error('Data action path ' + sanitizedActionPath + ' does not have a default export');\n }\n binding.dataActions[sanitizedActionPath].default.prototype.RegistrationId = sanitizedActionPath;\n if (binding.dataActions[sanitizedActionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[sanitizedActionPath].default.prototype.id] = sanitizedActionPath;\n }\n }\n };\n \n\n (binding.modules['hei-preferred-store-button'] = {\n c: () => require('partner/modules/hei-preferred-store-button/hei-preferred-store-button.tsx'),\n $type: 'contentModule',\n da: [{name:'storeSelectorStateManager', path:'@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action', runOn: 1}],\n \n iNM: false,\n ns: '__local__',\n n: 'hei-preferred-store-button',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/hei-preferred-store-button'\n });\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action';\n let dataAction = require('@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n \n window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.dataActions = {\n ...window.__bindings__.dataActions || {},\n ...binding.dataActions\n };\n export const viewDictionary = {};\n viewDictionary['__local__|__local__|modules|hei-preferred-store-button|hei-preferred-store-button'] = {\n c: () => require('partner/modules/hei-preferred-store-button/hei-preferred-store-button.view.tsx'),\n cn: '__local__-__local__-hei-preferred-store-button'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IActionContext } from '@msdyn365-commerce/core';\nimport { action, computed, observable } from 'mobx';\n\nimport {\n IListMapViewState,\n ILoadMapApiInput,\n IStoreInfo,\n IStoreSelectionStateContext,\n IStoreSelectorLocation,\n IStoreSelectorStateManager\n} from './i-store-selection-state-manager';\n\n/**\n * Abstract instance of IStoreSelectorStateManager with base implementation\n * of everything except the geoLocate function.\n */\nexport abstract class BaseStoreSelectorStateManager implements IStoreSelectorStateManager {\n @computed public get isDialogOpen(): Readonly {\n return this._context !== undefined;\n }\n\n @computed public get context(): Readonly {\n return this._context;\n }\n\n @observable public isMapApiLoaded?: boolean;\n\n @observable public selectedStoreLocationId?: string;\n\n @observable public preferredStore?: IStoreInfo;\n\n @observable public listMapViewState: IListMapViewState = { displayList: true, displayMap: false };\n\n @observable public isMapModuleLoaded?: boolean;\n\n @observable public lastInlineShownStoreInfo?: IStoreInfo;\n\n @observable protected _context?: IStoreSelectionStateContext;\n\n private readonly preferredStoreLocalStorageKey: string = '_msdyn365__preferredStore_';\n\n constructor() {\n this.isMapModuleLoaded = false;\n const value = this._readFromToCookie(this.preferredStoreLocalStorageKey);\n try {\n const storeInfo: IStoreInfo | undefined = value ? JSON.parse(value) : undefined;\n if (storeInfo) {\n this.preferredStore = storeInfo;\n }\n } catch {\n this.preferredStore = undefined;\n }\n }\n\n public abstract geoLocate(searchTerm: string, actionContext: IActionContext): Promise;\n\n public abstract loadMapApi(input: ILoadMapApiInput): Promise;\n\n @action\n public async toggleListMapViewState(): Promise {\n this.listMapViewState = {\n displayList: !this.listMapViewState.displayList,\n displayMap: !this.listMapViewState.displayMap\n };\n }\n\n @action\n public async setMapModuleLoaded(input: boolean): Promise {\n this.isMapModuleLoaded = input;\n }\n\n @action\n public async setOrgUnitStoreInformation(input: IStoreSelectionStateContext): Promise {\n this._context = input;\n }\n\n @action\n public async setSelectedStoreLocationId(storeId: string | undefined): Promise {\n this.selectedStoreLocationId = storeId;\n }\n\n @action\n public async setPreferredStoreLocation(\n storeId?: string,\n storeName?: string | undefined,\n writeToCookie: boolean = false,\n latitude?: number,\n longitude?: number\n ): Promise {\n const storeInfo: IStoreInfo = { StoreId: storeId, StoreName: storeName, Latitude: latitude, Longitude: longitude };\n this.preferredStore = storeInfo;\n if (writeToCookie) {\n this._writeToCookie(this.preferredStoreLocalStorageKey, JSON.stringify(storeInfo));\n }\n }\n\n @action\n public async setLastInlineStoreInfo(latitude?: number, longitude?: number): Promise {\n const storeInfo: IStoreInfo = { StoreId: '', StoreName: '', Latitude: latitude, Longitude: longitude };\n this.lastInlineShownStoreInfo = storeInfo;\n }\n\n @action\n public async clearPreferredStore(writeToCookie: boolean): Promise {\n this.preferredStore = undefined;\n if (writeToCookie) {\n this._removeCookie(this.preferredStoreLocalStorageKey);\n }\n }\n\n @action\n public async openDialog(input: IStoreSelectionStateContext): Promise {\n if (this._context && this._context.id === input.id) {\n throw new Error('Dialog is already opened');\n }\n\n this._context = input;\n }\n\n @action\n public async closeDialog(): Promise {\n this._context = undefined;\n }\n\n private _removeCookie(key: string): void {\n if (!key) {\n return;\n }\n if (MsDyn365.isBrowser) {\n const storage = window.localStorage;\n storage.removeItem(key);\n }\n }\n\n private _writeToCookie(key: string, value: string | undefined): void {\n if (!key || !value) {\n return;\n }\n if (MsDyn365.isBrowser) {\n const storage = window.localStorage;\n storage.setItem(key, value);\n }\n }\n\n private _readFromToCookie(key: string): string | undefined {\n if (!key) {\n return undefined;\n }\n if (MsDyn365.isBrowser) {\n const storage = window.localStorage;\n const cookieValue = storage.getItem(key);\n if (cookieValue) {\n return cookieValue;\n }\n }\n\n return undefined;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext } from '@msdyn365-commerce/core';\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { action } from 'mobx';\n\nimport { BaseStoreSelectorStateManager } from './base-store-selector-state-manager';\nimport { ILoadMapApiInput, IStoreSelectorLocation } from './i-store-selection-state-manager';\nimport { IMapWindow, MapLocationsResult } from './models/map-data';\n\ndeclare const window: IMapWindow;\n\n/**\n * Instance of IStoreSelectorStateManager manager that uses Map service\n * for geo location.\n */\nexport class MapStoreSelectorStateManager extends BaseStoreSelectorStateManager {\n private readonly SERVICE_ENDPOINT: string = 'https://dev.virtualearth.net/REST/v1/';\n\n private readonly MAP_API_ENDPOINT: string = 'https://www.bing.com/api/maps/mapcontrol?callback=mapAPIReady';\n\n @action\n public async geoLocate(searchTerm: string, actionContext: IActionContext): Promise {\n if (\n !searchTerm ||\n !actionContext.requestContext.channel ||\n !actionContext.requestContext.channel.BingMapsApiKey ||\n !actionContext.requestContext.channel.BingMapsEnabled\n ) {\n return undefined;\n }\n\n let searchContent: string = searchTerm;\n\n const jsonp = `mapSearchCallback_${crypto.getRandomValues(new Uint32Array(1))[0]}`;\n\n if (actionContext.requestContext.channel.ChannelCountryRegionISOCode) {\n searchContent = `${searchTerm.trim()} ${actionContext.requestContext.channel.ChannelCountryRegionISOCode}`;\n }\n\n const query = encodeURI(searchContent);\n const key = encodeURI(actionContext.requestContext.channel.BingMapsApiKey);\n\n const geolocationApiUrl =\n actionContext.requestContext.app &&\n actionContext.requestContext.app.config &&\n actionContext.requestContext.app.config.geolocationApiUrl;\n const requestUrl = `${\n geolocationApiUrl ? geolocationApiUrl : this.SERVICE_ENDPOINT\n }/Locations?query=${query}&key=${key}&jsonp=${jsonp}`;\n\n return new Promise(resolve => {\n const script = document.createElement('script');\n script.setAttribute('type', 'text/javascript');\n script.setAttribute('src', requestUrl);\n\n window[jsonp] = (data: MapLocationsResult) => {\n delete window[jsonp];\n script.remove();\n\n if (data && data.resourceSets && data.resourceSets.length > 0 && data.resourceSets[0].resources.length > 0) {\n resolve({\n latitude: data.resourceSets[0].resources[0].point.coordinates[0],\n longitude: data.resourceSets[0].resources[0].point.coordinates[1]\n });\n }\n\n resolve(undefined);\n };\n\n document.body.appendChild(script);\n });\n }\n\n @action\n public async loadMapApi(input: ILoadMapApiInput): Promise {\n if (StringExtensions.isNullOrEmpty(input.key)) {\n return Promise.resolve();\n }\n\n const isScriptAlreadyLoaded = !!document?.getElementById('msdyn_map-api-script');\n\n if (isScriptAlreadyLoaded) {\n if (window) {\n const currentWindowAPI = window.mapAPIReady;\n window.mapAPIReady = () => {\n if (currentWindowAPI) {\n currentWindowAPI();\n }\n this.isMapApiLoaded = true;\n };\n }\n // Prevents from loading multiple script into the body\n return Promise.resolve();\n }\n\n const url = `${this.MAP_API_ENDPOINT}${input.key ? `&key=${input.key}` : ''}${input.lang ? `&setLang=${input.lang}` : ''}${\n input.market ? `&setMkt=${input.market}` : ''\n }`;\n\n return new Promise((resolve, reject) => {\n const script = document?.createElement('script');\n script.type = 'text/javascript';\n script.async = true;\n script.defer = true;\n script.src = url;\n script.id = 'msdyn_map-api-script';\n if (window) {\n window.mapAPIReady = () => {\n this.isMapApiLoaded = true;\n resolve();\n };\n }\n script.addEventListener('error', (error: string | Event) => {\n reject(error);\n });\n document?.body?.appendChild(script);\n });\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { createObservableDataAction, IAction, IActionInput, IAny, ICreateActionContext, IGeneric } from '@msdyn365-commerce/core';\nimport { GenericInput, getGenericAction } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { IStoreSelectorStateManager } from './i-store-selection-state-manager';\nimport { MapStoreSelectorStateManager } from './map-store-selector-state-manager';\n\nexport function createStoreSelectorStateInput(result: IStoreSelectorStateManager): GenericInput {\n return new GenericInput('mapSSSM', result, 'IStoreSelectorStateManager');\n}\n\nconst createStoreSelectorStateInputInternal = (inputData: ICreateActionContext>): IActionInput => {\n return createStoreSelectorStateInput(new MapStoreSelectorStateManager());\n};\n\nexport const getGenericActionDataAction = createObservableDataAction({\n action: >getGenericAction,\n input: createStoreSelectorStateInputInternal\n});\n\nexport default getGenericActionDataAction;\n","module.exports = React;","module.exports = ReactDOM;"],"names":["props","config","orgUnitNumber","context","orgUnitLocation","setOrgUnitLocation","useState","storeInfoLoaded","setStoreInfoLoaded","useEffect","ctx","callerContext","actionContext","allStores","OrgUnitsDataActions","OrgUnitNumber","store","find","s","error","telemetry","exception","renderView","_objectSpread","_storeSelectorStateMa","requestContext","cookies","className","data","storeSelectorStateManager","resources","preferredStoreId","setPreferredStoreId","React","result","preferredStore","StoreId","mgr","isPreferredStore","classnames","preferredStoreAriaLabel","onClick","async","clearPreferredStore","isConsentGiven","preferredStoreText","setAsPreferredStoreTextAriaLabel","setPreferredStoreLocation","OrgUnitName","Latitude","Longitude","setAsPreferredStoreText","binding","modules","dataActions","c","require","$type","da","name","path","runOn","iNM","ns","n","p","pdp","md","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","Error","prototype","RegistrationId","id","window","__bindings__","viewDictionary","cn","BaseStoreSelectorStateManager","constructor","listMapViewState","displayList","displayMap","preferredStoreLocalStorageKey","this","isMapModuleLoaded","value","_readFromToCookie","storeInfo","JSON","parse","undefined","_unused","_context","input","storeId","selectedStoreLocationId","storeName","writeToCookie","arguments","length","StoreName","_writeToCookie","stringify","latitude","longitude","lastInlineShownStoreInfo","_removeCookie","key","MsDyn365","isBrowser","localStorage","removeItem","setItem","cookieValue","getItem","__decorate","computed","observable","action","MapStoreSelectorStateManager","SERVICE_ENDPOINT","MAP_API_ENDPOINT","searchTerm","channel","BingMapsApiKey","BingMapsEnabled","searchContent","jsonp","crypto","getRandomValues","Uint32Array","ChannelCountryRegionISOCode","trim","query","encodeURI","geolocationApiUrl","app","requestUrl","Promise","resolve","script","document","createElement","setAttribute","remove","resourceSets","point","coordinates","body","appendChild","_document","StringExtensions","isNullOrEmpty","getElementById","currentWindowAPI","mapAPIReady","isMapApiLoaded","url","lang","market","reject","_document2","_document3","type","defer","src","addEventListener","createStoreSelectorStateInput","GenericInput","getGenericActionDataAction","createObservableDataAction","getGenericAction","inputData","module","exports","ReactDOM"],"sourceRoot":""}