{"version":3,"file":"static/js/21.b5d8c0cc379619c8fe5f.chunk.js","mappings":"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","sources":["webpack://venchi-ecommerce-msdyn365/./src/modules/find-store-worldwide/components/pickup-option-list.tsx?9899","webpack://venchi-ecommerce-msdyn365/./src/modules/find-store-worldwide/components/store-pickup-option-list.tsx?fcf6","webpack://venchi-ecommerce-msdyn365/./src/modules/find-store-worldwide/components/find-store-worldwide-location-line-item/date-time-helpers.ts?31c5","webpack://venchi-ecommerce-msdyn365/./src/modules/find-store-worldwide/components/find-store-worldwide-location-line-item/find-store-worldwide-location-line-item.components.tsx?9ca8","webpack://venchi-ecommerce-msdyn365/./src/modules/find-store-worldwide/components/find-store-worldwide-location-lines.tsx?bbef","webpack://venchi-ecommerce-msdyn365/./src/modules/find-store-worldwide/components/find-store-worldwide-search-form.tsx?05ef","webpack://venchi-ecommerce-msdyn365/./src/modules/find-store-worldwide/components/find-store-worldwide-small-components.tsx?cef1","webpack://venchi-ecommerce-msdyn365/./src/modules/find-store-worldwide/components/selected-store/selected-store.tsx?d7a6","webpack://venchi-ecommerce-msdyn365/./src/modules/find-store-worldwide/find-store-worldwide.props.autogenerated.ts?b0ff","webpack://venchi-ecommerce-msdyn365/./src/modules/find-store-worldwide/find-store-worldwide.tsx?f58c","webpack://venchi-ecommerce-msdyn365/./src/modules/find-store-worldwide/find-store-worldwide.view.tsx?59ba","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/definition-extensions/account-loyalty.ext.props.autogenerated.ts?0bf6","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/views/account-loyalty.view.tsx?24c1","webpack://venchi-ecommerce-msdyn365/./src/modules/aad-generic/aad-generic.tsx?c076","webpack://venchi-ecommerce-msdyn365/./src/modules/account-customer-balance-tile/account-customer-balance-tile.tsx?8281","webpack://venchi-ecommerce-msdyn365/./src/modules/account-customer-balance-tile/account-customer-balance-tile.view.tsx?95a8","webpack://venchi-ecommerce-msdyn365/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-info.tsx?44e9","webpack://venchi-ecommerce-msdyn365/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-links.tsx?95ac","webpack://venchi-ecommerce-msdyn365/./src/modules/account-customer-balance/account-customer-balance.tsx?8d5a","webpack://venchi-ecommerce-msdyn365/./src/modules/account-customer-balance/components/account-actions.tsx?e021","webpack://venchi-ecommerce-msdyn365/./src/modules/account-customer-balance/components/account-statement-request-modal.tsx?18c0","webpack://venchi-ecommerce-msdyn365/./src/modules/account-customer-balance/components/index.tsx?fba9","webpack://venchi-ecommerce-msdyn365/./src/modules/account-loyalty-tile/components/account-loyalty-tile-links.tsx?6c7f","webpack://venchi-ecommerce-msdyn365/./src/modules/account-loyalty-tile/account-loyalty-tile.tsx?7f29","webpack://venchi-ecommerce-msdyn365/./src/modules/account-loyalty-tile/account-loyalty-tile.view.tsx?3547","webpack://venchi-ecommerce-msdyn365/./src/modules/account-loyalty-tile/components/account-loyalty-tile-description.tsx?c7bb","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile-edit/account-profile-edit.tsx?a0b5","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile-edit/account-profile-edit.view.tsx?530d","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile-edit/components/account-profile-edit-button.tsx?e669","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile-edit/components/account-profile-edit-error.tsx?eadf","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile-edit/components/account-profile-edit-input.tsx?5c72","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile-edit/components/account-profile-edit-label.tsx?4793","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile-edit/components/account-profile-edit-loading-icon.tsx?fba0","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile-edit/components/account-profile-edit-loading-message.tsx?7cf0","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile/components/account-profile-attributes.tsx?bcc2","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile/components/account-profile-links.tsx?8faf","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile/account-profile.tsx?fe69","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile/account-profile.view.tsx?b964","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile/components/account-profile-description.tsx?770a","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile/components/account-profile-text.tsx?8115","webpack://venchi-ecommerce-msdyn365/./src/modules/account-welcome-tile/account-welcome-tile.tsx?2115","webpack://venchi-ecommerce-msdyn365/./src/modules/account-welcome-tile/account-welcome-tile.view.tsx?e5e3","webpack://venchi-ecommerce-msdyn365/./src/modules/account-wishlist-tile/components/account-wishlist-tile-description.tsx?0588","webpack://venchi-ecommerce-msdyn365/./src/modules/account-wishlist-tile/components/account-wishlist-tile-links.tsx?f114","webpack://venchi-ecommerce-msdyn365/./src/modules/account-wishlist-tile/account-wishlist-tile.tsx?b721","webpack://venchi-ecommerce-msdyn365/./src/modules/account-wishlist-tile/account-wishlist-tile.view.tsx?095e","webpack://venchi-ecommerce-msdyn365/./src/modules/b2b-requests-tile/components/account-b2b-requests-tile-links.tsx?d6f5","webpack://venchi-ecommerce-msdyn365/./src/modules/b2b-requests-tile/b2b-requests-tile.tsx?9498","webpack://venchi-ecommerce-msdyn365/./src/modules/b2b-requests-tile/b2b-requests-tile.view.tsx?3f4e","webpack://venchi-ecommerce-msdyn365/./src/modules/loyalty-sign-up/components/loyalty-sign-up-small-components.tsx?7106","webpack://venchi-ecommerce-msdyn365/./src/modules/loyalty-sign-up/loyalty-sign-up.tsx?fd89","webpack://venchi-ecommerce-msdyn365/./src/modules/loyalty-sign-up/loyalty-sign-up.view.tsx?45ec","webpack://venchi-ecommerce-msdyn365/./src/modules/loyalty-terms/components/loyalty-terms-modal.tsx?1b8b","webpack://venchi-ecommerce-msdyn365/./src/modules/loyalty-terms/loyalty-terms.tsx?babd","webpack://venchi-ecommerce-msdyn365/./src/modules/loyalty-terms/loyalty-terms.view.tsx?b3e6","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset/components/password-reset-button.tsx?a869","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset/components/password-reset-error.tsx?fbfd","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset/components/password-reset-input.tsx?20d9","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset/components/password-reset-label.tsx?6ef1","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset/components/password-reset-loading-icon.tsx?8828","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset/components/password-reset-loading-message.tsx?a980","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset/password-reset.tsx?0983","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset/password-reset.view.tsx?b341","webpack://venchi-ecommerce-msdyn365/./src/modules/business-organization-list/business-organization-list.tsx?0823","webpack://venchi-ecommerce-msdyn365/./src/modules/business-organization-list/business-organization-list.view.tsx?c050","webpack://venchi-ecommerce-msdyn365/./src/modules/business-organization-list/components/small-components.tsx?c4b5","webpack://venchi-ecommerce-msdyn365/./src/modules/fabrikam/views/order-history.view.tsx?a21d","webpack://venchi-ecommerce-msdyn365/./src/modules/social-share/social-share.tsx?899b","webpack://venchi-ecommerce-msdyn365/./src/modules/social-share/social-share.view.tsx?dcdf","webpack://venchi-ecommerce-msdyn365/./src/modules/adventureworks/views/business-organization-list.view.tsx?e6ec"],"sourcesContent":["/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { DeliveryOption } from '@msdyn365-commerce/retail-proxy';\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Interface Pickup option list.\r\n */\r\nexport interface IPickUpOptionListProps {\r\n pickupListOptionMenuText: string;\r\n pickupmodeList?: DeliveryOption[];\r\n onChange(deliveryCode: string): Promise;\r\n}\r\n\r\n/**\r\n * Interface pickup option list state.\r\n */\r\nexport interface IPickOptionListState {\r\n expandSiteOptions: boolean;\r\n}\r\n\r\n/**\r\n * Simple Pickup option dropdown with Button to get menu option.\r\n */\r\nexport class PickUpOptionList extends React.PureComponent {\r\n private readonly _pickupListOptionMenu: React.RefObject;\r\n\r\n private readonly _pickupListOptionButton: React.RefObject;\r\n\r\n private readonly eventsToBeBind = ['click', 'touchstart'];\r\n\r\n public constructor(props: IPickUpOptionListProps) {\r\n super(props);\r\n this._renderDeliveryOptions = this._renderDeliveryOptions.bind(this);\r\n this._pickupListOptionMenu = React.createRef();\r\n this._pickupListOptionButton = React.createRef();\r\n this.state = {\r\n expandSiteOptions: false\r\n };\r\n }\r\n\r\n public componentDidMount(): void {\r\n for (const event of this.eventsToBeBind) {\r\n window.addEventListener(event, this.handleDocumentClick, true);\r\n }\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n for (const event of this.eventsToBeBind) {\r\n window.removeEventListener(event, this.handleDocumentClick, true);\r\n }\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { pickupListOptionMenuText, pickupmodeList } = this.props;\r\n\r\n return (\r\n
\r\n \r\n {pickupListOptionMenuText}\r\n \r\n \r\n {this.state.expandSiteOptions ? (\r\n
    \r\n {pickupmodeList?.map((delivery: DeliveryOption) => {\r\n return (\r\n
  • \r\n \r\n \r\n {delivery.Description}\r\n \r\n \r\n
  • \r\n );\r\n })}\r\n
\r\n ) : null}\r\n
\r\n );\r\n }\r\n\r\n /**\r\n * Handle the document click.\r\n * @param event -- Event object.\r\n */\r\n private readonly handleDocumentClick = (event: Event): void => {\r\n const htmlElement = event.target as HTMLElement;\r\n if (\r\n !(\r\n (this._pickupListOptionButton.current !== null &&\r\n (event.target === this._pickupListOptionButton.current ||\r\n this._pickupListOptionButton.current.contains(htmlElement))) ||\r\n (this._pickupListOptionMenu.current !== null &&\r\n (event.target === this._pickupListOptionMenu.current || this._pickupListOptionMenu.current.contains(htmlElement)))\r\n )\r\n ) {\r\n this.setState({\r\n expandSiteOptions: false\r\n });\r\n }\r\n };\r\n\r\n private _renderDeliveryOptions(event: React.MouseEvent): void {\r\n event.stopPropagation();\r\n const isExpandSiteOptionsState = this.state.expandSiteOptions;\r\n this.setState({\r\n expandSiteOptions: !isExpandSiteOptionsState\r\n });\r\n }\r\n\r\n /**\r\n * Select Delivery option.\r\n * @param event -- Event Object.\r\n */\r\n private readonly _onSelect = async (event: React.MouseEvent): Promise => {\r\n event.preventDefault();\r\n const deliveryCode = event.currentTarget.getAttribute('data-value');\r\n if (deliveryCode && deliveryCode.length > 0) {\r\n await this.props.onChange(deliveryCode);\r\n }\r\n };\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { DeliveryOption } from '@msdyn365-commerce/retail-proxy';\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Store Pickup option list interface.\r\n */\r\nexport interface IStorePickUpOptionListProps {\r\n productPickupListOptionMenuText?: string;\r\n productPickupModeList?: DeliveryOption[];\r\n defaultOptionText?: string;\r\n onChange(deliveryCode: string): Promise;\r\n}\r\n\r\n/**\r\n * Store Pickup option state interface.\r\n */\r\nexport interface IStorePickOptionListState {\r\n isFilterExpanded: boolean;\r\n selectedPickupMode?: string;\r\n}\r\n\r\n/**\r\n * Simple Pickup option dropdown with Button to get menu option.\r\n */\r\nexport class StorePickUpOptionList extends React.PureComponent {\r\n private readonly _storePickupListOptionMenu: React.RefObject;\r\n\r\n public constructor(props: IStorePickUpOptionListProps) {\r\n super(props);\r\n this._storePickupListOptionMenu = React.createRef();\r\n this.state = {\r\n isFilterExpanded: false,\r\n selectedPickupMode: ''\r\n };\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { productPickupListOptionMenuText, productPickupModeList, defaultOptionText } = this.props;\r\n const selectedPickupModeDesc = defaultOptionText\r\n ? defaultOptionText\r\n : productPickupModeList?.find((delivery: DeliveryOption) => delivery.Code === this.state.selectedPickupMode)?.Description;\r\n const role = 'menu';\r\n return (\r\n
\r\n \r\n {this.state.isFilterExpanded ? (\r\n
    \r\n {productPickupModeList?.map((delivery: DeliveryOption) => {\r\n return (\r\n \r\n \r\n \r\n {delivery.Description}\r\n \r\n \r\n \r\n );\r\n })}\r\n
\r\n ) : null}\r\n
\r\n );\r\n }\r\n\r\n /**\r\n * Method to call when drop dwon get selected.\r\n */\r\n private readonly _rendeDeliveryOptions = () => {\r\n const isExpandOptionsState = this.state.isFilterExpanded;\r\n this.setState({\r\n isFilterExpanded: !isExpandOptionsState\r\n });\r\n };\r\n\r\n /**\r\n * Method to call on select pickup mode.\r\n * @param event - Mouse event.\r\n * @returns Void.\r\n */\r\n private readonly _onSelect = async (event: React.MouseEvent): Promise => {\r\n event.preventDefault();\r\n const deliveryCode = event.currentTarget.getAttribute('data-value');\r\n if (deliveryCode !== null) {\r\n this.setState({\r\n selectedPickupMode: deliveryCode\r\n });\r\n\r\n this._rendeDeliveryOptions();\r\n await this.props.onChange(deliveryCode);\r\n }\r\n };\r\n\r\n /**\r\n * Method to call on select pickup mode.\r\n * @param event - Mouse event.\r\n * @returns Void.\r\n */\r\n private readonly _onKeyDown = async (event: React.KeyboardEvent): Promise => {\r\n event.preventDefault();\r\n const deliveryCode = event.currentTarget.getAttribute('data-value');\r\n if (deliveryCode !== null) {\r\n this.setState({\r\n selectedPickupMode: deliveryCode\r\n });\r\n\r\n this._rendeDeliveryOptions();\r\n await this.props.onChange(deliveryCode);\r\n }\r\n };\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { RegularStoreHours } from '@msdyn365-commerce/retail-proxy';\r\nimport get from 'lodash/get';\r\nimport { IStoreSelectorLocationLineItemResources } from '../../find-store-worldwide';\r\n\r\nexport interface IHoursDisplayInfo {\r\n startDayShort: string;\r\n startDayFull: string;\r\n endDayShort?: string;\r\n endDayFull?: string;\r\n timeRange: string;\r\n}\r\n\r\ninterface IHoursInfo {\r\n isClosed: boolean;\r\n openTime?: number;\r\n closeTime?: number;\r\n}\r\n\r\ntype DayType = 'MON' | 'TUE' | 'WED' | 'THU' | 'FRI' | 'SAT' | 'SUN';\r\n\r\nexport const secondsToTime = (seconds: number | undefined): string | undefined => {\r\n if (seconds === undefined) {\r\n return undefined;\r\n }\r\n let hours = Math.floor(seconds / (60 * 60));\r\n const ampm = hours >= 12 ? 'pm' : 'am';\r\n hours %= 12;\r\n hours = hours ? hours : 12;\r\n const divisorForMinutes = seconds % (60 * 60);\r\n const minutes = Math.floor(divisorForMinutes / 60) < 10 ? `0${Math.floor(divisorForMinutes / 60)}` : Math.floor(divisorForMinutes / 60);\r\n return `${hours}:${minutes} ${ampm}`;\r\n};\r\n\r\nconst getShortTimeString = (day: DayType, resources: IStoreSelectorLocationLineItemResources): string => {\r\n switch (day) {\r\n case 'MON':\r\n return resources.days.monday;\r\n case 'TUE':\r\n return resources.days.tuesday;\r\n case 'WED':\r\n return resources.days.wednesday;\r\n case 'THU':\r\n return resources.days.thursday;\r\n case 'FRI':\r\n return resources.days.friday;\r\n case 'SAT':\r\n return resources.days.saturday;\r\n default:\r\n // Case 'SUN':\r\n return resources.days.sunday;\r\n }\r\n};\r\n\r\nconst getFullTimeString = (day: DayType, resources: IStoreSelectorLocationLineItemResources): string => {\r\n switch (day) {\r\n case 'MON':\r\n return resources.days.mondayFull;\r\n case 'TUE':\r\n return resources.days.tuesdayFull;\r\n case 'WED':\r\n return resources.days.wednesdayFull;\r\n case 'THU':\r\n return resources.days.thursdayFull;\r\n case 'FRI':\r\n return resources.days.fridayFull;\r\n case 'SAT':\r\n return resources.days.saturdayFull;\r\n default:\r\n // Case 'SUN':\r\n return resources.days.sundayFull;\r\n }\r\n};\r\n\r\nconst buildHoursDisplayInfo = (\r\n startDay: DayType,\r\n endDay: DayType,\r\n hoursInfo: string,\r\n resources: IStoreSelectorLocationLineItemResources\r\n): IHoursDisplayInfo => {\r\n return {\r\n startDayShort: getShortTimeString(startDay, resources),\r\n startDayFull: getFullTimeString(startDay, resources),\r\n endDayShort: startDay !== endDay ? getShortTimeString(endDay, resources) : undefined,\r\n endDayFull: startDay !== endDay ? getFullTimeString(endDay, resources) : undefined,\r\n timeRange: hoursInfo\r\n };\r\n};\r\n\r\nconst shouldMergeLines = (firstLine: IHoursInfo, secondLine: IHoursInfo): boolean => {\r\n if (firstLine.isClosed && secondLine.isClosed) {\r\n return true;\r\n }\r\n\r\n if (!firstLine.isClosed && !secondLine.isClosed) {\r\n return firstLine.openTime === secondLine.openTime && firstLine.closeTime === secondLine.closeTime;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst getStoreHoursData = (storeHours: RegularStoreHours, dateForLookup: string): IHoursInfo => {\r\n return {\r\n isClosed: get(storeHours, `IsClosedOn${dateForLookup}`, false),\r\n openTime: get(storeHours, `${dateForLookup}OpenTime`, undefined),\r\n closeTime: get(storeHours, `${dateForLookup}CloseTime`, undefined)\r\n };\r\n};\r\n\r\nconst buildStoreHoursString = (hoursInfo: IHoursInfo, resources: IStoreSelectorLocationLineItemResources): string => {\r\n if (hoursInfo.isClosed) {\r\n return resources.closedText;\r\n }\r\n const openFrom: string | undefined = secondsToTime(hoursInfo.openTime);\r\n const openTo: string | undefined = secondsToTime(hoursInfo.closeTime);\r\n\r\n return `${openFrom}–${openTo}`;\r\n};\r\n\r\nexport const buildStoreHours = (storeHours: RegularStoreHours, resources: IStoreSelectorLocationLineItemResources): IHoursDisplayInfo[] => {\r\n const storeHoursList: IHoursDisplayInfo[] = [];\r\n\r\n const mondayHours = getStoreHoursData(storeHours, 'Monday');\r\n const tuesdayHours = getStoreHoursData(storeHours, 'Tuesday');\r\n const wednesdayHours = getStoreHoursData(storeHours, 'Wednesday');\r\n const thursdayHours = getStoreHoursData(storeHours, 'Thursday');\r\n const fridayHours = getStoreHoursData(storeHours, 'Friday');\r\n const saturdayHours = getStoreHoursData(storeHours, 'Saturday');\r\n const sundayHours = getStoreHoursData(storeHours, 'Sunday');\r\n\r\n let periodStart: DayType = 'MON';\r\n let periodEnd: DayType = 'MON';\r\n\r\n if (!shouldMergeLines(mondayHours, tuesdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(mondayHours, resources), resources));\r\n\r\n periodStart = 'TUE';\r\n }\r\n periodEnd = 'TUE';\r\n\r\n if (!shouldMergeLines(tuesdayHours, wednesdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(tuesdayHours, resources), resources));\r\n\r\n periodStart = 'WED';\r\n }\r\n periodEnd = 'WED';\r\n\r\n if (!shouldMergeLines(wednesdayHours, thursdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(wednesdayHours, resources), resources));\r\n\r\n periodStart = 'THU';\r\n }\r\n periodEnd = 'THU';\r\n\r\n if (!shouldMergeLines(thursdayHours, fridayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(thursdayHours, resources), resources));\r\n\r\n periodStart = 'FRI';\r\n }\r\n periodEnd = 'FRI';\r\n\r\n if (!shouldMergeLines(fridayHours, saturdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(fridayHours, resources), resources));\r\n\r\n periodStart = 'SAT';\r\n }\r\n periodEnd = 'SAT';\r\n\r\n if (!shouldMergeLines(saturdayHours, sundayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(saturdayHours, resources), resources));\r\n\r\n periodStart = 'SUN';\r\n }\r\n periodEnd = 'SUN';\r\n\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(sundayHours, resources), resources));\r\n\r\n return storeHoursList;\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { OrgUnitContact, OrgUnitLocation, StoreHours } from '@msdyn365-commerce/retail-proxy';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\n// import { ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { buildStoreHours, IHoursDisplayInfo, secondsToTime } from './date-time-helpers';\r\nimport { IStoreSelectorLocationLineItemProps, IStoreSelectorLocationLineItemResources } from '../../find-store-worldwide';\r\n\r\n// /**\r\n// * Store Locator line item resources.\r\n// */\r\n// export interface IStoreSelectorLocationLineItemResources {\r\n// storeHoursHeader: string;\r\n// closedText: string;\r\n// storeLabelRetailer: string;\r\n// storeLabelVenchi: string;\r\n// goToStoreWebPage: string;\r\n\r\n// days: {\r\n// monday: string;\r\n// tuesday: string;\r\n// wednesday: string;\r\n// thursday: string;\r\n// friday: string;\r\n// saturday: string;\r\n// sunday: string;\r\n// mondayFull: string;\r\n// tuesdayFull: string;\r\n// wednesdayFull: string;\r\n// thursdayFull: string;\r\n// fridayFull: string;\r\n// saturdayFull: string;\r\n// sundayFull: string;\r\n// };\r\n// }\r\n\r\n// /**\r\n// * Store Locator line item props.\r\n// */\r\n// export interface IStoreSelectorLocationLineItemProps {\r\n// location: OrgUnitLocation;\r\n// storeHours?: StoreHours;\r\n\r\n// // hideStockStatus?: boolean;\r\n// // isInStock?: boolean;\r\n// // isCurrentLocation?: boolean;\r\n\r\n// resources: IStoreSelectorLocationLineItemResources;\r\n// // stockStatusLabel?: string;\r\n// // storeLocatorView?: boolean;\r\n// // isPreferredStoreEnabled?: boolean;\r\n// index: string;\r\n// // preferredStoreLocationId: string | null;\r\n// // storePickUpOptionList?: DeliveryOption[];\r\n// // productPickUpOptionList?: DeliveryOption[];\r\n// // filteredPickupMode?: string;\r\n// // shouldShowIndex?: boolean;\r\n// baseUrl?: string;\r\n// shouldShowStorePageLinks?: boolean;\r\n// storePageLinksCountries?: string[];\r\n// baseClassName?: string;\r\n\r\n// /**\r\n// * The telemetry content.\r\n// */\r\n// telemetryContent?: ITelemetryContent;\r\n// preferredDistanceUnit: string;\r\n// isLocationDisabled?: boolean;\r\n// // handlers: {\r\n// // onSelected(location: OrgUnitLocation, deliveryMode?: string): void;\r\n// // onSetAsPreferredStore(locationId: string | undefined): void;\r\n// // onRemovePreferredStore(): void;\r\n// // };\r\n// }\r\n\r\nconst hasStoreHoursInfo = (storeHours: StoreHours | undefined, location: OrgUnitLocation): boolean => {\r\n if (storeHours?.RegularStoreHours || (location.OpenFrom && location.OpenTo)) {\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\n/**\r\n * Function to render store hours.\r\n * @param storeHours - Store Hours object.\r\n * @param location - Store Unit.\r\n * @param resources - Resources.\r\n * @returns - Jsx element.\r\n */\r\nexport const renderStoreHours = (\r\n storeHours: StoreHours | undefined,\r\n location: OrgUnitLocation,\r\n resources: IStoreSelectorLocationLineItemResources\r\n): JSX.Element | null => {\r\n // First, use the store hours. This will allow listing day by day houts\r\n if (storeHours?.RegularStoreHours) {\r\n const storeHoursList: IHoursDisplayInfo[] = buildStoreHours(storeHours.RegularStoreHours, resources);\r\n return (\r\n \r\n \r\n \r\n {\r\n //TODO LOCALIZE\r\n }\r\n \r\n \r\n \r\n \r\n \r\n {storeHoursList.map(displayTime => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
DayHours
\r\n {displayTime.endDayShort ? (\r\n <>\r\n {displayTime.startDayShort}–\r\n {displayTime.endDayShort}\r\n \r\n ) : (\r\n {displayTime.startDayShort}\r\n )}\r\n {displayTime.timeRange}
\r\n );\r\n // return (\r\n //
\r\n // {storeHoursList.map(displayTime => (\r\n //
\r\n // {displayTime.endDayShort ? (\r\n //
\r\n // {displayTime.startDayShort}–\r\n // {displayTime.endDayShort}\r\n //
\r\n // ) : (\r\n //
\r\n // {displayTime.startDayShort}\r\n //
\r\n // )}\r\n //
{displayTime.timeRange}
\r\n //
\r\n // ))}\r\n //
\r\n // );\r\n }\r\n\r\n // If that fails, fall back to using the OpenFrom and OpenTo properties on the location\r\n const storeOpenFrom: string | undefined = secondsToTime(location.OpenFrom);\r\n const storeOpenTo: string | undefined = secondsToTime(location.OpenTo);\r\n\r\n return (\r\n
\r\n {storeOpenFrom}-{storeOpenTo}\r\n
\r\n );\r\n};\r\n\r\n/**\r\n * Function to return distance measure unit.\r\n * @param distance - Store location within radius.\r\n * @param preferredDistanceUnit - Unit configuration.\r\n * @param isLocationDisabled - Flag to check user location.\r\n * @returns - Unit of distance.\r\n */\r\nexport const buildDistanceString = (\r\n distance: number | undefined,\r\n preferredDistanceUnit: string,\r\n isLocationDisabled?: boolean\r\n): string | undefined => {\r\n if (distance === undefined || isLocationDisabled) {\r\n return undefined;\r\n } else if (distance < 1) {\r\n return `(<1 ${preferredDistanceUnit})`;\r\n }\r\n return `(${Math.floor(distance)} ${preferredDistanceUnit})`;\r\n};\r\n\r\n/**\r\n * Function to store contact.\r\n * @param contacts - Store location within radius.\r\n * @returns - Return primary contact number of store.\r\n */\r\nconst extractPhoneNumber = (contacts: OrgUnitContact[] | undefined): string | undefined => {\r\n if (!contacts) {\r\n return undefined;\r\n }\r\n\r\n const allPhoneContacts = contacts.filter(contact => contact.ContactTypeValue === 1 && !contact.IsPrivate);\r\n\r\n if (ArrayExtensions.hasElements(allPhoneContacts)) {\r\n const primaryPhoneContact = allPhoneContacts.find(contact => contact.IsPrimary);\r\n\r\n if (primaryPhoneContact) {\r\n return primaryPhoneContact.Locator;\r\n }\r\n\r\n return allPhoneContacts[0].Locator;\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nexport function formatAddress(location: OrgUnitLocation): string {\r\n const addressParts = [];\r\n\r\n // Street and Street Number\r\n if (location.Street || location.StreetNumber) {\r\n addressParts.push(`${location.Street || ''} ${location.StreetNumber || ''}`.trim());\r\n }\r\n\r\n // District and Building Compliment\r\n const districtBuildingParts = [];\r\n if (location.DistrictName) {\r\n districtBuildingParts.push(location.DistrictName);\r\n }\r\n if (location.BuildingCompliment) {\r\n districtBuildingParts.push(location.BuildingCompliment);\r\n }\r\n if (districtBuildingParts.length > 0) {\r\n addressParts.push(districtBuildingParts.join(', '));\r\n }\r\n\r\n // City, County, State\r\n const cityCountyStateParts = [];\r\n if (location.City) {\r\n cityCountyStateParts.push(location.City);\r\n }\r\n if ((location.State || location.StateName) && !(location.Country === 'ITA')) {\r\n cityCountyStateParts.push(location.State || location.StateName);\r\n }\r\n if (cityCountyStateParts.length > 0) {\r\n addressParts.push(cityCountyStateParts.join(', '));\r\n }\r\n\r\n // Zipcode\r\n if (location.Zip) {\r\n addressParts.push(location.Zip);\r\n }\r\n\r\n // Country\r\n if (location.Country) {\r\n addressParts.push(location.Country);\r\n }\r\n\r\n return addressParts.join('\\n');\r\n}\r\n/**\r\n * Renders store location line items.\r\n * @param props - Store location line items props.\r\n * @returns - HTML.\r\n */\r\nconst storeSelectorLocationLineItem: React.FC = (props: IStoreSelectorLocationLineItemProps) => {\r\n const {\r\n location,\r\n resources,\r\n storeHours,\r\n index,\r\n isLocationDisabled,\r\n storePageLinksCountries,\r\n shouldShowStorePageLinks,\r\n baseUrl,\r\n baseClassName\r\n } = props;\r\n\r\n var storeName: string | undefined = location.OrgUnitName;\r\n const retailer = storeName?.startsWith('R ') ? true : false;\r\n if (storeName && retailer) {\r\n storeName = storeName.slice(2);\r\n }\r\n const storeUrl = storeName\r\n ?.toLowerCase()\r\n .replace(/[ .&@',]/g, '-')\r\n .replace(/-+/g, '-');\r\n const distanceAsString: string | undefined = buildDistanceString(location.Distance, props.preferredDistanceUnit, isLocationDisabled);\r\n const storeAddress: string = formatAddress(location);\r\n const phoneNumber: string | undefined = extractPhoneNumber(location.Contacts);\r\n const displayStoreHours = hasStoreHoursInfo(storeHours, location);\r\n const parentClassName = baseClassName ? baseClassName : 'ms-store-select-venchi__location-line-item';\r\n\r\n const urlStorePage = (): JSX.Element | null => {\r\n if (!retailer && shouldShowStorePageLinks && location.Country && storePageLinksCountries?.includes(location.Country)) {\r\n return (\r\n
\r\n \r\n \r\n {resources.goToStoreWebPage}\r\n \r\n
\r\n );\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n /* eslint-disable prettier/prettier */\r\n return (\r\n
\r\n
\r\n

\r\n {`${retailer ? resources.storeLabelRetailer : resources.storeLabelVenchi} ${index}`}\r\n {distanceAsString ?\r\n \r\n {' '}\r\n {distanceAsString}\r\n : false}\r\n

\r\n

{storeName}

\r\n
\r\n
\r\n
\r\n {storeAddress && (\r\n
\r\n \r\n {storeAddress}\r\n
\r\n )}\r\n {phoneNumber && (\r\n
\r\n \r\n {phoneNumber}\r\n
\r\n )}\r\n {urlStorePage()}\r\n
\r\n {displayStoreHours && (\r\n
\r\n

{resources.storeHoursHeader}

\r\n {renderStoreHours(storeHours, location, resources)}\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\n/**\r\n * Store location line item component.\r\n */\r\nexport const StoreSelectorLocationLineItemComponent = storeSelectorLocationLineItem as (\r\n props: IStoreSelectorLocationLineItemProps\r\n) => JSX.Element;\r\n","/* eslint-disable security/detect-object-injection */\r\n/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { DeliveryOption, OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\r\nimport { ArrayExtensions, IFullOrgUnitAvailability } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport { observable, reaction } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nimport { IFindStoreWorldwideResources } from '../find-store-worldwide.props.autogenerated';\r\nimport { StoreSelectorLocationLineItemComponent } from './find-store-worldwide-location-line-item';\r\nimport { IStoreSelectorLocationLineItemResources } from '../find-store-worldwide';\r\n\r\n/**\r\n * Store selector location lines props interface.\r\n */\r\nexport interface IStoreSelectorLocationLinesProps {\r\n locations?: IFullOrgUnitAvailability[];\r\n resources: IFindStoreWorldwideResources;\r\n preferredDistanceUnit?: string;\r\n\r\n alreadySelectedLocation?: OrgUnitLocation;\r\n outOfStockThreshold: number;\r\n enableOutOfStockCheck: boolean;\r\n storeLocatorView?: boolean;\r\n selectedStoreLocationId?: string;\r\n isPreferredStoreEnabled?: boolean;\r\n displayList?: boolean;\r\n isLocationDisabled?: boolean;\r\n productPickUpDeliveryOptions?: DeliveryOption[];\r\n onClick: (locationId: string | undefined) => void;\r\n preferredStoreLocationId: string | null;\r\n onSetAsPreferredStore: (locationId: string | undefined) => void;\r\n onRemovePreferredStore: () => void;\r\n filteredPickupMode?: string;\r\n shouldShowIndex?: boolean;\r\n baseUrl?: string;\r\n shouldShowStorePageLinks?: boolean;\r\n storePageLinksCountries?: string[];\r\n\r\n /**\r\n * The telemetry content.\r\n */\r\n telemetryContent?: ITelemetryContent;\r\n onLocationSelected(location: OrgUnitLocation | undefined): void;\r\n}\r\n\r\n/**\r\n * Displays all the location line items, or null if none exists.\r\n */\r\n@observer\r\nexport class StoreSelectorLocationLines extends React.PureComponent {\r\n @observable private _stores: IFullOrgUnitAvailability[] | undefined;\r\n\r\n private readonly selectedLocationRef: React.RefObject;\r\n\r\n private storeCounter: number;\r\n\r\n public constructor(props: IStoreSelectorLocationLinesProps) {\r\n super(props);\r\n this.selectedLocationRef = React.createRef();\r\n this.storeCounter = 0;\r\n }\r\n\r\n public componentDidUpdate(previousProps: IStoreSelectorLocationLinesProps): void {\r\n if (this.props.selectedStoreLocationId !== previousProps.selectedStoreLocationId) {\r\n this._scrollIntoView();\r\n }\r\n }\r\n\r\n public componentDidMount(): void {\r\n if (this.props.locations) {\r\n this._stores = this._sortStores(this.props.locations);\r\n }\r\n\r\n reaction(\r\n () => this.props.locations,\r\n () => {\r\n if (this.props.locations) {\r\n this._stores = this._sortStores(this.props.locations);\r\n }\r\n }\r\n );\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n if (!ArrayExtensions.hasElements(this._stores)) {\r\n return null;\r\n }\r\n\r\n this.storeCounter = 0;\r\n\r\n return (\r\n
\r\n {this._stores.map((store, index) => {\r\n return this._renderStoreLocation(store, index);\r\n })}\r\n
\r\n );\r\n }\r\n\r\n /**\r\n * On click Handler function.\r\n * @param orgUnitLocation -OrgUnit location.\r\n * @returns Click action on orgUnit Location.\r\n */\r\n private readonly onClickHandler = (orgUnitLocation: OrgUnitLocation | undefined) => () => {\r\n this.props.onClick(orgUnitLocation?.OrgUnitNumber);\r\n };\r\n\r\n private _renderStoreLocation(store: IFullOrgUnitAvailability, index: number): JSX.Element | undefined {\r\n const orgUnitLocation = store?.OrgUnitAvailability?.OrgUnitLocation;\r\n const selectedStoreLocationId = this.props.selectedStoreLocationId;\r\n // const deliveryOptions = store?.OrgUnitPickUpDeliveryModes;\r\n const defaultAriaSetsize = 0;\r\n if (orgUnitLocation) {\r\n ++this.storeCounter;\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Sort store.\r\n * @param stores - Array of stores data.\r\n * @returns Sorted stores array.\r\n */\r\n private _sortStores(stores: IFullOrgUnitAvailability[]): IFullOrgUnitAvailability[] {\r\n /**\r\n * IsPreferredStore.\r\n * @param value - Array of stores data.\r\n * @returns IsPreferred store boolean value.\r\n */\r\n const isPreferredStore = (value: IFullOrgUnitAvailability) =>\r\n this.props.isPreferredStoreEnabled &&\r\n this.props.preferredStoreLocationId &&\r\n value.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitNumber === this.props.preferredStoreLocationId;\r\n\r\n return [...stores.filter(isPreferredStore), ...stores.filter(store => !isPreferredStore(store))];\r\n }\r\n\r\n /**\r\n * Scroll into view.\r\n */\r\n private readonly _scrollIntoView = () => {\r\n const selectedLocationDiv = this.selectedLocationRef.current;\r\n const parent = selectedLocationDiv?.parentElement;\r\n if (selectedLocationDiv && parent) {\r\n if (parent.scrollTop > selectedLocationDiv.offsetTop) {\r\n parent.scrollTop = selectedLocationDiv.offsetTop;\r\n } else if (selectedLocationDiv.offsetTop + selectedLocationDiv.clientHeight > parent.scrollTop + parent.clientHeight) {\r\n parent.scrollTop = selectedLocationDiv.offsetTop + selectedLocationDiv.clientHeight - parent.clientHeight;\r\n }\r\n }\r\n };\r\n\r\n // /**\r\n // * Is current location.\r\n // * @param location - Org unit location.\r\n // * @returns The current location.\r\n // */\r\n // private readonly _isCurrentLocation = (location: OrgUnitLocation | undefined): boolean =>\r\n // (this.props.alreadySelectedLocation && location && this.props.alreadySelectedLocation.OrgUnitNumber === location.OrgUnitNumber) ||\r\n // false;\r\n\r\n // /**\r\n // * Check the product is in stock or not.\r\n // * @param itemAvailabilities - Item availabilities.\r\n // * @returns If the product is in stock.\r\n // */\r\n // private readonly _isProductInStock = (itemAvailabilities: ItemAvailability[] | undefined): boolean => {\r\n // if (!this.props.enableOutOfStockCheck) {\r\n // return true;\r\n // }\r\n\r\n // if (ArrayExtensions.hasElements(itemAvailabilities)) {\r\n // return itemAvailabilities[0].AvailableQuantity ? itemAvailabilities[0].AvailableQuantity > 0 : false;\r\n // }\r\n\r\n // return false;\r\n // };\r\n\r\n // /**\r\n // * Get the stock inventory label.\r\n // * @param availabilityWithHours - Full org unit availability.\r\n // * @returns The stock label.\r\n // */\r\n // private readonly _stockInventoryLabel = (availabilityWithHours: IFullOrgUnitAvailability | undefined): string | undefined => {\r\n // if (availabilityWithHours && ArrayExtensions.hasElements(availabilityWithHours.ProductInventoryInformation)) {\r\n // for (let i = 0; i < availabilityWithHours.ProductInventoryInformation.length; i++) {\r\n // if (\r\n // availabilityWithHours.OrgUnitAvailability?.OrgUnitLocation?.InventoryLocationId ===\r\n // availabilityWithHours.ProductInventoryInformation[i].InventLocationId\r\n // ) {\r\n // return availabilityWithHours.ProductInventoryInformation[i].StockLevelLabel;\r\n // }\r\n // }\r\n // }\r\n\r\n // return undefined;\r\n // };\r\n\r\n /**\r\n * Map resources.\r\n * @param resources - Store resources.\r\n * @returns Resources.\r\n */\r\n private readonly _mapResources = (resources: IFindStoreWorldwideResources): IStoreSelectorLocationLineItemResources => {\r\n return {\r\n storeHoursHeader: resources.timeText,\r\n closedText: resources.storeHoursClosedText,\r\n storeLabelRetailer: resources.storeLabelRetailer,\r\n storeLabelVenchi: resources.storeLabelVenchi,\r\n goToStoreWebPage: resources.goToStoreWebPage,\r\n\r\n days: {\r\n monday: resources.storeHoursMondayText,\r\n tuesday: resources.storeHoursTuesdayText,\r\n wednesday: resources.storeHoursWednesdayText,\r\n thursday: resources.storeHoursThursdayText,\r\n friday: resources.storeHoursFridayText,\r\n saturday: resources.storeHoursSaturdayText,\r\n sunday: resources.storeHoursSundayText,\r\n mondayFull: resources.storeHoursMondayFullText,\r\n tuesdayFull: resources.storeHoursTuesdayFullText,\r\n wednesdayFull: resources.storeHoursWednesdayFullText,\r\n thursdayFull: resources.storeHoursThursdayFullText,\r\n fridayFull: resources.storeHoursFridayFullText,\r\n saturdayFull: resources.storeHoursSaturdayFullText,\r\n sundayFull: resources.storeHoursSundayFullText\r\n }\r\n };\r\n };\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport {\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n IPayLoad,\r\n ITelemetryContent,\r\n KeyCodes,\r\n TelemetryConstant\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { CustomInput } from 'reactstrap';\r\n\r\n/**\r\n * Store Selector Search Form Props interface.\r\n */\r\nexport interface IStoreSelectorSearchFormProps {\r\n resources: {\r\n searchInputAriaLabel: string;\r\n searchButtonAriaLabel: string;\r\n searchPlaceholderText: string;\r\n viewListText: string;\r\n viewMapText: string;\r\n includeRetailersButtonLabel: string;\r\n pickupFilterByHeading?: string;\r\n pickupFilterMenuHeading?: string;\r\n };\r\n\r\n id: string;\r\n value: string;\r\n displayIncludeRetailersButton: boolean;\r\n isMapDisabled?: boolean;\r\n showAllStores?: boolean;\r\n displayRetailers?: boolean;\r\n displayList?: boolean;\r\n locatorView?: boolean;\r\n locationsMessage?: React.ReactNode;\r\n\r\n /**\r\n * The telemetry content.\r\n */\r\n telemetryContent?: ITelemetryContent;\r\n onShowAllStores(): void;\r\n onDisplayRetailers(displayRetailersValue: boolean): void;\r\n onToggleListMapViewState(): void;\r\n performSearch(searchTerm: string): Promise;\r\n searchTermChanged(searchTerm: string): Promise;\r\n}\r\n\r\n/**\r\n * Simple search form consisting of search text and a search button.\r\n */\r\nexport class StoreSelectorSearchForm extends React.PureComponent {\r\n private readonly searchBoxRef: React.RefObject = React.createRef();\r\n private readonly searchSectionRef: React.RefObject = React.createRef();\r\n\r\n private readonly storeSearchAttributes: Msdyn365.IDictionary | undefined;\r\n\r\n // private readonly showAllStoreAttributes: Msdyn365.IDictionary | undefined;\r\n\r\n private readonly toggleMapViewAttributes: Msdyn365.IDictionary | undefined;\r\n\r\n private previousValue: string = '';\r\n\r\n private isSearchResultOpened: boolean = false;\r\n\r\n public constructor(props: IStoreSelectorSearchFormProps) {\r\n super(props);\r\n this.state = { value: '' };\r\n // this._handleKeyPressPrev = this._handleKeyPressPrev.bind(this);\r\n const payLoad: IPayLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.SearchStore);\r\n this.storeSearchAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n payLoad.contentAction.etext = TelemetryConstant.ShowAllStore;\r\n // this.showAllStoreAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n payLoad.contentAction.etext = TelemetryConstant.ToggleMapView;\r\n this.toggleMapViewAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n }\r\n private setScrollPositionToSearch = () => {\r\n if (this.searchSectionRef.current?.offsetParent) {\r\n window.scrollTo({\r\n //@ts-ignore\r\n top: this.searchSectionRef.current.offsetParent.offsetTop - 48,\r\n behavior: 'auto'\r\n });\r\n }\r\n };\r\n\r\n public render(): JSX.Element {\r\n const {\r\n resources: { searchButtonAriaLabel, searchPlaceholderText, viewListText, viewMapText, includeRetailersButtonLabel },\r\n id,\r\n value,\r\n isMapDisabled,\r\n // showAllStores,\r\n displayList,\r\n displayRetailers,\r\n // onShowAllStores,\r\n onDisplayRetailers,\r\n locatorView,\r\n locationsMessage,\r\n displayIncludeRetailersButton\r\n } = this.props;\r\n\r\n const toggleButtonText = displayList ? viewMapText : viewListText;\r\n\r\n const onDisplayAllRetailersInternal = (event: React.ChangeEvent) => {\r\n const isChecked = event.target.checked;\r\n onDisplayRetailers(isChecked);\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n /**\r\n * Handles the key press on the input box.\r\n * @param event - Event object.\r\n */\r\n private readonly _handleInputKeyPress = (event: React.KeyboardEvent): void => {\r\n // When the user navigates through the up and down arrow on the result returned by the auto suggest and press enter.\r\n // At that time, two requests were made to fetch the store details due to which incorrect result is shown and causes flickering.\r\n // In order to avoid that. Checking if the search result is open or not.\r\n if (event.keyCode === KeyCodes.ArrowUp || event.keyCode === KeyCodes.ArrowDown) {\r\n const activeDescedantValue = (event.target as HTMLInputElement).getAttribute('aria-activedescendant');\r\n if (activeDescedantValue) {\r\n if (this.previousValue === '') {\r\n this.previousValue = activeDescedantValue;\r\n this.isSearchResultOpened = true;\r\n return;\r\n }\r\n\r\n if (activeDescedantValue !== this.previousValue) {\r\n this.previousValue = activeDescedantValue;\r\n this.isSearchResultOpened = true;\r\n } else {\r\n this.isSearchResultOpened = false;\r\n }\r\n }\r\n }\r\n };\r\n\r\n // /**\r\n // * Calls method display result.\r\n // * @param event - The first number.\r\n // */\r\n // private readonly _handleKeyPressPrev = (event: React.KeyboardEvent): void => {\r\n // if (event.keyCode === KeyCodes.Enter || event.keyCode === KeyCodes.Space) {\r\n // this.props.onShowAllStores();\r\n // }\r\n // };\r\n\r\n /**\r\n * Method called on search text changed.\r\n * @param event - Input value.\r\n */\r\n private readonly _searchTextChanged = async (event: React.ChangeEvent): Promise => {\r\n const inputValue: string = event.target.value;\r\n\r\n await this.props.searchTermChanged(inputValue);\r\n };\r\n\r\n /**\r\n * Method called on search submit.\r\n * @param event - Input value.\r\n */\r\n private readonly _onSubmit = async (event: React.SyntheticEvent): Promise => {\r\n event.preventDefault(); // Prevents form submission\r\n this.searchBoxRef.current?.blur();\r\n if (!this.isSearchResultOpened) {\r\n await this.props.performSearch(this.props.value);\r\n }\r\n this.isSearchResultOpened = false;\r\n };\r\n\r\n /**\r\n * Method to render pickup mode list.\r\n * @param props - Store selector search form props.\r\n * @param toggleButtonText - Locator view button text.\r\n * @param locatorView - Locator View is on\\off.\r\n * @param shouldDisplayList - Display List.\r\n * @returns Jsx component.\r\n */\r\n private readonly renderToggleMapButton = (\r\n props: IStoreSelectorSearchFormProps,\r\n toggleButtonText: string,\r\n locatorView: boolean | undefined,\r\n shouldDisplayList?: boolean\r\n ): JSX.Element | null => {\r\n const handleButtonClick = () => {\r\n this.setScrollPositionToSearch();\r\n props.onToggleListMapViewState();\r\n };\r\n const toggleButtonClass = shouldDisplayList ? 'view-map' : 'list-view';\r\n if (locatorView) {\r\n return (\r\n \r\n {toggleButtonText}\r\n \r\n );\r\n }\r\n return null;\r\n };\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { IFullOrgUnitAvailability } from '@msdyn365-commerce-modules/retail-actions';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { IFindStoreWorldwideResources, ITermsOfServiceLinkData } from '../find-store-worldwide.props.autogenerated';\r\n\r\nexport interface IStoreSelectorEmptyMessageProps {\r\n resources: IFindStoreWorldwideResources;\r\n}\r\nexport const StoreSelectorEmptyMessage: React.FC = ({ resources }) => (\r\n
\r\n

{resources.emptyLocationsText}

\r\n
\r\n);\r\n\r\nexport const StoreSelectorWaiting: React.FC = () => (\r\n
\r\n);\r\n\r\nexport interface IStoreSelectorTermsOfServiceProps {\r\n link?: ITermsOfServiceLinkData;\r\n requestContext: Msdyn365.IRequestContext;\r\n onTextChange?(event: Msdyn365.ContentEditableEvent): void;\r\n}\r\n\r\nexport const StoreSelectorTermsOfService: React.FC = ({ link, requestContext, onTextChange }) => {\r\n if (link) {\r\n const editableLink: Msdyn365.ILinksData = {\r\n ariaLabel: link.ariaLabel,\r\n className: 'ms-store-select-venchi__terms-link',\r\n linkText: link.linkText,\r\n linkUrl: link.linkUrl.destinationUrl,\r\n openInNewTab: link.openInNewTab,\r\n role: 'link'\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n return null;\r\n};\r\n\r\nexport interface IStoreSelectorFoundLocationsMessage {\r\n resources: IFindStoreWorldwideResources;\r\n locations?: IFullOrgUnitAvailability[];\r\n includeRetailers: boolean;\r\n forSearchBar: boolean;\r\n shouldDisplayLabel: boolean;\r\n}\r\nexport const StoreSelectorFoundLocationsMessage: React.FC = ({\r\n locations,\r\n resources,\r\n includeRetailers,\r\n forSearchBar,\r\n shouldDisplayLabel\r\n}) => {\r\n if (locations) {\r\n const countRetailers: number = locations.filter(loc => {\r\n return loc.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitName?.startsWith('R ') ? true : false;\r\n }).length;\r\n const countVenchiStores: number = locations.length - countRetailers;\r\n return (\r\n \r\n {includeRetailers\r\n ? resources.storeAndRetailersAllCountMessage\r\n .replace('{count}', countVenchiStores.toString())\r\n .replace('{countRetailers}', countRetailers.toString())\r\n : resources.storeAllCountMessage.replace('{count}', countVenchiStores.toString())}\r\n
\r\n );\r\n }\r\n\r\n return null;\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { DeliveryOption, OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\r\nimport { IFullOrgUnitAvailability } from '@msdyn365-commerce-modules/retail-actions';\r\nimport {\r\n Button,\r\n getPayloadObject,\r\n INodeProps,\r\n IPayLoad,\r\n ITelemetryContent,\r\n NodeTag,\r\n TelemetryConstant\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { buildDistanceString } from '../find-store-worldwide-location-line-item';\r\n\r\n/**\r\n * Store Locator line item resources.\r\n */\r\nexport interface ISelectedStoreResources {\r\n closedText: string;\r\n}\r\n\r\n/**\r\n * Store Selector resources.\r\n */\r\nexport interface ISelectedStoreProps {\r\n className?: string;\r\n shouldHideStockStatus?: boolean;\r\n isCurrentLocation?: boolean;\r\n isInStock?: boolean;\r\n selectedStore?: IFullOrgUnitAvailability;\r\n resources: ISelectedStoreResources;\r\n stockStatusLabel?: string;\r\n isLocationDisabled?: boolean;\r\n telemetryContent?: ITelemetryContent;\r\n preferredDistanceUnit: string;\r\n storeRenderedComponent?: React.ReactNode;\r\n handlers: {\r\n onSelected(location: OrgUnitLocation, deliveryMode?: string): void;\r\n onSetAsPreferredStore(locationId: string | undefined): void;\r\n onRemovePreferredStore(): void;\r\n closeStoreDetailsModal(): Promise;\r\n };\r\n}\r\n\r\n/**\r\n * Store Selector resources.\r\n */\r\nexport interface ISelectedStoreViewProps {\r\n isCurrentLocation?: boolean;\r\n canSelectLocation?: boolean;\r\n selectedStore?: IFullOrgUnitAvailability;\r\n deliveryOptions?: DeliveryOption[];\r\n resources: ISelectedStoreResources;\r\n storeRenderedComponent: React.ReactNode;\r\n storeDetailsMain: INodeProps;\r\n storeHeader: INodeProps;\r\n storeName: React.ReactNode;\r\n storeDistance: React.ReactNode;\r\n storeDetailsAvailabilityContainer: INodeProps;\r\n currentLocation: React.ReactNode;\r\n storeDetailsCloseButton?: React.ReactNode;\r\n handlers: {\r\n onSelected(location: OrgUnitLocation, deliveryMode?: string): void;\r\n };\r\n}\r\n\r\n/**\r\n * On store details close functionality.\r\n * @param props -Store locator location items.\r\n * @returns Void promise.\r\n */\r\nconst storeDetailsModalHandler = (props: ISelectedStoreProps) => async (): Promise => {\r\n await props.handlers.closeStoreDetailsModal();\r\n};\r\n\r\n/**\r\n * Renders selected store details.\r\n * @param props - Store location details props.\r\n * @returns - Selected Store view props.\r\n */\r\nconst selectedStoreDetails = (props: ISelectedStoreProps): ISelectedStoreViewProps => {\r\n const {\r\n className,\r\n shouldHideStockStatus,\r\n isCurrentLocation,\r\n isInStock,\r\n selectedStore,\r\n resources,\r\n isLocationDisabled,\r\n telemetryContent,\r\n preferredDistanceUnit,\r\n storeRenderedComponent\r\n } = props;\r\n\r\n const parentClassName = className ? className : 'ms-store-select-venchi__map__selected_store';\r\n const storeName: string | undefined = selectedStore?.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitName;\r\n const location = selectedStore?.OrgUnitAvailability?.OrgUnitLocation;\r\n const distanceAsString: string | undefined = buildDistanceString(location?.Distance, preferredDistanceUnit, isLocationDisabled);\r\n // eslint-disable-next-line no-nested-ternary -- Required to check stock Label\r\n const canSelectLocation = !shouldHideStockStatus && isInStock;\r\n const payLoad: IPayLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\r\n payLoad.contentAction.etext = TelemetryConstant.PreferredStore;\r\n payLoad.contentAction.etext = TelemetryConstant.RemovePreferredStore;\r\n\r\n const viewProps: ISelectedStoreViewProps = {\r\n storeRenderedComponent,\r\n selectedStore,\r\n isCurrentLocation,\r\n canSelectLocation,\r\n resources,\r\n storeDetailsMain: {\r\n tag: 'div' as NodeTag,\r\n className: `${parentClassName}__main`\r\n },\r\n storeHeader: {\r\n tag: 'div' as NodeTag,\r\n className: `${parentClassName}__header`\r\n },\r\n storeName: {storeName},\r\n storeDetailsCloseButton: \n \n );\n};\n\nexport const AdminRequestStatementButton: React.FC = ({\n className,\n onRequestStatement,\n requestStatementButtonLabel,\n onToggleDropdown,\n onPromoteToSeller,\n promoteToSellerLabel,\n myUserAccountLabel,\n fullOrganizationLabel,\n isDropdownShowing,\n buttonReference\n}) => {\n const onSelectCustomerAccount = React.useCallback(() => {\n onRequestStatement(false);\n }, [onRequestStatement]);\n\n const onSelectFullOrg = React.useCallback(() => {\n onRequestStatement(true);\n }, [onRequestStatement]);\n\n const onSelectPromoteToSeller = React.useCallback(() => {\n onPromoteToSeller?.();\n }, [onPromoteToSeller]);\n\n const popoverReference = buttonReference !== undefined ? buttonReference : React.createRef();\n const requestStatementDropdownString = `request-statement-dropdown-id-${Random.Guid.generateGuid()}`;\n return (\n
\n \n {requestStatementButtonLabel}\n \n \n \n {myUserAccountLabel}\n \n \n {promoteToSellerLabel && (\n \n {promoteToSellerLabel}\n \n )}\n \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 { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * The interface for the props for the account statement request modal.\n */\ninterface IAccountStatementRequestModalProps {\n email: string;\n isModalOpen: boolean;\n fromDateString: string;\n toDateString: string;\n canSubmitRequest: boolean;\n modalHeaderLabel: string;\n sendToEmailLabel: string;\n fromDateLabel: string;\n toDateLabel: string;\n submitRequestLabel: string;\n cancelLabel: string;\n className: string;\n selectedUser: string;\n selectedUserLabel: string;\n toggle(): void;\n onChangeFromDate(newFromDate: string): void;\n onChangeToDate(newToDate: string): void;\n onSubmitRequest(): void;\n modalAriaLabel?: string;\n maxDateString?: string;\n}\n\nexport const RequestStatementModal: React.FC = ({\n className,\n email,\n isModalOpen,\n toggle,\n fromDateString,\n toDateString,\n onChangeFromDate,\n onChangeToDate,\n canSubmitRequest,\n modalHeaderLabel,\n sendToEmailLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n cancelLabel,\n onSubmitRequest,\n selectedUser,\n selectedUserLabel,\n modalAriaLabel,\n maxDateString\n}) => {\n const onChangeFromDateEvent = React.useCallback(\n (event: React.ChangeEvent) => {\n const value = event.target.value;\n\n onChangeFromDate(value);\n },\n [onChangeFromDate]\n );\n\n const onChangeToDateEvent = React.useCallback(\n (event: React.ChangeEvent) => {\n const value = event.target.value;\n\n onChangeToDate(value);\n },\n [onChangeToDate]\n );\n\n /**\n * If the onBlur is called on the fromDate and the date has been changed, reset focus on it.\n * @param event - The event that is triggering onBlur.\n */\n const onBlurFromDate = React.useCallback(\n (event: React.ChangeEvent) => {\n if (ObjectExtensions.isFunction(event.target.focus) && event.target.value !== fromDateString) {\n event.target.focus();\n }\n },\n [fromDateString]\n );\n\n /**\n * If the onBlur is called on the toDate and the date has been changed, reset focus on it.\n * @param event - The event that is triggering onBlur.\n */\n const onBlurToDate = React.useCallback(\n (event: React.ChangeEvent) => {\n if (ObjectExtensions.isFunction(event.target.focus) && event.target.value !== toDateString) {\n event.target.focus();\n }\n },\n [toDateString]\n );\n\n return (\n \n {modalHeaderLabel}\n \n {selectedUser && (\n
\n \n
\n
{selectedUser}
\n
\n )}\n \n
\n {email}\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n {submitRequestLabel}\n \n {` `}\n \n \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 { getPayloadObject, getTelemetryAttributes, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { AdminRequestStatementButton } from './account-actions';\nimport { RequestStatementModal } from './account-statement-request-modal';\n\nexport * from './account-actions';\nexport * from './account-statement-request-modal';\n\ninterface IAccountLabel {\n name: string;\n accountNumber: string;\n createdOn: string;\n customerSincePrefix: string;\n}\n\ninterface IAccountValues {\n availableCredit: string;\n availableCreditLabel: string;\n}\n\n/**\n * Prop for Available credit component.\n */\ninterface ICreditSummaryAvailableCredit {\n availableCreditLabel: string;\n availableCredit: string;\n}\n\n/**\n * Prop for Balanced owed component.\n */\ninterface ICreditSummaryBalanceOwed {\n balanceOwedLabel: string;\n balanceOwed: string;\n}\n\n/**\n * Prop for credit excess component.\n */\ninterface ICreditSummaryCreditExcess {\n creditExcessLabel: string | null;\n creditExcess: string | null;\n}\n\ninterface ICreditSummaryLabel {\n availableCredit: string;\n balanceOwed: string;\n creditExcess: string | null;\n}\n\ninterface ICreditSummaryValues {\n availableCredit: string;\n balanceOwed: string;\n creditExcess: string | null;\n}\n\ninterface IBackButton {\n link: string;\n label: string;\n telemetryContent?: ITelemetryContent;\n}\n\nexport const AccountLabels: React.FC = ({ name, accountNumber, customerSincePrefix, createdOn }) => (\n
\n

{name}

\n
#{accountNumber}
\n
\n {customerSincePrefix} {createdOn}\n
\n
\n);\n\nexport const AccountValues: React.FC = ({ availableCredit, availableCreditLabel }) => (\n
\n
{availableCreditLabel}
\n
{availableCredit}
\n
\n);\n\nexport const CreditSummaryLabels: React.FC = ({ availableCredit, balanceOwed, creditExcess }) => (\n
\n
{availableCredit}
\n
{balanceOwed}
\n
{creditExcess}
\n
\n);\n\nexport const CreditSummaryValues: React.FC = ({ availableCredit, balanceOwed, creditExcess }) => (\n
\n
{availableCredit}
\n
{balanceOwed}
\n {creditExcess &&
{creditExcess}
}\n
\n);\n\n/**\n * Available credit component.\n * @param props - ICreditSummaryAvailableCredit.\n * @param props.availableCreditLabel - Available credit label.\n * @param props.availableCredit - Available credit value.\n * @returns - React Node for available credit component.\n */\nexport const AvailableCreditComponent: React.FC = ({ availableCreditLabel, availableCredit }) => (\n
\n
\n
{availableCreditLabel}
\n
\n
\n
{availableCredit}
\n
\n
\n);\n\n/**\n * Balance Owed Component.\n * @param props - ICreditSummaryBalanceOwed.\n * @param props.balanceOwedLabel - Balance Owed label.\n * @param props.balanceOwed - Balance Owed value.\n * @returns - React Node for balance owed component.\n */\nexport const BalanceOwedComponent: React.FC = ({ balanceOwedLabel, balanceOwed }) => (\n
\n
\n
{balanceOwedLabel}
\n
\n
\n
{balanceOwed}
\n
\n
\n);\n\n/**\n * Credit Excess Component.\n * @param props - ICreditSummaryCreditExcess.\n * @param props.creditExcessLabel - Credit excess label.\n * @param props.creditExcess - Credit excess value.\n * @returns - React Node for credit excess component.\n */\nexport const CreditExcessComponent: React.FC = ({ creditExcessLabel, creditExcess }) => (\n
\n {creditExcess && (\n
\n
{creditExcessLabel}
\n
\n )}\n
\n {creditExcess &&
{creditExcess}
}\n
\n
\n);\nexport const BackButton: React.FC = ({ link, label, telemetryContent }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.BackToShopping);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n {label}\n \n );\n};\n\nexport { AdminRequestStatementButton, RequestStatementModal };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ILinkData } from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ILinksData {\n linkText?: string;\n linkUrl: ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n}\n\nexport interface IAccountLoyaltyTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountLoyaltyTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-loyalty-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountLoyaltyTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { LoyaltyRewardPoint } from '@msdyn365-commerce/retail-proxy';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyTileData } from './account-loyalty-tile.data';\nimport { IAccountLoyaltyTileProps } from './account-loyalty-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-loyalty-tile-description';\nimport LinksComponent from './components/account-loyalty-tile-links';\n\nexport interface IAccountLoyaltyTileViewProps extends IAccountLoyaltyTileProps {\n AccountLoyaltyTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountLoyalty component.\n * @extends {React.PureComponent>}\n */\nclass AccountLoyaltyTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountLoyaltyTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, data, resources, context } = this.props;\n const { className, heading, signUpLinkText, signUpLinkAriaLabel, viewLinkText, viewLinkAriaLabel } = config;\n const { accountLoyaltySummary, accountLoyaltyMemberSummary } = resources;\n const { loyaltyCard } = data;\n\n let description = accountLoyaltySummary;\n let url = Msdyn365.getUrlSync('loyaltyJoin', context.actionContext) || '';\n const link = { linkText: signUpLinkText, linkUrl: { destinationUrl: url }, ariaLabel: signUpLinkAriaLabel };\n\n if (loyaltyCard && loyaltyCard.result && loyaltyCard.result.CardNumber) {\n const decimalPrecision = 2;\n let points = 0;\n\n if (loyaltyCard.result.RewardPoints && loyaltyCard.result.RewardPoints.length > 0) {\n loyaltyCard.result.RewardPoints.forEach((rewardPoint: LoyaltyRewardPoint) => {\n points += rewardPoint.ActivePoints!;\n });\n }\n link.ariaLabel = viewLinkAriaLabel;\n link.linkText = viewLinkText;\n url = Msdyn365.getUrlSync('loyalty', context.actionContext) || '';\n link.linkUrl.destinationUrl = url;\n description = format(accountLoyaltyMemberSummary, points.toFixed(decimalPrecision));\n }\n\n const viewProps = {\n ...this.props,\n className,\n AccountLoyaltyTile: {\n moduleProps: this.props,\n className: classnames('ms-account-loyalty-tile', config.className)\n },\n heading: heading && (\n \n ),\n links: (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.signUpLinkText && this.props.config.viewLinkText) {\n this.props.config.viewLinkText = event.target.value;\n }\n };\n}\n\nexport default AccountLoyaltyTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyTileViewProps } from './account-loyalty-tile';\n\nconst AccountLoyaltyTileView: React.FC = props => {\n const { AccountLoyaltyTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountLoyaltyTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountLoyaltyTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountLoyaltyTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n\nexport default IAccountLoyaltyTileDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileEditConfig, IAccountProfileEditProps } from './account-profile-edit.props.autogenerated';\nimport AccountProfileEditButtonComponent from './components/account-profile-edit-button';\nimport AccountProfileEditErrorComponent from './components/account-profile-edit-error';\nimport AccountProfileEditInputComponent from './components/account-profile-edit-input';\nimport AccountProfileEditLabelComponent from './components/account-profile-edit-label';\nimport AccountProfileEditLoadingIconComponent from './components/account-profile-edit-loading-icon';\nimport AccountProfileEditLoadingMessageComponent from './components/account-profile-edit-loading-message';\n\nexport interface IAccountProfileEditViewState {\n isShowLoading: boolean;\n}\n\nexport interface IAccountProfileEditItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IAccountProfileEditLocalAccount {\n localAccount: INodeProps;\n items: IAccountProfileEditItem[];\n errorMessage: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IAccountProfileEditLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IAccountProfileEditViewProps {\n className: string;\n viewState: IAccountProfileEditViewState;\n loading: IAccountProfileEditLoading;\n accountProfileEdit: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n accountProfileEditLocalAccount: IAccountProfileEditLocalAccount;\n}\n\n/**\n *\n * AccountProfileEdit component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass AccountProfileEdit extends React.Component> {\n private readonly moduleClassName: string = 'ms-account-profile-edit';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @observable private givenName: string;\n\n @observable private surname: string;\n\n @observable private email: string;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IAccountProfileEditProps) {\n super(props);\n this.givenName = '';\n this.surname = '';\n this.email = '';\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IAccountProfileEditProps,\n nextState: IAccountProfileEditViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n accountProfileEdit: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && config.heading.text && (\n \n ),\n accountProfileEditLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public onTextBoxChange = (event: React.ChangeEvent) => {\n const id = event.target.id;\n const value = event.target.value;\n\n switch (id.toLowerCase()) {\n case 'givenname': {\n this.givenName = value;\n break;\n }\n case 'surname': {\n this.surname = value;\n break;\n }\n case 'email': {\n this.emailRegex = value;\n break;\n }\n default:\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n const { resources } = this.props;\n const invalidEmailAddressError = resources.invalidEmailAddressError || 'Please enter a valid email address.';\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map(\n (obj: { ID: string; PRE: string; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string }) => {\n const value = obj.PRE ? this._htmlDecode(obj.PRE) : '';\n switch (obj.ID.toLowerCase()) {\n case 'givenname': {\n this.givenName = value;\n break;\n }\n case 'surname': {\n this.surname = value;\n break;\n }\n case 'email': {\n this.email = value;\n this.emailRegex = obj.PAT;\n obj.PAT_DESC = invalidEmailAddressError;\n break;\n }\n default:\n }\n }\n );\n }\n };\n\n private _htmlDecode(str: string): string {\n const e = document.createElement('div');\n\n e.innerHTML = str;\n return e.childNodes.length === 0 ? '' : e.childNodes[0].nodeValue || '';\n }\n\n private readonly _updateErrorMessage = () => {\n const { resources } = this.props;\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n required_field: resources.requiredFieldMissingError,\n verifying_blurb: resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n };\n\n private _renderLocalAccount(): IAccountProfileEditLocalAccount {\n const { config, resources } = this.props;\n const localAccount = {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('givenName', 'text', this.givenName, resources.firstNameLabelText, resources.firstNameMaxLength),\n this._renderInput('surname', 'text', this.surname, resources.lastNameLabelText, resources.lastNameMaxLength)\n ],\n errorMessage: [\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n\n if (config.showEmail && this.email !== '') {\n localAccount.items.push(\n this._renderInput('email', 'email', this.email, resources.emailAddressLabelText, undefined, this.emailRegex)\n );\n }\n\n return localAccount;\n }\n\n private _renderInput(\n id: string,\n type: string,\n value: string,\n labelText: string,\n maxLength?: string,\n pattern?: string\n ): IAccountProfileEditItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default AccountProfileEdit;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IAccountProfileEditItem,\n IAccountProfileEditLoading,\n IAccountProfileEditLocalAccount,\n IAccountProfileEditViewProps\n} from './account-profile-edit';\n\nconst AccountProfileEditItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n {items &&\n items.map((item: IAccountProfileEditItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n );\n};\n\nconst AccountProfileEditLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst AccountProfileEditView: React.FC = props => {\n const { accountProfileEdit, viewState, loading, defaultAADConainer, aadConainer, heading, accountProfileEditLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(accountProfileEditLocalAccount)}\n \n \n );\n};\n\nexport default AccountProfileEditView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst AccountProfileEditButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n disabled,\n telemetryContent,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n );\n};\n\nexport default AccountProfileEditButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst AccountProfileEditError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default AccountProfileEditError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IAccountProfileEditInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst AccountProfileEditInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default AccountProfileEditInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst AccountProfileEditLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default AccountProfileEditLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLoadingIcon {\n className: string;\n}\n\nconst AccountProfileEditLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default AccountProfileEditLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLoadingMessage {\n className: string;\n message: string;\n}\n\nconst AccountProfileEditLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default AccountProfileEditLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IDictionary, Text } from '@msdyn365-commerce/core';\nimport { AttributeDefinition, Customer, CustomerAttribute } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { StringExtensions, updateCustomerAttributes, updateCustomerAttributesInput } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IPayLoad,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable, reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileData } from '../account-profile.data';\nimport { IAccountProfileProps } from '../account-profile.props.autogenerated';\nimport TextComponent from './account-profile-text';\n\ninterface IAttributePropertiesType {\n Name?: string;\n IsMandatory?: boolean;\n}\n\nexport interface IAccountProfileAttributesProps {\n accountProfileProps: IAccountProfileProps;\n}\n\nexport enum AccountAttributeDataTypeValue {\n Decimal = 3,\n Integer = 4,\n Text = 5,\n TrueFalse = 6\n}\n\nexport interface IAttributePayloadData {\n recordId?: number;\n name?: string;\n dataTypeValue?: number;\n isEnumeration?: boolean;\n lowerBoundValue?: number;\n upperBoundValue?: number;\n decimalValue?: number;\n integerValue?: number;\n textValue?: string;\n booleanValue?: boolean;\n isMandatory?: boolean;\n defaultValue?: string;\n}\n\nexport interface IAccountProfileAttributesState extends React.ComponentState {\n editAttributes: boolean;\n phone: string;\n vatNumber: string;\n attributes: IDictionary;\n attributeError: IDictionary;\n}\n\n/**\n *\n * AccountProfileAttributes class.\n * @extends {React.PureComponentIAccountProfileAttributesProps, IAccountProfileAttributesState>}\n */\n@observer\nclass AccountProfileAttributes extends React.Component {\n private readonly attributePayloadData: IAttributePayloadData[];\n\n @observable private isUpdatingAttributes: boolean = false;\n\n @observable private gotException: boolean = false;\n\n private hasError: boolean = false;\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private initialAttributes: IDictionary;\n\n private initialCustomerAttributes?: CustomerAttribute[];\n\n private initialPhone: string;\n\n private initialVatNumber: string;\n\n private readonly payLoad: IPayLoad;\n\n private readonly editRef: React.RefObject;\n\n private readonly attributesContainerRef: React.RefObject;\n\n private readonly attributeClassName: string = 'ms-account-profile__attributes-element';\n\n private readonly maxIntegerLimit: number = 2_100_000_000;\n\n private readonly minIntegerLimit: number = -2_100_000_000;\n\n private readonly maxDecimalLimit: number = 7_900_000_000_000;\n\n private readonly minDecimalLimit: number = -7_900_000_000_000;\n\n private readonly maxStringLength: number = 1000;\n\n private readonly maxVATNumberLength: number = 20;\n\n private readonly maxPhoneLength: number = 20;\n\n private readonly editAsyncCustomerFeatureName: string = 'Dynamics.AX.Application.RetailEnableAsyncCustomerEditFeature';\n\n private isEditAsyncCustomerFeatureEnabled: boolean = false;\n\n constructor(props: IAccountProfileAttributesProps) {\n super(props);\n this.state = {\n editAttributes: false,\n phone: '',\n vatNumber: '',\n attributes: {},\n attributeError: {}\n };\n this.initialAttributes = {};\n this.initialCustomerAttributes = [];\n this.initialPhone = '';\n this.initialVatNumber = '';\n this.attributePayloadData = [];\n const telemetryPageName =\n (this.props.accountProfileProps &&\n this.props.accountProfileProps.context &&\n this.props.accountProfileProps.context.request &&\n this.props.accountProfileProps.context.request.telemetryPageName) ||\n '';\n const friendlyName = (this.props.accountProfileProps && this.props.accountProfileProps.friendlyName) || '';\n const telemetry = (this.props.accountProfileProps && this.props.accountProfileProps.telemetry) || {};\n this.telemetryContent = getTelemetryObject(telemetryPageName, friendlyName, telemetry);\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n this.editRef = React.createRef();\n this.attributesContainerRef = React.createRef();\n }\n\n public componentDidMount(): void {\n this._buildPayloadData();\n this._getAttributes();\n this._getCustomerPhoneAndVatNumber();\n reaction(\n () => this.props.accountProfileProps.data.customerInformation.result,\n () => {\n const customerInformation = this.props.accountProfileProps.data.customerInformation.result;\n this.initialCustomerAttributes = customerInformation && customerInformation.Attributes;\n this._getAttributes();\n this._getCustomerPhoneAndVatNumber();\n }\n );\n reaction(\n () => this.props.accountProfileProps.data.attributeDefinitions.result,\n () => {\n this._buildPayloadData();\n }\n );\n }\n\n public shouldComponentUpdate(nextProps: IAccountProfileAttributesProps, nextState: IAccountProfileAttributesState): boolean {\n if (this.state === nextState && this.props.accountProfileProps.data === nextProps.accountProfileProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n return this._renderAttributes();\n }\n\n private readonly _renderAttributes = (): JSX.Element | null => {\n const { config, data, resources } = this.props.accountProfileProps;\n const attributeDefinitions: AttributeDefinition[] = data.attributeDefinitions.result || [];\n const additionalInformationSectionHeading =\n (config.additionalInformationSectionHeading && config.additionalInformationSectionHeading.text) || '';\n const showAttributes = config.showAttributes || '';\n const attributes = showAttributes.split(',');\n const elements = attributes.map(att => {\n const attributeDefinition: AttributeDefinition = attributeDefinitions.find(\n attribute => attribute.IsHidden === false && attribute.Name!.toLocaleLowerCase() === att.toLocaleLowerCase()\n ) || { RecordId: 0 };\n return this._renderAttribute(attributeDefinition);\n });\n const edit = (this.state && this.state.editAttributes) || false;\n this.payLoad.contentAction.etext = `${resources.attributesEditButtonText} ${additionalInformationSectionHeading}`;\n const editAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = `${resources.attributesSaveButtonText} ${additionalInformationSectionHeading}`;\n const saveAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = `${resources.attributesCancelButtonText} ${additionalInformationSectionHeading}`;\n const cancelAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n const customerInformation = data.customerInformation.result;\n\n this.isEditAsyncCustomerFeatureEnabled =\n data.featureState?.result?.find(feature => feature.Name === this.editAsyncCustomerFeatureName)?.IsEnabled || false;\n\n // Disable the 'Edit' button if the switch is enabled and the customer is async.\n const disableBtn: boolean =\n (this.props.accountProfileProps.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false) &&\n !this.isEditAsyncCustomerFeatureEnabled;\n return (\n \n {config.additionalInformationSectionHeading && (\n \n )}\n {config.showPhone && this._renderPhone()}\n {config.showVatNumber && this._renderVatNumber()}\n {elements}\n {this.gotException && (\n
\n \n
\n )}\n {!edit && (\n \n {resources.attributesEditButtonText}\n \n )}\n {edit && (\n \n {resources.attributesSaveButtonText}\n \n )}\n {edit && (\n \n {resources.attributesCancelButtonText}\n \n )}\n
\n );\n };\n\n private readonly _renderPhone = (): JSX.Element | null => {\n const { phoneSectionHeading } = this.props.accountProfileProps.config;\n const heading = (phoneSectionHeading && phoneSectionHeading.text) || '';\n const className = (heading && heading.replace(/ /g, '_')) || '';\n const editAttributes = (this.state && this.state.editAttributes) || false;\n return (\n
\n {phoneSectionHeading && }\n \n {this._renderError('Phone')}\n
\n );\n };\n\n private readonly _renderVatNumber = (): JSX.Element | null => {\n const { vatNumberSectionHeading } = this.props.accountProfileProps.config;\n const heading = (vatNumberSectionHeading && vatNumberSectionHeading.text) || '';\n const className = (heading && heading.replace(/ /g, '_')) || '';\n const editAttributes = (this.state && this.state.editAttributes) || false;\n return (\n
\n {vatNumberSectionHeading && }\n \n {this._renderError('VATNumber')}\n
\n );\n };\n\n private readonly _renderAttribute = (customAttribute: AttributeDefinition): JSX.Element | null => {\n const editAttributes = (this.state && this.state.editAttributes) || false;\n const className = (customAttribute.Name && customAttribute.Name.replace(/ /g, '_')) || '';\n switch (customAttribute.ExtDataType && customAttribute.ExtDataType.Value) {\n case AccountAttributeDataTypeValue.Integer:\n case AccountAttributeDataTypeValue.Decimal:\n return this._renderIntegerDecimalInput(customAttribute, className, editAttributes);\n case AccountAttributeDataTypeValue.Text:\n return this._renderTextInputOrSelect(customAttribute, className, editAttributes);\n case AccountAttributeDataTypeValue.TrueFalse:\n return this._renderBoolean(customAttribute, className, editAttributes);\n default:\n return null;\n }\n };\n\n private readonly _renderIntegerDecimalInput = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n const edit = (this.state && this.state.editAttributes) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n return (\n
\n \n \n {this._renderError(customAttribute.Name || '')}\n
\n );\n };\n\n private readonly _renderTextInputOrSelect = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n const isEnumeration: boolean = customAttribute.IsEnumeration || false;\n const edit = (this.state && this.state.editAttributes) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n if (isEnumeration && customAttribute.EnumerationDetails) {\n const value = this.state.attributes[customAttribute.Name || ''] || '';\n const hasNoValue = value === '';\n return (\n
\n \n \n {hasNoValue && (\n \n )}\n {customAttribute.EnumerationDetails.map(option => {\n const selected = option.EnumerationValue === this.state.attributes[customAttribute.Name || ''];\n return (\n \n {option.EnumerationValue}\n \n );\n })}\n \n
\n );\n }\n return (\n
\n \n \n {this._renderError(customAttribute.Name || '')}\n
\n );\n };\n\n private readonly _renderBoolean = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n let value = this.state.attributes[customAttribute.Name || ''] || '';\n const hasNoValue = value === '';\n const render = !(hasNoValue && !editAttributes);\n value = value || 'false';\n const toggleState = (value === 'true' && 'enable') || 'disable';\n const arialabel = format(this.props.accountProfileProps.resources.attributeToggleButtonAriaLabel, customAttribute.Name);\n const ariaPressed = (value === 'true' && true) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n let toggleValue = 'false';\n if (value === 'true') {\n toggleValue = 'false';\n } else {\n toggleValue = 'true';\n }\n\n return (\n \n \n {render && (\n \n \n \n \n \n )}\n \n );\n };\n\n private readonly _renderError = (attributeName: string): JSX.Element | null => {\n const error: string = (this.state && this.state.attributeError && this.state.attributeError[attributeName]) || '';\n const hasError = !StringExtensions.isNullOrWhitespace(error);\n if (hasError) {\n return (\n
\n \n
\n );\n }\n return null;\n };\n\n private readonly _getAttributeProps = (attributeName: string): IAttributePropertiesType => {\n const attributePayloadData = this.attributePayloadData.find(att => att.name === attributeName);\n const isMandatory: boolean = (attributePayloadData && attributePayloadData.isMandatory) || false;\n return {\n Name: isMandatory ? `${attributeName || ''} *` : attributeName || '',\n IsMandatory: isMandatory\n };\n };\n\n private readonly _onPhoneChange = (event: React.ChangeEvent): void => {\n const value = event.target.value;\n this.setState({ phone: value });\n };\n\n private readonly _onVatNumberChange = (event: React.ChangeEvent): void => {\n const value = event.target.value;\n this.setState({ vatNumber: value });\n };\n\n private readonly _enableAttributes = () => {\n this.hasError = false;\n\n // To clear exception messages\n this.gotException = false;\n this.setState({ editAttributes: true, attributeError: {} });\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n if (this.attributesContainerRef.current) {\n const attributes: HTMLCollectionOf = this.attributesContainerRef.current.getElementsByClassName(\n this.attributeClassName\n );\n if (attributes && attributes.length > 0) {\n this._setFocus(attributes[0] as HTMLElement);\n }\n }\n }, 0);\n }\n };\n\n private readonly _disableAttributes = () => {\n this.setState({\n editAttributes: false,\n attributeError: {},\n attributes: this.initialAttributes,\n phone: this.initialPhone,\n vatNumber: this.initialVatNumber\n });\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n this._setFocus(this.editRef.current);\n }, 0);\n }\n };\n\n private readonly _onAttributeChange = (attributeDefinition: AttributeDefinition) => (event: React.ChangeEvent) => {\n const value = event.target.value;\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n }\n });\n };\n\n private readonly _onAttributeCheck = (attributeDefinition: AttributeDefinition, value: string) => (\n event: React.MouseEvent\n ) => {\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n }\n });\n };\n\n private readonly _onAttributeSelect = (attributeDefinition: AttributeDefinition) => (event: React.ChangeEvent) => {\n const value = event.currentTarget.selectedOptions[0].value;\n const index = event.currentTarget.selectedOptions[0].index;\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n },\n selectedIndex: {\n ...this.state.selectedIndex,\n [name]: index\n }\n });\n };\n\n private readonly _getAttributes = () => {\n const { config, data } = this.props.accountProfileProps;\n const showAttributes = config.showAttributes || '';\n const showAttributesArray = showAttributes.split(',');\n const customer = data.customerInformation.result;\n const custmerAttributes: CustomerAttribute[] = (customer && customer.Attributes) || [];\n const attributes: IDictionary = {};\n\n showAttributesArray.forEach(showAttribute => {\n const attributePayloadData = this.attributePayloadData.find(att => att.name === showAttribute);\n const isMandatory: boolean = (attributePayloadData && attributePayloadData.isMandatory) || false;\n const defaultValue = attributePayloadData && attributePayloadData.defaultValue;\n const attribute = custmerAttributes.find(att => att.Name === showAttribute);\n let value: string = '';\n if (attribute && attribute.AttributeValue) {\n const name = (attribute && attribute.Name) || '';\n switch (attribute.DataTypeValue) {\n case AccountAttributeDataTypeValue.Integer:\n if (attribute.AttributeValue.IntegerValue) {\n value = String(attribute.AttributeValue.IntegerValue);\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.Decimal:\n if (attribute.AttributeValue.DecimalValue) {\n value = String(attribute.AttributeValue.DecimalValue);\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n if (attribute.AttributeValue.StringValue) {\n value = attribute.AttributeValue.StringValue;\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n if (attribute.AttributeValue.BooleanValue !== null) {\n value = String(attribute.AttributeValue.BooleanValue);\n attributes[name] = value;\n }\n break;\n default:\n\n // Do nothing\n }\n }\n if (StringExtensions.isNullOrWhitespace(value) && isMandatory) {\n attributes[showAttribute] = '';\n }\n if (value.length === 0 && defaultValue) {\n attributes[showAttribute] = String(defaultValue);\n }\n });\n if (Object.keys(this.initialAttributes).length === 0) {\n this.initialAttributes = attributes;\n }\n this.setState({ attributes });\n };\n\n // eslint-disable-next-line\n private readonly _addOrUpdateAttribute = (customer: Customer) => {\n const { resources } = this.props.accountProfileProps;\n const { phone, vatNumber } = this.state;\n const attributeError: IDictionary = {};\n let hasError: boolean = false;\n let hasValue: boolean = true;\n for (const [key, value] of Object.entries(this.state.attributes)) {\n const payloadData: IAttributePayloadData = this.attributePayloadData.find(data => data.name === key) || {};\n if (payloadData) {\n switch (payloadData.dataTypeValue) {\n case AccountAttributeDataTypeValue.Decimal:\n const decimalValue = Number(value);\n if (isNaN(decimalValue)) {\n const typeError = format(resources.attributeInputTypeErrorText, payloadData.name, 'Decimal');\n attributeError[payloadData.name || ''] = typeError;\n hasError = true;\n } else if (payloadData.lowerBoundValue !== undefined && payloadData.upperBoundValue !== undefined) {\n if (decimalValue < payloadData.lowerBoundValue || decimalValue > payloadData.upperBoundValue) {\n const rangeError = format(\n resources.attributeInputRangeErrorText,\n payloadData.name,\n payloadData.lowerBoundValue,\n payloadData.upperBoundValue\n );\n attributeError[payloadData.name || ''] = rangeError;\n hasError = true;\n }\n } else {\n if (decimalValue > this.maxDecimalLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMaximumErrorText,\n payloadData.name,\n this.maxDecimalLimit\n );\n hasError = true;\n }\n\n if (decimalValue < this.minDecimalLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMinimumErrorText,\n payloadData.name,\n this.minDecimalLimit\n );\n hasError = true;\n }\n }\n\n if (!hasError) {\n if (StringExtensions.isNullOrWhitespace(value)) {\n hasValue = false;\n } else {\n payloadData.decimalValue = decimalValue;\n hasValue = true;\n }\n }\n break;\n case AccountAttributeDataTypeValue.Integer:\n const integerValue = Number(value);\n if (isNaN(integerValue) || value.includes('.')) {\n const typeError = format(resources.attributeInputTypeErrorText, payloadData.name, 'Integer');\n attributeError[payloadData.name || ''] = typeError;\n hasError = true;\n } else if (payloadData.lowerBoundValue !== undefined && payloadData.upperBoundValue !== undefined) {\n if (integerValue < payloadData.lowerBoundValue || integerValue > payloadData.upperBoundValue) {\n const rangeError = format(\n resources.attributeInputRangeErrorText,\n payloadData.name,\n payloadData.lowerBoundValue,\n payloadData.upperBoundValue\n );\n attributeError[payloadData.name || ''] = rangeError;\n hasError = true;\n }\n } else {\n if (integerValue > this.maxIntegerLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMaximumErrorText,\n payloadData.name,\n this.maxIntegerLimit\n );\n hasError = true;\n }\n\n if (integerValue < this.minIntegerLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMinimumErrorText,\n payloadData.name,\n this.minIntegerLimit\n );\n hasError = true;\n }\n }\n\n if (!hasError) {\n if (StringExtensions.isNullOrWhitespace(value)) {\n hasValue = false;\n } else {\n payloadData.integerValue = integerValue;\n hasValue = true;\n }\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n let trimValue = '';\n if (!StringExtensions.isNullOrWhitespace(value)) {\n trimValue = value.trim();\n }\n if (trimValue.length > this.maxStringLength) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputStringMaxLengthErrorText,\n payloadData.name,\n this.maxStringLength\n );\n hasError = true;\n }\n if (!hasError) {\n payloadData.textValue = trimValue;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n payloadData.booleanValue = value === 'true';\n break;\n default:\n\n // Do nothing\n }\n\n if (payloadData.isMandatory && StringExtensions.isNullOrWhitespace(value)) {\n attributeError[payloadData.name || ''] = format(resources.attributeInputMandatoryErrorText, payloadData.name);\n hasError = true;\n }\n\n const custmerAttributes: CustomerAttribute[] = (customer && customer.Attributes) || [];\n const attribute = custmerAttributes.find(att => att.Name === key);\n const index = custmerAttributes.findIndex(att => att.Name === key);\n\n if (index !== -1 && !hasValue) {\n custmerAttributes.splice(index, 1);\n }\n\n if (!hasError && hasValue) {\n if (attribute) {\n attribute.Attribute = undefined;\n attribute.DataTypeValue = payloadData.dataTypeValue;\n attribute.Name = payloadData.name;\n attribute.RecordId = payloadData.recordId;\n attribute.Units = undefined;\n attribute.AttributeValue = {\n IntegerValue: payloadData.integerValue,\n BooleanValue: payloadData.booleanValue,\n StringValue: payloadData.textValue,\n DecimalValue: payloadData.decimalValue\n };\n attribute.ExtensionProperties = [];\n attribute.NameTranslations = [];\n } else {\n custmerAttributes.push({\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerAttribute',\n Attribute: undefined,\n DataTypeValue: payloadData.dataTypeValue,\n KeyName: payloadData.name,\n Name: payloadData.name,\n RecordId: payloadData.recordId,\n Units: undefined,\n AttributeValue: {\n // @ts-expect-error\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CommercePropertyValue',\n IntegerValue: payloadData.integerValue,\n BooleanValue: payloadData.booleanValue,\n StringValue: payloadData.textValue,\n DecimalValue: payloadData.decimalValue\n },\n 'ExtensionProperties@odata.type': '#Collection(Microsoft.Dynamics.Commerce.Runtime.DataModel.CommerceProperty)',\n ExtensionProperties: [],\n 'NameTranslations@odata.type':\n '#Collection(Microsoft.Dynamics.Commerce.Runtime.DataModel.TextValueTranslation)',\n NameTranslations: []\n });\n }\n }\n }\n }\n\n if (phone.trim().length > this.maxPhoneLength) {\n attributeError.Phone = format(resources.attributeInputStringMaxLengthErrorText, 'Phone', this.maxPhoneLength);\n hasError = true;\n } else {\n customer.Phone = phone.trim();\n }\n\n if (vatNumber.trim().length > this.maxVATNumberLength) {\n attributeError.VATNumber = format(resources.attributeInputStringMaxLengthErrorText, 'VAT Number', this.maxVATNumberLength);\n hasError = true;\n } else {\n customer.VatNumber = vatNumber.trim();\n }\n\n this.hasError = hasError;\n this.setState({ attributeError });\n };\n\n private readonly _saveAttributes = async () => {\n const { context, data } = this.props.accountProfileProps;\n const customer = data.customerInformation.result;\n\n if (customer && context) {\n this._addOrUpdateAttribute(customer);\n const input = new updateCustomerAttributesInput(\n customer.AccountNumber,\n customer.Attributes || [],\n context.request.apiSettings,\n customer.Phone,\n customer.VatNumber\n );\n\n this.isUpdatingAttributes = true;\n this.gotException = false;\n\n if (!this.hasError) {\n this.setState({ editAttributes: false });\n try {\n await updateCustomerAttributes(input, context.actionContext);\n } catch (error) {\n this.gotException = true;\n customer.Attributes = this.initialCustomerAttributes;\n if (context.telemetry) {\n context.telemetry.exception(error);\n context.telemetry.debug('Unable to update customer attributes');\n }\n this.setState({\n attributeError: {},\n attributes: this.initialAttributes,\n phone: this.initialPhone,\n vatNumber: this.initialVatNumber\n });\n }\n this.setState({ editAttributes: false });\n if (!this.gotException) {\n this.initialAttributes = this.state.attributes;\n this.initialCustomerAttributes = customer.Attributes;\n this.initialPhone = this.state.phone;\n this.initialVatNumber = this.state.vatNumber;\n }\n }\n\n this.isUpdatingAttributes = false;\n\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n this._setFocus(this.editRef.current);\n }, 0);\n }\n }\n };\n\n private readonly _setFocus = (element: HTMLElement | null) => {\n element?.focus();\n };\n\n private readonly _buildPayloadData = () => {\n const { data } = this.props.accountProfileProps;\n const attributeDefinitions = data.attributeDefinitions.result || [];\n const attributes: IDictionary = {};\n\n attributeDefinitions.forEach(attributeDefinition => {\n const attributePayloadData: IAttributePayloadData = {};\n attributePayloadData.recordId = attributeDefinition.RecordId;\n attributePayloadData.name = attributeDefinition.Name;\n attributePayloadData.dataTypeValue = attributeDefinition.DataTypeValue;\n attributePayloadData.isEnumeration = attributeDefinition.IsEnumeration;\n attributePayloadData.isMandatory = attributeDefinition.IsMandatory;\n switch (attributeDefinition.DataTypeValue) {\n case AccountAttributeDataTypeValue.Integer:\n const defaultIntegerValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.IntegerValue;\n attributePayloadData.lowerBoundValue = attributeDefinition.LowerBound && attributeDefinition.LowerBound.IntegerValue;\n attributePayloadData.upperBoundValue = attributeDefinition.UpperBound && attributeDefinition.UpperBound.IntegerValue;\n if (attributePayloadData.name && defaultIntegerValue) {\n attributePayloadData.defaultValue = String(defaultIntegerValue);\n attributes[attributePayloadData.name] = String(defaultIntegerValue);\n }\n break;\n case AccountAttributeDataTypeValue.Decimal:\n const defaultDecimalValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.DecimalValue;\n attributePayloadData.lowerBoundValue = attributeDefinition.LowerBound && attributeDefinition.LowerBound.DecimalValue;\n attributePayloadData.upperBoundValue = attributeDefinition.UpperBound && attributeDefinition.UpperBound.DecimalValue;\n if (attributePayloadData.name && defaultDecimalValue) {\n attributePayloadData.defaultValue = String(defaultDecimalValue);\n attributes[attributePayloadData.name] = String(defaultDecimalValue);\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n const defaultStringValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.StringValue;\n if (attributePayloadData.name && defaultStringValue) {\n attributePayloadData.defaultValue = defaultStringValue;\n attributes[attributePayloadData.name] = defaultStringValue;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n const defaultBooleanValue =\n (attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.BooleanValue) || false;\n if (attributePayloadData.name) {\n attributePayloadData.defaultValue = String(defaultBooleanValue);\n attributes[attributePayloadData.name] = String(defaultBooleanValue);\n }\n break;\n default:\n\n // Do nothing\n }\n this.attributePayloadData.push(attributePayloadData);\n });\n Object.keys(attributes).length > 0 && this.setState({ attributes });\n };\n\n private readonly _getCustomerPhoneAndVatNumber = () => {\n const customer = this.props.accountProfileProps.data.customerInformation.result;\n const phone = (customer && customer.Phone) || '';\n const vatNumber = (customer && customer.VatNumber) || '';\n this.setState({ phone, vatNumber });\n if (this.initialPhone.length === 0) {\n this.initialPhone = phone;\n }\n if (this.initialVatNumber.length === 0) {\n this.initialVatNumber = vatNumber;\n }\n };\n}\n\nexport default AccountProfileAttributes;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ILinkData } from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ILinksData {\n linkText?: string;\n linkUrl: ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n isDisabled?: boolean;\n}\n\nexport interface IAccountProfileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountProfileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: link.isDisabled ? 'ms-account-profile__section-link-disable' : 'ms-account-profile__section-link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountProfileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport {\n ArrayExtensions,\n updateCustomerPersonalization,\n updateCustomerPersonalizationInput\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileData } from './account-profile.data';\nimport {\n IAccountProfileProps,\n IEmailAddressSectionHeadingData,\n IHeadingData,\n INameSectionHeadingData\n} from './account-profile.props.autogenerated';\nimport AccountProfileAttributes from './components/account-profile-attributes';\nimport DescriptionComponent from './components/account-profile-description';\nimport LinksComponent, { ILinksData } from './components/account-profile-links';\nimport TextComponent from './components/account-profile-text';\n\nexport interface IAccountPreference {\n accountPreference: INodeProps;\n heading: React.ReactNode;\n buttonWrapper: INodeProps;\n buttonYesText: React.ReactNode;\n buttonNoText: React.ReactNode;\n button: React.ReactNode;\n description: React.ReactNode;\n onUpdateAccountPreference(preferenceType?: string): void;\n}\n\nexport interface IAccountPreferences {\n accountPreferences: INodeProps;\n heading?: React.ReactNode;\n personalization: IAccountPreference;\n extraPreferences?: IAccountPreference[];\n}\n\nexport interface IAccountProfileItem {\n AccountProfileItem: INodeProps;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\nexport interface IAccountCustomerAttributes {\n customerAttributes?: React.ReactNode;\n}\n\nexport interface IAccountProfileViewProps extends IAccountProfileProps {\n AccountProfile: IModuleProps;\n accountProfileWrapper?: INodeProps;\n className: string;\n heading?: React.ReactNode;\n emailSection: IAccountProfileItem;\n nameSection: IAccountProfileItem;\n preferenceSection: IAccountPreferences;\n customerAttributesWrapper?: INodeProps;\n customerAttributesSection?: IAccountCustomerAttributes;\n infoMessageBar?: React.ReactNode;\n}\n\n/**\n *\n * AccountProfile component.\n * @extends {React.Component>}\n */\n@observer\nclass AccountProfile extends React.Component> {\n @observable private isUpdatingPreference: boolean = false;\n\n private readonly telemetryContent?: ITelemetryContent;\n private readonly payLoad: IPayLoad;\n private readonly editAsyncCustomerFeatureName: string = 'Dynamics.AX.Application.RetailEnableAsyncCustomerEditFeature';\n\n private isEditAsyncCustomerFeatureEnabled: boolean = false;\n\n constructor(props: IAccountProfileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n }\n\n public shouldComponentUpdate(nextProps: IAccountProfileProps): boolean {\n if (this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const { className, heading, emailAddressSectionHeading, nameSectionHeading, showAttributes, showPhone, showVatNumber } = config;\n\n const { editButtonText, editButtonAriaLabel } = resources;\n const customerInformation = data.customerInformation.result;\n\n this.isEditAsyncCustomerFeatureEnabled =\n data.featureState?.result?.find(feature => feature.Name === this.editAsyncCustomerFeatureName)?.IsEnabled || false;\n\n const invalidAsyncCustomerState: boolean =\n (this.props.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false) &&\n !this.isEditAsyncCustomerFeatureEnabled;\n\n // As per the design, phone and vat numbers are part of the profile attributes section\n const shouldRenderAttributes = (showAttributes && showAttributes.length > 0) || showPhone || showVatNumber || false;\n const editLink: ILinksData = {\n linkUrl: {\n destinationUrl: get(this.props, 'context.request.user.editProfileUrl', '')\n },\n linkText: editButtonText,\n ariaLabel: editButtonAriaLabel,\n isDisabled: invalidAsyncCustomerState\n };\n\n const viewProps = {\n ...this.props,\n className,\n AccountProfile: {\n moduleProps: this.props,\n className: classnames('ms-account-profile', config.className)\n },\n infoMessageBar: invalidAsyncCustomerState && (\n \n ),\n accountProfileWrapper: {\n className: classnames('ms-account-profile-wrapper')\n },\n heading: heading && (\n \n ),\n emailSection: this._renderEmailSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-email'),\n emailAddressSectionHeading as IEmailAddressSectionHeadingData,\n customerInformation && customerInformation.Email\n ),\n nameSection: this._renderNameSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-name'),\n nameSectionHeading as INameSectionHeadingData,\n this.getDescription(customerInformation),\n Msdyn365.isOboRequest(this.props.context.request) ? undefined : [editLink]\n ),\n preferenceSection: this._renderPreferenceSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-preferences'),\n invalidAsyncCustomerState,\n customerInformation\n ),\n customerAttributesWrapper: {\n className: classnames('ms-account-profile__attributes-wrapper')\n },\n customerAttributesSection: shouldRenderAttributes && this._renderCustomerAttributes()\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleEmailHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.emailAddressSectionHeading!.text = event.target.value);\n\n public handleNameHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.nameSectionHeading!.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.resources.editButtonText) {\n this.props.resources.editButtonText = event.target.value;\n }\n };\n\n @computed get editProfileUrl(): string {\n return get(this.props, 'context.request.user.editProfileUrl', '');\n }\n\n private getDescription(customerInformation: Customer | undefined): string {\n let description = '';\n if (customerInformation !== undefined) {\n if (customerInformation.FirstName) {\n description += customerInformation.FirstName;\n }\n if (customerInformation.LastName) {\n description += customerInformation.FirstName ? ` ${customerInformation.LastName}` : customerInformation.LastName;\n }\n }\n return description;\n }\n\n private _renderEmailSection(\n className: string,\n heading?: IEmailAddressSectionHeadingData,\n description?: string,\n links?: ILinksData[]\n ): IAccountProfileItem {\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: description && (\n \n )\n };\n }\n\n private _renderNameSection(\n className: string,\n heading?: INameSectionHeadingData,\n description?: string,\n links?: ILinksData[]\n ): IAccountProfileItem {\n if (!ArrayExtensions.hasElements(links)) {\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && (\n \n ),\n description: description && (\n \n )\n };\n }\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && (\n \n ),\n links: (\n \n ),\n description: description && (\n \n )\n };\n }\n\n private readonly onClickEventHandler = (className: string) => async () => {\n return this._updateAccountPersonalization(className);\n };\n\n private _renderPreferenceSection(\n className: string,\n invalidAsyncCustomerState: boolean,\n customerInformation?: Customer\n ): IAccountPreferences | null {\n const {\n personalizationDescription,\n personalizationEnableButtonAriaLabel,\n webTrackingDescription,\n webTrackingEnableButtonAriaLabel\n } = this.props.resources;\n const { preferencesSectionHeading, personalizationSectionHeading, webTrackingSectionHeading } = this.props.config;\n const { enableDataAnalytics } = this.props.context.request.features;\n const extraPreferences: IAccountPreference[] = [];\n\n if (!customerInformation) {\n this.props.context.telemetry.error('Account profile data is empty, module wont render');\n return null;\n }\n\n // Show browser activity login preference if switch is enabled AND a heading is provided\n enableDataAnalytics &&\n webTrackingSectionHeading &&\n extraPreferences.push(\n this._renderPreference(\n 'web-tracking',\n webTrackingSectionHeading as IHeadingData,\n webTrackingEnableButtonAriaLabel,\n webTrackingDescription,\n customerInformation.OptOutWebActivityTracking || false,\n invalidAsyncCustomerState\n )\n );\n\n return {\n accountPreferences: {\n className\n },\n heading: preferencesSectionHeading && (\n \n ),\n personalization: this._renderPreference(\n 'personalization',\n personalizationSectionHeading as IHeadingData,\n personalizationEnableButtonAriaLabel,\n personalizationDescription,\n customerInformation.OptOutPersonalization || false,\n invalidAsyncCustomerState\n ),\n extraPreferences: extraPreferences || undefined\n };\n }\n\n private readonly _renderPreference = (\n className: string,\n sectionHeading: IHeadingData,\n enableAriaLabel: string,\n description: string,\n isOptOut: boolean,\n disableBtn: boolean\n ) => {\n const { toggleDisableText, toggleEnableText } = this.props.resources;\n const toggleState = isOptOut ? 'disable' : 'enable';\n const onClickHandler = this.onClickEventHandler(className);\n this.payLoad.contentAction.etext = sectionHeading.text;\n const attributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n return {\n accountPreference: {\n className: classnames('ms-account-profile__preference', `ms-account-profile__preference-${className}`, {\n 'ms-account-profile__personalization-updating': this.isUpdatingPreference\n })\n },\n heading: sectionHeading && (\n \n ),\n buttonWrapper: {\n className: classnames('ms-account-profile__toggle-wrapper', `ms-account-profile__toggle-${toggleState}`, {\n // Disable the toggle completely if customer is async.\n 'ms-account-profile__toggle-disabled': disableBtn\n })\n },\n buttonYesText: ,\n buttonNoText: ,\n button: (\n \n ),\n description: ,\n onUpdateAccountPreference: async () => this._updateAccountPersonalization(className)\n };\n };\n\n private readonly _updateAccountPersonalization = async (preferenceType?: string) => {\n const customerInformation = this.props.data.customerInformation.result;\n\n if (customerInformation) {\n const {\n telemetry,\n context: { request, actionContext }\n } = this.props;\n\n let isOptOutPersonalization = false;\n let input;\n\n switch (preferenceType) {\n case 'web-tracking':\n isOptOutPersonalization = customerInformation.OptOutWebActivityTracking || false;\n input = new updateCustomerPersonalizationInput(\n customerInformation.AccountNumber,\n !isOptOutPersonalization,\n request.apiSettings,\n preferenceType\n );\n break;\n case undefined:\n case 'personalization':\n default:\n isOptOutPersonalization = customerInformation.OptOutPersonalization || false;\n input = new updateCustomerPersonalizationInput(\n customerInformation.AccountNumber,\n !isOptOutPersonalization,\n request.apiSettings,\n preferenceType\n );\n }\n\n this.isUpdatingPreference = true;\n\n try {\n await updateCustomerPersonalization(input, actionContext);\n } catch (error) {\n if (telemetry) {\n telemetry.exception(error);\n telemetry.debug('Unable to update customer personalization');\n }\n }\n\n this.isUpdatingPreference = false;\n }\n };\n\n private readonly _renderCustomerAttributes = (): React.ReactNode => {\n return ;\n };\n}\n\nexport default AccountProfile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountPreference, IAccountPreferences, IAccountProfileItem, IAccountProfileViewProps } from './account-profile';\n\nconst AccountPreferencesSection: React.FC = ({ accountPreferences, heading, personalization, extraPreferences }) => {\n return (\n \n {heading}\n \n {extraPreferences &&\n extraPreferences.map((preferenceSecton, index) => {\n return ;\n })}\n \n );\n};\n\nconst AccountPreferenceSection: React.FC = ({\n accountPreference,\n heading,\n description,\n buttonWrapper,\n buttonYesText,\n button,\n buttonNoText\n}) => {\n return (\n \n {heading}\n {description}\n \n {buttonNoText}\n {button}\n {buttonYesText}\n \n \n );\n};\n\nconst AccountProfileSection: React.FC = ({ AccountProfileItem, heading, links, description }) => {\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nconst AccountProfileView: React.FC = props => {\n const {\n AccountProfile,\n infoMessageBar,\n accountProfileWrapper,\n heading,\n emailSection,\n nameSection,\n preferenceSection,\n customerAttributesWrapper,\n customerAttributesSection\n } = props;\n\n return (\n \n {infoMessageBar}\n {accountProfileWrapper && (\n \n {heading}\n \n \n \n \n )}\n {customerAttributesWrapper && {customerAttributesSection}}\n \n );\n};\n\nexport default AccountProfileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountProfileDescription {\n className: string;\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountProfileDescription: React.FC = ({ className, description }) => (\n

{description}

\n);\n\nexport default IAccountProfileDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountProfileText {\n className: string;\n text: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountProfileText: React.FC = ({ className, text }) => {text};\n\nexport default IAccountProfileText;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountWelcomeTileData } from './account-welcome-tile.data';\nimport { IAccountWelcomeTileProps } from './account-welcome-tile.props.autogenerated';\n\nexport interface IAccountWelcomeTileViewProps extends IAccountWelcomeTileProps {\n AccountWelcomeTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n}\n\n/**\n *\n * AccountWelcome component.\n * @extends {React.PureComponent>}\n */\nclass AccountWelcomeTile extends React.PureComponent> {\n public render(): JSX.Element {\n const { config, data } = this.props;\n const { className } = config;\n\n const accountInfo = data.accountInformation.result;\n const heading = {\n ...config.heading,\n ...{\n text: `${config.heading.text ? config.heading.text : ''} ${\n accountInfo && accountInfo.FirstName ? accountInfo.FirstName : ''\n }`\n }\n };\n\n const viewProps = {\n ...this.props,\n className,\n AccountWelcomeTile: {\n moduleProps: this.props,\n className: classnames('ms-account-welcome-tile', config.className)\n },\n heading: heading && heading.text && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n}\n\nexport default AccountWelcomeTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountWelcomeTileViewProps } from './account-welcome-tile';\n\nconst AccountWelcomeTileView: React.FC = props => {\n const { AccountWelcomeTile, heading } = props;\n\n return {heading};\n};\n\nexport default AccountWelcomeTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountWishlistTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountWishlistTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n\nexport default IAccountWishlistTileDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-wishlist-tile.props.autogenerated';\n\nexport interface IAccountWishlistTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountWishlistTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-wishlist-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountWishlistTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountWishlistTileData } from './account-wishlist-tile.data';\nimport { IAccountWishlistTileProps } from './account-wishlist-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-wishlist-tile-description';\nimport LinksComponent from './components/account-wishlist-tile-links';\n\nexport interface IAccountWishlistTileViewProps extends IAccountWishlistTileProps {\n AccountWishlistTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountWishlist component.\n * @extends {React.PureComponent>}\n */\nclass AccountWishlistTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IAccountWishlistTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountWishlistTileDescription } = resources;\n const wishlists = data.wishlists.result;\n\n const wishlistsCount = ((wishlists && wishlists.length && wishlists[0].CommerceListLines) || []).length;\n const description = format(accountWishlistTileDescription || 'You have {0} items in the Wishlist.', wishlistsCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountWishlistTile: {\n moduleProps: this.props,\n className: classnames('ms-account-wishlist-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountWishlistTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountWishlistTileViewProps } from './account-wishlist-tile';\n\nconst AccountWishlistTileView: React.FC = props => {\n const { AccountWishlistTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountWishlistTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../../..';\n\nexport interface IB2bRequestsTileLinksProps {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst defaultClassName = 'ms-account-b2b-requests-tile';\n\nexport const B2bRequestsTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (!ArrayExtensions.hasElements(links)) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {ArrayExtensions.hasElements(editableLinks) ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n\n return linkdata.map(link => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return {\n ariaLabel: link.ariaLabel,\n className: `${defaultClassName}__link`,\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n } as Msdyn365.ILinksData;\n });\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IB2bRequestsTileData } from './b2b-requests-tile.data';\nimport { IB2bRequestsTileProps } from './b2b-requests-tile.props.autogenerated';\nimport { B2bRequestsTileLinks } from './components/account-b2b-requests-tile-links';\n\nexport interface IB2bRequestsTileViewProps extends IB2bRequestsTileProps {\n b2bRequestsTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n}\n\n/**\n *\n * B2bRequestsTile component.\n * @extends {React.PureComponent>}\n */\nclass B2bRequestsTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IB2bRequestsTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n const { config } = this.props;\n const { className, heading, links } = config;\n\n const defaultClassName = 'ms-account-b2b-requests-tile';\n\n if (!isChannelTypeB2B(this.props.context.actionContext.requestContext)) {\n return null;\n }\n\n const viewProps = {\n ...this.props,\n className,\n b2bRequestsTile: {\n moduleProps: this.props,\n className: classnames(defaultClassName, config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: ArrayExtensions.hasElements(links) && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default B2bRequestsTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IB2bRequestsTileViewProps } from './b2b-requests-tile';\n\nconst B2bRequestsTileView: React.FC = props => {\n const { b2bRequestsTile, heading, links } = props;\n\n return (\n \n {heading}\n {links}\n \n );\n};\n\nexport default B2bRequestsTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React from 'react';\n\nexport const SignUpText: React.FC<{ text: string }> = (props: { text: string }) => {\n return

{props.text}

;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, * as Msdyn365 from '@msdyn365-commerce/core';\nimport { issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { SignUpText } from './components/loyalty-sign-up-small-components';\nimport { ILoyaltySignUpData } from './loyalty-sign-up.data';\nimport { ILoyaltySignUpProps } from './loyalty-sign-up.props.autogenerated';\n\nexport interface IAccountLoyaltyJoinState {\n clicked: boolean;\n}\nexport interface ILoyaltySignUpViewProps extends ILoyaltySignUpProps {\n LoyaltySignUp: IModuleProps;\n heading: React.ReactNode;\n memberHeading: React.ReactNode;\n signInLink: React.ReactElement;\n signUpText: React.ReactElement;\n signUpButton: React.ReactElement;\n detailsLink: React.ReactElement;\n termsLink: React.ReactElement;\n loading: boolean;\n infoMessageBar?: React.ReactNode;\n}\n\n/**\n *\n * LoyaltySignUp component.\n * @extends {React.Component>}\n */\n@observer\nclass LoyaltySignUp extends React.Component, IAccountLoyaltyJoinState> {\n private readonly telemetryContent?: ITelemetryContent;\n private readonly loyaltySignInAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltySignUpAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyDetailsLinkAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyTermsLinkAttributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: ILoyaltySignUpProps) {\n super(props);\n this.state = { clicked: false };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.SignIn);\n this.loyaltySignInAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.SignUp;\n this.loyaltySignUpAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyDetailLink;\n this.loyaltyDetailsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsLink;\n this.loyaltyTermsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltySignUpProps, nextState: IAccountLoyaltyJoinState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className, heading, memberHeading },\n resources,\n context: {\n actionContext,\n request: {\n user: { signInUrl, isAuthenticated }\n }\n },\n data\n } = this.props;\n\n const termsUrl = Msdyn365.getUrlSync('loyaltyTerms', actionContext);\n let loyaltyJoinUrl = `${Msdyn365.getUrlSync('loyaltyJoin', actionContext)}?joiningLoyalty=true`;\n if (MsDyn365.isBrowser) {\n loyaltyJoinUrl = `${window.location.origin}${loyaltyJoinUrl}`;\n }\n const signInurl = `${signInUrl}?ru=${loyaltyJoinUrl}`;\n const completeClass = classname('ms-loyalty-signup', className);\n const loyaltyCard = data.loyaltyCard;\n const hasLoyaltyAccount = loyaltyCard.result && loyaltyCard.result.CardTenderTypeValue !== undefined;\n const customerInformation = data.customerInformation?.result;\n\n const invalidAsyncCustomerState: boolean =\n (this.props.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false);\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltySignUp: {\n moduleProps: this.props,\n className: completeClass\n },\n infoMessageBar: invalidAsyncCustomerState && (\n \n ),\n loading: !this.props.context.request.params.isEditor && loyaltyCard?.status === 'LOADING',\n heading: !hasLoyaltyAccount && heading && heading.text && (\n \n ),\n memberHeading: hasLoyaltyAccount && memberHeading && memberHeading.text && (\n \n ),\n signInLink: !isAuthenticated && (\n \n ),\n signUpText: !hasLoyaltyAccount && ,\n signUpButton: !hasLoyaltyAccount && isAuthenticated && (\n \n {this.props.resources.joinLoyaltyButtonText}\n \n ),\n detailsLink: hasLoyaltyAccount && (\n \n {this.props.resources.viewLoyaltyPageText}\n \n ),\n termsLink: !hasLoyaltyAccount && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleMemberHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.memberHeading!.text = event.target.value);\n\n private readonly _issueLoyalty = () => {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(() => {\n if (MsDyn365.isBrowser) {\n window.location.assign(Msdyn365.getUrlSync('loyalty', this.props.context.actionContext) || '');\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n };\n}\n\nexport default LoyaltySignUp;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILoyaltySignUpViewProps } from './loyalty-sign-up';\n\nconst LoyaltySignUpView: React.FC = props => {\n const {\n LoyaltySignUp,\n heading,\n memberHeading,\n signInLink,\n signUpText,\n signUpButton,\n detailsLink,\n termsLink,\n loading,\n infoMessageBar\n } = props;\n\n if (loading) {\n props.context.telemetry.error('LoyaltySignUp data is empty, module wont render');\n return null;\n }\n\n return (\n \n {infoMessageBar}\n {memberHeading}\n {heading}\n {detailsLink}\n {signUpText}\n {termsLink}\n {signUpButton}\n {signInLink}\n \n );\n};\n\nexport default LoyaltySignUpView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nexport interface ILoyaltyTermsModalProps {\n resources: ILoyaltyTermsModalResources;\n returnRef: React.RefObject | undefined;\n checked: boolean;\n isOpen: boolean;\n terms: React.ReactNode;\n telemetryContent?: ITelemetryContent;\n onToggle(): void;\n onSubmit(): void;\n onCheck(): void;\n}\n\nexport interface ILoyaltyTermsModalResources {\n loyaltyTermsHeading: string;\n loyaltyAgreeToTerms: string;\n joinLoyaltyTermsText: string;\n cancelLoyaltyTermsText: string;\n}\n\nexport interface ILoyaltyTermsModalViewProps {\n modal: INodeProps;\n modalHeader: INodeProps;\n modalFooter: INodeProps;\n modalBody: INodeProps;\n heading: React.ReactElement;\n cancelButton: React.ReactElement;\n submitButton: React.ReactElement;\n terms: React.ReactNode;\n checkbox: React.ReactElement;\n agreeText: React.ReactElement;\n agreeSection: INodeProps;\n}\n\nexport const LoyaltyTermsModal = (props: ILoyaltyTermsModalProps): ILoyaltyTermsModalViewProps => {\n const payLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.LoyaltyTermsCancel);\n const loyaltyTermCancelAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsSubmit;\n const loyaltyTermSubmitAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsAgree;\n const loyaltyTermCheckboxAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n return {\n modal: {\n tag: Modal,\n className: 'ms-loyalty-terms__modal',\n toggle: props.onToggle,\n applicationNode: 'renderPage',\n isOpen: props.isOpen,\n returnFocusRef: props.returnRef\n },\n modalHeader: { tag: ModalHeader, className: 'ms-loyalty-terms__modal-header', toggle: props.onToggle },\n modalFooter: { tag: ModalFooter, className: 'ms-loyalty-terms__modal-footer' },\n modalBody: { tag: ModalBody, className: 'ms-loyalty-terms__modal-body' },\n cancelButton: (\n \n ),\n submitButton: (\n \n {props.resources.joinLoyaltyTermsText}\n \n ),\n heading:

{props.resources.loyaltyTermsHeading}

,\n terms: props.terms,\n agreeSection: { className: 'ms-loyalty-terms__agree-section' },\n checkbox: (\n \n ),\n agreeText:

{props.resources.loyaltyAgreeToTerms}

\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync } from '@msdyn365-commerce/core';\nimport { getLoyaltyCardAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport { GetLoyaltyCardInput, issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsModalViewProps, LoyaltyTermsModal } from './components/loyalty-terms-modal';\nimport { ILoyaltyTermsData } from './loyalty-terms.data';\nimport { ILoyaltyTermsProps } from './loyalty-terms.props.autogenerated';\n\nexport interface ILoyaltyTermsState {\n checked: boolean;\n clicked: boolean;\n isModalOpen: boolean;\n}\nexport interface ILoyaltyTermsViewProps extends ILoyaltyTermsProps {\n LoyaltyTerms: IModuleProps;\n modalToggle: React.ReactElement;\n modal: ILoyaltyTermsModalViewProps;\n loading: boolean;\n}\n\n/**\n *\n * LoyaltyTerms component.\n * @extends {React.Component>}\n */\nclass LoyaltyTerms extends React.Component, ILoyaltyTermsState> {\n private readonly toggleRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n public constructor(props: ILoyaltyTermsProps) {\n super(props);\n this._toggle = this._toggle.bind(this);\n this._submit = this._submit.bind(this);\n this._checkboxChecked = this._checkboxChecked.bind(this);\n this.toggleRef = React.createRef();\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n let search = this.props.context.request.url.requestUrl.search;\n let isJoining = false;\n if (search) {\n search = search.substring(1);\n const qsps = search.split('&');\n for (const qsp of qsps) {\n const splitQsp = qsp.split('=');\n isJoining = splitQsp[0] === 'joiningLoyalty' && splitQsp[1] === 'true';\n if (isJoining) {\n break;\n }\n }\n }\n\n this.state = {\n isModalOpen: isJoining,\n checked: false,\n clicked: false\n };\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltyTermsProps, nextState: ILoyaltyTermsState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className, hideToggle },\n resources,\n slots: { serviceTerms },\n data: { loyaltyCard },\n context: {\n request: {\n user: { isAuthenticated }\n }\n }\n } = this.props;\n const completeClass = classname('ms-loyalty-terms', className);\n\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltyTerms: {\n moduleProps: this.props,\n className: completeClass\n },\n loading: loyaltyCard.status === 'LOADING',\n modalToggle: hideToggle !== true && (\n \n ),\n modal:\n isAuthenticated &&\n loyaltyCard.result &&\n loyaltyCard.result.CardNumber === undefined &&\n LoyaltyTermsModal({\n resources: { ...resources },\n returnRef: this.toggleRef,\n checked: this.state.checked,\n isOpen: this.state.isModalOpen,\n terms: serviceTerms,\n telemetryContent: this.telemetryContent,\n onToggle: this._toggle,\n onSubmit: this._submit,\n onCheck: this._checkboxChecked\n })\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _toggle(): void {\n this.setState({ isModalOpen: !this.state.isModalOpen, checked: false });\n }\n\n private _submit(): void {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(card => {\n if (this.props.config.redirectToLoyalty) {\n window.location.assign(getUrlSync('loyalty', this.props.context.actionContext) || '');\n } else {\n getLoyaltyCardAsync({ callerContext: this.props.context.actionContext }, card.CardNumber || '')\n .then(fullCard => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n fullCard\n );\n })\n .catch((error: Error) => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n card\n );\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to fetch loyalty card');\n });\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n }\n\n private _checkboxChecked(): void {\n this.setState({ checked: !this.state.checked });\n }\n}\n\nexport default LoyaltyTerms;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsViewProps } from './loyalty-terms';\n\nconst LoyaltyTermsView: React.FC = props => {\n const { LoyaltyTerms, modalToggle, modal, loading } = props;\n\n return !loading && modal ? (\n \n {modalToggle}\n \n {modal.heading}\n \n {modal.terms}\n \n {modal.checkbox}\n {modal.agreeText}\n \n \n \n {modal.submitButton}\n {modal.cancelButton}\n \n \n \n ) : null;\n};\n\nexport default LoyaltyTermsView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst PasswordResetButton: React.FC = ({ id, className, text, ariaLabel, disabled, telemetryContent, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default PasswordResetButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IPasswordResetInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst PasswordResetInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default PasswordResetInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLoadingIcon {\n className: string;\n}\n\nconst PasswordResetLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default PasswordResetLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default PasswordResetLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { PasswordRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport PasswordResetButtonComponent from './components/password-reset-button';\nimport PasswordResetErrorComponent from './components/password-reset-error';\nimport PasswordResetInputComponent from './components/password-reset-input';\nimport PasswordResetLabelComponent from './components/password-reset-label';\nimport PasswordResetLoadingIconComponent from './components/password-reset-loading-icon';\nimport PasswordResetLoadingMessageComponent from './components/password-reset-loading-message';\nimport { IPasswordResetConfig, IPasswordResetProps } from './password-reset.props.autogenerated';\n\nexport interface IPasswordResetViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetLocalAccount {\n localAccount: INodeProps;\n items: IPasswordResetItem[];\n errorMessage: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetViewProps {\n className: string;\n viewState: IPasswordResetViewState;\n loading: IPasswordResetLoading;\n passwordReset: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetLocalAccount: IPasswordResetLocalAccount;\n}\n\n/**\n *\n * PasswordReset component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordReset extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n @observable private newPasswordRegex: string;\n\n @observable private reenterPasswordRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IPasswordResetProps) {\n super(props);\n\n this.newPasswordRegex = PasswordRegex.defaultRegex.source;\n this.reenterPasswordRegex = PasswordRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: IPasswordResetProps, nextState: IPasswordResetViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n passwordReset: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && (\n \n ),\n passwordResetLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map((obj: { ID: string; PAT: string }) => {\n switch (obj.ID.toLowerCase()) {\n case 'newpassword': {\n this.newPasswordRegex = obj.PAT;\n break;\n }\n case 'reenterpassword': {\n this.reenterPasswordRegex = obj.PAT;\n break;\n }\n default:\n }\n });\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const { resources } = this.props;\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n verifying_blurb: resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n };\n\n private _renderLocalAccount(): IPasswordResetLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('newPassword', 'password', resources.newPasswordLabelText, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, this.reenterPasswordRegex)\n ],\n errorMessage: [\n ,\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n }\n\n private _renderInput(id: string, type: string, labelText: string, pattern?: string): IPasswordResetItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default PasswordReset;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IPasswordResetItem, IPasswordResetLoading, IPasswordResetLocalAccount, IPasswordResetViewProps } from './password-reset';\n\nconst PasswordResetItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n {items &&\n items.map((item: IPasswordResetItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n );\n};\n\nconst PasswordResetLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetView: React.FC = props => {\n const { passwordReset, viewState, loading, defaultAADConainer, aadConainer, heading, passwordResetLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IRequestContext, getUrlSync } from '@msdyn365-commerce/core';\nimport {\n AccountStatementRequest,\n BusinessPartnerOperationDeliveryType,\n BusinessPartnerUser,\n BusinessPartnerUsersDataActions\n} from '@msdyn365-commerce/retail-proxy';\nimport { AdminRequestStatementButton, RequestStatementModal } from '@msdyn365-commerce-modules/account-management';\nimport {\n addOrganizationUser,\n AddOrganizationUserInput,\n ArrayExtensions,\n deleteOrganizationUser,\n DeleteOrganizationUserInput,\n editOrganizationUser,\n EditOrganizationUserInput,\n EmailRegex,\n Random,\n StringExtensions\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n Heading,\n IDataTableProps,\n IHeadingsProperty,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITableItemProps,\n ITableRowProps,\n ITelemetryContent,\n Table,\n TableDataType,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListData } from './business-organization-list.data';\nimport { IBusinessOrganizationListProps, IBusinessOrganizationListResources } from './business-organization-list.props.autogenerated';\nimport { FormButton, FormFieldError, FormInput, FormLabel, IBusinessFormItem, IUserFormItem } from './components';\n\nexport interface IBusinessOrganizationListViewProps extends IBusinessOrganizationListProps {\n OrganizationUserList: IModuleProps;\n moduleContainer: INodeProps;\n heading: React.ReactNode;\n noUsersText?: string;\n addUserButton?: React.ReactNode;\n search?: React.ReactNode;\n organizationListTable: React.ReactNode;\n form?: IFormViewProps;\n formItems?: IUserFormItem[];\n formType: FormType;\n deleteUserForm?: React.ReactNode;\n viewUserDetails?: React.ReactNode;\n modalHeading?: React.ReactNode;\n modalState?: boolean;\n requestAccountStatementButton: React.ReactNode;\n requestStatementModal: React.ReactNode;\n toggleModal?(): void;\n}\n\nexport interface IBusinessOrganizationListState {\n isReady: boolean;\n formItems: IUserFormItem[];\n isFormActive: boolean;\n formType: FormType;\n selectedUserData?: BusinessPartnerUser;\n referenceBack?: HTMLButtonElement | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n displayedUserData?: any;\n refresh: boolean;\n isModalOpen: boolean;\n hasFormError: boolean;\n hasActionError: boolean;\n isStatementRequestModalOpen: boolean;\n statementRequestFromDateString: string;\n statementRequestToDateString: string;\n isStatementRequestAdminDropdownOpen: boolean;\n statementRequestFullOrg: boolean;\n statementRequestMaxDateString?: string;\n businessUserActionRetailErrorMsg: string;\n}\n\ntype GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport enum FormType {\n None = 'NONE',\n Edit = 'EDIT',\n Remove = 'REMOVE',\n View = 'VIEW',\n Add = 'ADD'\n}\n\nexport enum InputType {\n Text = 'text',\n Email = 'email'\n}\n\nexport enum InputID {\n FirstName = 'FirstName',\n LastName = 'LastName',\n B2BUserId = 'B2BUserId',\n Email = 'Email',\n SpendingLimit = 'SpendingLimit',\n Status = 'Status',\n FullName = 'Name'\n}\n\nexport interface IFormViewProps {\n modalClassName: string;\n FormWrapper: INodeProps;\n modalHeading?: string;\n modalDescription?: React.ReactNode;\n inputs?: IBusinessFormItem[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n selectedUser?: any;\n buttons?: React.ReactNode[];\n errorMessage?: React.ReactNode[];\n resources: IBusinessOrganizationListResources;\n toggle?(): void;\n}\n\nexport const renderInputSection = (\n inputs: IUserFormItem[],\n className: string,\n asteriskAfterLabel: string,\n onInputChange: (event: React.ChangeEvent) => void\n): IBusinessFormItem[] => {\n return inputs.map(element => {\n const { customClass, id, type, label, maxChars, isRequired, pattern, value, isDisabled, fieldReference } = element;\n return {\n wrapper: {\n className: classnames(className, id, customClass)\n },\n key: id,\n label: ,\n errorMessage: ,\n input: (\n \n )\n };\n });\n};\n\ninterface IUserTableItemProps extends ITableItemProps {\n user: BusinessPartnerUser;\n}\n\n/**\n *\n * BusinessOrganizationList component.\n * @extends {React.PureComponent>}\n */\n@observer\nclass BusinessOrganizationList extends React.Component<\n IBusinessOrganizationListProps,\n IBusinessOrganizationListState\n> {\n public BusinessFormDefaultInputs: IUserFormItem[] = [\n {\n id: InputID.FirstName,\n type: InputType.Text,\n label: this.props.resources.businessUserFirstNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.LastName,\n type: InputType.Text,\n label: this.props.resources.businessUserLastNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.Email,\n type: InputType.Email,\n label: this.props.resources.businessUserEmailAddressLabelText,\n value: '',\n isRequired: true,\n pattern: EmailRegex.defaultRegex.source,\n customClass: 'width-100'\n },\n {\n id: InputID.SpendingLimit,\n type: InputType.Text,\n label: this.props.resources.businessUserSpendingLimitLabelText,\n value: '',\n isRequired: false,\n customClass: 'width-50',\n maxChars: this.props.config?.maxLength\n }\n ];\n\n @observable\n private _viewport: GridSize;\n\n private readonly delayFocus: number = 110;\n\n private formChildReference: React.RefObject[] = [];\n\n private userFormEditReference: React.RefObject[] = [];\n\n private userFormDeleteReference: React.RefObject[] = [];\n\n private readonly submitButtonReference: React.RefObject;\n\n private readonly addUserButtonReference: React.RefObject;\n\n private readonly statementRequestButtonReference: React.RefObject;\n\n private readonly moduleClassName: string = 'ms-business-organization-list';\n\n private readonly mobileExcludedColumns: string[];\n\n @computed get isMobile(): boolean {\n return this._viewport === 'xs' || this._viewport === 'sm';\n }\n\n @computed get canSubmitStatementRequest(): boolean {\n return (\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestFromDateString) &&\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestToDateString)\n );\n }\n\n @computed get selectedUserName(): string {\n const { businessUserSelectedUserDisplayName } = this.props.resources;\n return this.state.selectedUserData\n ? businessUserSelectedUserDisplayName\n .replace('{firstName}', this.state.selectedUserData.FirstName || '')\n .replace('{lastName}', this.state.selectedUserData.LastName || '')\n : '';\n }\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: IBusinessOrganizationListProps) {\n super(props);\n this._toggleModal = this._toggleModal.bind(this);\n this._onInputChange = this._onInputChange.bind(this);\n this._handleRemoveUserButton = this._handleRemoveUserButton.bind(this);\n\n this.mobileExcludedColumns = [InputID.Email, InputID.Status, InputID.SpendingLimit];\n this._viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._updateViewport = this._updateViewport.bind(this);\n this.submitButtonReference = React.createRef();\n this.addUserButtonReference = React.createRef();\n this.statementRequestButtonReference = React.createRef();\n this.state = {\n isReady: false,\n formItems: this.addedReference(),\n isFormActive: false,\n formType: FormType.None,\n refresh: true,\n isModalOpen: false,\n hasFormError: false,\n hasActionError: false,\n isStatementRequestModalOpen: false,\n statementRequestFromDateString: '',\n statementRequestToDateString: '',\n isStatementRequestAdminDropdownOpen: false,\n statementRequestFullOrg: false,\n statementRequestMaxDateString: new Date().toISOString().split('T')[0],\n businessUserActionRetailErrorMsg: ''\n };\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n }\n\n public addedReference(): IUserFormItem[] {\n const newFormFields = this.BusinessFormDefaultInputs;\n return newFormFields.map((input, index) => {\n this.formChildReference[Number(index)] = React.createRef();\n input.fieldReference = this.formChildReference[Number(index)];\n return input;\n });\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser && window.addEventListener) {\n window.addEventListener('resize', this._updateViewport);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser && window.removeEventListener) {\n window.removeEventListener('resize', this._updateViewport);\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IBusinessOrganizationListProps,\n nextState: IBusinessOrganizationListState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n\n if (!this.state.isModalOpen && this.state.isModalOpen !== nextState.isModalOpen) {\n setTimeout(() => {\n this.formChildReference[0].current?.focus();\n this.submitButtonReference.current?.focus();\n }, this.delayFocus);\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config,\n resources,\n data: { users }\n } = this.props;\n const { className, heading, showBecomeSellerLink } = config;\n const {\n businessUserActionButtonText,\n businessUserAddUserButtonText,\n businessUserLoadingMessage,\n businessUserEmptyListMessage,\n businessUserErrorGettingUsersMessage,\n userAccountStatementLabel,\n fullOrganizationLabel,\n requestStatementButtonLabel,\n promoteToSellerActionLabel,\n requestAccountStatementActionLabel,\n requestOrganizationStatementActionLabel,\n statementRequestModalHeaderLabel,\n cancelLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n sendToEmailLabel,\n selectedUserLabel\n } = resources;\n const {\n formItems,\n isFormActive,\n formType,\n isModalOpen,\n statementRequestFromDateString,\n statementRequestToDateString,\n isStatementRequestModalOpen,\n statementRequestMaxDateString\n } = this.state;\n\n const hasUsers = users && users.result && users.result.length > 0;\n this.payLoad.contentAction.etext = TelemetryConstant.AddUser;\n const addUserAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n const customer = this.props.data.customerInformation?.result;\n\n if (!hasUsers) {\n let errorMessage = '';\n if (users.status === 'LOADING') {\n errorMessage = businessUserLoadingMessage;\n } else if (users.status === 'FAILED') {\n errorMessage = businessUserErrorGettingUsersMessage;\n } else if (users.result && users.result.length === 0) {\n errorMessage = businessUserEmptyListMessage;\n }\n\n const errorProps = {\n ...this.props,\n className,\n OrganizationUserList: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n moduleContainer: {\n className: `${this.moduleClassName}__container`\n },\n heading: heading && ,\n addUserButton: (\n \n {businessUserAddUserButtonText}\n \n ),\n noUsersText:

{errorMessage}

\n };\n\n return this.props.renderView(errorProps) as React.ReactElement;\n }\n\n const viewProps = {\n ...this.props,\n className,\n OrganizationUserList: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n moduleContainer: {\n className: `${this.moduleClassName}__container`\n },\n heading: heading && ,\n modalState: isModalOpen,\n addUserButton: (\n \n {businessUserAddUserButtonText}\n \n ),\n organizationListTable: ,\n toggleModal: this._toggleModal,\n formType,\n form:\n isFormActive && isModalOpen && (formType === FormType.Add || formType === FormType.Edit)\n ? this._renderUserForm()\n : this._renderUserDetails(),\n formItems,\n requestAccountStatementButton: showBecomeSellerLink ? (\n \n ) : (\n \n ),\n requestStatementModal: (\n \n )\n } as IBusinessOrganizationListViewProps;\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n // _createTableProps: creates the props for the organization list table\n private _createTableProps(): IDataTableProps {\n const { config, resources, context } = this.props;\n const { tableSort, showPagination, paginationItemPerPage } = config;\n const {\n businessUserPaginationNextButtonText,\n businessUserPaginationPreviousButtonText,\n businessUserEditButtonText,\n businessUserViewUserButtonText,\n businessUserDeleteButtonText,\n businessUserActionButtonText,\n businessUserPaginationAriaLabel,\n columnSortAriaLabel\n } = resources;\n\n const tableData = this._createTableItems();\n const tableHeading =\n (ArrayExtensions.hasElements(tableData) &&\n tableData[0].row.map(item => {\n if (this.isMobile && this.mobileExcludedColumns.includes(item.id)) {\n return undefined;\n }\n return {\n name: item.id,\n sortable: (tableSort && tableSort) || false,\n ariaLabel: columnSortAriaLabel\n } as IHeadingsProperty;\n })) ||\n [];\n\n return {\n resources,\n headings: tableHeading,\n rows: tableData,\n className: `${this.moduleClassName}__table`,\n editLinkText: this.isMobile ? businessUserEditButtonText : '', // '' === showing just icon\n deleteLinkText: this.isMobile ? businessUserDeleteButtonText : '', // '' === showing just icon\n viewLinkText: businessUserViewUserButtonText,\n editLinkTooltip: businessUserEditButtonText,\n deleteLinkTooltip: businessUserDeleteButtonText,\n viewLinkTooltip: businessUserViewUserButtonText,\n enableToModify: true,\n actionLinkText: businessUserActionButtonText,\n showCheckBoxes: true,\n isSortable: tableSort,\n resourcePrefix: 'businessUser',\n showPagination,\n minifyActions: this.isMobile,\n excludedColumns: this.isMobile ? this.mobileExcludedColumns : [],\n paginationProperty: {\n skipCount:\n context &&\n context.request &&\n context.request.query &&\n context.request.query.skip &&\n !isNaN(Number.parseInt(context.request.query.skip, 10))\n ? Number.parseInt(context.request.query.skip, 10)\n : 0,\n itemPerPage: paginationItemPerPage || 10,\n prevText: businessUserPaginationPreviousButtonText,\n nextText: businessUserPaginationNextButtonText,\n paginationText: businessUserPaginationAriaLabel,\n url: (context && this._getCurrentUrl(context.request).href) || ''\n },\n isSingleSelectOnly: true,\n tableAriaLabel: resources.tableAriaLabel,\n tableTabIndex: 0,\n businessUserSelectCheckBoxAriaLabelText: resources.businessUserSelectCheckBoxAriaLabelText,\n sortByAscending: resources.sortByAscending,\n sortByDescending: resources.sortByDescending,\n actions: {\n onDelete: this._handleDeleteIcon,\n onEdit: this._handleEditIcon,\n onView: (this.isMobile && this._handleViewDetails) || undefined\n },\n formatPrice: this._formatPrice,\n checkBoxCallback: this._onSelectRow\n };\n }\n\n // _createTableItems: converts users recieved from the data-action(IBusinessParterUser[]) to tableRows(ITableItemProps[])\n private _createTableItems(): ITableRowProps[] {\n const {\n resources,\n data: { users }\n } = this.props;\n const { businessUserActiveStatusText, businessUserPendingStatusText, businessUserRemovedStatusText } = resources;\n const usersList = users && users.result;\n\n if (!ArrayExtensions.hasElements(usersList)) {\n return [];\n }\n\n return usersList.map((user, index) => {\n let statusString = '';\n this.userFormEditReference[index] = React.createRef();\n this.userFormDeleteReference[index] = React.createRef();\n\n switch (user.StatusValue) {\n case 0:\n statusString = businessUserPendingStatusText;\n break;\n case 1:\n statusString = businessUserActiveStatusText;\n break;\n case 2:\n default:\n statusString = businessUserRemovedStatusText;\n }\n\n return {\n row: [\n {\n id: InputID.FullName,\n type: TableDataType.Text,\n value: `${user.FirstName} ${user.LastName}`,\n user\n } as IUserTableItemProps,\n {\n id: InputID.Email,\n type: TableDataType.Text,\n value: user.Email || '',\n className: `${this.moduleClassName}__padRight`\n } as IUserTableItemProps,\n {\n id: InputID.Status,\n type: TableDataType.Text,\n value: statusString\n } as IUserTableItemProps,\n {\n id: InputID.SpendingLimit,\n type: TableDataType.Price,\n value: user.SpendingLimit || 0\n } as IUserTableItemProps\n ],\n isSelected: false,\n buttonReferences: {\n edit: this.userFormEditReference[index],\n delete: this.userFormDeleteReference[index]\n }\n };\n });\n }\n\n // _toggleModal: closes the modal and resets the form states\n private _toggleModal(): void {\n this.state.referenceBack?.focus();\n this.setState({\n isModalOpen: false,\n isFormActive: false,\n referenceBack: undefined,\n formType: FormType.None\n });\n }\n\n // _handleAddUserButtonClicked: resets input fields, opens the modal, and sets the form states\n private readonly _handleAddUserButtonClicked = () => {\n // Reset form\n const newForm = this.state.formItems;\n newForm.forEach(input => {\n if (input.id === InputID.Email) {\n // Make sure email input is re enabled (it gets disabled when admin is editing user)\n input.isDisabled = false;\n }\n\n input.value = '';\n });\n\n const newUser = { B2BUserId: Random.Guid.generateGuid() } as BusinessPartnerUser;\n\n this.setState({\n formItems: newForm,\n isFormActive: true,\n formType: FormType.Add,\n referenceBack: this.addUserButtonReference.current,\n isModalOpen: true,\n hasFormError: false,\n hasActionError: false,\n selectedUserData: newUser\n });\n };\n\n // _handleAddEditFormSaveButton: triggered on the save button for both add/edit forms. Calls the appropriate data-action and reloads the page when successful\n private readonly _handleAddEditFormSaveButton = async () => {\n const { context } = this.props;\n const { formType, formItems } = this.state;\n\n const updatedUser = this._createBusinessPartner(formItems);\n\n if (formType === FormType.Edit) {\n editOrganizationUser(new EditOrganizationUserInput(updatedUser), context.actionContext)\n .then(() => {\n window.location.reload(false);\n })\n .catch(error => {\n context.telemetry.trace(error);\n this.setState({\n hasActionError: true\n });\n });\n } else {\n addOrganizationUser(new AddOrganizationUserInput(updatedUser), context.actionContext)\n .then(() => {\n window.location.reload(false);\n })\n .catch(error => {\n context.telemetry.trace(error);\n this.setState({\n hasActionError: true,\n businessUserActionRetailErrorMsg: error.message\n });\n });\n }\n };\n\n // _createBusinessPartner: attempts to convert input values(IUserFormItem) to a new user(BusinessPartnerUser)\n private readonly _createBusinessPartner = (inputs: IUserFormItem[]): BusinessPartnerUser => {\n const newUser: BusinessPartnerUser = { ...this.state.selectedUserData! };\n\n inputs.forEach(input => {\n // Deals with input values need need to be converted into numbers\n if (input.id === InputID.SpendingLimit) {\n newUser[input.id] = Number.parseFloat(input.value) || 0;\n } else {\n newUser[input.id] = input.value;\n }\n });\n\n return newUser;\n };\n\n // _handleEditIcon: converts the table row data(ITableItemProps[]) to input fields(IUserFormItem) and opens the edit form\n private readonly _handleEditIcon = (userData: ITableItemProps[], referenceBack?: HTMLButtonElement | null) => {\n // Split full name into first and last\n const possibleName = userData.find(cell => {\n return cell.id === 'Name';\n });\n const fullName = (possibleName && (possibleName.value as string)) || '';\n const lastSpaceIndex = fullName.lastIndexOf(' ');\n const firstName = fullName.substring(0, lastSpaceIndex);\n\n const lastName = fullName.substring(lastSpaceIndex + 1);\n\n // Create clone of formItems, map users information, update state\n const { formItems } = this.state;\n const newForm = formItems;\n\n newForm.forEach(input => {\n switch (input.id) {\n case InputID.FirstName:\n input.value = firstName;\n break;\n case InputID.LastName:\n input.value = lastName;\n break;\n case InputID.Email: // Email can never be null/undefined as it is a required field\n input.isDisabled = true;\n const possibleCell = userData.find(cell => {\n return input.id === cell.id;\n });\n input.value = (possibleCell && (possibleCell.value as string)) || '';\n break;\n default:\n const dataCell = userData.find(cell => {\n return input.id === cell.id;\n });\n input.value = (dataCell && (dataCell.value as string)) || '';\n }\n });\n\n this.setState({\n formItems: newForm,\n isFormActive: true,\n referenceBack,\n formType: FormType.Edit,\n isModalOpen: true,\n hasFormError: false,\n hasActionError: false,\n selectedUserData: (userData[0] as IUserTableItemProps).user\n });\n };\n\n // _handleDeleteIcon: opens removeUser confirmation window\n private readonly _handleDeleteIcon = (userData: ITableItemProps[], referenceBack?: HTMLButtonElement | null) => {\n const newUser: BusinessPartnerUser = { ...(userData[0] as IUserTableItemProps).user };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const displayedUserData: any = {};\n\n userData.forEach((cell: ITableItemProps) => {\n if (cell.id === 'Name') {\n // Split full name into first and last\n const fullName = cell.value as string;\n const lastSpaceIndex = fullName.lastIndexOf(' ');\n displayedUserData.FirstName = fullName.substring(0, lastSpaceIndex);\n\n displayedUserData.LastName = fullName.substring(lastSpaceIndex + 1);\n } else if (cell.type === TableDataType.Price) {\n displayedUserData[cell.id] = this.props.context.cultureFormatter.formatCurrency(cell.value as string);\n } else {\n displayedUserData[cell.id] = cell.value;\n }\n });\n\n this.setState({\n displayedUserData,\n referenceBack,\n selectedUserData: newUser,\n formType: FormType.Remove,\n isModalOpen: true,\n hasActionError: false,\n isFormActive: false\n });\n };\n\n // _handleViewDetails: opens user details window\n private readonly _handleViewDetails = (userData: ITableItemProps[]) => {\n const newUser: BusinessPartnerUser = { ...(userData[0] as IUserTableItemProps).user };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const displayedUserData: any = {};\n\n userData.forEach((cell: ITableItemProps) => {\n if (cell.id === 'Name') {\n // Split full name into first and last\n const fullName = cell.value as string;\n const lastSpaceIndex = fullName.lastIndexOf(' ');\n displayedUserData.FirstName = fullName.substring(0, lastSpaceIndex);\n\n displayedUserData.LastName = fullName.substring(lastSpaceIndex + 1);\n } else if (cell.type === TableDataType.Price) {\n displayedUserData[cell.id] = this.props.context.cultureFormatter.formatCurrency(cell.value as string);\n } else {\n displayedUserData[cell.id] = cell.value;\n }\n });\n\n this.setState({\n displayedUserData,\n selectedUserData: newUser,\n formType: FormType.View,\n isModalOpen: true,\n isFormActive: false\n });\n };\n\n // _handleRemoveUserButton: triggered on confirmation of removing a user.\n private readonly _handleRemoveUserButton = () => {\n // TODO\n const { context } = this.props;\n const { selectedUserData: deleteUserData } = this.state;\n\n if (deleteUserData) {\n deleteOrganizationUser(new DeleteOrganizationUserInput(deleteUserData), context.actionContext)\n .then(() => {\n window.location.reload(false);\n this.setState({\n formType: FormType.None,\n isModalOpen: false\n });\n })\n .catch(error => {\n context.telemetry.trace(error);\n this.setState({\n hasActionError: true\n });\n });\n }\n };\n\n private readonly callbackRemoveButton = () => {\n this._handleRemoveUserButton();\n };\n\n // _renderUserDetails: creates the remove/view form props\n private _renderUserDetails(): IFormViewProps {\n const { resources } = this.props;\n const { formType, displayedUserData, hasActionError } = this.state;\n const {\n businessUserRemoveModalHeaderText,\n businessUserRemoveModalDescription,\n businessUserViewModalHeaderText,\n businessUserCancelButtonText,\n businessUserCancelRemoveUserButtonText,\n businessUserRemoveUserButtonText,\n businessUserErrorUpdatingUsersMessage\n } = resources;\n\n const formClassName = `${this.moduleClassName}__form`;\n const typeClassName = formType === FormType.Remove ? 'type-remove' : 'type-view';\n const handleRemoveButton = this.callbackRemoveButton;\n\n return {\n modalClassName: classnames(`${this.moduleClassName}__modal`, typeClassName),\n FormWrapper: {\n className: formClassName\n },\n modalHeading: formType === FormType.Remove ? businessUserRemoveModalHeaderText : businessUserViewModalHeaderText,\n modalDescription: formType === FormType.Remove && (\n

{businessUserRemoveModalDescription}

\n ),\n selectedUser: displayedUserData,\n buttons: [\n formType === FormType.Remove && (\n \n {businessUserRemoveUserButtonText}\n \n ),\n \n ],\n errorMessage: [\n hasActionError && (\n \n )\n ],\n resources\n };\n }\n\n // _renderUserForm: creates the add/edit form props\n private _renderUserForm(): IFormViewProps {\n const { resources } = this.props;\n const { formType, formItems, hasFormError, hasActionError, isReady, businessUserActionRetailErrorMsg } = this.state;\n const {\n businessUserEditUserFormHeadingText,\n businessUserAddUserFormHeadingText,\n businessUserSaveButtonArialabel,\n businessUserSaveButtonText,\n businessUserCancelButtonArialabel,\n businessUserCancelButtonText,\n businessUserFieldIncorrectErrorText,\n businessUserActionErrorText,\n businessUserAllFieldsRequiredMessage,\n asteriskAfterLabel\n } = resources;\n\n const formClassName = `${this.moduleClassName}__form`;\n const typeClassName = formType === FormType.Add ? 'type-add' : 'type-edit';\n\n return {\n modalClassName: classnames(`${this.moduleClassName}__modal`, typeClassName),\n FormWrapper: {\n className: formClassName\n },\n modalHeading: formType === FormType.Add ? businessUserAddUserFormHeadingText : businessUserEditUserFormHeadingText,\n modalDescription: formType === FormType.Add && (\n

{businessUserAllFieldsRequiredMessage}

\n ),\n inputs: renderInputSection(formItems, `${formClassName}-item`, asteriskAfterLabel, this._onInputChange),\n buttons: [\n ,\n \n ],\n errorMessage: [\n hasFormError && (\n \n ),\n hasActionError && (\n \n )\n ],\n resources\n };\n }\n\n // _onInputChange: updates the fomrItems state on every input change\n private readonly _onInputChange = (event: React.ChangeEvent): void => {\n const newForm = this.state.formItems;\n\n newForm.forEach(item => {\n if (item.id === event.target.id) {\n item.value = event.target.value;\n }\n });\n\n // Update state object with latest values and check if form is ready\n // TODO: remove !refresh\n this.setState(prev => ({\n refresh: !prev.refresh,\n isReady: this._isFormReady(),\n formItems: newForm,\n hasFormError: false,\n hasActionError: false\n }));\n };\n\n // _isFormReady: checks whether the current values in the input fields are valid for submission, this will also disable/enable the submit button.\n private readonly _isFormReady = (): boolean => {\n const { formItems } = this.state;\n\n for (const formItem of formItems) {\n // Will return TRUE if:\n // - input field is required and EMPTY\n // OR\n // - pattern provided and value does not match pattern\n // OR\n // - if spendingLimit input --> make sure value can be parsed into an NUMBER\n if (formItem.isRequired && formItem.value.length === 0) {\n return false;\n } else if (formItem.pattern !== undefined && formItem.value.match(formItem.pattern) === null) {\n return false;\n } else if (formItem.id === InputID.SpendingLimit && formItem.value !== '' && isNaN(Number.parseFloat(formItem.value))) {\n this.setState({\n hasFormError: true\n });\n return false;\n }\n }\n\n return true;\n };\n\n private readonly _formatPrice = (price: number): string => {\n return this.props.context.cultureFormatter ? this.props.context.cultureFormatter.formatCurrency(price) : price.toString();\n };\n\n private readonly _getCurrentUrl = (reqContext: IRequestContext): URL => {\n if (MsDyn365.isBrowser) {\n return new URL(window.location.href);\n }\n\n // NOTE: Typing on requestURL is incorrect\n if (reqContext.url.requestUrl.href) {\n return new URL(reqContext.url.requestUrl.href);\n }\n return new URL(reqContext.url.requestUrl.href);\n };\n\n private _updateViewport(): void {\n this._viewport = this._getViewport();\n }\n\n private readonly _getViewport = (): GridSize => {\n const { context } = this.props;\n\n // Always render in mobile viewport on a mobile device\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (MsDyn365.isBrowser && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n\n return 'xs';\n };\n\n private readonly _toggleStatementRequestDropdown = (): void => {\n this.setState({\n isStatementRequestAdminDropdownOpen: !this.state.isStatementRequestAdminDropdownOpen\n });\n };\n\n private readonly _updateFromDate = (newFromDate: string) => {\n this.setState({\n statementRequestFromDateString: newFromDate\n });\n };\n\n private readonly _updateToDate = (newToDate: string) => {\n this.setState({\n statementRequestToDateString: newToDate\n });\n };\n\n private readonly _showRequestStatementModal = (isFullOrg: boolean) => {\n this.setState({\n statementRequestFullOrg: isFullOrg,\n isStatementRequestModalOpen: true\n });\n };\n\n private readonly _promoteToSeller = () => {\n const promoteToSellerUrl = getUrlSync('businessPartnerPromotion', this.props.context.actionContext);\n if (promoteToSellerUrl && MsDyn365.isBrowser) {\n window.location.href = promoteToSellerUrl;\n }\n };\n\n private readonly _requestStatement = () => {\n const customer = this.props.data.customerInformation.result!;\n const businessPartnerUsers = this.props.data.users.result!;\n\n const currentUser = businessPartnerUsers.find(element => element.Email === customer.Email);\n const B2BUserId = this._getB2BUserId(currentUser);\n\n const statementRequest: AccountStatementRequest = {\n FromDate: new Date(this.state.statementRequestFromDateString),\n ToDate: new Date(this.state.statementRequestToDateString),\n IsForFullOrganization: this.state.statementRequestFullOrg,\n RequestedUserId: B2BUserId,\n RequestingUserEmail: customer.Email,\n DeliveryTypeValue: BusinessPartnerOperationDeliveryType?.Email || 1\n };\n\n const context = { callerContext: this.props.context.actionContext };\n\n BusinessPartnerUsersDataActions.requestAccountStatementAsync(context, B2BUserId, statementRequest);\n\n this._closeStatementRequestModal();\n };\n\n private readonly _getB2BUserId = (currentUser: BusinessPartnerUser | undefined) => {\n if (this.state.statementRequestFullOrg || !this.state.selectedUserData) {\n return currentUser ? currentUser.B2BUserId : '';\n }\n return this.state.selectedUserData.B2BUserId;\n };\n\n private readonly _closeStatementRequestModal = () => {\n this.setState({\n isStatementRequestModalOpen: false\n });\n this.statementRequestButtonReference.current?.focus();\n };\n\n private readonly _onSelectRow = (records: ITableRowProps[]) => {\n const selectedRow = records.find(rowProps => rowProps.isSelected);\n\n this.setState({\n selectedUserData: selectedRow ? (selectedRow.row[0] as IUserTableItemProps).user : undefined\n });\n };\n}\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListViewProps, IFormViewProps, InputID } from './business-organization-list';\nimport { IBusinessFormItem } from './components/small-components';\n\nconst BusinessFormItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst BusinessUserForm: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\n\n const modalBody = (\n <>\n {modalDescription}\n \n {inputs &&\n inputs.map((item: IBusinessFormItem) => {\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n \n );\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst BusinessUserDetails: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, selectedUser, buttons, errorMessage, resources, toggle } = props;\n let modalBody = null;\n\n if (!selectedUser) {\n modalBody = errorMessage;\n } else {\n const { FirstName, LastName } = selectedUser;\n const userFullName = `${FirstName} ${LastName}`;\n\n modalBody = (\n <>\n {modalDescription}\n \n \n {userFullName}\n \n {Object.keys(selectedUser).map((data, index) => {\n if (data === InputID.FirstName || data === InputID.LastName) {\n return null;\n }\n const label = resources[`table${data}HeadingText`] || data;\n return (\n \n {label}\n {': '}\n {selectedUser[data]}\n \n );\n })}\n \n \n );\n }\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst _getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\n switch (type) {\n case 'ADD':\n case 'EDIT':\n return ;\n case 'VIEW':\n case 'REMOVE':\n return ;\n default:\n return null;\n }\n};\n\nconst _renderModal = (\n className: string,\n isModalOpen: boolean,\n headingSection: React.ReactNode,\n bodySection: React.ReactNode,\n footerSection: React.ReactNode,\n toggleModal?: () => void\n) => {\n return (\n \n {headingSection}\n {bodySection}\n {footerSection}\n \n );\n};\n\nconst BusinessOrganizationList: React.FC = props => {\n const {\n OrganizationUserList,\n moduleContainer,\n heading,\n noUsersText,\n addUserButton,\n organizationListTable,\n form,\n formType,\n toggleModal,\n requestAccountStatementButton,\n requestStatementModal\n } = props;\n\n const ButtonList: React.ReactNode = (\n \n {addUserButton}\n {requestAccountStatementButton}\n \n );\n\n if (noUsersText) {\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {noUsersText}\n \n \n );\n }\n\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {organizationListTable}\n \n {form && _getForm(formType, form, toggleModal)}\n \n );\n};\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { InputType } from '../business-organization-list';\n\nexport interface IBusinessForm {\n FormWrapper: INodeProps;\n message?: React.ReactNode;\n items: IBusinessFormItem[];\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n}\n\nexport interface IBusinessFormItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IBusinessFormInput {\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IUserFormItem {\n id: string;\n type: InputType;\n label: string;\n value: string;\n maxChars?: string;\n isRequired: boolean;\n pattern?: string;\n isDisabled?: boolean;\n customClass?: string;\n fieldReference?: React.RefObject;\n}\n\nexport interface IBusinessFormInputProps {\n id?: string;\n type: string;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n isRequired: boolean;\n isDisabled?: boolean;\n placeholder?: string;\n fieldReference?: React.RefObject;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport const FormInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n isRequired,\n isDisabled,\n onChange,\n fieldReference,\n placeholder\n}) => (\n \n);\n\nexport interface IBusinessFormLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n asteriskText: string;\n}\n\nexport const FormLabel: React.FC = ({ id, forId, className, text, asteriskText }) => (\n \n);\n\nexport interface IBusinessFormButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nexport const FormButton: React.FC = ({ id, className, text, ariaLabel, telemetryContent, disabled, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport interface IBusinessFormErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nexport const FormFieldError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHeader,\n IList,\n IOrderHistoryViewProps,\n IOrderInformation,\n ISalesOrder\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderHistoryOrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n channelName,\n createdDate,\n count,\n amount,\n channelReferenceId\n}) => (\n \n {channelName}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const OrderHistoryGroupDelivery: React.FC = ({\n deliveryProps,\n heading,\n count,\n processing,\n address,\n trackingInfo\n}) => (\n \n {heading}\n {count}\n {processing}\n {address}\n {trackingInfo}\n \n);\n\nexport const OrderHistoryGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n {salesLine.salesLine}\n ))}\n \n )}\n \n);\n\nexport const OrderHistoryGroups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderHistoryHeader: React.FC = ({ headerProps, heading, orderCountLabel, extraActions }) => (\n \n {heading}\n {orderCountLabel}\n {extraActions}\n \n);\n\nexport const OrderHistorySalesOder: React.FC = ({\n salesOrderProps,\n orderInfomation,\n groups,\n orderDetailsLink,\n expandProductsButton\n}) => (\n \n {orderInfomation && }\n {groups && }\n {expandProductsButton}\n {orderDetailsLink}\n \n);\n\nexport const OrderHistoryList: React.FC = ({ listProps, salesOrders }) => (\n \n {salesOrders && salesOrders.map((salesOrder, index) => )}\n \n);\n\nconst OrderHistoryView: React.FC = ({\n orderHistoryProps,\n header,\n alert,\n loading,\n emptyMessage,\n backToShoppingLink,\n list,\n table,\n moreButton\n}) => (\n \n {header && }\n {loading}\n {alert && (\n <>\n {alert}\n {backToShoppingLink}\n \n )}\n {emptyMessage && (\n \n {emptyMessage}\n {backToShoppingLink}\n \n )}\n {list && }\n {table}\n {moreButton && moreButton}\n \n);\n\nexport default OrderHistoryView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ISocialShareConfig, ISocialShareProps, orientation } from './social-share.props.autogenerated';\n\nexport interface ISocialShareViewProps extends ISocialShareProps {\n isConsentGiven: boolean;\n SocialShareItemElements: React.ReactNode[];\n SocialShare: IModuleProps;\n SocialShareList: INodeProps;\n SocialShareItem: INodeProps;\n SocialShareItemCustomization: INodeProps;\n}\n\n/**\n *\n * SocialShare component.\n * @extends {React.PureComponent>}\n */\nclass SocialShare extends React.PureComponent> {\n constructor(props: ISocialShareProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { slots } = this.props;\n\n if (!slots || !ArrayExtensions.hasElements(slots.socialShareItems)) {\n this.props.context.telemetry.error('No social media is enable for sharing, module wont render');\n return null;\n }\n\n const isConsentGiven =\n this.props.context.request &&\n this.props.context.request.cookies &&\n this.props.context.request.cookies.isConsentGiven &&\n this.props.context.request.cookies.isConsentGiven();\n\n if (!isConsentGiven && !this.props.context.request.params.isEditor) {\n return null;\n }\n\n const viewprops = {\n ...this.props,\n SocialShare: {\n moduleProps: this.props,\n className: classnames('ms-social-share', this.props.config.className)\n },\n SocialShareList: {\n 'data-title': this.props.config.caption,\n className: `ms-social-share-ul ${this.props.config.caption && 'caption'} ${\n this.props.config.orientation === orientation.vertical ? 'vertical' : ''\n }`,\n tag: 'ul',\n role: 'group'\n },\n SocialShareItem: {\n className: 'ms-social-share-li',\n tag: 'li',\n tabIndex: '0',\n role: 'link'\n },\n SocialShareItemElements: slots && slots.socialShareItems.length > 0 && slots.socialShareItems\n };\n\n return this.props.renderView(viewprops) as React.ReactElement;\n }\n}\n\nexport default SocialShare;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ISocialShareViewProps } from './social-share';\n\nexport const SocialShareView: React.FC = props => {\n const { SocialShareList, SocialShareItemElements, SocialShareItem, SocialShare } = props;\n if (SocialShareItemElements.length === 0) {\n props.context.telemetry.error('Social media list is empty, module wont render');\n return null;\n }\n return (\n \n \n {SocialShareItemElements.map((SocialShareElement: ReactNode, index: number) => {\n return (\n \n {SocialShareElement}\n \n );\n })}\n \n \n );\n};\n\nexport default SocialShareView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IBusinessFormItem,\n IBusinessOrganizationListViewProps,\n IFormViewProps,\n InputID\n} from '@msdyn365-commerce-modules/business-organization-list';\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBusinessOrganizationListProps,\n IBusinessOrganizationListResources\n} from '../definition-extensions/business-organization-list.ext.props.autogenerated';\n\n/**\n * Business Form Item component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessFormItemComponent: React.FC = (props: IBusinessFormItem) => {\n const { wrapper, label, errorMessage, input } = props;\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\n/**\n * To render modal.\n * @param className - The modal classname.\n * @param isModalOpen - The boolean for modal open status.\n * @param headingSection - The heading section of modal.\n * @param bodySection - The body section of modal.\n * @param footerSection - The footer section of modal.\n * @param toggleModal - The toggle modal callback function.\n * @returns The JSX Element.\n */\nconst renderModal = (\n className: string,\n isModalOpen: boolean,\n headingSection: React.ReactNode,\n bodySection: React.ReactNode,\n footerSection: React.ReactNode,\n toggleModal?: () => void\n) => {\n return (\n \n {headingSection}\n {bodySection}\n {footerSection}\n \n );\n};\n\n/**\n * Business User Form component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessUserFormComponent: React.FC = (props: IFormViewProps) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\n\n const modalBody = (\n <>\n {modalDescription}\n \n {inputs &&\n inputs.map((item: IBusinessFormItem) => {\n return ;\n })}\n {errorMessage?.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n \n );\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\n/**\n * Selected user interface.\n */\ninterface ISelectedUser {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n FirstName?: string;\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n LastName?: string;\n}\n\n/**\n * Business User Details component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessUserDetailsComponent: React.FC = (props: IFormViewProps) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { modalClassName, FormWrapper, modalHeading, modalDescription, buttons, errorMessage, resources, toggle } = props;\n let modalBody = null;\n const selectedUser = props.selectedUser as ISelectedUser | string;\n\n if (!selectedUser) {\n modalBody = errorMessage;\n } else {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { FirstName, LastName } = selectedUser as ISelectedUser;\n const userFullName = `${FirstName as string} ${LastName as string}`;\n\n modalBody = (\n <>\n {modalDescription}\n \n \n {userFullName}\n \n {Object.keys(selectedUser).map((data, index) => {\n if (data === InputID.FirstName || data === InputID.LastName) {\n return null;\n }\n const label = (resources[`table${data}HeadingText`] as string) || data;\n return (\n \n {label}\n {': '}\n {selectedUser[data]}\n \n );\n })}\n {errorMessage?.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n \n );\n }\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\n/**\n * To get form.\n * @param type - The type of form.\n * @param formProps - The form props.\n * @param toggleModal - The toggle modal callback function.\n * @returns The JSX Element.\n */\nconst getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\n switch (type) {\n case 'ADD':\n case 'EDIT':\n return ;\n case 'VIEW':\n case 'REMOVE':\n return ;\n default:\n return null;\n }\n};\n\n/**\n * Business Organization List component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessOrganizationListComponent: React.FC> = props => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const {\n OrganizationUserList,\n moduleContainer,\n heading,\n noUsersText,\n addUserButton,\n organizationListTable,\n form,\n formType,\n toggleModal,\n requestAccountStatementButton,\n requestStatementModal\n } = props;\n\n const buttonList: React.ReactNode = (\n \n {addUserButton}\n {requestAccountStatementButton}\n \n );\n\n if (noUsersText) {\n return (\n \n \n {heading}\n \n \n {props.resources.headingForEmptyUserOrganizationList}\n \n \n {props.resources.textForEmptyUserOrganizationList}\n \n {buttonList}\n \n {requestStatementModal}\n {noUsersText}\n \n \n );\n }\n\n return (\n \n \n {heading}\n {buttonList}\n {requestStatementModal}\n {organizationListTable}\n \n {form && getForm(formType, form, toggleModal)}\n \n );\n};\n\nexport default BusinessOrganizationListComponent;\n"],"names":["React","secondsToTime","seconds","undefined","hours","Math","floor","ampm","divisorForMinutes","getShortTimeString","day","resources","days","monday","tuesday","wednesday","thursday","friday","saturday","sunday","getFullTimeString","mondayFull","tuesdayFull","wednesdayFull","thursdayFull","fridayFull","saturdayFull","sundayFull","buildHoursDisplayInfo","startDay","endDay","hoursInfo","startDayShort","startDayFull","endDayShort","endDayFull","timeRange","shouldMergeLines","firstLine","secondLine","isClosed","openTime","closeTime","getStoreHoursData","storeHours","dateForLookup","get","buildStoreHoursString","closedText","buildStoreHours","storeHoursList","mondayHours","tuesdayHours","wednesdayHours","thursdayHours","fridayHours","saturdayHours","sundayHours","periodStart","periodEnd","push","buildDistanceString","distance","preferredDistanceUnit","isLocationDisabled","StoreSelectorLocationLineItemComponent","props","_storeName","_storeName2","location","index","storePageLinksCountries","shouldShowStorePageLinks","baseUrl","baseClassName","storeName","OrgUnitName","retailer","startsWith","slice","storeUrl","toLowerCase","replace","distanceAsString","Distance","storeAddress","addressParts","Street","StreetNumber","trim","districtBuildingParts","DistrictName","BuildingCompliment","length","join","cityCountyStateParts","City","State","StateName","Country","Zip","formatAddress","phoneNumber","contacts","allPhoneContacts","filter","contact","ContactTypeValue","IsPrivate","ArrayExtensions","hasElements","primaryPhoneContact","find","IsPrimary","Locator","extractPhoneNumber","Contacts","displayStoreHours","hasStoreHoursInfo","RegularStoreHours","OpenFrom","OpenTo","parentClassName","className","storeLabelRetailer","storeLabelVenchi","includes","target","href","rel","goToStoreWebPage","storeHoursHeader","renderStoreHours","scope","map","displayTime","key","JSON","stringify","title","storeOpenFrom","storeOpenTo","StoreSelectorLocationLines","constructor","super","onClickHandler","orgUnitLocation","this","onClick","OrgUnitNumber","_scrollIntoView","selectedLocationDiv","selectedLocationRef","current","parent","parentElement","scrollTop","offsetTop","clientHeight","_mapResources","timeText","storeHoursClosedText","storeHoursMondayText","storeHoursTuesdayText","storeHoursWednesdayText","storeHoursThursdayText","storeHoursFridayText","storeHoursSaturdayText","storeHoursSundayText","storeHoursMondayFullText","storeHoursTuesdayFullText","storeHoursWednesdayFullText","storeHoursThursdayFullText","storeHoursFridayFullText","storeHoursSaturdayFullText","storeHoursSundayFullText","storeCounter","componentDidUpdate","previousProps","selectedStoreLocationId","componentDidMount","locations","_stores","_sortStores","reaction","render","classnames","show","displayList","role","store","_renderStoreLocation","_store$OrgUnitAvailab","OrgUnitAvailability","OrgUnitLocation","selected","ref","StoreHours","toString","telemetryContent","stores","isPreferredStore","value","_value$OrgUnitAvailab","isPreferredStoreEnabled","preferredStoreLocationId","__decorate","observable","observer","StoreSelectorSearchForm","searchBoxRef","searchSectionRef","previousValue","isSearchResultOpened","setScrollPositionToSearch","_this$searchSectionRe","offsetParent","window","scrollTo","top","behavior","_handleInputKeyPress","event","keyCode","KeyCodes","ArrowUp","ArrowDown","activeDescedantValue","getAttribute","_searchTextChanged","async","inputValue","searchTermChanged","_onSubmit","_this$searchBoxRef$cu","preventDefault","blur","performSearch","renderToggleMapButton","toggleButtonText","locatorView","shouldDisplayList","handleButtonClick","onToggleListMapViewState","toggleButtonClass","Object","assign","toggleMapViewAttributes","state","payLoad","getPayloadObject","TelemetryConstant","SearchStore","storeSearchAttributes","getTelemetryAttributes","contentAction","etext","ShowAllStore","ToggleMapView","searchButtonAriaLabel","searchPlaceholderText","viewListText","viewMapText","includeRetailersButtonLabel","id","isMapDisabled","displayRetailers","onDisplayRetailers","locationsMessage","displayIncludeRetailersButton","name","autoComplete","onSubmit","type","searchInputAriaLabel","placeholder","onChange","onKeyUp","color","CustomInput","checked","isChecked","label","StoreSelectorEmptyMessage","_ref","emptyLocationsText","StoreSelectorWaiting","StoreSelectorTermsOfService","_ref2","link","requestContext","onTextChange","editableLink","ariaLabel","linkText","linkUrl","destinationUrl","openInNewTab","Msdyn365","editProps","StoreSelectorFoundLocationsMessage","_ref3","includeRetailers","forSearchBar","shouldDisplayLabel","countRetailers","loc","_loc$OrgUnitAvailabil","countVenchiStores","storeAndRetailersAllCountMessage","storeAllCountMessage","storeDetailsModalHandler","handlers","closeStoreDetailsModal","SelectedStoreComponent","_selectedStore$OrgUni","_selectedStore$OrgUni2","shouldHideStockStatus","isCurrentLocation","isInStock","selectedStore","storeRenderedComponent","canSelectLocation","PickupInStore","PreferredStore","RemovePreferredStore","storeDetailsMain","tag","storeHeader","storeDetailsCloseButton","Button","storeDistance","storeDetailsAvailabilityContainer","currentLocation","onSelected","searchRadiusUnit","StoreSelector","_this$props$config$de","renderSelectedStore","data","storeSelectorStateManager","result","storeLocations","context","selectedStoreIndex","findIndex","selectedStoreResources","currentUrl","request","url","requestUrl","substring","lastIndexOf","storeIndexString","selectedProps","_isCurrentLocation","alreadySelectedLocation","_onOrgUnitLocationSelected","onSetAsPreferredStore","_setPreferredStore","onRemovePreferredStore","_removePreferredStore","_closeStoreDetailModal","config","displayStorePageLinks","storePageLinksContries","handleLinkTextChange","termsOfServiceLink","handleHeadingChange","heading","onShowAllStoresHandler","_getAndUpdateStoreLocation","setState","filteredPickupMode","onDisplayRetailersHandler","displayRetailersValue","onFilterLocations","_location$OrgUnitPick","OrgUnitPickUpDeliveryModes","DeliveryOptions","some","deliveryOption","Code","_attachMapAutoSuggest","autoSuggestOptions","telemetry","actionContext","channel","isMapApiLoaded","autoSuggestManager","Microsoft","Maps","loadModule","callback","options","_objectSpread","countryCode","ChannelCountryRegionISOCode","AutosuggestManager","attachAutosuggest","_onSuggestionSelected","errorCallback","debug","credentials","BingMapsApiKey","_this$props$data$stor","_searchTermChanged","formattedSuggestion","_performSearch","_preferredStore$OrgUn","_preferredStore$OrgUn2","_preferredStore$OrgUn3","storeId","cookies","availabilitiesWithHours","preferredStore","_store$OrgUnitAvailab2","setPreferredStoreLocation","isConsentGiven","Latitude","Longitude","clearPreferredStore","setSelectedStoreLocationId","_setSelectedStore","searchTerm","isSearchInProgress","geoLocate","_updateLocations","latitude","longitude","shouldShowAllStores","_navigator","navigator","geolocation","getCurrentPosition","position","coords","error","PERMISSION_DENIED","isSeeAllStoreValue","timeout","_closeDialog","_storeSelectorStateMa","parentElementRef","focus","closeDialog","_setOrgUnitStoreInformation","moduleId","input","onLocationSelected","Promise","resolve","preferredLocationId","StoreId","storeLocationList","orgUnitStoreInformation","showMapViewLink","isDialog","product","setOrgUnitStoreInformation","catch","message","retailersLookup","distanceUnitValue","SearchRadiusUnit","kilometers","localLatitude","long","lastInlineStoreLocation","lastInlineShownStoreInfo","setLastInlineStoreInfo","getOrgUnitLocationByArea","calRadius","orgUnitLocationsInput","GetOrgUnitLocationsByAreaInput","orgUnitLocations","getOrgUnitLocationsByAreaDataAction","deliveryMode","warning","selectedLocation","defaultIncludeRetailers","getTelemetryObject","telemetryPageName","friendlyName","_this$props$data$stor6","autoSuggestionEnabled","isAutoSuggestionEnabled","_this$props$context","setTimeout","_this$props$data$stor2","isDialogOpen","_this$props$data$stor3","_this$props$data$stor4","_this$props$data$stor5","loadMapApi","BingMapsEnabled","lang","locale","market","_this$props$data$stor7","_this$props$data$stor8","_this$props$context$a","_this$props$data$stor9","when","_this$props$data$stor10","_this$props$data$stor11","_this$props$data$stor12","isSameContext","shouldComponentUpdate","_storeSelectorStateMa2","_this$state$displayRe","_this$state$displayRe2","_storeSelectorStateMa3","app","appConfig","slots","maps","mapSlot","currentViewport","isMobile","variant","VariantType","Browser","isMobileDevice","listMapViewState","canShowLocationView","isMapModuleLoaded","storeSelectorActions","toggleListMapViewState","configHeading","storeLocatorHeaderText","kilometersShortText","milesShortText","locationListProps","_getStoreLocationListProps","locationsMessageForSearch","hasMapSlot","locationsMessageForList","origin","sitePath","viewProps","ModuleProps","moduleProps","classname","autoFocus","fade","isOpen","onClosed","horizontalPosition","verticalPosition","toggle","isMobileView","HeaderContainerProps","HeaderProps","text","onEdit","FooterContainerProps","FooterContainerPropsMaps","SearchBarSectionMapOnlyMobileClassName","BodyContainerProps","bodyWrapperProps","storeResultContainerProps","mapContainerProps","storeDetailsModal","search","showAllStores","onShowAllStores","spinner","locationsList","outOfStockThreshold","enableOutOfStockCheck","enableStockCheck","productPickUpDeliveryOptions","deliveryOptions","shouldShowIndex","noLocationsMessage","terms","headerText","sortLocations","callbacks","getAndUpdateUserLocation","attachMapAutoSuggest","onSuggestionSelected","setPreferredStore","removePreferredStore","setSelectedStore","renderView","storeList","storeLineProps","_createStoreLocationList","_store$OrgUnitAvailab3","selectedStoreLocation","lineResources","locationOpen","openFrom","openTo","Module","Node","layout","HeadingTag","layoutClassNames","layoutNames","wideLayout","compact","getLayoutClassName","AccountLoyalty","cardNumber","joinDate","points","displayJoinDate","displayAppleWallet","displayGoogleWallet","appleWalletBtnImage","googleWalletBtnImage","pointsExpirationReminder","loyaltyTiersLink","walletLoyaltyProgramName","loyaltyTierLabel","loyaltyCardLabel","loyaltyCardLabel_CL","availablePointsLabel","availablePointsLabel_CL_before","availablePointsLabel_CL_after","viewLoyaltyPageText","firstLoyaltyGroup","loyaltyCard","LoyaltyGroups","highestTierId","HighestActiveLoyaltyCardTier","tierName","LoyaltyCardTiers","tier","RecordId","TierId","user_email","user","emailAddress","user_card_number","points_numbers","split","tierClass","apple_wallet_check","src","altText","google_wallet_check","programString","isWideOrCompactLayout","Container","Row","alt","height","endsWith","AadGeneric","moduleClassName","$i2e","$element","insertServiceContent","getElementContent","initialize","nextProps","aadGeneric","aadConainer","aadAPIConainer","AccountCustomerBalanceTile","_initState","hasError","content","ErrorComponent","apiGenericErrorMessage","isCustomerAccountPaymentEnabled","customerResult","allowOnAccountPayment","AllowOnAccountPayment","isB2BSite","isChannelTypeB2B","enableCustomerAccountPayment","nextState","links","Heading","headingTag","isDetailsLinkDisplayed","LinksComponent","account","Balance","CreditLimit","InvoiceAccountBalance","InvoiceAccountCreditLimit","noCreditErrorMessage","accountCreditVerbagePrefix","accountCreditVerbagePostfix","currencyCode","formatCurrency","customerCredit","customerCreditFormatted","toFixed","CreditComponent","verbagePrefix","verbagePostfix","computed","_mapEditableLinks","linkdata","editableLinks","forEach","attributes","additionalProperties","AccountCustomerBalance","requestStatementButtonRef","_showRequestStatementModal","isStatementRequestModalOpen","_toggleModal","_this$requestStatemen","_toggleDropdown","isStatementRequestAdminDropdownOpen","_updateFromDate","newFromDate","statementRequestFromDateString","_updateToDate","newToDate","statementRequestToDateString","_adminShowRequestStatementModal","isFullOrg","statementRequestFullOrg","_requestStatement","_this$props$data$b2bU","_this$requestStatemen2","customer","customerInformation","B2BUserId","b2bUserInformation","statementRequest","FromDate","Date","ToDate","IsForFullOrganization","RequestedUserId","RequestingUserEmail","Email","DeliveryTypeValue","BusinessPartnerOperationDeliveryType","callerContext","BusinessPartnerUsersDataActions","statementRequestMaxDateString","toISOString","canSubmitStatementRequest","_get","creditSummarySectionHeading","accountSectionHeading","backToShoppingText","customerSincePrefix","availableCreditLabel","balanceOwedLabel","creditExcessLabel","requestStatementButtonLabel","modalHeaderLabel","sendToEmailLabel","fromDateLabel","toDateLabel","submitRequestLabel","cancelLabel","myAccountStatementLabel","fullOrganizationLabel","modalAriaLabel","accountNumber","AccountNumber","createdOn","_formatJoinDate","CreatedDateTime","FirstName","LastName","customerAccountBalance","excess","creditExcess","_formatCurrency","availableCredit","balanceOwed","backLink","actionBar","IsB2bAdmin","AdminRequestStatementButton","buttonReference","onRequestStatement","onToggleDropdown","myUserAccountLabel","isDropdownShowing","ActionBar","accountLabels","AccountLabels","accountValues","AccountValues","AvailableCreditComponent","BalanceOwedComponent","CreditExcessComponent","homeButton","BackButton","actions","requestStatementModal","RequestStatementModal","email","isModalOpen","fromDateString","toDateString","onChangeFromDate","onChangeToDate","canSubmitRequest","onSubmitRequest","selectedUser","selectedUserLabel","maxDateString","currency","date","Intl","DateTimeFormat","month","year","format","popoverReference","innerRef","onPromoteToSeller","promoteToSellerLabel","onSelectCustomerAccount","onSelectFullOrg","onSelectPromoteToSeller","requestStatementDropdownString","Random","Guid","generateGuid","Popover","placement","onChangeFromDateEvent","onChangeToDateEvent","onBlurFromDate","ObjectExtensions","isFunction","onBlurToDate","Modal","ModalHeader","ModalBody","htmlFor","onBlur","max","min","ModalFooter","disabled","_ref5","_ref6","_ref7","_ref8","BackToShopping","AccountLoyaltyTile","linkIndex","signUpLinkText","viewLinkText","signUpLinkAriaLabel","viewLinkAriaLabel","accountLoyaltySummary","accountLoyaltyMemberSummary","description","CardNumber","decimalPrecision","RewardPoints","rewardPoint","ActivePoints","DescriptionComponent","AccountProfileEdit","onTextBoxChange","givenName","surname","emailRegex","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","clearInterval","isInitialized","invalidEmailAddressError","obj","PRE","_htmlDecode","ID","PAT","PAT_DESC","required_field","requiredFieldMissingError","verifying_blurb","loadingMessage","EmailRegex","defaultRegex","source","viewState","isShowLoading","accountProfileEdit","loading","modal","modalBody","icon","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","defaultAADConainer","style","display","accountProfileEditLocalAccount","_renderLocalAccount","str","e","document","createElement","innerHTML","childNodes","nodeValue","localAccount","items","_renderInput","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","errorMessage","AccountProfileEditErrorComponent","requiredFieldMissingSummaryError","fieldIncorrectError","buttonsWrapper","buttons","AccountProfileEditButtonComponent","saveButtonAriaLabel","saveButtonText","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","showEmail","emailAddressLabelText","labelText","maxLength","pattern","wrapper","AccountProfileEditLabelComponent","forId","AccountProfileEditInputComponent","AccountProfileEditItem","AccountProfileEditLoading","item","button","LocalAccount","errorClassName","GetMaxLength","parsedMaxLength","Number","parseInt","isNaN","AccountAttributeDataTypeValue","AccountProfileAttributes","isUpdatingAttributes","gotException","attributeClassName","maxIntegerLimit","minIntegerLimit","maxDecimalLimit","minDecimalLimit","maxStringLength","maxVATNumberLength","maxPhoneLength","editAsyncCustomerFeatureName","isEditAsyncCustomerFeatureEnabled","_renderAttributes","_data$featureState","_this$props$accountPr","accountProfileProps","attributeDefinitions","additionalInformationSectionHeading","elements","showAttributes","att","attributeDefinition","attribute","IsHidden","Name","toLocaleLowerCase","_renderAttribute","edit","editAttributes","attributesEditButtonText","attributesSaveButtonText","saveAttributes","attributesCancelButtonText","cancelAttributes","featureState","feature","IsEnabled","disableBtn","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","attributesContainerRef","Text","showPhone","_renderPhone","showVatNumber","_renderVatNumber","attributesSaveExceptionMessage","_enableAttributes","editRef","_saveAttributes","_disableAttributes","phoneSectionHeading","_onPhoneChange","phone","_renderError","vatNumberSectionHeading","_onVatNumberChange","vatNumber","customAttribute","ExtDataType","Value","Integer","Decimal","_renderIntegerDecimalInput","_renderTextInputOrSelect","TrueFalse","_renderBoolean","attributeProps","_getAttributeProps","displayName","_onAttributeChange","IsMandatory","isEnumeration","IsEnumeration","EnumerationDetails","hasNoValue","_onAttributeSelect","option","EnumerationValue","toggleState","arialabel","attributeToggleButtonAriaLabel","ariaPressed","toggleValue","TextComponent","toggleDisableText","_onAttributeCheck","toggleEnableText","attributeName","attributeError","StringExtensions","isNullOrWhitespace","attributePayloadData","isMandatory","MsDyn365","isBrowser","getElementsByClassName","_setFocus","initialAttributes","initialPhone","initialVatNumber","currentTarget","selectedOptions","selectedIndex","_getAttributes","showAttributesArray","custmerAttributes","Attributes","showAttribute","defaultValue","AttributeValue","DataTypeValue","IntegerValue","String","DecimalValue","StringValue","BooleanValue","keys","_addOrUpdateAttribute","hasValue","entries","payloadData","dataTypeValue","decimalValue","typeError","attributeInputTypeErrorText","lowerBoundValue","upperBoundValue","rangeError","attributeInputRangeErrorText","attributeInputValueExceedsMaximumErrorText","attributeInputValueExceedsMinimumErrorText","integerValue","trimValue","attributeInputStringMaxLengthErrorText","textValue","booleanValue","attributeInputMandatoryErrorText","splice","Attribute","recordId","Units","ExtensionProperties","NameTranslations","KeyName","Phone","VATNumber","VatNumber","updateCustomerAttributesInput","apiSettings","updateCustomerAttributes","initialCustomerAttributes","exception","element","_buildPayloadData","defaultIntegerValue","DefaultValue","LowerBound","UpperBound","defaultDecimalValue","defaultStringValue","defaultBooleanValue","_getCustomerPhoneAndVatNumber","isDisabled","AccountProfile","isUpdatingPreference","handleEmailHeadingChange","emailAddressSectionHeading","handleNameHeadingChange","nameSectionHeading","editButtonText","onClickEventHandler","_updateAccountPersonalization","_renderPreference","sectionHeading","enableAriaLabel","isOptOut","accountPreference","buttonWrapper","buttonYesText","buttonNoText","onUpdateAccountPreference","isOptOutPersonalization","preferenceType","OptOutWebActivityTracking","updateCustomerPersonalizationInput","OptOutPersonalization","updateCustomerPersonalization","_renderCustomerAttributes","editButtonAriaLabel","invalidAsyncCustomerState","shouldRenderAttributes","editLink","infoMessageBar","accountProcessingPendingInfoMessage","accountProfileWrapper","emailSection","_renderEmailSection","nameSection","_renderNameSection","getDescription","preferenceSection","_renderPreferenceSection","customerAttributesWrapper","customerAttributesSection","editProfileUrl","AccountProfileItem","personalizationDescription","personalizationEnableButtonAriaLabel","webTrackingDescription","webTrackingEnableButtonAriaLabel","preferencesSectionHeading","personalizationSectionHeading","webTrackingSectionHeading","enableDataAnalytics","features","extraPreferences","accountPreferences","personalization","AccountPreferencesSection","AccountPreferenceSection","preferenceSecton","AccountProfileSection","AccountWelcomeTile","accountInfo","accountInformation","AccountWishlistTile","accountWishlistTileDescription","wishlists","wishlistsCount","CommerceListLines","defaultClassName","B2bRequestsTileLinks","B2bRequestsTile","b2bRequestsTile","SignUpText","LoyaltySignUp","handleMemberHeadingChange","memberHeading","_issueLoyalty","isAuthenticated","clicked","IssueLoyaltyInput","issueLoyalty","then","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","_data$customerInforma","signInUrl","termsUrl","loyaltyJoinUrl","signInurl","completeClass","hasLoyaltyAccount","CardTenderTypeValue","params","isEditor","status","signInLink","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","detailsLink","termsLink","loyaltyTermsLinkText","LoyaltyTermsModal","LoyaltyTermsCancel","loyaltyTermCancelAttributes","LoyaltyTermsSubmit","loyaltyTermSubmitAttributes","LoyaltyTermsAgree","loyaltyTermCheckboxAttributes","onToggle","applicationNode","returnFocusRef","returnRef","modalHeader","modalFooter","cancelButton","cancelLoyaltyTermsText","submitButton","joinLoyaltyTermsText","loyaltyTermsHeading","agreeSection","checkbox","onCheck","agreeText","loyaltyAgreeToTerms","LoyaltyTerms","_toggle","bind","_submit","_checkboxChecked","toggleRef","isJoining","qsps","qsp","splitQsp","hideToggle","serviceTerms","modalToggle","joinLoyaltytermsToggleText","card","redirectToLoyalty","getUrlSync","getLoyaltyCardAsync","fullCard","update","GetLoyaltyCardInput","PasswordReset","newPasswordRegex","reenterPasswordRegex","PasswordRegex","passwordReset","PasswordResetLoadingIconComponent","PasswordResetLoadingMessageComponent","passwordResetLocalAccount","newPasswordLabelText","confirmPasswordLabelText","PasswordResetErrorComponent","passwordEntryMismatchError","PasswordResetButtonComponent","PasswordResetLabelComponent","PasswordResetInputComponent","PasswordResetItem","PasswordResetLoading","FormType","InputType","InputID","renderInputSection","inputs","asteriskAfterLabel","onInputChange","customClass","maxChars","isRequired","fieldReference","FormLabel","asteriskText","FormFieldError","FormInput","BusinessOrganizationList","_this$props$config","BusinessFormDefaultInputs","businessUserFirstNameLabelText","businessUserLastNameLabelText","businessUserEmailAddressLabelText","SpendingLimit","businessUserSpendingLimitLabelText","delayFocus","formChildReference","userFormEditReference","userFormDeleteReference","_handleAddUserButtonClicked","newForm","formItems","newUser","isFormActive","formType","Add","referenceBack","addUserButtonReference","hasFormError","hasActionError","selectedUserData","_handleAddEditFormSaveButton","updatedUser","_createBusinessPartner","Edit","editOrganizationUser","EditOrganizationUserInput","reload","trace","addOrganizationUser","AddOrganizationUserInput","businessUserActionRetailErrorMsg","parseFloat","_handleEditIcon","userData","possibleName","cell","fullName","lastSpaceIndex","firstName","lastName","possibleCell","dataCell","_handleDeleteIcon","displayedUserData","TableDataType","Price","cultureFormatter","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","None","callbackRemoveButton","_onInputChange","prev","refresh","isReady","_isFormReady","formItem","match","_formatPrice","price","_getCurrentUrl","reqContext","URL","_getViewport","device","Type","innerWidth","gridSettings","xs","w","sm","md","lg","_toggleStatementRequestDropdown","_promoteToSeller","promoteToSellerUrl","currentUser","users","_getB2BUserId","_closeStatementRequestModal","_this$statementReques","statementRequestButtonReference","_onSelectRow","records","selectedRow","rowProps","isSelected","row","mobileExcludedColumns","Status","_viewport","_updateViewport","submitButtonReference","addedReference","selectedUserName","businessUserSelectedUserDisplayName","addEventListener","componentWillUnmount","removeEventListener","_this$formChildRefere","_this$submitButtonRef","_this$props$data$cust","showBecomeSellerLink","businessUserActionButtonText","businessUserAddUserButtonText","businessUserLoadingMessage","businessUserEmptyListMessage","businessUserErrorGettingUsersMessage","userAccountStatementLabel","promoteToSellerActionLabel","requestAccountStatementActionLabel","requestOrganizationStatementActionLabel","statementRequestModalHeaderLabel","hasUsers","AddUser","addUserAttributes","errorProps","OrganizationUserList","moduleContainer","addUserButton","noUsersText","modalState","organizationListTable","Table","_createTableProps","toggleModal","form","_renderUserForm","_renderUserDetails","requestAccountStatementButton","selectedOrganizationLabel","tableSort","showPagination","paginationItemPerPage","businessUserPaginationNextButtonText","businessUserPaginationPreviousButtonText","businessUserEditButtonText","businessUserViewUserButtonText","businessUserDeleteButtonText","businessUserPaginationAriaLabel","columnSortAriaLabel","tableData","_createTableItems","headings","sortable","rows","editLinkText","deleteLinkText","editLinkTooltip","deleteLinkTooltip","viewLinkTooltip","enableToModify","actionLinkText","showCheckBoxes","isSortable","resourcePrefix","minifyActions","excludedColumns","paginationProperty","skipCount","query","skip","itemPerPage","prevText","nextText","paginationText","isSingleSelectOnly","tableAriaLabel","tableTabIndex","businessUserSelectCheckBoxAriaLabelText","sortByAscending","sortByDescending","onDelete","onView","formatPrice","checkBoxCallback","businessUserActiveStatusText","businessUserPendingStatusText","businessUserRemovedStatusText","usersList","statusString","StatusValue","FullName","buttonReferences","delete","_this$state$reference","businessUserRemoveModalHeaderText","businessUserRemoveModalDescription","businessUserViewModalHeaderText","businessUserCancelButtonText","businessUserCancelRemoveUserButtonText","businessUserRemoveUserButtonText","businessUserErrorUpdatingUsersMessage","formClassName","typeClassName","handleRemoveButton","modalClassName","FormWrapper","modalHeading","modalDescription","businessUserEditUserFormHeadingText","businessUserAddUserFormHeadingText","businessUserSaveButtonArialabel","businessUserSaveButtonText","businessUserCancelButtonArialabel","businessUserFieldIncorrectErrorText","businessUserActionErrorText","businessUserAllFieldsRequiredMessage","FormButton","BusinessFormItem","BusinessUserForm","_renderModal","BusinessUserDetails","userFullName","headingSection","bodySection","footerSection","wrapClassName","ButtonList","_getForm","formProps","_ref4","OrderHistoryOrderInfomation","orderInformationProps","salesId","receiptId","channelName","createdDate","count","amount","channelReferenceId","OrderHistoryGroupDelivery","deliveryProps","processing","address","trackingInfo","OrderHistoryGroup","groupProps","delivery","salesLinesProps","salesLines","salesLine","LineId","OrderHistoryGroups","groupsProps","groups","group","OrderHistoryHeader","headerProps","orderCountLabel","extraActions","OrderHistorySalesOder","salesOrderProps","orderInfomation","orderDetailsLink","expandProductsButton","OrderHistoryList","listProps","salesOrders","salesOrder","orderHistoryProps","header","alert","emptyMessage","backToShoppingLink","list","table","moreButton","SocialShare","socialShareItems","viewprops","SocialShareList","caption","orientation","SocialShareItem","tabIndex","SocialShareItemElements","SocialShareView","SocialShareElement","BusinessFormItemComponent","renderModal","BusinessUserFormComponent","BusinessUserDetailsComponent","buttonList","headingForEmptyUserOrganizationList","textForEmptyUserOrganizationList","getForm"],"sourceRoot":""}