{"version":3,"file":"static/js/7732b14910debccc58d8.bundle.js","mappings":"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","sources":["webpack://bju-press/./src/modules/test-locator/components/test-locator-contact.tsx?2ae6","webpack://bju-press/./src/modules/test-locator/components/test-locator-map.tsx?e692","webpack://bju-press/./src/modules/test-locator/test-locator.tsx?9aa0","webpack://bju-press/./src/utilities/test-constants.ts?0245","webpack://bju-press/./src/utilities/variable-replacer.ts?aee0","webpack://bju-press/./lib/test-locator/module-registration.js?4902","webpack://bju-press/./src/store-selector-state-manager/base-store-selector-state-manager.ts?281e","webpack://bju-press/./src/store-selector-state-manager/map-store-selector-state-manager.ts?2ae0","webpack://bju-press/./src/store-selector-state-manager/store-selector-state-manager-data-action.ts?bd3e","webpack://bju-press/external var \"React\"?0d3b","webpack://bju-press/external var \"ReactDOM\"?853b"],"sourcesContent":["//==============================================================================\r\n// Test Locator Contact\r\n//\r\n// A link for each administrator that opens up a modal displaying contact\r\n// information.\r\n//==============================================================================\r\nimport * as React from 'react';\r\nimport classnames from 'classnames';\r\n\r\nimport { AppStatus } from '../../../utilities/test-constants';\r\n\r\nimport { Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport { ITestLocatorResources } from '../test-locator.props.autogenerated';\r\nimport { IAdministratorEntity } from '../../../actions/DataServiceEntities.g';\r\n\r\n//==============================================================================\r\n// INTERFACES\r\n//==============================================================================\r\nexport interface ITestLocatorContactProps {\r\n cls: Function;\r\n resources: ITestLocatorResources;\r\n admin: IAdministratorEntity;\r\n}\r\n\r\nexport interface ITestLocatorContactState extends React.ComponentState {\r\n isOpen: boolean;\r\n}\r\n\r\n//==============================================================================\r\n// CLASS DEFINITION\r\n//==============================================================================\r\n/**\r\n * TestLocatorContact component\r\n * @extends {React.PureComponent}\r\n */\r\n//==============================================================================\r\nclass TestLocatorContact extends React.PureComponent {\r\n //==========================================================================\r\n // VARIABLES\r\n //==========================================================================\r\n private contactLink: React.RefObject;\r\n\r\n //==========================================================================\r\n // PUBLIC METHODS\r\n //==========================================================================\r\n //------------------------------------------------------\r\n // Constructor\r\n //------------------------------------------------------\r\n constructor(props: ITestLocatorContactProps) {\r\n super(props);\r\n this.state = { isOpen: false };\r\n this.contactLink = React.createRef();\r\n }\r\n\r\n //------------------------------------------------------\r\n // Render function\r\n //------------------------------------------------------\r\n public render(): JSX.Element {\r\n const { cls, resources, admin } = this.props;\r\n\r\n const testTypes = (admin.IowaStatus === AppStatus.approved && admin.StanfordStatus === AppStatus.approved) ?\r\n `${this.props.resources.testLocator_typeIowaShort} and ${this.props.resources.testLocator_typeStanfordShort}`\r\n : (\r\n admin.IowaStatus === AppStatus.approved ? this.props.resources.testLocator_typeIowaShort : this.props.resources.testLocator_typeStanfordShort\r\n );\r\n\r\n return (\r\n <>\r\n \r\n {resources.testLocator_contactLink}\r\n \r\n \r\n \r\n {resources.testLocator_profileHeading}\r\n \r\n \r\n
\r\n \r\n {admin.Name}\r\n \r\n \r\n {resources.testLocator_profileDescriptionInterfix}\r\n \r\n \r\n {testTypes}\r\n \r\n \r\n {resources.testLocator_profileDescriptionSuffix}\r\n \r\n
\r\n
\r\n
\r\n {resources.testLocator_profileContactHeading}\r\n
\r\n
\r\n {admin.ContactInformation}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n //==========================================================================\r\n // PRIVATE METHODS\r\n //==========================================================================\r\n //------------------------------------------------------\r\n // Toggle function\r\n //------------------------------------------------------\r\n private readonly _toggle = (): void => {\r\n this.setState({\r\n isOpen: !this.state.isOpen\r\n });\r\n };\r\n}\r\n\r\nexport default TestLocatorContact;\r\n","//==============================================================================\r\n// Test Locator Map\r\n//\r\n// Bing maps component, originally from the native Map module, updated to use\r\n// test locator data.\r\n//==============================================================================\r\n/// \r\n\r\nimport * as React from 'react';\r\nimport { observable, reaction, when } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport classnames from 'classnames';\r\n\r\nimport { IAdministratorEntity } from '../../../actions/DataServiceEntities.g';\r\n\r\nimport { ITestLocatorProps, IPushpinOptionsData } from '../test-locator.props.autogenerated';\r\nimport { ITestLocatorData } from '../test-locator.data';\r\n\r\n//==============================================================================\r\n// INTERFACES\r\n//==============================================================================\r\nexport interface ITestLocatorMapProps {\r\n cls: Function;\r\n moduleProps: ITestLocatorProps;\r\n admins: IAdministratorEntity[];\r\n selectedAdmin?: IAdministratorEntity;\r\n selectAdmin: Function;\r\n}\r\n\r\n//==============================================================================\r\n// CLASS DEFINITION\r\n//==============================================================================\r\n/**\r\n * TestLocatorMap component\r\n * @extends {React.Component}\r\n */\r\n//==============================================================================\r\n@observer\r\nclass TestLocatorMap extends React.PureComponent {\r\n //==========================================================================\r\n // VARIABLES\r\n //==========================================================================\r\n @observable public map: Microsoft.Maps.Map | undefined;\r\n private readonly mapRef: React.RefObject = React.createRef();\r\n\r\n //==========================================================================\r\n // PUBLIC METHODS\r\n //==========================================================================\r\n //------------------------------------------------------\r\n // Constructor\r\n //------------------------------------------------------\r\n public constructor(props: ITestLocatorMapProps) {\r\n super(props);\r\n }\r\n\r\n //------------------------------------------------------\r\n // Invoked immediately after component is mounted\r\n //------------------------------------------------------\r\n public async componentDidMount(): Promise {\r\n const { context, data } = this.props.moduleProps;\r\n const { telemetry } = context;\r\n const { channel, locale } = context.actionContext.requestContext;\r\n const { storeSelectorStateManager } = data;\r\n\r\n if (channel && !channel.BingMapsApiKey) {\r\n telemetry.error('BingMapsApiKey is missing.');\r\n return;\r\n }\r\n\r\n if (channel && !channel.BingMapsEnabled) {\r\n telemetry.error('Map is disabled from HQ.');\r\n return;\r\n }\r\n\r\n if (storeSelectorStateManager.result?.loadMapApi) {\r\n await storeSelectorStateManager.result.loadMapApi({\r\n key: channel?.BingMapsApiKey,\r\n lang: locale,\r\n market: channel?.ChannelCountryRegionISOCode\r\n });\r\n }\r\n\r\n if (storeSelectorStateManager.result?.isMapApiLoaded) {\r\n this._initMap();\r\n this._updateMap();\r\n }\r\n\r\n when(\r\n () => !!storeSelectorStateManager.result?.setMapModuleLoaded,\r\n () => {\r\n storeSelectorStateManager.result?.setMapModuleLoaded(true);\r\n }\r\n );\r\n\r\n reaction(\r\n () => storeSelectorStateManager.result?.loadMapApi,\r\n () => {\r\n storeSelectorStateManager.result?.loadMapApi({\r\n key: channel?.BingMapsApiKey,\r\n lang: locale,\r\n market: channel?.ChannelCountryRegionISOCode\r\n });\r\n }\r\n );\r\n\r\n reaction(\r\n () => storeSelectorStateManager.result?.isMapApiLoaded,\r\n () => {\r\n this._initMap();\r\n this._updateMap();\r\n }\r\n );\r\n\r\n reaction(\r\n () => {\r\n return [\r\n this.props.moduleProps.data.storeSelectorStateManager.result?.context?.orgUnitStoreInformation,\r\n this.props.moduleProps.data.storeSelectorStateManager.result?.selectedStoreLocationId,\r\n this.map\r\n ];\r\n },\r\n () => {\r\n this._updateMap();\r\n }\r\n );\r\n }\r\n\r\n //------------------------------------------------------\r\n // Render function\r\n //------------------------------------------------------\r\n public render(): JSX.Element {\r\n const { cls } = this.props;\r\n\r\n return (\r\n
\r\n
} />\r\n
\r\n );\r\n }\r\n\r\n //==========================================================================\r\n // PRIVATE METHODS\r\n //==========================================================================\r\n //------------------------------------------------------\r\n // Initialize the map\r\n //------------------------------------------------------\r\n private readonly _initMap = () => {\r\n const { context, data } = this.props.moduleProps;\r\n const { channel } = context.actionContext.requestContext;\r\n const { storeSelectorStateManager } = data;\r\n\r\n if (storeSelectorStateManager.result?.isMapApiLoaded) {\r\n this.map = new Microsoft.Maps.Map(this.mapRef.current as HTMLElement, {\r\n credentials: channel?.BingMapsApiKey,\r\n pushpinAccessible: true\r\n });\r\n Microsoft.Maps.Events.addHandler(this.map, 'click', async () => {\r\n await storeSelectorStateManager.result?.setSelectedStoreLocationId(undefined);\r\n });\r\n }\r\n };\r\n\r\n //------------------------------------------------------\r\n // Update the map\r\n //------------------------------------------------------\r\n private readonly _updateMap = () => {\r\n const { moduleProps, admins, selectedAdmin } = this.props;\r\n\r\n if (this.map) {\r\n this.map.entities.clear();\r\n const pushpins: Microsoft.Maps.IPrimitive[] = [];\r\n\r\n admins.forEach((admin, index) => {\r\n if (admin.LocatorLatitude && admin.LocatorLongitude) {\r\n const isSelectedAdmin = admin === selectedAdmin;\r\n const pushpinOptions = moduleProps.config.pushpinOptions;\r\n const options = this._getPushpinOptions(isSelectedAdmin, index, pushpinOptions);\r\n const pushpin = new Microsoft.Maps.Pushpin(\r\n new Microsoft.Maps.Location(admin.LocatorLatitude, admin.LocatorLongitude),\r\n options\r\n );\r\n\r\n Microsoft.Maps.Events.addHandler(pushpin, 'click', () => {\r\n admin && this.props.selectAdmin(admin);\r\n });\r\n\r\n isSelectedAdmin ? pushpins.unshift(pushpin) : pushpins.push(pushpin);\r\n }\r\n });\r\n\r\n if (selectedAdmin) {\r\n const currentLocation = new Microsoft.Maps.Location(selectedAdmin.LocatorLatitude, selectedAdmin.LocatorLongitude);\r\n this.map.setView({ center: currentLocation });\r\n } else {\r\n // Create a LocationRect from array of pushpins and set the custom-map view.\r\n this.map.setView({\r\n bounds: Microsoft.Maps.LocationRect.fromShapes(pushpins)\r\n });\r\n }\r\n\r\n this.map.setOptions({ pushpinAccessible: true });\r\n this.map.entities.push(pushpins);\r\n }\r\n };\r\n\r\n //------------------------------------------------------\r\n // Get pushpin options\r\n //------------------------------------------------------\r\n private readonly _getPushpinOptions = (isSelected: boolean, index: number, pushpinOptions?: IPushpinOptionsData) => {\r\n const text = pushpinOptions?.showIndex ? (index + 1).toString() : undefined;\r\n const size = pushpinOptions?.size || 1;\r\n const color = isSelected ? pushpinOptions?.selectionColor || pushpinOptions?.color : pushpinOptions?.color;\r\n const icon = this._getSvgIcon(size, color, text);\r\n\r\n return {\r\n // Fallback if icon doesn't render properly\r\n color: isSelected ? pushpinOptions?.selectionColor : pushpinOptions?.color,\r\n icon\r\n };\r\n };\r\n\r\n //------------------------------------------------------\r\n // Get pushpin icon\r\n //------------------------------------------------------\r\n private readonly _getSvgIcon = (size: number, color?: string, text?: string): string => {\r\n const baseValue: number = 32;\r\n return (\r\n `\r\n \r\n ${text ? `${text}` : ''}\r\n `\r\n );\r\n };\r\n}\r\n\r\nexport default TestLocatorMap;\r\n","//==============================================================================\r\n// Test Locator\r\n//\r\n// Displays nearby testers to the user's geolocation.\r\n//==============================================================================\r\nimport * as React from 'react';\r\nimport classnames from 'classnames';\r\nimport { observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\n\r\nimport { clsHelper } from '../../utilities/class-name-helper';\r\nimport { varReplace } from '../../utilities/variable-replacer';\r\nimport { TestType } from '../../utilities/test-constants';\r\n\r\nimport { RichTextComponent } from '@msdyn365-commerce/core';\r\nimport { Button, Heading } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport { searchByLocationAsync } from '../../actions/DataActionExtension.g';\r\nimport { IAdministratorLocationCriteria, IAdministratorEntity } from '../../actions/DataServiceEntities.g';\r\n\r\nimport { ITestLocatorData } from './test-locator.data';\r\nimport { ITestLocatorProps } from './test-locator.props.autogenerated';\r\nimport TestLocatorContact from './components/test-locator-contact';\r\nimport TestLocatorMap from './components/test-locator-map';\r\n\r\n//==============================================================================\r\n// INTERFACES\r\n//==============================================================================\r\nexport interface FormData {\r\n testType: string;\r\n testLocation: string;\r\n testRadius: string;\r\n}\r\n\r\n//==============================================================================\r\n// CLASS NAME UTILITY\r\n//==============================================================================\r\nconst BASE_CLASS = 'test-locator';\r\nconst cls = (fragment?: string) => clsHelper(BASE_CLASS, fragment);\r\n\r\n//==============================================================================\r\n// CLASS DEFINITION\r\n//==============================================================================\r\n/**\r\n * TestLocator component\r\n * @extends {React.Component>}\r\n */\r\n//==============================================================================\r\n@observer\r\nclass TestLocator extends React.Component> {\r\n //==========================================================================\r\n // VARIABLES\r\n //==========================================================================\r\n @observable private isSubmitting: boolean = false;\r\n @observable private formSuccess: boolean = false;\r\n @observable private formFailure: boolean = false;\r\n @observable private result?: IAdministratorEntity[];\r\n @observable private selectedAdmin?: IAdministratorEntity;\r\n\r\n @observable private formData: FormData = {\r\n testType: TestType.iowa,\r\n testLocation: '',\r\n testRadius: '25'\r\n };\r\n\r\n private testRadius: string[] = ['10', '25', '50', '100', '150','200', '250'];\r\n private directionsUrl: string = `https://maps.google.com/maps?q={address}`;\r\n\r\n //==========================================================================\r\n // PUBLIC METHODS\r\n //==========================================================================\r\n //------------------------------------------------------\r\n // Render function\r\n //------------------------------------------------------\r\n public render(): JSX.Element | null {\r\n const { config, resources } = this.props;\r\n\r\n return (\r\n
\r\n {/* Do not render form after successful search */}\r\n {!this.formSuccess && (\r\n
\r\n {config.heading && }\r\n {config.description && }\r\n\r\n
\r\n
{resources.testLocator_typeHeading}
\r\n
{resources.testLocator_typeDescription}
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
{resources.testLocator_searchHeading}
\r\n
{resources.testLocator_searchDescription}
\r\n
\r\n
\r\n \r\n \r\n
\r\n {this._renderInputRadius(this._onInputChange)}\r\n
\r\n
\r\n\r\n
\r\n this._performSearch(this.formData)}\r\n disabled={this.isSubmitting}\r\n >\r\n {resources.testLocator_searchButton}\r\n \r\n
\r\n\r\n
\r\n )}\r\n\r\n {/* Render while loading results */}\r\n {this.isSubmitting && (\r\n
\r\n {resources.testLocator_loadingResults}\r\n
\r\n )}\r\n\r\n {/* Render if no results found */}\r\n {this.formFailure && (\r\n
\r\n {resources.testLocator_noResults}\r\n
\r\n )}\r\n\r\n {/* Render results only after successful search */}\r\n {this.formSuccess && !this.formFailure && (\r\n
\r\n {this.result && (\r\n \r\n )}\r\n
\r\n
\r\n \r\n {varReplace(resources.testLocator_results, {\r\n testNumber: String(this.result?.length),\r\n testType: this.formData.testType,\r\n plural: !!this.result?.length || this.result?.length === 0 ? 's' : '',\r\n searchTerm: this.formData.testLocation\r\n })}\r\n \r\n \r\n {resources.testLocator_modifyLink}\r\n \r\n
\r\n
\r\n {this._renderInputRadius(this._onSelectChangeSubmit)}\r\n
\r\n
\r\n
    \r\n {this.result?.map((admin, index) => {\r\n return (\r\n this._selectAdmin(admin)}\r\n >\r\n
    \r\n {index + 1}\r\n
    \r\n
    \r\n
    \r\n \r\n {admin.Name}\r\n \r\n \r\n {/* @VO: Distance does not seem to exist but spec has it */}\r\n {/* @ts-ignore */}\r\n {/* {admin.Distance} {resources.testLocator_distanceUnit} */}\r\n \r\n
    \r\n
    \r\n \r\n {admin.LocatorStreet}, {admin.LocatorCity}, {admin.LocatorState} {admin.LocatorZipCode}\r\n \r\n \r\n {resources.testLocator_directionsLink}\r\n \r\n \r\n
    \r\n
    \r\n \r\n );\r\n })}\r\n
\r\n
\r\n )}\r\n
\r\n );\r\n }\r\n\r\n //==========================================================================\r\n // PRIVATE METHODS\r\n //==========================================================================\r\n //------------------------------------------------------\r\n // Render search radius input\r\n //------------------------------------------------------\r\n private readonly _renderInputRadius = (onChange: React.ChangeEventHandler): JSX.Element => {\r\n const { resources } = this.props;\r\n\r\n return (\r\n
\r\n \r\n \r\n {this.testRadius.map((radius, index) => (\r\n \r\n ))}\r\n \r\n
\r\n );\r\n };\r\n\r\n //------------------------------------------------------\r\n // On input change\r\n //------------------------------------------------------\r\n private readonly _onInputChange = (event: React.ChangeEvent | React.ChangeEvent | React.ChangeEvent): void => {\r\n this.formData[event.currentTarget.id] = event.currentTarget.value;\r\n };\r\n\r\n //------------------------------------------------------\r\n // On select change that triggers form submission\r\n //------------------------------------------------------\r\n private readonly _onSelectChangeSubmit = (event: React.ChangeEvent): void => {\r\n this._onInputChange(event);\r\n this._performSearch(this.formData);\r\n };\r\n\r\n //------------------------------------------------------\r\n // Select an admin\r\n //------------------------------------------------------\r\n private readonly _selectAdmin = (admin: IAdministratorEntity): void => {\r\n this.selectedAdmin = admin;\r\n };\r\n\r\n //------------------------------------------------------\r\n // Performs geolocation search with search term and\r\n // radius\r\n //------------------------------------------------------\r\n private readonly _performSearch = async (searchData: FormData): Promise => {\r\n const { context, data } = this.props;\r\n const { actionContext, request } = context;\r\n const storeSelectorStateManager = data.storeSelectorStateManager.result;\r\n\r\n if (!storeSelectorStateManager || !searchData.testLocation) {\r\n this.formFailure = true;\r\n return;\r\n }\r\n\r\n if (request) {\r\n this.isSubmitting = true;\r\n this.formFailure = false;\r\n\r\n const { testType, testLocation, testRadius } = searchData;\r\n const testCoordinates = await storeSelectorStateManager.geoLocate(testLocation.trim() !== '' ? testLocation : '0', actionContext);\r\n\r\n const administrator: IAdministratorLocationCriteria = {\r\n Latitude: testCoordinates?.latitude,\r\n Longitude: testCoordinates?.longitude,\r\n Radius: Number(testRadius),\r\n TestTypes: testType\r\n };\r\n\r\n searchByLocationAsync({ callerContext: actionContext }, administrator).then(result => {\r\n if (!!result?.Result?.length) {\r\n this.result = result.Result;\r\n this.selectedAdmin = result.Result[0];\r\n this.formFailure = false;\r\n this.formSuccess = true;\r\n } else {\r\n this.formFailure = true;\r\n this.formSuccess = false;\r\n }\r\n }).catch(error => {\r\n context.telemetry.error(error.message);\r\n this.formFailure = true;\r\n });\r\n\r\n this.isSubmitting = false;\r\n }\r\n };\r\n\r\n //------------------------------------------------------\r\n // Reset search status and result, but does not clear\r\n // search data\r\n //------------------------------------------------------\r\n private readonly _resetResult = (): void => {\r\n this.result = undefined;\r\n this.formSuccess = false;\r\n this.formFailure = false;\r\n };\r\n}\r\n\r\nexport default TestLocator;\r\n","//==============================================================================\r\n// Test Constants\r\n//\r\n// Consolidated list of test enums and constants reused across different modules\r\n//==============================================================================\r\n\r\nexport enum TestType {\r\n iowa = 'Iowa',\r\n iowaCogAt = 'Iowa with CogAT',\r\n stanford = 'Stanford',\r\n both = 'Iowa,Stanford'\r\n}\r\n\r\nexport enum AppEducation {\r\n highschool = 'High School Diploma or GED',\r\n associates = 'Associate\\'s Degree',\r\n bachelors = 'Bachelor\\'s Degree',\r\n masters = 'Master\\'s Degree',\r\n doctoral = 'Doctoral Degree'\r\n}\r\n\r\nexport enum AppStanfordLocation {\r\n default = 'US/CA/UK',\r\n other = 'Other'\r\n}\r\n\r\nexport enum AppStatus {\r\n approved = 0,\r\n pending = 1,\r\n rejected = 2,\r\n suspended = 3,\r\n notApplied = 4\r\n}\r\n\r\nexport enum SessionStatus {\r\n open = 0,\r\n closed = 1\r\n}\r\n\r\nexport const appEducationMap: {[key: string]: string[]} = {\r\n [TestType.iowa]: [\r\n AppEducation.highschool,\r\n AppEducation.associates,\r\n AppEducation.bachelors,\r\n AppEducation.masters,\r\n AppEducation.doctoral\r\n ],\r\n [TestType.stanford]: [\r\n AppEducation.bachelors,\r\n AppEducation.masters,\r\n AppEducation.doctoral\r\n ],\r\n [TestType.both]: [\r\n AppEducation.bachelors,\r\n AppEducation.masters,\r\n AppEducation.doctoral\r\n ]\r\n};\r\n\r\nexport const timezoneDefault: string = 'America/New_York';\r\n","//==============================================================================\r\n// Variable Replacer\r\n//\r\n// General purpose tool to replace variables within a string\r\n//==============================================================================\r\n\r\nexport function varReplace(text: string, vars: {[key: string]: string}): string {\r\n return text.replace(/{(.+?)}/g, (_, match) => vars[match] || '');\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['test-locator'] = {\n c: () => require('partner/modules/test-locator/test-locator.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: 'test-locator',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/test-locator'\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 * 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 // 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":["TestLocatorContact","React","constructor","props","super","_toggle","this","setState","isOpen","state","contactLink","render","cls","resources","admin","testTypes","IowaStatus","AppStatus","approved","StanfordStatus","testLocator_typeIowaShort","testLocator_typeStanfordShort","Button","className","classnames","testLocator_contactLink","title","onClick","innerRef","Modal","autoFocus","fade","applicationNode","returnFocusRef","toggle","horizontalPosition","verticalPosition","ModalHeader","tag","testLocator_profileHeading","ModalBody","Name","testLocator_profileDescriptionInterfix","testLocator_profileDescriptionSuffix","testLocator_profileContactHeading","ContactInformation","ModalFooter","TestLocatorMap","mapRef","_initMap","_storeSelectorStateMa","context","data","moduleProps","channel","actionContext","requestContext","storeSelectorStateManager","result","isMapApiLoaded","map","Microsoft","Maps","Map","current","credentials","BingMapsApiKey","pushpinAccessible","Events","addHandler","async","_storeSelectorStateMa2","setSelectedStoreLocationId","undefined","_updateMap","admins","selectedAdmin","entities","clear","pushpins","forEach","index","LocatorLatitude","LocatorLongitude","isSelectedAdmin","pushpinOptions","config","options","_getPushpinOptions","pushpin","Pushpin","Location","selectAdmin","unshift","push","currentLocation","setView","center","bounds","LocationRect","fromShapes","setOptions","isSelected","text","showIndex","toString","size","color","selectionColor","icon","_getSvgIcon","_storeSelectorStateMa3","_storeSelectorStateMa4","telemetry","locale","BingMapsEnabled","loadMapApi","key","lang","market","ChannelCountryRegionISOCode","when","_storeSelectorStateMa5","setMapModuleLoaded","_storeSelectorStateMa6","reaction","_storeSelectorStateMa7","_storeSelectorStateMa8","_storeSelectorStateMa9","_this$props$modulePro","_this$props$modulePro2","orgUnitStoreInformation","selectedStoreLocationId","error","ref","__decorate","observable","observer","BASE_CLASS","fragment","clsHelper","TestLocator","isSubmitting","formSuccess","formFailure","formData","testType","TestType","iowa","testLocation","testRadius","directionsUrl","_renderInputRadius","onChange","htmlFor","testLocator_searchRadius","id","defaultValue","radius","value","testLocator_searchRadiusUnit","_onInputChange","event","currentTarget","_onSelectChangeSubmit","_performSearch","_selectAdmin","request","searchData","testCoordinates","geoLocate","trim","administrator","Latitude","latitude","Longitude","longitude","Radius","Number","TestTypes","searchByLocationAsync","callerContext","then","_result$Result","Result","length","catch","message","_resetResult","_this$result","_this$result2","_this$result3","_this$result4","heading","Heading","headingTag","description","RichTextComponent","testLocator_typeHeading","testLocator_typeDescription","type","testLocator_typeIowaFull","testLocator_typeIowa","checked","testLocator_typeStanfordFull","testLocator_typeStanford","stanford","testLocator_searchHeading","testLocator_searchDescription","testLocator_searchLocation","testLocator_searchButton","disabled","testLocator_loadingResults","testLocator_noResults","varReplace","testLocator_results","testNumber","String","plural","searchTerm","testLocator_modifyLink","role","LocatorStreet","LocatorCity","LocatorState","LocatorZipCode","testLocator_directionsLink","href","address","target","rel","AppEducation","AppStanfordLocation","SessionStatus","appEducationMap","highschool","associates","bachelors","masters","doctoral","both","timezoneDefault","vars","replace","_","match","binding","modules","dataActions","c","require","$type","da","name","path","runOn","iNM","ns","n","p","pdp","md","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","Error","prototype","RegistrationId","window","__bindings__","_objectSpread","BaseStoreSelectorStateManager","listMapViewState","displayList","displayMap","preferredStoreLocalStorageKey","isMapModuleLoaded","_readFromToCookie","storeInfo","JSON","parse","preferredStore","_unused","_context","input","storeId","storeName","writeToCookie","arguments","StoreId","StoreName","_writeToCookie","stringify","lastInlineShownStoreInfo","_removeCookie","MsDyn365","isBrowser","localStorage","removeItem","setItem","cookieValue","getItem","computed","action","MapStoreSelectorStateManager","SERVICE_ENDPOINT","MAP_API_ENDPOINT","searchContent","jsonp","crypto","getRandomValues","Uint32Array","query","encodeURI","geolocationApiUrl","app","requestUrl","Promise","resolve","script","document","createElement","setAttribute","remove","resourceSets","point","coordinates","body","appendChild","_document","StringExtensions","isNullOrEmpty","getElementById","url","reject","_document2","_document3","defer","src","mapAPIReady","addEventListener","createStoreSelectorStateInput","GenericInput","getGenericActionDataAction","createObservableDataAction","getGenericAction","inputData","module","exports","ReactDOM"],"sourceRoot":""}