{"version":3,"file":"static/js/17.9edde4fc76b79d04efdb.chunk.js","mappings":"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","sources":["webpack://lds-commerce/./src/themes/fabrikam/views/search.view.tsx?af4e","webpack://lds-commerce/./src/modules/accordion-item/accordion-item.tsx?36f7","webpack://lds-commerce/./src/modules/accordion-item/accordion-item.view.tsx?a302","webpack://lds-commerce/./src/modules/accordion/accordion.tsx?78b1","webpack://lds-commerce/./src/modules/accordion/accordion.view.tsx?8c7b","webpack://lds-commerce/./src/modules/aad-generic/aad-generic.tsx?c076","webpack://lds-commerce/./src/modules/aad-generic/aad-generic.view.tsx?b418","webpack://lds-commerce/./src/modules/account-address-tile/account-address-tile.tsx?2f8c","webpack://lds-commerce/./src/modules/account-address-tile/account-address-tile.view.tsx?ac91","webpack://lds-commerce/./src/modules/account-address-tile/components/account-address-tile-description.tsx?4911","webpack://lds-commerce/./src/modules/account-address-tile/components/account-address-tile-links.tsx?bee7","webpack://lds-commerce/./src/modules/account-customer-balance/account-customer-balance.tsx?8d5a","webpack://lds-commerce/./src/modules/account-customer-balance/account-customer-balance.view.tsx?70d2","webpack://lds-commerce/./src/modules/account-customer-balance/components/account-actions.tsx?e021","webpack://lds-commerce/./src/modules/account-customer-balance/components/account-statement-request-modal.tsx?18c0","webpack://lds-commerce/./src/modules/account-customer-balance/components/index.tsx?fba9","webpack://lds-commerce/./src/modules/account-generic-tile/account-generic-tile.tsx?4353","webpack://lds-commerce/./src/modules/account-generic-tile/account-generic-tile.view.tsx?4b58","webpack://lds-commerce/./src/modules/account-generic-tile/components/account-generic-tile-links.tsx?2bc7","webpack://lds-commerce/./src/modules/account-invoice-tile/components/account-invoice-tile-description.tsx?7378","webpack://lds-commerce/./src/modules/account-invoice-tile/components/account-invoice-tile-links.tsx?81f3","webpack://lds-commerce/./src/modules/account-invoice-tile/account-invoice-tile.tsx?c17e","webpack://lds-commerce/./src/modules/account-invoice-tile/account-invoice-tile.view.tsx?0a60","webpack://lds-commerce/./src/modules/account-order-templates-tile/components/account-order-templates-tile-description.tsx?a8c4","webpack://lds-commerce/./src/modules/account-order-templates-tile/components/account-order-templates-tile-links.tsx?0bcf","webpack://lds-commerce/./src/modules/account-order-templates-tile/account-order-templates-tile.tsx?4e7d","webpack://lds-commerce/./src/modules/account-order-templates-tile/account-order-templates-tile.view.tsx?a1f9","webpack://lds-commerce/./src/modules/account-profile/components/account-profile-attributes.tsx?bcc2","webpack://lds-commerce/./src/modules/account-profile/components/account-profile-links.tsx?8faf","webpack://lds-commerce/./src/modules/account-profile/account-profile.tsx?fe69","webpack://lds-commerce/./src/modules/account-profile/account-profile.view.tsx?b964","webpack://lds-commerce/./src/modules/account-profile/components/account-profile-description.tsx?770a","webpack://lds-commerce/./src/modules/account-profile/components/account-profile-text.tsx?8115","webpack://lds-commerce/./src/modules/account-welcome-tile/account-welcome-tile.tsx?2115","webpack://lds-commerce/./src/modules/account-welcome-tile/account-welcome-tile.view.tsx?e5e3","webpack://lds-commerce/./src/modules/account-wishlist-tile/components/account-wishlist-tile-description.tsx?0588","webpack://lds-commerce/./src/modules/account-wishlist-tile/components/account-wishlist-tile-links.tsx?f114","webpack://lds-commerce/./src/modules/account-wishlist-tile/account-wishlist-tile.tsx?b721","webpack://lds-commerce/./src/modules/account-wishlist-tile/account-wishlist-tile.view.tsx?095e","webpack://lds-commerce/./src/modules/b2b-requests-status/components/b2b-requests-table.tsx?06fc","webpack://lds-commerce/./src/modules/b2b-requests-status/b2b-requests-status.tsx?c1aa","webpack://lds-commerce/./src/modules/b2b-requests-status/b2b-requests-status.view.tsx?6b7c","webpack://lds-commerce/./src/modules/b2b-requests-tile/components/account-b2b-requests-tile-links.tsx?d6f5","webpack://lds-commerce/./src/modules/b2b-requests-tile/b2b-requests-tile.tsx?9498","webpack://lds-commerce/./src/modules/b2b-requests-tile/b2b-requests-tile.view.tsx?3f4e","webpack://lds-commerce/./src/modules/organization-users-tile/components/account-organization-users-tile-description.tsx?3b33","webpack://lds-commerce/./src/modules/organization-users-tile/components/account-organization-users-tile-links.tsx?f1c7","webpack://lds-commerce/./src/modules/organization-users-tile/organization-users-tile.tsx?f5de","webpack://lds-commerce/./src/modules/organization-users-tile/organization-users-tile.view.tsx?bac2","webpack://lds-commerce/./src/modules/password-reset-verification/components/password-reset-verification-button.tsx?c1c2","webpack://lds-commerce/./src/modules/password-reset-verification/components/password-reset-verification-error.tsx?347f","webpack://lds-commerce/./src/modules/password-reset-verification/components/password-reset-verification-input.tsx?fd25","webpack://lds-commerce/./src/modules/password-reset-verification/components/password-reset-verification-label.tsx?aab5","webpack://lds-commerce/./src/modules/password-reset-verification/components/password-reset-verification-loading-icon.tsx?d70e","webpack://lds-commerce/./src/modules/password-reset-verification/components/password-reset-verification-loading-message.tsx?d239","webpack://lds-commerce/./src/modules/password-reset-verification/components/password-reset-verification-success.tsx?3c81","webpack://lds-commerce/./src/modules/password-reset-verification/password-reset-verification.tsx?691f","webpack://lds-commerce/./src/modules/password-reset-verification/password-reset-verification.view.tsx?dffa","webpack://lds-commerce/./src/modules/sign-up/components/sign-up-button.tsx?33d4","webpack://lds-commerce/./src/modules/sign-up/components/sign-up-error.tsx?b9c0","webpack://lds-commerce/./src/modules/sign-up/components/sign-up-input.tsx?27a8","webpack://lds-commerce/./src/modules/sign-up/components/sign-up-label.tsx?3142","webpack://lds-commerce/./src/modules/sign-up/components/sign-up-loading-icon.tsx?96eb","webpack://lds-commerce/./src/modules/sign-up/components/sign-up-loading-message.tsx?9245","webpack://lds-commerce/./src/modules/sign-up/components/sign-up-success.tsx?7f30","webpack://lds-commerce/./src/modules/sign-up/sign-up.tsx?5ad1","webpack://lds-commerce/./src/modules/sign-up/sign-up.view.tsx?08eb","webpack://lds-commerce/./src/modules/business-organization-list/components/small-components.tsx?c4b5","webpack://lds-commerce/./src/modules/business-organization-list/business-organization-list.tsx?0823","webpack://lds-commerce/./src/modules/business-organization-list/business-organization-list.view.tsx?c050","webpack://lds-commerce/./src/modules/catalog-picker/catalog-picker.tsx?02aa","webpack://lds-commerce/./src/modules/catalog-picker/catalog-picker.view.tsx?1e13","webpack://lds-commerce/./src/modules/footer-item/footer-item.tsx?074a","webpack://lds-commerce/./src/modules/footer-item/footer-item.view.tsx?c5af","webpack://lds-commerce/./src/modules/navigation-menu/navigation-menu.data.ts?9815","webpack://lds-commerce/./src/modules/navigation-menu/navigation-menu.tsx?2bef","webpack://lds-commerce/./src/modules/navigation-menu/navigation-menu.view.tsx?c594","webpack://lds-commerce/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-organization-wide-selector.component.tsx?b9a7","webpack://lds-commerce/./src/modules/site-picker/site-picker.tsx?b9ec","webpack://lds-commerce/./src/modules/site-picker/site-picker.view.tsx?5319"],"sourcesContent":["/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n ISearchCategoryViewProps,\r\n ISearchFormViewProps,\r\n ISearchKeywordViewProps,\r\n ISearchProductViewProps\r\n} from '@msdyn365-commerce-modules/search/src/modules/search/./components';\r\nimport { ISearchViewProps } from '@msdyn365-commerce-modules/search/src/modules/search/./search';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ? {AutoSuggestAriaLabelText} : ''}\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (KeywordSuggest: INodeProps, UlKeyword: INodeProps, keywordSuggestions?: ISearchKeywordViewProps) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (ProductSuggest: INodeProps, UlProduct: INodeProps, productSuggestions?: ISearchProductViewProps) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price}\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;\r\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 { ControlledDrawer, getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { IDrawerState } from '@msdyn365-commerce-modules/utilities/dist/types/drawer/Drawer';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createAccordionStateInput, interactionStyle } from '../..';\nimport { IAccordionItemData } from './accordion-item.data';\nimport { IAccordionItemProps } from './accordion-item.props.autogenerated';\n\nexport interface IAccordionItemViewProps {\n AccordionItemContainer: IModuleProps;\n drawer: INodeProps;\n accordionSlots: INodeProps;\n AccordionItemContent: INodeProps;\n className: string;\n}\n\nexport interface IAccordionItemExtentedProps extends IAccordionItemProps {\n interactionStyle?: interactionStyle;\n}\n\n/**\n *\n * AccordionItem component.\n * @extends {React.Component}\n */\n@observer\nclass AccordionItem extends React.Component {\n private readonly moduleClassName: string = 'ms-accordion-item';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IAccordionItemProps) {\n super(props);\n this._onToggle = this._onToggle.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public shouldComponentUpdate(nextProps: IAccordionItemProps): boolean {\n if (this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { slots, renderView, config, data } = this.props;\n const accordionExpandedStateResult = data && data.accordionExpandedState && data.accordionExpandedState.result;\n const expanded =\n accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded === undefined\n ? data && config.isExpandedOnInitialLoad\n : accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded;\n const viewProps = {\n ...this.props,\n AccordionItemContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n AccordionItemContent: {\n className: 'ms-accordion-item-content'\n },\n drawer: {\n tag: ControlledDrawer,\n className: `${this.moduleClassName}__drawer`,\n toggleButtonText: (config.accordionItemTitle && config.accordionItemTitle) || '',\n collapseProps: { isOpen: expanded },\n onToggle: this._onToggle,\n onTextChange: this.handleHeadingChange,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n },\n accordionSlots: slots\n };\n return renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.accordionItemTitle = event.target.value);\n\n private _onToggle(state: IDrawerState): void {\n if (!state.isOpen && this.props.interactionStyle === interactionStyle.ExpandOneItemOnly) {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n }\n }\n}\nexport default AccordionItem;\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 { IAccordionItemViewProps } from './accordion-item';\n\nconst AccordionItemView: React.FC = props => {\n const { drawer, accordionSlots, AccordionItemContainer, AccordionItemContent } = props;\n return (\n \n \n \n {accordionSlots &&\n accordionSlots.accordionItemContent &&\n accordionSlots.accordionItemContent.length &&\n _renderAccordionItemContent(accordionSlots.accordionItemContent)}\n \n \n \n );\n};\n\nconst _renderAccordionItemContent = (items: React.ReactNode[]): JSX.Element | null => {\n return (\n <>\n {items && items.length > 0\n ? items.map((item: React.ReactNode, index: number) => {\n return {item};\n })\n : null}\n \n );\n};\nexport default AccordionItemView;\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 {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n NodeTag,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createAccordionStateInput } from '../..';\nimport { IAccordionData } from './accordion.data';\nimport { IAccordionProps } from './accordion.props.autogenerated';\n\n/**\n *\n * Accordion component.\n * @extends {React.PureComponent>}\n */\n\nexport interface ICallToActionProps {\n link: INodeProps[];\n}\n\n/**\n * Added interface for state management.\n */\nexport interface IAccordianState {\n isDisabled: boolean;\n}\n\nexport interface IAccordionViewProps extends IAccordionProps<{}> {\n heading?: React.ReactNode;\n AccordionContainer: IModuleProps;\n HeaderSection: INodeProps;\n HeadingWrapper: INodeProps;\n accordianButtonsContainer: INodeProps;\n accordionButtons: React.ReactNode;\n accordionItemContainer: INodeProps;\n accordionItems: React.ReactNode;\n}\n\n/**\n *\n * Accordion component.\n * @extends {React.Component>}\n */\n@observer\nclass Accordion extends React.PureComponent, IAccordianState> {\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private readonly expandAllButtonRef: React.RefObject = React.createRef();\n\n private readonly collapseAllButtonRef: React.RefObject = React.createRef();\n\n constructor(props: IAccordionProps) {\n super(props);\n this._onExpandAll = this._onExpandAll.bind(this);\n this._onCollapseAll = this._onCollapseAll.bind(this);\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 this.state = { isDisabled: false };\n }\n\n public render(): JSX.Element {\n const { slots } = this.props;\n const { heading, className } = this.props.config;\n const headingComponent = heading && heading.text && (\n \n );\n\n const accordionViewProps = {\n ...this.props,\n AccordionContainer: {\n moduleProps: this.props,\n className: classnames('ms-accordion', className)\n },\n HeaderSection: { className: 'ms-accordion-header-section' },\n HeadingWrapper: { className: 'ms-accordion-header-section-container' },\n heading: headingComponent,\n config: this.props && this.props.config,\n accordianButtonsContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-accordion-header-section-toggle-button-container'\n },\n accordionButtons: this._renderAccordionButton(),\n accordionItemContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-accordion-item-section'\n },\n accordionItems:\n slots &&\n slots.accordionItems &&\n slots.accordionItems.length > 0 &&\n slots.accordionItems.map((item: React.ReactNode, index: number) => this._getAccordionItem(item, index))\n };\n return this.props.renderView(accordionViewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n private _renderAccordionButton(): React.ReactNode | null {\n const { config, resources } = this.props;\n const { heading } = config;\n this.payLoad.contentAction.etext = TelemetryConstant.ExpandAll;\n const attributeExpandAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = TelemetryConstant.CollapseAll;\n const attributeCollapseAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n if (!config.showToggleAll) {\n this.props.context.telemetry.error('Accordion button content is empty, module wont render');\n return null;\n }\n return (\n <>\n \n {resources.expandAllText}\n \n  \n {resources.toggleAllSeparator}\n  \n \n {resources.collapseAllText}\n \n \n );\n }\n\n private _onExpandAll(): void {\n const accordionState = { isAllExpanded: true };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (accordionState.isAllExpanded) {\n this.setState({\n isDisabled: true\n });\n setTimeout(() => {\n this.collapseAllButtonRef.current?.focus();\n }, 50);\n }\n }\n\n private _onCollapseAll(): void {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (!accordionState.isAllExpanded) {\n this.setState({\n isDisabled: false\n });\n setTimeout(() => {\n this.expandAllButtonRef.current?.focus();\n }, 50);\n }\n }\n\n private _getAccordionItem(item: React.ReactNode, index: number): React.ReactNode {\n return (\n \n {React.cloneElement(item as React.ReactElement, { interactionStyle: this.props.config.interactionStyle })}\n \n );\n }\n}\n\nexport default Accordion;\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 { IAccordionViewProps } from './accordion';\n\nconst accordionView: React.FC = props => {\n const { heading, AccordionContainer, accordionItems } = props;\n if (!props.heading && !props.accordionButtons && !props.accordionItems) {\n props.context.telemetry.error('Accordion content is empty, module wont render');\n return null;\n }\n return (\n \n \n {heading}\n {props.accordionButtons && {props.accordionButtons}}\n \n {accordionItems}\n \n );\n};\n\nexport default accordionView;\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, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAadGenericData } from './aad-generic.data';\nimport { IAadGenericProps } from './aad-generic.props.autogenerated';\n\nexport interface IAadGenericViewProps extends IAadGenericProps {\n aadGeneric: IModuleProps;\n aadConainer: INodeProps;\n aadAPIConainer: React.ReactNode;\n heading?: React.ReactNode;\n}\n\n/**\n *\n * AadGeneric component.\n * @extends {React.Component>}\n */\nclass AadGeneric extends React.Component> {\n private readonly moduleClassName: string = 'ms-aad-generic';\n\n public componentDidMount(): void {\n // @ts-expect-error\n const { $i2e, $element } = window || {};\n\n if ($i2e && $element) {\n $i2e.insertServiceContent($element.getElementContent());\n $element.initialize();\n }\n }\n\n public shouldComponentUpdate(nextProps: IAadGenericViewProps): boolean {\n if (nextProps.config.heading !== this.props.config.heading) {\n return true;\n }\n return false;\n }\n\n public render(): JSX.Element | null {\n const { className, heading } = this.props.config;\n\n const viewProps = {\n ...this.props,\n aadGeneric: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n aadConainer: {\n className: `${this.moduleClassName}__container`\n },\n aadAPIConainer:
,\n heading: heading && (\n \n )\n };\n\n return this.props.renderView(viewProps);\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.heading) {\n this.props.config.heading.text = event.target.value;\n }\n };\n}\n\nexport default AadGeneric;\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 { IAadGenericViewProps } from './aad-generic';\n\nexport default (props: IAadGenericViewProps) => {\n const { aadGeneric, aadConainer, aadAPIConainer, heading } = props;\n\n return (\n \n \n {heading}\n {aadAPIConainer}\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 * 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 { IAccountAddressTileData } from './account-address-tile.data';\nimport { IAccountAddressTileProps } from './account-address-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-address-tile-description';\nimport LinksComponent from './components/account-address-tile-links';\n\nexport interface IAccountAddressTileViewProps extends IAccountAddressTileProps {\n AccountAddressTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountAddress component.\n * @extends {React.PureComponent>}\n */\nclass AccountAddressTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountAddressTileProps) {\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 { accountAddressTileDescriptionForSingleAddress, accountAddressTileDescriptionForMultipleAddresses } = resources;\n const { address } = data;\n const addressCount = (address && address.result && address.result.length) || 0;\n const accountAddressTileDescription =\n addressCount === 1 ? accountAddressTileDescriptionForSingleAddress : accountAddressTileDescriptionForMultipleAddresses;\n const description = format(accountAddressTileDescription, addressCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountAddressTile: {\n moduleProps: this.props,\n className: classnames('ms-account-address-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 AccountAddressTile;\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 { IAccountAddressTileViewProps } from './account-address-tile';\n\nconst AccountAddressTileView: React.FC = props => {\n const { AccountAddressTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountAddressTileView;\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 IAccountAddressTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountAddressTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n\nexport default IAccountAddressTileDescription;\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-address-tile.props.autogenerated';\n\nexport interface IAccountAddressTileLinks {\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 AccountAddressTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n\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-address-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 AccountAddressTileLinks;\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 { BusinessPartnerUsersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport {\n AccountStatementRequest,\n BusinessPartnerOperationDeliveryType,\n CustomerBalances\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { getTelemetryObject, Heading, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { get } from 'lodash';\nimport { computed } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceData } from './account-customer-balance.data';\nimport { HeadingTag, IAccountCustomerBalanceProps } from './account-customer-balance.props.autogenerated';\nimport {\n AccountLabels,\n AccountValues,\n ActionBar,\n AdminRequestStatementButton,\n AvailableCreditComponent,\n BackButton,\n BalanceOwedComponent,\n CreditExcessComponent,\n RequestStatementModal\n} from './components';\n\nexport interface IAccountCustomerBalanceViewProps extends IAccountCustomerBalanceProps {\n heading: string;\n homeButton: React.ReactNode;\n accountSectionHeading: React.ReactNode;\n accountLabels: React.ReactNode;\n accountValues: React.ReactNode;\n creditSummarySectionHeading: React.ReactNode;\n creditSummaryLabels?: React.ReactNode;\n creditSummaryValues?: React.ReactNode;\n actions: React.ReactNode;\n requestStatementModal: React.ReactNode;\n availableCredit?: React.ReactNode;\n balanceOwed?: React.ReactNode;\n creditExcess?: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceState {\n isStatementRequestModalOpen: boolean;\n statementRequestFromDateString: string;\n statementRequestToDateString: string;\n isStatementRequestAdminDropdownOpen: boolean;\n statementRequestFullOrg: boolean;\n statementRequestMaxDateString?: string;\n}\n\n/**\n *\n * AccountCustomerBalance component.\n * @extends {React.PureComponent>}\n */\nclass AccountCustomerBalance extends React.PureComponent<\n IAccountCustomerBalanceProps,\n IAccountCustomerBalanceState\n> {\n private readonly telemetryContent?: ITelemetryContent;\n private readonly requestStatementButtonRef: React.RefObject = React.createRef();\n\n @computed get canSubmitStatementRequest(): boolean {\n return this.state.statementRequestFromDateString !== '' && this.state.statementRequestToDateString !== '';\n }\n\n constructor(props: IAccountCustomerBalanceProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.state = {\n isStatementRequestModalOpen: false,\n statementRequestFromDateString: '',\n statementRequestToDateString: '',\n isStatementRequestAdminDropdownOpen: false,\n statementRequestFullOrg: false,\n statementRequestMaxDateString: new Date().toISOString().split('T')[0]\n };\n }\n\n public render(): JSX.Element | null {\n const customer = get(this.props, 'data.customerInformation.result');\n const account: CustomerBalances = get(this.props, 'data.balance.result');\n if ([customer, account].includes(undefined)) {\n this.props.context.telemetry.error('Customer data is unavailable, module will not render');\n return null;\n }\n\n const { config, resources, context } = this.props;\n const { heading } = config;\n const {\n creditSummarySectionHeading,\n accountSectionHeading,\n backToShoppingText,\n customerSincePrefix,\n availableCreditLabel,\n balanceOwedLabel,\n creditExcessLabel,\n requestStatementButtonLabel,\n modalHeaderLabel,\n sendToEmailLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n cancelLabel,\n myAccountStatementLabel,\n fullOrganizationLabel,\n modalAriaLabel\n } = resources;\n\n const {\n isStatementRequestModalOpen,\n statementRequestFromDateString,\n statementRequestToDateString,\n statementRequestMaxDateString\n } = this.state;\n\n const accountNumber = customer.AccountNumber;\n const createdOn = this._formatJoinDate(new Date(customer.CreatedDateTime));\n const name = `${customer.FirstName} ${customer.LastName}`;\n let customerCredit = 0;\n let customerAccountBalance = 0;\n let excess = 0;\n\n if (account.InvoiceAccountCreditLimit === 0) {\n customerCredit = account.CreditLimit - account.Balance;\n customerAccountBalance = account.Balance;\n excess = account.Balance - account.CreditLimit;\n } else {\n customerCredit = account.InvoiceAccountCreditLimit - account.InvoiceAccountBalance;\n customerAccountBalance = account.InvoiceAccountBalance;\n excess = account.InvoiceAccountBalance - account.InvoiceAccountCreditLimit;\n }\n\n const creditExcess = excess > 0 ? this._formatCurrency(excess) : null;\n const availableCredit = this._formatCurrency(customerCredit);\n const balanceOwed = this._formatCurrency(customerAccountBalance);\n const backLink = Msdyn365.getUrlSync('home', context.actionContext) || '';\n const emailAddress = customer.Email;\n const isB2BSite = isChannelTypeB2B(this.props.context.request);\n const isB2BAdmin = isB2BSite && customer.IsB2bAdmin;\n\n const actionBar = isB2BAdmin ? (\n \n ) : (\n isB2BSite && (\n \n )\n );\n\n const viewProps = {\n ...this.props,\n heading: ,\n accountSectionHeading: (\n \n ),\n accountLabels: (\n \n ),\n accountValues: ,\n creditSummarySectionHeading: (\n \n ),\n availableCredit: ,\n balanceOwed: ,\n creditExcess: ,\n homeButton: ,\n actions: actionBar,\n requestStatementModal: isB2BSite && (\n \n )\n };\n\n return this.props.renderView(viewProps);\n }\n\n private _formatCurrency(currency: number): string {\n const currencyCode = get(this.props, 'context.request.channel.Currency');\n const formatCurrency = get(this.props, 'context.cultureFormatter.formatCurrency');\n\n return `${formatCurrency(currency.toFixed(2), currencyCode)}`;\n }\n\n private _formatJoinDate(date: Date): string {\n const i14nDate = new Intl.DateTimeFormat(this.props.context.actionContext.requestContext.locale, {\n month: 'long',\n day: 'numeric',\n year: 'numeric'\n });\n\n return i14nDate.format(date);\n }\n\n private readonly _showRequestStatementModal = (): void => {\n if (!this.state.isStatementRequestModalOpen) {\n this.setState({\n isStatementRequestModalOpen: true\n });\n }\n };\n\n private readonly _toggleModal = (): void => {\n this.setState({\n isStatementRequestModalOpen: false\n });\n this.requestStatementButtonRef.current?.focus();\n };\n\n private readonly _toggleDropdown = (): 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 _adminShowRequestStatementModal = (isFullOrg: boolean) => {\n this.setState({\n statementRequestFullOrg: isFullOrg,\n isStatementRequestAdminDropdownOpen: false\n });\n\n this._showRequestStatementModal();\n };\n\n private readonly _requestStatement = () => {\n const customer = this.props.data.customerInformation.result!;\n const B2BUserId = this.props.data.b2bUserInformation?.result?.B2BUserId || '';\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\n };\n\n const context = { callerContext: this.props.context.actionContext };\n\n BusinessPartnerUsersDataActions.requestAccountStatementAsync(context, B2BUserId, statementRequest);\n\n this.setState({\n isStatementRequestModalOpen: false\n });\n\n this.requestStatementButtonRef.current?.focus();\n };\n}\n\nexport default AccountCustomerBalance;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceViewProps } from './account-customer-balance';\n\nexport default (props: IAccountCustomerBalanceViewProps) => {\n const {\n heading,\n accountSectionHeading,\n creditSummarySectionHeading,\n accountLabels,\n accountValues,\n creditSummaryLabels,\n creditSummaryValues,\n homeButton,\n actions,\n requestStatementModal,\n availableCredit,\n balanceOwed,\n creditExcess\n } = props;\n\n return (\n \n {heading}\n {requestStatementModal}\n {actions}\n {accountSectionHeading}\n
\n {accountLabels}\n {accountValues}\n
\n {creditSummarySectionHeading}\n
\n {creditSummaryLabels}\n {creditSummaryValues}\n {availableCredit}\n {balanceOwed}\n {creditExcess}\n
\n {homeButton}\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 { Random } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, Popover } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface IAccountCustomerBalanceActions {\n className?: string;\n buttonReference?: React.RefObject;\n requestStatementButtonLabel: string;\n onRequestStatement(): void;\n}\n\ninterface IAdminRequestStatementProps {\n className?: string;\n requestStatementButtonLabel: string;\n myUserAccountLabel: string;\n fullOrganizationLabel: string;\n isDropdownShowing: boolean;\n buttonReference?: React.RefObject;\n promoteToSellerLabel?: string;\n onToggleDropdown(): void;\n onRequestStatement(isFullOrg: boolean): void;\n onPromoteToSeller?(): void;\n}\n\nexport const ActionBar: React.FC = ({\n className,\n onRequestStatement,\n requestStatementButtonLabel,\n buttonReference\n}) => {\n const popoverReference = buttonReference !== undefined ? buttonReference : React.createRef();\n return (\n
\n \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 { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountGenericTileConfig, IAccountGenericTileProps } from './account-generic-tile.props.autogenerated';\nimport LinksComponent from './components/account-generic-tile-links';\n\nexport interface IAccountGenericTileViewProps extends IAccountGenericTileProps {\n AccountGenericTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n}\n\n/**\n *\n * AccountGeneric component.\n * @extends {React.PureComponent>}\n */\nclass AccountGenericTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountGenericTileProps) {\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 } = this.props;\n const { className, heading, links } = config;\n\n const viewProps = {\n ...this.props,\n className,\n AccountGenericTile: {\n moduleProps: this.props,\n className: classnames('ms-account-generic-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\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 AccountGenericTile;\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 { IAccountGenericTileViewProps } from './account-generic-tile';\n\nconst AccountGenericTileView: React.FC = props => {\n const { AccountGenericTile, heading, links } = props;\n\n return (\n \n {heading}\n {links}\n \n );\n};\n\nexport default AccountGenericTileView;\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-generic-tile.props.autogenerated';\n\nexport interface IAccountGenericTileLinks {\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 AccountGenericTileLinks: 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: 'ms-account-generic-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 AccountGenericTileLinks;\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 IAccountInvoiceTileDescription {\n description: string;\n}\n\nexport const AccountInvoiceTileDescription: React.FC = ({ description }) => (\n

{description}

\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 { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-invoice-tile.props.autogenerated';\n\nexport interface IAccountInvoiceTileLinks {\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 AccountInvoiceTileLinks: 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: 'ms-account-invoice-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 AccountInvoiceTileLinks;\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 { IAccountInvoiceTileData } from './account-invoice-tile.data';\nimport { IAccountInvoiceTileProps } from './account-invoice-tile.props.autogenerated';\nimport { AccountInvoiceTileDescription } from './components';\nimport LinksComponent from './components/account-invoice-tile-links';\n\nexport interface IAccountInvoiceTileViewProps extends IAccountInvoiceTileProps {\n AccountInvoiceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountInvoiceTile component.\n * @extends {React.PureComponent>}\n */\nclass AccountInvoiceTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountInvoiceTileProps) {\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 {\n config,\n data,\n resources,\n context: {\n cultureFormatter: {\n formatCurrency,\n\n // @ts-expect-error\n currencyCode\n }\n }\n } = this.props;\n const { className, heading, links } = config;\n const { accountInvoiceTileDescription } = resources;\n\n const openinvoiceAmount = data.customerBalance.result?.OpenInvoiceBalance || 0;\n const invoiceTotalAmount: string | undefined = formatCurrency(openinvoiceAmount.toFixed(2), currencyCode);\n\n const description = invoiceTotalAmount && format(accountInvoiceTileDescription, invoiceTotalAmount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountInvoiceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-invoice-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: 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 AccountInvoiceTile;\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 { IAccountInvoiceTileViewProps } from './account-invoice-tile';\n\nexport default (props: IAccountInvoiceTileViewProps) => {\n const { AccountInvoiceTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\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 * as React from 'react';\n\nexport interface IAccountOrderTemplatesTileDescription {\n description: string;\n}\n\nexport const AccountOrderTemplatesTileDescription: React.FC = ({ description }) => (\n

{description}

\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 { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-order-templates-tile.props.autogenerated';\n\nexport interface IAccountOrderTemplatesTileLinks {\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\nexport const AccountOrderTemplatesTileLinks: React.FC = ({\n links,\n onTextChange,\n telemetryContent,\n requestContext\n}) => {\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-order-templates-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","/*!\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 { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountOrderTemplatesTileData } from './account-order-templates-tile.data';\nimport { IAccountOrderTemplatesTileProps } from './account-order-templates-tile.props.autogenerated';\nimport { AccountOrderTemplatesTileDescription, AccountOrderTemplatesTileLinks } from './components';\n\nexport interface IAccountOrderTemplatesTileViewProps extends IAccountOrderTemplatesTileProps {\n AccountOrderTemplatesTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountOrderTemplatesTile component.\n * @extends {React.PureComponent>}\n */\nexport class AccountOrderTemplatesTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountOrderTemplatesTileProps) {\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\n if (!this.props.context.request.params.isEditor && !isChannelTypeB2B(this.props.context.request)) {\n return <>;\n }\n\n const { className, heading, links } = config;\n const { accountOrderTemplatesTileDescription } = resources;\n const orderTemplates = data.orderTemplates;\n\n const orderTemplatesCount = (orderTemplates?.result || []).length;\n const description = format(accountOrderTemplatesTileDescription, orderTemplatesCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountOrderTemplatesTile: {\n moduleProps: this.props,\n className: classnames('ms-account-order-templates-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) => {\n this.props.config.heading.text = event.target.value;\n };\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 AccountOrderTemplatesTile;\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 { IAccountOrderTemplatesTileViewProps } from './account-order-templates-tile';\n\nconst AccountOrderTemplatesTileView: React.FC = props => {\n const { AccountOrderTemplatesTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountOrderTemplatesTileView;\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 = 25;\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 MsDyn365, { ICoreContext, IDateFormatOptions, IRequestContext } from '@msdyn365-commerce/core';\nimport { BusinessPartnerOperationRequest, BusinessPartnerOperationRequestDetails } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n IDataTableProps,\n IHeadingsProperty,\n ITableItemProps,\n ITableRowProps,\n Table,\n TableDataType\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IB2bRequestsStatusData } from '../b2b-requests-status.data';\nimport { IB2bRequestsStatusProps } from '../b2b-requests-status.props.autogenerated';\n\nexport interface IB2bRequestsTableProps {\n moduleProps: IB2bRequestsStatusProps;\n isMobile: boolean;\n mobileExcludedColumns: string[];\n}\n\nexport interface IB2bRequestsTableResources {\n b2bRequestsTypeCreateProspect: string;\n b2bRequestsTypeAddUser: string;\n b2bRequestsTypeEditUser: string;\n b2bRequestsTypeDeleteUser: string;\n b2bRequestsTypeRequestAccountStatement: string;\n b2bRequestsTypeRequestInvoiceCopy: string;\n b2bRequestsTypeUnknown: string;\n b2bRequestsStatusRequested: string;\n b2bRequestsStatusProcessed: string;\n b2bRequestsStatusError: string;\n b2bRequestsNumberOfItems: string;\n b2bRequestsNumberOfItemsSingular: string;\n b2bRequestsNameDisplay: string;\n b2bRequestsPreviousText: string;\n b2bRequestsNextText: string;\n b2bRequestsUserColumn: string;\n b2bRequestsStatusColumn: string;\n b2bRequestsRequestDateColumn: string;\n b2bRequestsTypeColumn: string;\n b2bRequestsDescriptionColumn: string;\n b2bRequestsAccountStatementDetails: string;\n b2bRequestsInvoiceCopyDetails: string;\n businessUserSelectCheckBoxAriaLabelText?: string;\n sortByAscending?: string;\n sortByDescending?: string;\n}\n\nexport enum RequestsTableColumnHeader {\n Name = 'User',\n Status = 'Status',\n RequestDate = 'Request date',\n Type = 'Request type',\n Description = 'Request detail'\n}\n\nconst 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\nconst getUserName = (request: BusinessPartnerOperationRequest, resources: IB2bRequestsTableResources) => {\n if (StringExtensions.isNullOrEmpty(request.UserFirstName)) {\n if (StringExtensions.isNullOrEmpty(request.UserLastName)) {\n return '';\n }\n\n return request.UserLastName;\n } else if (StringExtensions.isNullOrEmpty(request.UserLastName)) {\n return request.UserFirstName;\n }\n\n return resources.b2bRequestsNameDisplay.replace('{0}', request.UserFirstName!).replace('{1}', request.UserLastName!);\n};\n\nconst formatDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\n/**\n * Gets the value to display for the request details.\n * @param request - The request to parse for the details.\n * @param resources - The resources.\n * @param context - The context.\n * @returns The string to display.\n */\nconst getDetails = (request: BusinessPartnerOperationRequest, resources: IB2bRequestsTableResources, context: ICoreContext) => {\n if (!request.Details) {\n return '';\n }\n\n const requestDetails: BusinessPartnerOperationRequestDetails = request.Details;\n\n const accountStatementStartDateTime = formatDate(context, requestDetails.AccountStatementStartDateTime) || '';\n const accountStatementEndDateTime = formatDate(context, requestDetails.AccountStatementEndDateTime) || '';\n const invoiceId = requestDetails.InvoiceId ?? '';\n\n switch (request.TypeValue) {\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- workaround for not being able to use enum value\n case 5:\n if (\n !StringExtensions.isNullOrEmpty(accountStatementStartDateTime) &&\n !StringExtensions.isNullOrEmpty(accountStatementEndDateTime)\n ) {\n return resources.b2bRequestsAccountStatementDetails\n .replace('{0}', accountStatementStartDateTime)\n .replace('{1}', accountStatementEndDateTime);\n }\n\n return '';\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- workaround for not being able to use enum value\n case 6:\n if (!StringExtensions.isNullOrEmpty(invoiceId)) {\n return resources.b2bRequestsInvoiceCopyDetails.replace('{0}', invoiceId);\n }\n\n return '';\n default:\n return '';\n }\n};\n\nconst createTableItems = (\n operationRequests: BusinessPartnerOperationRequest[] | undefined,\n props: IB2bRequestsStatusProps\n): ITableRowProps[] => {\n if (!ArrayExtensions.hasElements(operationRequests)) {\n return [];\n }\n\n return operationRequests.map(request => {\n return {\n row: [\n {\n id: props.resources.b2bRequestsTypeColumn,\n type: TableDataType.Text,\n value: getDisplayFriendlyTypeValue(request.TypeValue ?? 0, props.resources)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsRequestDateColumn,\n type: TableDataType.Text,\n value: formatDate(props.context, request.CreatedDateTime)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsDescriptionColumn,\n type: TableDataType.Text,\n value: getDetails(request, props.resources, props.context)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsUserColumn,\n type: TableDataType.Text,\n value: getUserName(request, props.resources)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsStatusColumn,\n type: TableDataType.Text,\n value: getDisplayFriendlyStatusValue(request.StatusValue ?? 0, props.resources)\n } as ITableItemProps\n ],\n isSelected: false,\n className: props.config.className\n };\n });\n};\n\nconst getDisplayFriendlyTypeValue = (typeValue: number, resources: IB2bRequestsTableResources): string => {\n switch (typeValue) {\n case 1:\n return resources.b2bRequestsTypeCreateProspect;\n case 2:\n return resources.b2bRequestsTypeAddUser;\n case 3:\n return resources.b2bRequestsTypeDeleteUser;\n case 4:\n return resources.b2bRequestsTypeEditUser;\n case 5:\n return resources.b2bRequestsTypeRequestAccountStatement;\n case 6:\n return resources.b2bRequestsTypeRequestInvoiceCopy;\n default:\n return resources.b2bRequestsTypeUnknown;\n }\n};\n\nconst getDisplayFriendlyStatusValue = (statusValue: number, resources: IB2bRequestsTableResources): string => {\n switch (statusValue) {\n case 1:\n return resources.b2bRequestsStatusProcessed;\n case 2:\n return resources.b2bRequestsStatusError;\n default:\n return resources.b2bRequestsStatusRequested;\n }\n};\n\nconst createTableProps = (tableProps: IB2bRequestsTableProps) => {\n const { context, data, resources } = tableProps.moduleProps;\n\n const tableData = createTableItems(data.operationRequests.result, tableProps.moduleProps);\n const tableHeading =\n (ArrayExtensions.hasElements(tableData) &&\n tableData[0].row\n .filter(item => {\n // Check that this is either not mobile or the column should be displayed when mobile.\n return !tableProps.isMobile || !tableProps.mobileExcludedColumns.includes(item.id);\n })\n .map(item => {\n return {\n name: item.id,\n sortable: true,\n ariaLabel: resources.columnSortAriaLabel\n } as IHeadingsProperty;\n })) ||\n [];\n\n return {\n resources: {},\n headings: tableHeading,\n rows: tableData,\n className: `${tableProps.moduleProps.config.className}__table`,\n editLinkText: '',\n deleteLinkText: '',\n viewLinkText: '',\n enableToModify: false,\n actionLinkText: '',\n showCheckBoxes: false,\n isSortable: true,\n showPagination: true,\n minifyActions: tableProps.isMobile,\n excludedColumns: tableProps.isMobile ? tableProps.mobileExcludedColumns : [],\n paginationProperty: {\n skipCount:\n context.request.query?.skip && !isNaN(Number.parseInt(context.request.query.skip, 10))\n ? Number.parseInt(context.request.query.skip, 10)\n : 0,\n itemPerPage: 10,\n prevText: resources.b2bRequestsPreviousText,\n nextText: resources.b2bRequestsNextText,\n paginationText: '',\n url: (context && getCurrentUrl(context.request).href) || ''\n },\n isSingleSelectOnly: true,\n actions: {\n onDelete: undefined,\n onEdit: undefined,\n onView: undefined\n },\n businessUserSelectCheckBoxAriaLabelText: tableProps.moduleProps.resources.businessUserSelectCheckBoxAriaLabelText,\n sortByAscending: tableProps.moduleProps.resources.sortByAscending,\n sortByDescending: tableProps.moduleProps.resources.sortByDescending\n } as IDataTableProps;\n};\n\nexport const B2bRequestsTable: React.FC = (tableProps: IB2bRequestsTableProps) => {\n return ;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { format, Heading, IModuleProps, isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport { computed } from 'mobx';\nimport * as React from 'react';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\n\nimport { IB2bRequestsStatusData } from './b2b-requests-status.data';\nimport { IB2bRequestsStatusProps, IHeadingData } from './b2b-requests-status.props.autogenerated';\nimport { B2bRequestsTable } from './components/b2b-requests-table';\n\nexport interface IB2bRequestsStatusViewProps extends IB2bRequestsStatusProps {\n b2bRequestsStatus: IModuleProps;\n heading?: React.ReactNode;\n table: React.ReactNode;\n}\n\n/**\n *\n * B2bRequestsStatus component.\n * @extends {React.PureComponent>}\n */\nclass B2bRequestsStatus extends React.PureComponent> {\n @computed get isMobile(): boolean {\n const size = isMobile({ variant: VariantType.Viewport, context: this.props.context.request });\n return size === 'xs';\n }\n\n public render(): JSX.Element | null {\n const { config } = this.props;\n\n if (!isChannelTypeB2B(this.props.context.actionContext.requestContext)) {\n return null;\n }\n\n const className = config.className || '';\n\n const viewProps = {\n ...this.props,\n b2bRequestsStatus: {\n moduleProps: this.props,\n className\n },\n heading: this.renderHeader(className, config.heading),\n table: this.renderTable()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private readonly renderHeader = (className: string, headingData: IHeadingData): React.ReactNode => {\n const itemCount = this.props.data.operationRequests.result?.length ?? 0;\n\n return (\n
\n \n {this.getItemNumberDisplayString(itemCount)}\n
\n );\n };\n\n /**\n * Returns columns that needs to be excluded for mobile view.\n * @returns Array of column names.\n */\n private readonly _retrieveExcludedColumns = (): string[] => {\n const { resources } = this.props;\n return [resources.b2bRequestsRequestDateColumn, resources.b2bRequestsDescriptionColumn, resources.b2bRequestsUserColumn];\n };\n\n private readonly renderTable = (): React.ReactNode => {\n return (\n \n );\n };\n\n private readonly getItemNumberDisplayString = (itemCount: number): string => {\n switch (itemCount) {\n case 0:\n return '';\n case 1:\n return format(this.props.resources.b2bRequestsNumberOfItemsSingular, itemCount);\n default:\n return format(this.props.resources.b2bRequestsNumberOfItems, itemCount);\n }\n };\n}\n\nexport default B2bRequestsStatus;\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 React from 'react';\n\nimport { IB2bRequestsStatusViewProps } from './b2b-requests-status';\n\nconst B2bRequestsStatusView: React.FC = props => {\n const { b2bRequestsStatus, heading, table } = props;\n return (\n \n {heading}\n {table}\n \n );\n};\n\nexport default B2bRequestsStatusView;\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 * as React from 'react';\n\nexport interface IAccountOrganizationUsersTileDescription {\n description: string;\n}\n\nexport const AccountOrganizationUsersTileDescription: React.FC = ({ description }) => (\n

{description}

\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 { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../organization-users-tile.props.autogenerated';\n\nexport interface IAccountOrganizationUsersTileLinks {\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\nexport const AccountOrganizationUsersTileLinks: React.FC = ({\n links,\n telemetryContent,\n onTextChange,\n requestContext\n}) => {\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-organization-users-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","/*!\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 { AccountOrganizationUsersTileDescription, AccountOrganizationUsersTileLinks } from './components';\nimport { IOrganizationUsersTileData } from './organization-users-tile.data';\nimport { IOrganizationUsersTileProps } from './organization-users-tile.props.autogenerated';\n\nexport interface IOrganizationUsersTileViewProps extends IOrganizationUsersTileProps {\n OrganizationUsersTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * OrganizationUsersTile component.\n * @extends {React.PureComponent>}\n */\nclass OrganizationUsersTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IOrganizationUsersTileProps) {\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, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountOrganizationUsersTileDescriptionForSingleUser, accountOrganizationUsersTileDescriptionForMultipleUsers } = resources;\n const numUsers = data.users && data.users.result;\n const accountOrganizationUsersTileDescription =\n numUsers === 1 ? accountOrganizationUsersTileDescriptionForSingleUser : accountOrganizationUsersTileDescriptionForMultipleUsers;\n const customerInformation = data.customerInformation.result;\n\n // Organization-users tile will not be render for non-admin users.\n if (!customerInformation?.IsB2bAdmin) {\n return null;\n }\n\n const viewProps = {\n ...this.props,\n className,\n OrganizationUsersTile: {\n moduleProps: this.props,\n className: classnames('ms-account-organization-users-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n this.props.config.heading.text = event.target.value;\n };\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 OrganizationUsersTile;\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 { IOrganizationUsersTileViewProps } from './organization-users-tile';\n\nconst OrganizationUsersTileView: React.FC = props => {\n const { OrganizationUsersTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default OrganizationUsersTileView;\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 IPasswordResetVerificationButton {\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 PasswordResetVerificationButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n telemetryContent,\n disabled,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default PasswordResetVerificationButton;\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 IPasswordResetVerificationErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationError;\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 IPasswordResetVerificationInputProps {\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 IPasswordResetVerificationInput {\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 PasswordResetVerificationInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n onChange\n}) => (\n \n);\n\nexport default PasswordResetVerificationInput;\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 IPasswordResetVerificationLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetVerificationLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetVerificationLabel;\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 IPasswordResetVerificationLoadingIcon {\n className: string;\n}\n\nconst PasswordResetVerificationLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default PasswordResetVerificationLoadingIcon;\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 IPasswordResetVerificationLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetVerificationLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default PasswordResetVerificationLoadingMessage;\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 IPasswordResetVerificationSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationSuccess;\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 PasswordResetVerificationButtonComponent from './components/password-reset-verification-button';\nimport PasswordResetVerificationErrorComponent from './components/password-reset-verification-error';\nimport PasswordResetVerificationInputComponent from './components/password-reset-verification-input';\nimport PasswordResetVerificationLabelComponent from './components/password-reset-verification-label';\nimport PasswordResetVerificationLoadingIconComponent from './components/password-reset-verification-loading-icon';\nimport PasswordResetVerificationLoadingMessageComponent from './components/password-reset-verification-loading-message';\nimport PasswordResetVerificationSuccessComponent from './components/password-reset-verification-success';\nimport { IPasswordResetVerificationConfig, IPasswordResetVerificationProps } from './password-reset-verification.props.autogenerated';\n\nexport interface IPasswordResetVerificationViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetVerificationItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationLocalAccount {\n localAccount: INodeProps;\n verificationControlWrapper: INodeProps;\n items: IPasswordResetVerificationItem[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationButtonsWrapper: INodeProps;\n verificationButtons: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetVerificationLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationViewProps {\n className: string;\n viewState: IPasswordResetVerificationViewState;\n loading: IPasswordResetVerificationLoading;\n passwordResetVerification: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetVerificationLocalAccount: IPasswordResetVerificationLocalAccount;\n}\n\n/**\n *\n * PasswordResetVerification component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordResetVerification extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset-verification';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n @observable private templateVersion: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IPasswordResetVerificationProps) {\n super(props);\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.templateVersion = '';\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: IPasswordResetVerificationProps,\n nextState: IPasswordResetVerificationViewState\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 passwordResetVerification: {\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 )\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 passwordResetVerificationLocalAccount: 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 _prePopulateData(): void {\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 if (obj.ID.toLowerCase() === 'email') {\n this.emailRegex = obj.PAT;\n } else if (obj.ID.toLowerCase() === 'emailverificationcontrol') {\n this.templateVersion = 'v2';\n }\n });\n if (!this.templateVersion) {\n this.templateVersion = 'v1';\n }\n }\n }\n\n private _updateErrorMessage(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n verifying_blurb: this.props.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(): IPasswordResetVerificationLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n items: [\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n )\n ],\n successMessage: [\n ,\n\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n \n ],\n verificationButtonsWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n verificationButtons: [\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(\n id: string,\n type: string,\n labelText: string,\n maxLength?: string,\n pattern?: string,\n cssClassName?: string\n ): IPasswordResetVerificationItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n\n private readonly getValue = (v1Value: string, v2Value: string): string => {\n if (this.templateVersion) {\n return this.templateVersion === 'v1' ? v1Value : v2Value;\n }\n return '';\n };\n}\n\nexport default PasswordResetVerification;\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 IPasswordResetVerificationItem,\n IPasswordResetVerificationLoading,\n IPasswordResetVerificationLocalAccount,\n IPasswordResetVerificationViewProps\n} from './password-reset-verification';\n\nconst PasswordResetVerificationItem: 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 verificationControlWrapper,\n items,\n successMessage,\n errorMessage,\n verificationButtonsWrapper,\n verificationButtons,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n \n {successMessage &&\n successMessage.map((message: React.ReactNode, index: number) => {\n return {message};\n })}\n {items &&\n items.map((item: IPasswordResetVerificationItem) => {\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 {verificationButtons &&\n verificationButtons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \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};\n\nconst PasswordResetVerificationLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetVerificationView: React.FC = props => {\n const {\n passwordResetVerification,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n heading,\n passwordResetVerificationLocalAccount\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetVerificationLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetVerificationView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignUpButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst SignUpButton: React.FC = ({ id, className, text, ariaLabel, disabled, onClick }) => (\n \n);\n\nexport default SignUpButton;\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 ISignUpErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignUpError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default SignUpError;\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 ISignUpInputProps {\n id?: string;\n hasFocus?: boolean;\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 ISignUpInput {\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 SignUpInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default SignUpInput;\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 ISignUpLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst SignUpLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default SignUpLabel;\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 ISignUpLoadingIcon {\n className: string;\n}\n\nconst SignUpLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default SignUpLoadingIcon;\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 ISignUpLoadingMessage {\n className: string;\n message: string;\n}\n\nconst SignUpLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default SignUpLoadingMessage;\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 ISignUpSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignUpSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default SignUpSuccess;\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, PasswordRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps, 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 SignUpButtonComponent from './components/sign-up-button';\nimport SignUpErrorComponent from './components/sign-up-error';\nimport SignUpInputComponent from './components/sign-up-input';\nimport SignUpLabelComponent from './components/sign-up-label';\nimport SignUpLoadingIconComponent from './components/sign-up-loading-icon';\nimport SignUpLoadingMessageComponent from './components/sign-up-loading-message';\nimport SignUpSuccessComponent from './components/sign-up-success';\nimport { ISignUpConfig, ISignUpProps, ISignUpResources } from './sign-up.props.autogenerated';\n\nexport interface ISignUpViewState {\n isShowLoading: boolean;\n}\n\nexport interface ISignUpItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface ISignUpEmailVerification {\n isRequired: boolean;\n email: ISignUpItem;\n buttonWrapper: INodeProps;\n buttons: React.ReactNode[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\n/**\n * SignUp Given Name Verification Interface.\n */\nexport interface ISignUpGivenNameVerification {\n isRequired: boolean;\n givenName: ISignUpItem;\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\n/**\n * SignUp Surname Verification Interface.\n */\nexport interface ISignUpSurnameVerification {\n isRequired: boolean;\n surname: ISignUpItem;\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\nexport interface ISignUpLocalAccount {\n localAccount: INodeProps;\n items: ISignUpItem[];\n emailVerification: ISignUpEmailVerification;\n givenNameVerification: ISignUpGivenNameVerification;\n surnameVerification: ISignUpSurnameVerification;\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n disclaimer: React.ReactNode;\n}\n\nexport interface ISignUpLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface ISignUpViewProps {\n className: string;\n viewState: ISignUpViewState;\n loading: ISignUpLoading;\n signUp: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n signUpLocalAccount: ISignUpLocalAccount;\n}\n\n/**\n *\n * SignUp 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 SignUp extends React.Component> {\n @observable private isGivenNameVerificationRequried: boolean;\n\n @observable private isSurnameVerificationRequried: boolean;\n\n private readonly moduleClassName: string = 'ms-sign-up';\n\n @observable private emailRegex: string;\n\n @observable private newPasswordRegex: string;\n\n @observable private reenterPasswordRegex: string;\n\n @observable private isEmailVerificationRequried: boolean;\n\n @observable private isInitialized: boolean;\n\n @observable private templateVersion: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: ISignUpProps) {\n super(props);\n\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.newPasswordRegex = PasswordRegex.defaultRegex.source;\n this.reenterPasswordRegex = PasswordRegex.defaultRegex.source;\n this.isEmailVerificationRequried = false;\n this.isGivenNameVerificationRequried = false;\n this.isSurnameVerificationRequried = false;\n this.isInitialized = false;\n this.templateVersion = '';\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: ISignUpProps, nextState: ISignUpViewState): 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 signUp: {\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: (\n \n ),\n signUpLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles heading content change event.\n * @param event - Content editable event.\n * @returns - Heading Text.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n * @returns - Paragraph Text.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.disclaimer = 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 const resources: ISignUpResources = this.props.resources || {};\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; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string; VERIFY: boolean }) => {\n switch (obj.ID.toLowerCase()) {\n case 'emailverificationcontrol': {\n this.isEmailVerificationRequried = true;\n this.templateVersion = 'v2';\n break;\n }\n case 'email': {\n this.emailRegex = obj.PAT;\n this.isEmailVerificationRequried = obj.VERIFY;\n this.templateVersion = 'v1';\n break;\n }\n case 'givennameverificationcontrol': {\n this.isGivenNameVerificationRequried = true;\n break;\n }\n case 'givenname': {\n this.isGivenNameVerificationRequried = obj.VERIFY;\n break;\n }\n case 'surnameverificationcontrol': {\n this.isEmailVerificationRequried = true;\n break;\n }\n case 'surname': {\n this.isSurnameVerificationRequried = obj.VERIFY;\n break;\n }\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 switch (obj.UX_INPUT_TYPE.toLowerCase()) {\n case 'password': {\n obj.PAT_DESC = resources.invalidPasswordError;\n break;\n }\n case 'emailbox': {\n obj.PAT_DESC = resources.invalidEmailAddressError;\n break;\n }\n default:\n }\n }\n );\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const resources: ISignUpResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const errorMessages = {\n required_field: resources.requiredFieldMissingError\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], errorMessages);\n }\n };\n\n private readonly getValue = (v1Value: string, v2Value: string): string => {\n if (this.templateVersion) {\n return this.templateVersion === 'v1' ? v1Value : v2Value;\n }\n return '';\n };\n\n private _renderLocalAccount(): ISignUpLocalAccount {\n const { config, resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('givenName', 'text', resources.firstNameLabelText, resources.firstNameMaxLength),\n this._renderInput('surname', 'text', resources.lastNameLabelText, resources.lastNameMaxLength),\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput('newPassword', 'password', resources.passwordLabelText, undefined, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, undefined, this.reenterPasswordRegex)\n ],\n emailVerification: {\n isRequired: this.isEmailVerificationRequried,\n email: this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n buttonWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n buttons: [\n ,\n ,\n ,\n \n ],\n successMessage: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n \n ]\n },\n givenNameVerification: {\n isRequired: this.isGivenNameVerificationRequried,\n givenName: this._renderInput(\n this.getValue('givenName_ver_input', 'givenNameVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'givenNameVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n errorMessage: [\n \n ]\n },\n surnameVerification: {\n isRequired: this.isSurnameVerificationRequried,\n surname: this._renderInput(\n this.getValue('surname_ver_input', 'surnameVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'surnameVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n errorMessage: [\n \n ]\n },\n buttons: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n \n ],\n disclaimer: config.disclaimer && (\n \n )\n };\n }\n\n private _renderInput(\n id: string,\n type: string,\n labelText: string,\n maxLength?: string,\n pattern?: string,\n cssClassName?: string\n ): ISignUpItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default SignUp;\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 ISignUpEmailVerification,\n ISignUpGivenNameVerification,\n ISignUpItem,\n ISignUpLoading,\n ISignUpLocalAccount,\n ISignUpSurnameVerification,\n ISignUpViewProps\n} from './sign-up';\n\nconst SignUpItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst SignUpEmailVerification: React.FC = ({ email, buttonWrapper, buttons, successMessage, errorMessage }) => {\n return (\n <>\n {successMessage &&\n successMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {errorMessage &&\n errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode) => {\n return <>{button};\n })}\n \n \n );\n};\n\n/**\n * Handles validation of sign-up givenName.\n * @param event - Content editable event.\n * @param event.givenName - Event Given Name.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for Given Name.\n */\nconst SignUpGivenNameVerificationComponent: React.FC = ({ givenName, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\n/**\n * Handles validation of signUp surname.\n * @param event - Content editable event.\n * @param event.surname - Event surname.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for surname.\n */\nconst SignUpSurnameVerificationComponent: React.FC = ({ surname, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n emailVerification,\n givenNameVerification,\n surnameVerification,\n buttons,\n errorMessage,\n disclaimer\n}) => {\n return (\n \n {items &&\n items.map((item: ISignUpItem) => {\n if (item.key === 'email' && emailVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'givenName' && givenNameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'surname' && surnameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\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 {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n {disclaimer}\n \n );\n};\n\nconst SignUpLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst SignUpView: React.FC = props => {\n const { signUp, viewState, loading, defaultAADConainer, aadConainer, heading, signUpLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(signUpLocalAccount)}\n \n \n );\n};\n\nexport default SignUpView;\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 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 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 })\n .catch(error => {\n context.telemetry.trace(error);\n });\n }\n this.setState({\n formType: FormType.None,\n isModalOpen: false\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 } = 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 \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 Msdyn365, {\n ContentEditableEvent,\n generateImageUrl,\n getCatalogId,\n getUrlSync,\n Image,\n RichTextComponent,\n Text\n} from '@msdyn365-commerce/core';\nimport { MediaLocation, ProductCatalog } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ICatalogPickerData } from './catalog-picker.data';\nimport { ICatalogPickerProps } from './catalog-picker.props.autogenerated';\n\n/**\n * ICatalogPickerViewProps.\n */\nexport interface ICatalogPickerViewProps extends ICatalogPickerProps {\n catalogPicker: IModuleProps;\n heading: React.ReactNode;\n paragraph: React.ReactNode;\n catalogs: ReactNode;\n}\n\n/**\n * CatalogPicker component.\n * @extends {React.PureComponent>}\n */\nexport class CatalogPicker extends React.PureComponent> {\n private static readonly _moduleClassName = 'ms-catalog-picker';\n\n public constructor(props: ICatalogPickerViewProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { heading, paragraph } = this.props.config;\n\n const catalogPickerHeading = heading && (\n \n );\n\n const isCatalogsAvailable: boolean = ArrayExtensions.hasElements(this.props.data.catalogs?.result);\n const catalogPickerParagraph = paragraph && (\n \n );\n const viewProps = {\n ...this.props,\n handleText: this.handleTextChange,\n catalogPicker: {\n moduleProps: this.props,\n className: CatalogPicker._moduleClassName\n },\n heading: catalogPickerHeading,\n paragraph: catalogPickerParagraph,\n catalogs: isCatalogsAvailable ? this._renderCatalogPicker() : ''\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n private _renderCatalogPickerButton(item: ProductCatalog): React.ReactNode {\n const catalogId = item.RecordId;\n const currentCatalogId = getCatalogId(this.props.context.request);\n if (currentCatalogId === catalogId) {\n return
{this.props.resources.currentCatalogText}
;\n }\n let linkToCatalog = '';\n if (Msdyn365.isBrowser) {\n const catalogUrl = getUrlSync('home', this.props.context.actionContext) ?? '';\n const fullUrl = new URL(catalogUrl, window.location.href);\n fullUrl.searchParams.set('catalogid', `${catalogId}`);\n linkToCatalog = fullUrl.href;\n }\n return (\n \n {this.props.resources.changeCatalogButtonText}\n \n );\n }\n\n private _renderCatalogPicker(): React.ReactNode {\n const catalogs = this.props.data.catalogs?.result;\n\n const isBrowser = Msdyn365.isBrowser;\n\n return (\n
\n {catalogs?.map(item => {\n const reactKey = `${JSON.stringify(item)}-${String(isBrowser)}`;\n const image: MediaLocation | undefined = ArrayExtensions.firstOrDefault(item.Images);\n return (\n \n

{item.Name}

\n
\n \n
\n {this._renderCatalogPickerButton(item)}\n
\n
\n
\n );\n })}\n \n );\n }\n}\n\nexport default CatalogPicker;\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 { ICatalogPickerViewProps } from './catalog-picker';\n\n/**\n * ICatalogPickerViewProps.\n * @param props - ICatalogPickerViewProps.\n * @returns - Render Catalog Picker.\n */\nexport const CatalogPickerViewFunctionComponent: React.FC = props => {\n const { catalogPicker } = props;\n return (\n \n {props.heading}\n {props.paragraph}\n {props.catalogs}\n \n );\n};\n\nexport default CatalogPickerViewFunctionComponent;\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 {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterItemConfig, IFooterItemProps, IHeadingData, ILinkData } from './footer-item.props.autogenerated';\n\nexport interface IFooterViewProps extends IFooterItemProps {\n heading: React.ReactNode;\n image: React.ReactNode;\n text: React.ReactNode;\n linkText: React.ReactNode;\n className?: string;\n FooterItem: IModuleProps;\n HeadingContainer: INodeProps;\n ItemContainer: INodeProps;\n Link: INodeProps;\n EditableLink: React.ReactNode;\n}\n\n/**\n *\n * FooterItem component.\n * @extends {React.PureComponent>}\n */\nexport class FooterItem extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private attributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: IFooterItemProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n // Construct telemetry attribute to render\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public render(): JSX.Element {\n const { heading, image, link, text } = this.props.config;\n const footerItemClassName = classnames('ms-footer__item', this.props.config.className);\n const linkText = link && link.linkText ? link.linkText : '';\n this.payLoad.contentAction.etext = linkText;\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n const viewProps: IFooterViewProps = {\n ...this.props,\n heading: this._createHeading(heading!),\n image: this._createImageMarkup(image!),\n text: this._createText(text!),\n linkText: this._createLinkText(link!),\n EditableLink: this._createLink(link!),\n\n FooterItem: {\n moduleProps: this.props,\n className: footerItemClassName\n },\n\n HeadingContainer: {\n className: 'ms-footer__heading'\n },\n\n ItemContainer: {\n className: 'ms-footer__link__container'\n },\n\n // @ts-expect-error\n Link: link &&\n link.linkUrl &&\n link.linkUrl.destinationUrl && {\n tag: 'a',\n role: 'link',\n className: 'ms-footer__link',\n href: link.linkUrl.destinationUrl,\n title: linkText,\n 'aria-label': link.ariaLabel,\n target: link.openInNewTab ? '_blank' : undefined,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText),\n ...this.attributes\n },\n className: footerItemClassName\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 handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.text = event.target.value);\n\n public handleLinkTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.link!.linkText = event.target.value);\n\n private _createLink(link: ILinkData): React.ReactNode | null {\n if (link) {\n const linkText = link.linkText ? link.linkText : '';\n\n // TODO: Update the inner tag in the anchor link to span\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-footer__link',\n linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: this.attributes!,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText)\n };\n return (\n \n );\n }\n return null;\n }\n\n private _createLinkText(link: ILinkData): React.ReactNode | null {\n if (!link || !link.linkText) {\n return null;\n }\n\n return {link.linkText};\n }\n\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\n if (!heading || !heading.text || heading.text.length === 0) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _createText(text: string): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createImageMarkup(item: Msdyn365.IImageData, ariaHiddenAttr?: boolean): React.ReactNode | null {\n if (!item || !item.src || item.src.length === 0) {\n return null;\n }\n\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=24&h=24&m=6', w: 0, h: 0 },\n lg: { q: 'w=24&h=24&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n return (\n \n );\n }\n}\n\nexport default FooterItem;\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 { IFooterViewProps } from './footer-item';\n\n/**\n *\n * FooterItemView component.\n * @extends {React.PureComponent}\n */\nexport class FooterItemView extends React.PureComponent {\n public render(): JSX.Element | null {\n const { FooterItem } = this.props;\n return {this._renderElement(this.props)};\n }\n\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\n if (heading) {\n return {heading} ;\n } else if (Link && image) {\n return (\n \n {linkText}\n {image}\n \n );\n } else if (Link) {\n return EditableLink;\n }\n return (\n <>\n {text}\n {image}\n \n );\n }\n}\n\nexport default FooterItemView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport { AsyncResult } from '@msdyn365-commerce/retail-proxy';\n\nimport { ICategoryPromotionalContentData } from './navigation-menu.props.autogenerated';\n\nexport interface INavigationMenuData {\n categories: AsyncResult;\n}\n\nexport interface IMenuItemData {\n id?: number;\n linkText?: string;\n linkURL?: string;\n imageSource?: string;\n imageDestinationURL?: string;\n subMenu?: IMenuItemData[];\n promotionalContent?: ICategoryPromotionalContentData[];\n menuSource?: string;\n shouldOpenNewTab?: boolean;\n ariaLabel?: string;\n}\n\n/**\n *\n * Menu type index id.\n */\nexport enum MenuTypeIndexId {\n Cms = 1000,\n Retail = 5000\n}\n\n/**\n *\n * Menu type source.\n */\nexport enum MenuSource {\n Cms = 'Cms',\n Retail = 'Retail'\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport MsDyn365, { IActionContext, IGridSettings, IImageSettings, isEmptyOrNullObject } from '@msdyn365-commerce/core';\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, getCategoryUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { addThrottledEvent, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport * as React from 'react';\n\nimport { IMenuItemData, INavigationMenuData, MenuSource, MenuTypeIndexId } from './navigation-menu.data';\nimport { ICmsNavItemsData, INavigationMenuProps, ISubMenusData, navigationMenuSource } from './navigation-menu.props.autogenerated';\n\nexport interface INavigationMenuViewProps extends INavigationMenuProps {\n className: string;\n menuItemData: IMenuItemData[];\n Navigation: IModuleProps;\n MenuList: INodeProps;\n ListItem: INodeProps;\n Link: INodeProps;\n Button: INodeProps;\n Span: INodeProps;\n ImageContainer: INodeProps;\n MobileDescriptionContainer: INodeProps;\n MobileBackButton: INodeProps;\n MobileDescriptionLabel: INodeProps;\n imageSettings: IImageSettings;\n gridSettings: IGridSettings;\n isMobileView: boolean;\n DivContainer?: INodeProps;\n ImageDivContainer?: INodeProps;\n showCategoryImage?: boolean;\n showPromotionalContent?: boolean;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport interface INavigationMenuState {\n isMobile: boolean;\n}\n\n/**\n *\n * NavigationMenu component.\n * @extends {React.PureComponent>}\n */\nclass NavigationMenu extends React.PureComponent, INavigationMenuState> {\n private static CMSItemIdInit: number = MenuTypeIndexId.Cms;\n\n private static RSItemIdInit: number = MenuTypeIndexId.Retail;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\n private menuItemList: IMenuItemData[];\n\n private isRetail: boolean = true;\n\n private isCMS: boolean = true;\n\n @observable\n private viewport: GridSize;\n\n public static getFriendlyName(locale: string, nameTranslations?: TextValueTranslation[]): string | undefined {\n let nameTranslation: TextValueTranslation | undefined;\n if (locale && nameTranslations && nameTranslations.length > 0) {\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\n }\n\n return nameTranslation && nameTranslation.Text;\n }\n\n constructor(props: INavigationMenuProps) {\n super(props);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._setNavigationSource(this.props.config && this.props.config.navigationMenuSource);\n this.state = { isMobile: this.isMobile };\n this.menuItemList = [];\n }\n\n @computed get isMobile(): boolean {\n return this.viewport === 'xs' || this.viewport === 'sm';\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n this.resizeThrottledEventHandler = addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n }\n this._updateViewport();\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n\n public render(): JSX.Element | null {\n this.menuItemList = this._mapData();\n if (isEmptyOrNullObject(this.props.data)) {\n this.props.telemetry.error('Navigatiomenu returned null');\n return null;\n }\n\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=224&h=300&m=6', w: 0, h: 0 },\n xl: { q: 'w=224&h=300&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n\n const viewProps = {\n ...this.props,\n ...this.state,\n imageSettings: defaultImageSettings,\n gridSettings: this.props.context.request.gridSettings,\n Navigation: {\n moduleProps: this.props,\n className: classnames('ms-nav', this.props.config.className, this.state.isMobile ? 'mobile-vp' : 'desktop-vp'),\n tag: 'nav',\n role: this.isMobile ? 'listbox' : 'navigation'\n },\n MenuList: {\n className: 'ms-nav__list',\n tag: 'ul',\n role: this.isMobile ? 'listbox' : 'menu'\n },\n ListItem: {\n className: 'ms-nav__list__item',\n role: 'presentation',\n tag: 'li'\n },\n showCategoryImage: this.props.config.displayCategoryImage ?? false,\n showPromotionalContent: this.props.config.displayPromotionalImage ?? false,\n Link: {\n tag: 'a',\n className: 'ms-nav__list__item__link',\n role: this.isMobile ? 'option' : 'menuitem'\n },\n DivContainer: {\n tag: 'div',\n className: 'ms-nav__feature'\n },\n ImageDivContainer: {\n tag: 'div',\n className: 'category-image',\n role: 'tabpanel'\n },\n Button: {\n className: 'ms-nav__list__item__button',\n tag: 'button',\n role: this.isMobile ? 'option' : 'menuitem',\n onClick: this.props\n },\n ImageContainer: {\n className: 'ms-nav__list__item__image'\n },\n Span: {\n className: 'ms-nav__list__item__span',\n tag: 'span'\n },\n MobileDescriptionContainer: {\n className: 'ms-nav__list__mobile__container'\n },\n MobileBackButton: {\n className: 'ms-nav__list__mobile__container__button',\n tag: 'button',\n 'aria-label': this.props.resources.backButtonAriaLabel,\n onClick: this.props\n },\n MobileDescriptionLabel: {\n className: 'ms-nav__list__mobile__container__span',\n tag: 'span'\n },\n isMobileView: this.state.isMobile,\n menuItemData: this.menuItemList,\n className: classnames('ms-nav', this.props.config.className)\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _mapData(): IMenuItemData[] {\n const { data, config } = this.props;\n const mergedData: IMenuItemData[] = [];\n if (this.isRetail && data && data.categories && data.categories.result && data.categories.result.length > 0) {\n data.categories.result.map((item: CategoryHierarchy, index) =>\n mergedData.push(this._constructMenuItemData(item, undefined, true, index, true))\n );\n }\n\n if (this.isCMS && config.cmsNavItems && config.cmsNavItems.length > 0) {\n config.cmsNavItems.map((item: ICmsNavItemsData, idx: number) =>\n mergedData.push(this._constructMenuItemData(undefined, item, false, idx + 1))\n );\n }\n return this._constructTopMenuItemData(mergedData);\n }\n\n private _constructTopMenuItemData(mergedData: IMenuItemData[]): IMenuItemData[] {\n const enableTopLevelMenu = this.props.config.enabletopMenu ?? false;\n if (!enableTopLevelMenu) {\n return mergedData;\n }\n const mergedRootMenuData: IMenuItemData[] = [];\n const topMenu = {\n id: 1,\n linkText: this.props.config.rootMenuNavigation ?? '...',\n linkURL: '#',\n imageSource: undefined,\n subMenu: mergedData\n } as IMenuItemData;\n mergedRootMenuData.push(topMenu);\n\n return mergedRootMenuData;\n }\n\n private _constructMenuItemData(\n retailItem?: CategoryHierarchy,\n cmsItem?: ICmsNavItemsData,\n isRetail?: boolean,\n idx?: number,\n addedAllMenu?: boolean\n ): IMenuItemData {\n const locale =\n this.props.context && this.props.context.request && this.props.context.request.locale\n ? this.props.context.request.locale\n : 'en-us';\n const { categoryPromotionalContent } = this.props.config;\n const cmsItemText = (cmsItem && cmsItem.linkText) || '';\n const { menuAriaLabel } = this.props.resources;\n\n // Filter category promotional data based on category name\n const promotionalData =\n retailItem &&\n categoryPromotionalContent?.filter(promoItem => promoItem.categoryName?.toLowerCase() === retailItem?.Name?.toLowerCase());\n\n // First check if image is available from promotional data else read from retail server\n let imageSource: string = 'empty';\n if (ArrayExtensions.hasElements(retailItem?.Images) && retailItem!.Images[0].Uri) {\n imageSource = retailItem!.Images[0].Uri;\n }\n if (isRetail) {\n return {\n id: NavigationMenu.RSItemIdInit++,\n linkText: NavigationMenu.getFriendlyName(locale, retailItem?.NameTranslations) ?? '',\n linkURL: retailItem?.Url,\n imageSource,\n subMenu: this._getNestedChildren(retailItem, imageSource, addedAllMenu),\n promotionalContent: this.props.config.displayPromotionalImage && promotionalData,\n menuSource: MenuSource.Retail,\n ariaLabel: `${NavigationMenu.getFriendlyName(locale, retailItem?.NameTranslations) ?? ''} ${menuAriaLabel}`\n } as IMenuItemData;\n }\n return {\n id: NavigationMenu.CMSItemIdInit++,\n linkText: cmsItemText,\n linkURL: (cmsItem && cmsItem.linkUrl && cmsItem.linkUrl.destinationUrl) || '',\n imageDestinationURL: (cmsItem && cmsItem.imageLink && cmsItem.imageLink.destinationUrl) || '',\n imageSource: (cmsItem && cmsItem.image && cmsItem.image.src) || '',\n subMenu: this._getCMSNestedChildren(cmsItem),\n menuSource: MenuSource.Cms,\n shouldOpenNewTab: cmsItem?.openInNewTab,\n ariaLabel: `${cmsItemText} ${menuAriaLabel}`\n } as IMenuItemData;\n }\n\n private _getNestedChildren(category?: CategoryHierarchy, imageSourceUrl?: string, addedAllMenu: boolean = false): IMenuItemData[] {\n const nestedChildren: IMenuItemData[] = [];\n if (!category || !category.Children || category.Children.length === 0) {\n return [];\n }\n if (!this.props.config.enabletopMenu && addedAllMenu) {\n nestedChildren.push({\n linkText: this.props.resources.allCategoryMenuText,\n imageSource: imageSourceUrl,\n linkURL: getCategoryUrl(category, (this.props.context as unknown) as IActionContext, {})\n });\n }\n category.Children.map((item: CategoryHierarchy, index) => {\n nestedChildren.push(this._constructMenuItemData(item, undefined, true, index, false));\n });\n return nestedChildren;\n }\n\n private _getCMSNestedChildren(category?: ICmsNavItemsData): IMenuItemData[] {\n const nestedChildren: IMenuItemData[] = [];\n\n if (!category || !category.subMenus || category.subMenus.length === 0) {\n return [];\n }\n\n category.subMenus.map((item: ISubMenusData, idx: number) => {\n nestedChildren.push(this._constructMenuItemData(undefined, item, false, idx));\n });\n return nestedChildren;\n }\n\n private readonly _setNavigationSource = (sourceType?: navigationMenuSource): void => {\n switch (sourceType) {\n case navigationMenuSource.retailServerOnly:\n this.isRetail = true;\n this.isCMS = false;\n break;\n case navigationMenuSource.cmsOnly:\n this.isRetail = false;\n this.isCMS = true;\n break;\n case navigationMenuSource.all:\n this.isRetail = true;\n this.isCMS = true;\n break;\n default:\n }\n };\n\n private _updateViewport(): void {\n this.viewport = this._getViewport();\n this.setState({ isMobile: this.isMobile });\n }\n\n private _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\nexport default NavigationMenu;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IPayLoad,\n ITelemetryContent,\n Module,\n Node,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { INavigationMenuViewProps } from './navigation-menu';\nimport { IMenuItemData } from './navigation-menu.data';\n\ninterface INavigationState {\n parentMenu?: number;\n activeMenu?: number;\n categoryImage?: IImageData[] | null;\n mobileViewLabelText?: string;\n categoryImageAltText: string;\n}\n\n/**\n *\n * NavigationMenuView component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuView extends React.PureComponent {\n private static isBackTrack: boolean = false;\n\n private currentLevel: number = 0;\n\n private readonly menuNode: React.RefObject;\n\n private readonly menuItemRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: INavigationMenuViewProps) {\n super(props);\n this.menuNode = React.createRef();\n this.menuItemRef = React.createRef();\n this.state = { activeMenu: undefined, mobileViewLabelText: '', parentMenu: undefined, categoryImageAltText: '' };\n this._closeSubmenu = this._closeSubmenu.bind(this);\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 componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document.body.addEventListener('mousedown', this._handleClickOutside);\n document.body.addEventListener('focusout', this._handleFocusOutside);\n }\n }\n\n public componentDidUpdate(): void {\n if (this.menuItemRef.current?.children[0] && this.props.isMobileView) {\n (this.menuItemRef.current.children[0] as HTMLElement).focus();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document.body.removeEventListener('mousedown', this._handleClickOutside, false);\n document.body.removeEventListener('focusout', this._handleFocusOutside, false);\n }\n }\n\n public render(): JSX.Element | null {\n const { isMobileView, MenuList, MobileBackButton, MobileDescriptionContainer, MobileDescriptionLabel, Navigation } = this.props;\n\n this.currentLevel = 1;\n return (\n \n \n {isMobileView && this.state.activeMenu !== undefined && (\n \n \n {this.state.mobileViewLabelText}\n \n )}\n {this._renderDisplay()}\n \n \n );\n }\n\n private _renderDisplay(): JSX.Element[] {\n const { ListItem, menuItemData, isMobileView } = this.props;\n const { activeMenu } = this.state;\n const menuItemList: JSX.Element[] = [];\n\n if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\n let menuItem: IMenuItemData = {};\n for (const menuItemDatum of menuItemData) {\n if (menuItemDatum && menuItemDatum.id === activeMenu) {\n menuItem = menuItemDatum;\n !NavigationMenuView.isBackTrack\n ? this.setState({ parentMenu: undefined })\n : this.setState({ parentMenu: undefined, mobileViewLabelText: menuItemDatum.linkText });\n break;\n }\n menuItem = this._getFromSubMenu(menuItemDatum) as IMenuItemData;\n if (menuItem && menuItem.id === activeMenu) {\n break;\n }\n }\n\n menuItem &&\n menuItemList.push(\n \n {' '}\n {this._createMenuItemList(menuItem)}{' '}\n \n );\n } else {\n menuItemData.forEach((item: IMenuItemData, index: number) => {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n \n );\n });\n }\n\n return menuItemList;\n }\n\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\n const subMenus = item && item.subMenu;\n if (subMenus && subMenus.length > 0) {\n for (let i = 0; i <= subMenus.length - 1; i++) {\n if (subMenus[i].id === this.state.activeMenu) {\n !NavigationMenuView.isBackTrack\n ? this.setState({ parentMenu: item?.id })\n : this.setState({ parentMenu: item && item.id, mobileViewLabelText: subMenus[i].linkText });\n return subMenus[i];\n }\n const found = this._getFromSubMenu(subMenus[i]);\n if (found) {\n return found;\n }\n }\n }\n this.props.context.telemetry.error('Submenu content is empty, module wont render.');\n return null;\n }\n\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false);\n }\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false)}\n \n );\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\n return this._renderLinkMenuItem(menuItemData, menuItemData.id, false, true);\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\n return this._renderSpanMenuItem(menuItemData, menuItemData.id, true);\n }\n this.props.context.telemetry.error('Navigation menu content is empty, module wont render.');\n return null;\n }\n\n private _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number, IsSubMenu?: boolean): JSX.Element | null {\n const { isMobileView, ListItem } = this.props;\n const enableMultiSupportMenu = this.props.config.enableMultilevelMenu || false;\n const multiLevelSupportedMenu = this.props.config.menuLevelSupport || 3;\n\n // Const isParentMenu:boolean= false;\n if (activeMenu && this.state.activeMenu !== activeMenu) {\n this.props.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\n return null;\n }\n\n if (!subMenus || subMenus.length === 0) {\n this.props.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\n return null;\n }\n\n let levelClassName: string = '';\n const menuOptions =\n subMenus &&\n subMenus.map((option: IMenuItemData, idx: number) => {\n const hasOptions = option.subMenu && option.subMenu.length > 0;\n let menuItem: JSX.Element | null;\n if (hasOptions && isMobileView) {\n menuItem = this._renderButtonMenuItem(option, activeMenu, idx);\n } else {\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, idx) : this._renderSpanMenuItem(option);\n }\n\n let subMenu;\n const haveSubmenu = hasOptions && enableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - 1;\n if (haveSubmenu) {\n this.currentLevel++;\n levelClassName = enableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined, true);\n }\n return (\n \n {menuItem}\n {subMenu}\n \n );\n });\n return this._renderMenu(levelClassName, menuOptions, activeMenu, IsSubMenu);\n }\n\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\n const { Button } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderLinkMenuItem(\n option: IMenuItemData,\n index?: number,\n hoverEffect: boolean = true,\n isParent: boolean = false\n ): JSX.Element | null {\n const { Link } = this.props;\n const linkText = option.linkText ? option.linkText : '';\n const imagesource = option.imageSource ? option.imageSource : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\n const { Link } = this.props;\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n if (linkText && linkUrl) {\n return (\n \n {linkText}\n \n );\n }\n return null;\n }\n\n private _renderSpanMenuItem(option: IMenuItemData, index?: number, isParent: boolean = false): JSX.Element | null {\n const { Span } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean): JSX.Element | null {\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, showPromotionalContent, isMobileView } = this.props;\n const categoryImageDisplay =\n !isMobileView &&\n (showCategoryImage || showPromotionalContent) &&\n !ArrayExtensions.hasElements(this.state.categoryImage) &&\n !submenu;\n const promotionalContentDisplay =\n !isMobileView && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !submenu;\n const DivContainerClass = this.currentLevel > 2 || categoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\n this.currentLevel = 1;\n return (\n \n 2 &&\n 'navmenu-multi-level'\n )}\n >\n {menuOptions}\n \n {categoryImageDisplay &&\n this.state.categoryImage &&\n this.state.categoryImage.map(item => (\n \n {this.state.categoryImage && this._getCategoryImage(item)}\n {promotionalContentDisplay && this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n \n ))}\n \n );\n }\n\n private readonly _updateCategoryImage = (categoryImageSrc: string, option: IMenuItemData) => () => {\n const linkText = option && option.linkText ? option.linkText : '';\n const promotionalImage: IImageData[] = [{ src: categoryImageSrc, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\n option.promotionalContent.map(item => {\n if (item && item.image) {\n const imageSrc = item.image.src;\n const promotionalItemImageSettings = item.image.imageSettings;\n promotionalImage.push({\n src: imageSrc,\n altText: item.text,\n imageSettings: promotionalItemImageSettings,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n }\n });\n }\n this.setState({\n categoryImage: promotionalImage.length > 0 ? promotionalImage : [{ src: 'empty' }],\n categoryImageAltText: linkText\n });\n };\n\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\n if (!this.props.isMobileView) {\n this.setState({\n activeMenu: this.state.activeMenu && this.state.activeMenu === data.id! ? undefined : data.id!,\n parentMenu: parentId\n });\n if (this.props.showCategoryImage) {\n this._updateCategoryImage(data.imageSource!, data)();\n }\n } else {\n NavigationMenuView.isBackTrack = false;\n this.setState({\n activeMenu: data.id,\n mobileViewLabelText: data.linkText!,\n parentMenu: parentId\n });\n }\n };\n\n private readonly _handleGoBack = () => () => {\n NavigationMenuView.isBackTrack = true;\n this.setState({ activeMenu: this.state.parentMenu });\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleClickOutside = (event: MouseEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\n this.setState({\n activeMenu: undefined,\n mobileViewLabelText: '',\n categoryImage: null\n });\n }\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleFocusOutside = (event: FocusEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.relatedTarget as Node)) {\n this._closeSubmenu();\n }\n };\n\n /**\n * Checks to assign a ref for focus.\n * @param index -Sub menu list index.\n * @param mobileViewLabelText -Parent user clicked Sub menu list.\n * @param optionLinkText -Sub menu list.\n * @returns Ref.\n */\n private readonly _shouldAddFocusMenuRef = (index: number, mobileViewLabelText?: string, optionLinkText?: string) => {\n if (!NavigationMenuView.isBackTrack && index === 0) {\n return true;\n }\n if (!optionLinkText || !mobileViewLabelText) {\n return false;\n }\n return mobileViewLabelText === optionLinkText;\n };\n\n private _closeSubmenu(): void {\n if (!this.props.isMobileView) {\n this.setState({ activeMenu: undefined, categoryImage: null, mobileViewLabelText: '' });\n }\n }\n\n private readonly _getCategoryImage = (categoryImage?: IImageData): React.ReactNode | null => {\n if (!categoryImage || !categoryImage.src) {\n return null;\n }\n\n const categoryImageUrl = generateImageUrl(`${categoryImage.src}`, this.props.context.actionContext.requestContext.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n sm: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n md: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n lg: { q: 'w=300&h=250&m=8', w: 0, h: 0 }\n },\n lazyload: true\n };\n if (categoryImageUrl !== undefined) {\n return (\n \n );\n }\n return null;\n };\n}\n\nexport default NavigationMenuView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { Button, ITelemetryContent, getPayloadObject, getTelemetryAttributes } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-organization-wide-selector';\nconst buttonClassName = `${componentClassName}__button`;\nconst buttonActiveClassName = `${componentClassName}__active-button`;\nconst buttonInactiveClassName = `${componentClassName}__inactive-button`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources {\n currentUserOptionLabel: string;\n currentUserOptionAriaLabel?: string;\n organizationWideOptionLabel: string;\n organizationWideOptionAriaLabel?: string;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState interface.\n */\nexport enum OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState {\n CurrentUser,\n OrganizationWide\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorData interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorData {\n customer: Customer;\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n extends IComponentProps {\n className?: string;\n resources: IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources;\n currentSelectorState: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState;\n telemetryContent?: ITelemetryContent;\n onChange(state: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState): void;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelector component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersOrganizationWideSelectorFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n) => {\n // Current version doesn't include functionality for non b2b users or non-admin b2b users.\n if (!props.data.customer.IsB2bAdmin) {\n return
;\n }\n\n const [selectorState, setSelectorState] = React.useState(props.currentSelectorState);\n\n const onClickHandler = (newSelectorState: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState) => {\n setSelectorState(newSelectorState);\n props.onChange(newSelectorState);\n };\n\n // define telemetry attributes\n const currentUserOrderHistoryAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, props.resources?.currentUserOptionLabel ?? 'Current user order history')\n );\n const orgWideOrderHistoryAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, props.resources?.currentUserOptionLabel ?? 'Org wide order history')\n );\n\n return (\n
\n onClickHandler(OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.CurrentUser)}\n {...currentUserOrderHistoryAttributes}\n >\n {props.resources?.currentUserOptionLabel}\n \n onClickHandler(OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.OrganizationWide)}\n {...orgWideOrderHistoryAttributes}\n >\n {props.resources?.organizationWideOptionLabel}\n \n
\n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelector component.\n */\nexport const OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n>('OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent', {\n component: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorFunctionalComponent\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { addThrottledEvent, Drawer, IModuleProps, INodeProps, KeyCodes, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport React from 'react';\n\nimport { ISitePickerConfig, ISitePickerProps } from './site-picker.props.autogenerated';\n\nexport interface ISitePickerViewProps extends ISitePickerProps {\n SitePicker: IModuleProps;\n SitePickerMenu: INodeProps;\n SitePickerMenuSpan: INodeProps;\n SitePickerMenuList: INodeProps;\n SitePickerMenuListItem: INodeProps;\n SitePickerMenuListItemArray: React.ReactNode[] | undefined;\n siteOptionsState: boolean;\n SitePickerMobileContainer: INodeProps;\n isMobileView: boolean;\n renderSiteOptions(): void;\n resetSiteOptionsState(): void;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\ninterface ISitePickerState {\n expandSiteOptions: boolean;\n isMobile: boolean;\n}\n\n/**\n *\n * SitePicker component.\n * @extends {React.PureComponent>}\n */\nclass SitePicker extends React.PureComponent, ISitePickerState> {\n private readonly _cookieName: string = '_msdyn365___site_';\n\n private readonly _cookieExpirationInSeconds: number = 5_184_000;\n\n private readonly _sitePickerMenuNode: React.RefObject;\n\n private readonly _sitePickerMenuButton: React.RefObject;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\n @observable\n private viewport: GridSize;\n\n public constructor(props: ISitePickerViewProps) {\n super(props);\n this._handleChange = this._handleChange.bind(this);\n this._sitePickerMenuNode = React.createRef();\n this._sitePickerMenuButton = React.createRef();\n this._renderSiteOptions = this._renderSiteOptions.bind(this);\n this._resetSiteOptionsState = this._resetSiteOptionsState.bind(this);\n this._escFunction = this._escFunction.bind(this);\n this._handleOutsideClick = this._handleOutsideClick.bind(this);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this.state = {\n expandSiteOptions: false,\n isMobile: this.isMobile\n };\n }\n\n @computed get isMobile(): boolean {\n return this.viewport === 'xs' || this.viewport === 'sm';\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document?.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.addEventListener('mousedown', this._handleOutsideClick);\n this.resizeThrottledEventHandler = window && addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document?.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.removeEventListener('mousedown', this._handleOutsideClick, false);\n window && window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n\n public render(): JSX.Element | null {\n const viewProps: ISitePickerViewProps = {\n ...(this.props as ISitePickerProps),\n SitePicker: {\n moduleProps: this.props,\n className: classnames('ms-site-picker', this.props.config.className, this.state.isMobile ? 'mobile-view' : 'desktop-view'),\n tag: 'div'\n },\n SitePickerMenu: {\n tag: 'button' as NodeTag,\n className: 'ms-site-picker__button',\n 'aria-label': this.props.config.heading?.text,\n 'aria-expanded': this.state.expandSiteOptions,\n onClick: this.props,\n ref: this._sitePickerMenuButton\n },\n SitePickerMenuSpan: {\n className: 'ms-site-picker__span',\n tag: 'span'\n },\n SitePickerMenuList: {\n className: 'ms-site-picker__list',\n role: 'menu',\n tag: 'ul',\n ref: this._sitePickerMenuNode\n },\n SitePickerMenuListItem: {\n className: 'ms-site-picker__list__item',\n role: 'presentation',\n tag: 'li'\n },\n SitePickerMobileContainer: {\n tag: Drawer,\n className: 'ms-site-picker__drawer',\n toggleButtonText: this.props.config.heading?.text,\n openGlyph: 'ms-site-picker__drawer-open',\n closeGlyph: 'ms-site-picker__drawer-close',\n glyphPlacement: 'end'\n },\n isMobileView: this.state.isMobile,\n SitePickerMenuListItemArray: this._renderSitePickerImage(),\n renderSiteOptions: this._renderSiteOptions,\n resetSiteOptionsState: this._resetSiteOptionsState,\n siteOptionsState: this.state.expandSiteOptions\n };\n return this.props.renderView(viewProps);\n }\n\n private _renderSiteOptions(): void {\n const expandSiteOptionsState = this.state.expandSiteOptions;\n this.setState({\n expandSiteOptions: !expandSiteOptionsState\n });\n }\n\n private _resetSiteOptionsState(): void {\n this.setState({\n expandSiteOptions: false\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _escFunction = (event: any) => {\n const key = event.keyCode;\n if (this.state.expandSiteOptions) {\n switch (key) {\n case KeyCodes.Escape: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n this._sitePickerMenuButton?.current?.contains(nextFocus) ||\n this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n this._sitePickerMenuButton?.current?.focus();\n }\n }, 50);\n break;\n }\n case KeyCodes.Tab: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n !this._sitePickerMenuButton?.current?.contains(nextFocus) &&\n !this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n }\n }, 50);\n break;\n }\n default:\n return;\n }\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _handleOutsideClick = (event: any) => {\n if (\n (this._sitePickerMenuButton.current?.contains(event.target) && this.state.expandSiteOptions) ||\n (this._sitePickerMenuNode.current?.contains(event.target) && this.state.expandSiteOptions)\n ) {\n return;\n }\n this._resetSiteOptionsState();\n };\n\n private _handleChange(e: React.MouseEvent): void {\n e.preventDefault();\n if (e.currentTarget.href && e.currentTarget.href.length > 0 && window) {\n if (this.props.context.request.cookies.isConsentGiven()) {\n const cookieConfig = { maxAge: this._cookieExpirationInSeconds };\n this.props.context.request.cookies.set(this._cookieName, e.currentTarget.href, cookieConfig);\n }\n window.location.assign(e.currentTarget.href);\n }\n }\n\n private _renderSitePickerImage(): React.ReactNode[] | undefined {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n sm: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n md: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n lg: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n xl: { q: 'w=40&h=20&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n const siteOptions = this.props.config.siteOptions && this.props.config.siteOptions;\n return (\n siteOptions &&\n siteOptions.map((item, index) => {\n const image = item?.siteImage;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings?.viewports ? image.imageSettings : defaultImageSettings\n };\n return (\n \n {item?.siteName}\n \n \n );\n })\n );\n }\n\n private _updateViewport(): void {\n this.viewport = this._getViewport();\n this.setState({ isMobile: this.isMobile });\n }\n\n private _getViewport(): GridSize {\n const { context } = this.props;\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (typeof window !== undefined && 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 return 'xs';\n }\n}\n\nexport default SitePicker;\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 { ISitePickerViewProps } from './site-picker';\n\nexport default (props: ISitePickerViewProps) => {\n return <>{_renderSitePicker(props)};\n};\n\nconst _renderDesktopView = (props: ISitePickerViewProps) => {\n const { SitePickerMenu, SitePickerMenuSpan } = props;\n return (\n <>\n \n {props.config.heading?.text}\n \n \n {props.siteOptionsState ? _renderSiteOptionsList(props) : null}\n \n );\n};\n\nconst _renderSiteOptionsList = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMenuList, SitePickerMenuListItem, SitePickerMenuListItemArray } = props;\n const options = SitePickerMenuListItemArray!.map((item, index) => {\n return (\n \n {item}\n \n );\n });\n return (\n \n {options}\n \n );\n};\n\nconst _renderMobileView = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMobileContainer } = props;\n return (\n \n
\n {props.SitePickerMenuListItemArray?.map((item, index) => {\n return
{item}
;\n })}\n
\n
\n );\n};\n\nconst _renderSitePicker = (props: ISitePickerViewProps): React.ReactNode => {\n const { isMobileView, SitePicker } = props;\n return {isMobileView ? _renderMobileView(props) : _renderDesktopView(props)};\n};\n"],"names":["_renderForm","form","SearchForm","FormWrapper","React","Node","Object","assign","submitBtn","input","cancelBtn","_renderKeywordSuggestions","KeywordSuggest","UlKeyword","keywordSuggestions","text","map","_renderProductSuggestions","ProductSuggest","UlProduct","productSuggestions","title","items","item","index","LiProduct","key","id","AProduct","thumbnail","price","_renderCategorySuggestions","CategorySuggest","UlCategory","categorySuggestions","props","Search","AutoSuggestAriaLabel","AutoSuggestAriaLabelText","searchText","AutoSuggest","autosuggestCategory","autosuggestKeyword","autosuggestProduct","label","Module","length","AccordionItem","constructor","super","moduleClassName","handleHeadingChange","event","this","config","accordionItemTitle","target","value","_onToggle","bind","telemetryContent","getTelemetryObject","context","request","telemetryPageName","friendlyName","telemetry","shouldComponentUpdate","nextProps","data","render","slots","renderView","accordionExpandedStateResult","accordionExpandedState","result","expanded","undefined","isAllExpanded","isExpandedOnInitialLoad","_objectSpread","AccordionItemContainer","moduleProps","className","classnames","AccordionItemContent","drawer","tag","ControlledDrawer","toggleButtonText","collapseProps","isOpen","onToggle","onTextChange","requestContext","accordionSlots","state","interactionStyle","accordionState","actionContext","update","createAccordionStateInput","__decorate","observer","_renderAccordionItemContent","accordionItemContent","Accordion","expandAllButtonRef","collapseAllButtonRef","heading","_onExpandAll","_onCollapseAll","payLoad","getPayloadObject","isDisabled","headingComponent","Msdyn365","editProps","onEdit","accordionViewProps","AccordionContainer","HeaderSection","HeadingWrapper","accordianButtonsContainer","accordionButtons","_renderAccordionButton","accordionItemContainer","accordionItems","_getAccordionItem","resources","contentAction","etext","TelemetryConstant","ExpandAll","attributeExpandAll","getTelemetryAttributes","CollapseAll","attributeCollapseAll","showToggleAll","disabled","expandAllText","onClick","ref","toggleAllSeparator","collapseAllText","error","setState","setTimeout","_this$collapseAllButt","current","focus","_this$expandAllButton","AadGeneric","componentDidMount","$i2e","$element","window","insertServiceContent","getElementContent","initialize","viewProps","aadGeneric","aadConainer","aadAPIConainer","AccountAddressTile","handleLinkTextChange","linkIndex","links","linkText","accountAddressTileDescriptionForSingleAddress","accountAddressTileDescriptionForMultipleAddresses","address","addressCount","accountAddressTileDescription","description","format","LinksComponent","DescriptionComponent","_ref","_mapEditableLinks","linkdata","editableLinks","forEach","link","attributes","editableLink","ariaLabel","linkUrl","destinationUrl","openInNewTab","role","additionalProperties","push","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","split","_get","account","includes","creditSummarySectionHeading","accountSectionHeading","backToShoppingText","customerSincePrefix","availableCreditLabel","balanceOwedLabel","creditExcessLabel","requestStatementButtonLabel","modalHeaderLabel","sendToEmailLabel","fromDateLabel","toDateLabel","submitRequestLabel","cancelLabel","myAccountStatementLabel","fullOrganizationLabel","modalAriaLabel","accountNumber","AccountNumber","createdOn","_formatJoinDate","CreatedDateTime","name","FirstName","LastName","customerCredit","customerAccountBalance","excess","InvoiceAccountCreditLimit","CreditLimit","Balance","InvoiceAccountBalance","creditExcess","_formatCurrency","availableCredit","balanceOwed","backLink","emailAddress","isB2BSite","isChannelTypeB2B","actionBar","IsB2bAdmin","AdminRequestStatementButton","buttonReference","onRequestStatement","onToggleDropdown","myUserAccountLabel","isDropdownShowing","ActionBar","Heading","accountLabels","AccountLabels","accountValues","AccountValues","AvailableCreditComponent","BalanceOwedComponent","CreditExcessComponent","homeButton","BackButton","actions","requestStatementModal","RequestStatementModal","email","isModalOpen","toggle","fromDateString","toDateString","onChangeFromDate","onChangeToDate","canSubmitRequest","canSubmitStatementRequest","onSubmitRequest","selectedUser","selectedUserLabel","maxDateString","currency","currencyCode","formatCurrency","toFixed","date","Intl","DateTimeFormat","locale","month","day","year","computed","creditSummaryLabels","creditSummaryValues","popoverReference","Button","innerRef","_ref2","onPromoteToSeller","promoteToSellerLabel","onSelectCustomerAccount","onSelectFullOrg","onSelectPromoteToSeller","requestStatementDropdownString","Random","Guid","generateGuid","Popover","placement","onChangeFromDateEvent","onChangeToDateEvent","onBlurFromDate","ObjectExtensions","isFunction","onBlurToDate","Modal","horizontalPosition","verticalPosition","autoFocus","fade","ModalHeader","ModalBody","htmlFor","type","onBlur","onChange","max","min","ModalFooter","_ref5","_ref6","_ref7","_ref8","BackToShopping","href","AccountGenericTile","AccountInvoiceTileDescription","AccountInvoiceTile","_data$customerBalance","cultureFormatter","accountInvoiceTileDescription","invoiceTotalAmount","customerBalance","OpenInvoiceBalance","AccountOrderTemplatesTileDescription","AccountOrderTemplatesTileLinks","AccountOrderTemplatesTile","params","isEditor","accountOrderTemplatesTileDescription","orderTemplates","orderTemplatesCount","AccountAttributeDataTypeValue","AccountProfileAttributes","isUpdatingAttributes","gotException","hasError","attributeClassName","maxIntegerLimit","minIntegerLimit","maxDecimalLimit","minDecimalLimit","maxStringLength","maxVATNumberLength","maxPhoneLength","editAsyncCustomerFeatureName","isEditAsyncCustomerFeatureEnabled","_renderAttributes","_data$featureState","_this$props$accountPr","accountProfileProps","attributeDefinitions","additionalInformationSectionHeading","elements","showAttributes","att","attributeDefinition","find","attribute","IsHidden","Name","toLocaleLowerCase","RecordId","_renderAttribute","edit","editAttributes","attributesEditButtonText","attributesSaveButtonText","saveAttributes","attributesCancelButtonText","cancelAttributes","featureState","feature","IsEnabled","disableBtn","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","attributesContainerRef","Text","showPhone","_renderPhone","showVatNumber","_renderVatNumber","attributesSaveExceptionMessage","_enableAttributes","editRef","_saveAttributes","_disableAttributes","phoneSectionHeading","replace","_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","selected","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","Number","isNaN","typeError","attributeInputTypeErrorText","lowerBoundValue","upperBoundValue","rangeError","attributeInputRangeErrorText","attributeInputValueExceedsMaximumErrorText","attributeInputValueExceedsMinimumErrorText","integerValue","trimValue","trim","attributeInputStringMaxLengthErrorText","textValue","booleanValue","attributeInputMandatoryErrorText","findIndex","splice","Attribute","recordId","Units","ExtensionProperties","NameTranslations","KeyName","Phone","VATNumber","VatNumber","async","updateCustomerAttributesInput","apiSettings","updateCustomerAttributes","initialCustomerAttributes","exception","debug","element","_buildPayloadData","defaultIntegerValue","DefaultValue","LowerBound","UpperBound","defaultDecimalValue","defaultStringValue","defaultBooleanValue","_getCustomerPhoneAndVatNumber","reaction","nextState","observable","AccountProfile","isUpdatingPreference","handleEmailHeadingChange","emailAddressSectionHeading","handleNameHeadingChange","nameSectionHeading","editButtonText","onClickEventHandler","_updateAccountPersonalization","_renderPreference","sectionHeading","enableAriaLabel","isOptOut","onClickHandler","accountPreference","buttonWrapper","buttonYesText","buttonNoText","button","toString","onUpdateAccountPreference","isOptOutPersonalization","preferenceType","OptOutWebActivityTracking","updateCustomerPersonalizationInput","OptOutPersonalization","updateCustomerPersonalization","_renderCustomerAttributes","_this$props$context$a","editButtonAriaLabel","invalidAsyncCustomerState","shouldRenderAttributes","editLink","get","infoMessageBar","accountProcessingPendingInfoMessage","accountProfileWrapper","emailSection","_renderEmailSection","nameSection","_renderNameSection","getDescription","preferenceSection","_renderPreferenceSection","customerAttributesWrapper","customerAttributesSection","AccountProfileItem","ArrayExtensions","hasElements","personalizationDescription","personalizationEnableButtonAriaLabel","webTrackingDescription","webTrackingEnableButtonAriaLabel","preferencesSectionHeading","personalizationSectionHeading","webTrackingSectionHeading","enableDataAnalytics","features","extraPreferences","accountPreferences","personalization","AccountPreferencesSection","AccountPreferenceSection","preferenceSecton","AccountProfileSection","_ref3","AccountWelcomeTile","accountInfo","accountInformation","AccountWishlistTile","accountWishlistTileDescription","wishlists","wishlistsCount","CommerceListLines","RequestsTableColumnHeader","getUserName","isNullOrEmpty","UserFirstName","UserLastName","b2bRequestsNameDisplay","formatDate","getDetails","_requestDetails$Invoi","Details","requestDetails","accountStatementStartDateTime","AccountStatementStartDateTime","accountStatementEndDateTime","AccountStatementEndDateTime","invoiceId","InvoiceId","TypeValue","b2bRequestsAccountStatementDetails","b2bRequestsInvoiceCopyDetails","getDisplayFriendlyTypeValue","typeValue","b2bRequestsTypeCreateProspect","b2bRequestsTypeAddUser","b2bRequestsTypeDeleteUser","b2bRequestsTypeEditUser","b2bRequestsTypeRequestAccountStatement","b2bRequestsTypeRequestInvoiceCopy","b2bRequestsTypeUnknown","getDisplayFriendlyStatusValue","statusValue","b2bRequestsStatusProcessed","b2bRequestsStatusError","b2bRequestsStatusRequested","createTableProps","tableProps","_context$request$quer","tableData","operationRequests","_request$TypeValue","_request$StatusValue","row","b2bRequestsTypeColumn","TableDataType","b2bRequestsRequestDateColumn","b2bRequestsDescriptionColumn","b2bRequestsUserColumn","b2bRequestsStatusColumn","StatusValue","isSelected","createTableItems","headings","filter","isMobile","mobileExcludedColumns","sortable","columnSortAriaLabel","rows","editLinkText","deleteLinkText","viewLinkText","enableToModify","actionLinkText","showCheckBoxes","isSortable","showPagination","minifyActions","excludedColumns","paginationProperty","skipCount","query","skip","parseInt","itemPerPage","prevText","b2bRequestsPreviousText","nextText","b2bRequestsNextText","paginationText","url","reqContext","URL","location","requestUrl","isSingleSelectOnly","onDelete","onView","businessUserSelectCheckBoxAriaLabelText","sortByAscending","sortByDescending","B2bRequestsTable","Table","B2bRequestsStatus","renderHeader","headingData","_this$props$data$oper","_this$props$data$oper2","itemCount","getItemNumberDisplayString","_retrieveExcludedColumns","renderTable","b2bRequestsNumberOfItemsSingular","b2bRequestsNumberOfItems","variant","VariantType","Viewport","b2bRequestsStatus","table","defaultClassName","B2bRequestsTileLinks","B2bRequestsTile","b2bRequestsTile","AccountOrganizationUsersTileDescription","AccountOrganizationUsersTileLinks","OrganizationUsersTile","accountOrganizationUsersTileDescriptionForSingleUser","accountOrganizationUsersTileDescriptionForMultipleUsers","numUsers","users","accountOrganizationUsersTileDescription","message","errorClassName","GetMaxLength","maxLength","parsedMaxLength","pattern","forId","successClassName","PasswordResetVerification","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","clearInterval","isInitialized","getValue","v1Value","v2Value","templateVersion","emailRegex","EmailRegex","defaultRegex","source","componentDidUpdate","viewState","isShowLoading","passwordResetVerification","loading","modal","modalBody","icon","PasswordResetVerificationLoadingIconComponent","PasswordResetVerificationLoadingMessageComponent","loadingMessage","defaultAADConainer","style","display","passwordResetVerificationLocalAccount","_renderLocalAccount","obj","ID","toLowerCase","PAT","verifying_blurb","localAccount","verificationControlWrapper","_renderInput","emailAddressLabelText","verificationCodeLabelText","successMessage","PasswordResetVerificationSuccessComponent","verificationCodeSendSuccess","emailAddressVerifiedSuccess","errorMessage","PasswordResetVerificationErrorComponent","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","invalidEmailError","verificationButtonsWrapper","verificationButtons","PasswordResetVerificationButtonComponent","sendCodeButtonAriaLabel","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","buttonsWrapper","buttons","continueButtonAriaLabel","continueButtonText","cancelButtonAriaLabel","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","labelText","cssClassName","wrapper","PasswordResetVerificationLabelComponent","PasswordResetVerificationInputComponent","PasswordResetVerificationItem","PasswordResetVerificationLoading","LocalAccount","SignUp","handleParagraphChange","disclaimer","isEmailVerificationRequried","VERIFY","isGivenNameVerificationRequried","isSurnameVerificationRequried","newPasswordRegex","reenterPasswordRegex","UX_INPUT_TYPE","PAT_DESC","invalidPasswordError","invalidEmailAddressError","errorMessages","required_field","requiredFieldMissingError","PasswordRegex","signUp","SignUpLoadingIconComponent","SignUpLoadingMessageComponent","signUpLocalAccount","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","passwordLabelText","confirmPasswordLabelText","emailVerification","isRequired","SignUpButtonComponent","SignUpSuccessComponent","SignUpErrorComponent","givenNameVerification","givenName","requiredFieldMissingSummaryError","surnameVerification","surname","signUpButtonArialabel","signUpButtonText","cancelButtonArialabel","passwordEntryMismatchError","fieldIncorrectError","SignUpLabelComponent","SignUpInputComponent","SignUpItem","SignUpEmailVerification","SignUpGivenNameVerificationComponent","SignUpSurnameVerificationComponent","_ref4","SignUpLoading","FormInput","fieldReference","placeholder","FormLabel","asteriskText","FormButton","FormFieldError","FormType","InputType","InputID","renderInputSection","inputs","asteriskAfterLabel","onInputChange","customClass","maxChars","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","then","reload","catch","trace","addOrganizationUser","AddOrganizationUserInput","businessUserActionRetailErrorMsg","parseFloat","_handleEditIcon","userData","possibleName","cell","fullName","lastSpaceIndex","lastIndexOf","firstName","substring","lastName","possibleCell","dataCell","user","_handleDeleteIcon","displayedUserData","Price","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","None","callbackRemoveButton","_onInputChange","prev","refresh","isReady","_isFormReady","formItem","match","_formatPrice","_getCurrentUrl","_getViewport","device","Type","innerWidth","gridSettings","xs","w","sm","md","lg","_toggleStatementRequestDropdown","_promoteToSeller","promoteToSellerUrl","getUrlSync","currentUser","_getB2BUserId","_closeStatementRequestModal","_this$statementReques","statementRequestButtonReference","_onSelectRow","records","selectedRow","rowProps","Status","_viewport","_updateViewport","submitButtonReference","addedReference","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","status","errorProps","OrganizationUserList","moduleContainer","headingTag","addUserButton","noUsersText","modalState","organizationListTable","_createTableProps","toggleModal","_renderUserForm","_renderUserDetails","requestAccountStatementButton","selectedOrganizationLabel","selectedUserName","tableSort","paginationItemPerPage","businessUserPaginationNextButtonText","businessUserPaginationPreviousButtonText","businessUserEditButtonText","businessUserViewUserButtonText","businessUserDeleteButtonText","businessUserPaginationAriaLabel","_createTableItems","editLinkTooltip","deleteLinkTooltip","viewLinkTooltip","resourcePrefix","tableAriaLabel","tableTabIndex","formatPrice","checkBoxCallback","businessUserActiveStatusText","businessUserPendingStatusText","businessUserRemovedStatusText","usersList","statusString","FullName","buttonReferences","delete","_this$state$reference","businessUserRemoveModalHeaderText","businessUserRemoveModalDescription","businessUserViewModalHeaderText","businessUserCancelButtonText","businessUserCancelRemoveUserButtonText","businessUserRemoveUserButtonText","businessUserErrorUpdatingUsersMessage","formClassName","typeClassName","handleRemoveButton","modalClassName","modalHeading","modalDescription","businessUserEditUserFormHeadingText","businessUserAddUserFormHeadingText","businessUserSaveButtonArialabel","businessUserSaveButtonText","businessUserCancelButtonArialabel","businessUserFieldIncorrectErrorText","businessUserActionErrorText","businessUserAllFieldsRequiredMessage","BusinessFormItem","BusinessUserForm","modalFooter","_renderModal","BusinessUserDetails","userFullName","headingSection","bodySection","footerSection","wrapClassName","applicationNode","ButtonList","_getForm","formProps","CatalogPicker","handleTextChange","paragraph","_heading$tag","_this$props$data$cata","catalogPickerHeading","_moduleClassName","isCatalogsAvailable","catalogs","catalogPickerParagraph","RichTextComponent","catalogValidationText","handleText","catalogPicker","_renderCatalogPicker","_renderCatalogPickerButton","catalogId","getCatalogId","currentCatalogText","linkToCatalog","_getUrlSync","catalogUrl","fullUrl","searchParams","set","changeCatalogButtonText","_this$props$data$cata2","reactKey","JSON","stringify","image","firstOrDefault","Images","tabIndex","Image","src","generateImageUrl","Uri","imageSettings","galleryImageSettings","altText","AltText","loadFailureBehavior","CatalogPickerViewFunctionComponent","FooterItem","footerItemClassName","_createHeading","_createImageMarkup","_createText","_createLinkText","EditableLink","_createLink","HeadingContainer","ItemContainer","Link","onTelemetryClick","ariaHiddenAttr","viewports","q","h","lazyload","shouldSkipToMainImage","FooterItemView","_renderElement","MenuTypeIndexId","MenuSource","NavigationMenu","isRetail","isCMS","_setNavigationSource","sourceType","viewport","navigationMenuSource","menuItemList","nameTranslations","nameTranslation","Language","resizeThrottledEventHandler","addThrottledEvent","_this$props$config$di","_this$props$config$di2","_mapData","isEmptyOrNullObject","xl","Navigation","MenuList","ListItem","showCategoryImage","displayCategoryImage","showPromotionalContent","displayPromotionalImage","DivContainer","ImageDivContainer","ImageContainer","Span","MobileDescriptionContainer","MobileBackButton","backButtonAriaLabel","MobileDescriptionLabel","isMobileView","menuItemData","mergedData","categories","_constructMenuItemData","cmsNavItems","idx","_constructTopMenuItemData","_this$props$config$en","_this$props$config$ro","enabletopMenu","mergedRootMenuData","topMenu","rootMenuNavigation","linkURL","imageSource","subMenu","retailItem","cmsItem","addedAllMenu","categoryPromotionalContent","cmsItemText","menuAriaLabel","promotionalData","promoItem","_promoItem$categoryNa","_retailItem$Name","categoryName","_NavigationMenu$getFr","_NavigationMenu$getFr2","RSItemIdInit","getFriendlyName","Url","_getNestedChildren","promotionalContent","menuSource","Retail","CMSItemIdInit","imageDestinationURL","imageLink","_getCMSNestedChildren","Cms","shouldOpenNewTab","category","imageSourceUrl","arguments","nestedChildren","Children","allCategoryMenuText","getCategoryUrl","subMenus","NavigationMenuView","currentLevel","_updateCategoryImage","categoryImageSrc","promotionalImage","imageSrc","promotionalItemImageSettings","categoryImage","categoryImageAltText","_handleDropdownToggle","parentId","isBackTrack","activeMenu","mobileViewLabelText","parentMenu","_handleGoBack","_handleClickOutside","menuNode","contains","_handleFocusOutside","relatedTarget","_closeSubmenu","_shouldAddFocusMenuRef","optionLinkText","_getCategoryImage","defaultImageSettings","_categoryImage$imageS","categoryImageSettings","menuItemRef","document","body","_this$menuItemRef$cur","children","_renderDisplay","menuItem","menuItemDatum","_getFromSubMenu","_createMenuItemList","i","found","_renderSubMenu","_renderButtonMenuItem","_renderLinkMenuItem","_renderSpanMenuItem","IsSubMenu","enableMultiSupportMenu","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","levelClassName","menuOptions","hasOptions","haveSubmenu","Math","round","_renderMenu","onFocus","hoverEffect","isParent","imagesource","onMouseOver","_renderPromotionalLink","level","currentItem","submenu","categoryImageDisplay","promotionalContentDisplay","DivContainerClass","_item$additionalPrope","componentClassName","buttonClassName","buttonActiveClassName","buttonInactiveClassName","OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState","OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent","msdyn365Commerce","createComponent","component","_props$resources$curr","_props$resources","_props$resources$curr2","_props$resources2","_props$resources$curr3","_props$resources3","_props$resources4","_props$resources$curr4","_props$resources5","_props$resources6","_props$resources7","_props$resources$orga","_props$resources8","_props$resources9","_props$resources$orga2","_props$resources10","_props$resources11","_props$resources12","selectorState","setSelectorState","currentSelectorState","newSelectorState","currentUserOrderHistoryAttributes","currentUserOptionLabel","orgWideOrderHistoryAttributes","CurrentUser","currentUserOptionAriaLabel","OrganizationWide","organizationWideOptionAriaLabel","organizationWideOptionLabel","SitePicker","_cookieName","_cookieExpirationInSeconds","_escFunction","keyCode","expandSiteOptions","KeyCodes","Escape","_this$_sitePickerMenu","_this$_sitePickerMenu2","nextFocus","activeElement","_this$_sitePickerMenu3","_sitePickerMenuButton","_sitePickerMenuNode","_resetSiteOptionsState","Tab","_this$_sitePickerMenu4","_this$_sitePickerMenu5","_handleOutsideClick","_this$_sitePickerMenu6","_this$_sitePickerMenu7","_handleChange","_renderSiteOptions","_document","_document2","_document3","_document4","_this$props$config$he","_this$props$config$he2","SitePickerMenu","SitePickerMenuSpan","SitePickerMenuList","SitePickerMenuListItem","SitePickerMobileContainer","Drawer","openGlyph","closeGlyph","glyphPlacement","SitePickerMenuListItemArray","_renderSitePickerImage","renderSiteOptions","resetSiteOptionsState","siteOptionsState","expandSiteOptionsState","e","preventDefault","cookies","isConsentGiven","cookieConfig","maxAge","siteOptions","_image$imageSettings","_item$siteRedirectUrl","siteImage","imageProps","siteRedirectUrl","siteName","_renderSitePicker","_renderSiteOptionsList","options","onMouseLeave","_props$SitePickerMenu","_renderMobileView","_props$config$heading","_renderDesktopView"],"sourceRoot":""}