{"version":3,"file":"static/js/18.8d0b1e1ec1f9409da367.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-organization-wide-selector.component.tsx?b9a7","webpack://Msdyn365.Commerce.Online/./src/modules/accordion/accordion.tsx?78b1","webpack://Msdyn365.Commerce.Online/./src/modules/accordion-item/accordion-item.tsx?36f7","webpack://Msdyn365.Commerce.Online/./src/modules/back-top-footer/back-top-footer.tsx?f47e","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/components/link.tsx?d232","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/components/separator.tsx?92bb","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/breadcrumb.tsx?efcc","webpack://Msdyn365.Commerce.Online/./src/modules/country-picker/country-picker.tsx?4fcb","webpack://Msdyn365.Commerce.Online/./src/modules/footer-category/footer-category.tsx?e0bd","webpack://Msdyn365.Commerce.Online/./src/modules/footer-item/footer-item.tsx?074a","webpack://Msdyn365.Commerce.Online/./src/modules/image-list/image-list.tsx?5602","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/components/links.tsx?7423","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/interactive-feature-item.tsx?792c","webpack://Msdyn365.Commerce.Online/./src/modules/invoice-details/components/invoice-details-header.tsx?a6c6","webpack://Msdyn365.Commerce.Online/./src/modules/invoice-details/components/invoice-details-payment-summary.tsx?3434","webpack://Msdyn365.Commerce.Online/./src/modules/invoice-details/components/invoice-details-products.tsx?8f29","webpack://Msdyn365.Commerce.Online/./src/modules/invoice-details/helpers/invoice-data.ts?608f","webpack://Msdyn365.Commerce.Online/./src/modules/invoice-details/invoice-details.tsx?b51a","webpack://Msdyn365.Commerce.Online/./src/modules/map/map.tsx?6111","webpack://Msdyn365.Commerce.Online/./src/modules/site-picker/site-picker.tsx?b9ec","webpack://Msdyn365.Commerce.Online/./src/modules/subscribe/subscribe.tsx?9fea","webpack://Msdyn365.Commerce.Online/./src/themes/b2b/views/account-management-address.view.tsx?b246","webpack://Msdyn365.Commerce.Online/./src/themes/b2b/views/checkout.view.tsx?a006","webpack://Msdyn365.Commerce.Online/./src/themes/b2b/views/header.view.tsx?5f10","webpack://Msdyn365.Commerce.Online/./src/themes/b2b/views/product-specification.view.tsx?79c9","webpack://Msdyn365.Commerce.Online/./src/themes/b2b/views/site-picker.view.tsx?3875","webpack://Msdyn365.Commerce.Online/./src/modules/accordion-item/accordion-item.view.tsx?a302","webpack://Msdyn365.Commerce.Online/./src/modules/accordion/accordion.view.tsx?8c7b","webpack://Msdyn365.Commerce.Online/./src/modules/aad-generic/aad-generic.view.tsx?b418","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/account-customer-balance.view.tsx?70d2","webpack://Msdyn365.Commerce.Online/./src/modules/account-invoice-tile/account-invoice-tile.view.tsx?0a60","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/breadcrumb.view.tsx?4b3d","webpack://Msdyn365.Commerce.Online/./src/modules/country-picker/country-picker.view.tsx?0036","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/buybox.view.tsx?aec4","webpack://Msdyn365.Commerce.Online/./src/modules/footer-category/footer-category.view.tsx?fdce","webpack://Msdyn365.Commerce.Online/./src/modules/footer-item/footer-item.view.tsx?c5af","webpack://Msdyn365.Commerce.Online/./src/modules/image-list/image-list.view.tsx?2bed","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/interactive-feature-item.view.tsx?bdcc","webpack://Msdyn365.Commerce.Online/./src/modules/invoice-details/invoice-details.view.tsx?3784","webpack://Msdyn365.Commerce.Online/./src/modules/map/map.view.tsx?5db9","webpack://Msdyn365.Commerce.Online/./src/modules/site-picker/site-picker.view.tsx?5319","webpack://Msdyn365.Commerce.Online/./src/modules/subscribe/subscribe.view.tsx?19c8","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/order-template-list.view.tsx?46b6","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/reviews-list.view.tsx?39ca","webpack://Msdyn365.Commerce.Online/./src/themes/b2b/views/components/carticon.component.tsx?4710"],"sourcesContent":["/*!\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 * 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 * 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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { BackToTop, getTelemetryObject, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBackTopFooterProps } from './back-top-footer.props.autogenerated';\n\n/**\n *\n * BackTopFooter component.\n * @extends {React.PureComponent>}\n */\nclass BackTopFooter extends React.PureComponent> {\n private readonly editProps: Msdyn365.ITextEditProps = {\n requestContext: this.props.context.request,\n onEdit: (event: Msdyn365.ContentEditableEvent) => (this.props.config.backtoTopText = event.target.value)\n };\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IBackTopFooterProps<{}>) {\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 if (!this.props.config.destination) {\n this.props.telemetry.error('BackToTop.destination has not been provided, module wont render.');\n return null;\n }\n\n return (\n \n );\n }\n}\n\nexport default BackTopFooter;\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, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILink {\n className?: string;\n text?: string;\n href?: string;\n ariaLabel?: string;\n index: string;\n noclick?: boolean;\n telemetryContent: ITelemetryContent;\n}\n\nexport const Link: React.FC = ({ text, className, href, ariaLabel, index, noclick, telemetryContent }) => {\n const payLoad = getPayloadObject('click', telemetryContent, '', '');\n\n const linkText = text !== undefined ? text : '';\n payLoad.contentAction.etext = linkText;\n\n // Construct telemetry attribute to render\n const attribute = getTelemetryAttributes(telemetryContent, payLoad);\n\n return (\n \n {linkText}\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 React from 'react';\n\ninterface ISeparator {\n separator: string;\n}\n\nexport const Separator: React.FC = ({ separator }) => (\n \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 from '@msdyn365-commerce/core';\nimport { ICategoryUrl } from '@msdyn365-commerce/core-internal/dist/types/interfaces/ICategoryPathInterfaces';\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbData } from './breadcrumb.data';\nimport { IBreadcrumbProps, ILinksData } from './breadcrumb.props.autogenerated';\nimport { Link } from './components/link';\nimport { Separator } from './components/separator';\n\nexport interface IBreadcrumbViewProps extends IBreadcrumbProps {\n root?: React.ReactNode;\n links?: React.ReactNode[];\n backButton?: React.ReactNode;\n separator?: React.ReactNode;\n BreadcrumbContainer: IModuleProps;\n BreadcrumbList: INodeProps;\n BreadcrumbListItem: INodeProps;\n}\n\n/**\n *\n * Breadcrumb component.\n * @extends {React.PureComponent>}\n */\nclass Breadcrumb extends React.PureComponent> {\n private readonly _pageType: string | undefined = this.props.context.request.urlTokens.pageType;\n\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public render(): JSX.Element | null {\n const { className } = this.props.config;\n let rootLink = null;\n let breadcrumbLinks = null;\n let backButtonComponent = null;\n rootLink = this._getRootLink();\n const itemPosition = rootLink ? 1 : 0;\n if (this._pageType === 'Category') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n breadcrumbLinks = this._getCategoryHierarchy(itemPosition);\n }\n } else if (this._pageType === 'Product') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n const breaCrumbType = this.props.context.app.config.breadcrumbType;\n if (breaCrumbType === 'category') {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'categoryAndBack') {\n backButtonComponent = this._getPDPBackButton();\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'back') {\n backButtonComponent = this._getPDPBackButton();\n if (backButtonComponent === null) {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n }\n }\n } else {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n }\n const linkSeparator = ;\n\n const breadcrumbViewProps = {\n ...this.props,\n BreadcrumbContainer: {\n moduleProps: this.props,\n className: classnames('ms-breadcrumb', className),\n tag: 'nav',\n role: 'navigation'\n },\n BreadcrumbList: {\n tag: 'ol' as NodeTag,\n className: 'ms-breadcrumb_list'\n },\n BreadcrumbListItem: {\n tag: 'li',\n className: 'ms-breadcrumb_item'\n },\n root: rootLink,\n links: breadcrumbLinks,\n backButton: backButtonComponent,\n separator: linkSeparator\n };\n return this.props.renderView(breadcrumbViewProps) as React.ReactElement;\n }\n\n private readonly _getRootLink = (): JSX.Element | null => {\n const { root } = this.props.config;\n if (!root || !root.linkUrl || !root.linkUrl.destinationUrl) {\n this.props.context.telemetry.error('BreadCrumb link url content is empty, link wont render');\n return null;\n }\n return (\n \n );\n };\n\n private readonly _getCustomBreadcrumbLinks = (itemPosition: number): JSX.Element[] | null => {\n const { links } = this.props.config;\n\n if (!links || links.length === 0) {\n this.props.context.telemetry.error('BreadCrumb links content is empty, links wont render');\n return null;\n }\n const defaultValueToSubtract = 1;\n return links.map((value: ILinksData, index: number) => {\n itemPosition++;\n const keyIndex = index;\n return index !== links.length - defaultValueToSubtract ? (\n \n ) : (\n
\n {value.linkText}\n
\n );\n });\n };\n\n private readonly _getCategoryHierarchy = (itemPosition: number): JSX.Element[] | null => {\n const { data } = this.props;\n const categoryHierarchy = data.categoryHierarchy.result;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category Hierarchy content is empty, module wont render');\n return null;\n }\n return categoryHierarchy.map((value: CategoryHierarchy, index: number) => {\n itemPosition++;\n\n const friendlyName = this._getFriendlyName(this.props.context.request.locale, value.NameTranslations);\n\n return (\n \n );\n });\n };\n\n /**\n * The function to get translation name for the locale.\n * @param locale - The locale information.\n * @param nameTranslations - The name translations names.\n * @returns - The translation name for the locale.\n */\n private readonly _getFriendlyName = (locale: string, nameTranslations?: TextValueTranslation[]): string | undefined => {\n let nameTranslation: TextValueTranslation | undefined;\n if (locale && nameTranslations && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\n }\n\n // If friendly name for current locale is null, should use default locale.\n if (nameTranslation === undefined && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations[0];\n }\n\n return nameTranslation?.Text;\n };\n\n private readonly _getPDPLinks = (itemPosition: number): JSX.Element[] | null => {\n const { data, config } = this.props;\n const categoryHierarchy = data.categoryPaths.result;\n const product = data.product.result;\n const url = this.props.context.request.url.requestUrl.href;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category path content is empty for the product');\n return null;\n }\n const links: JSX.Element[] = [];\n\n categoryHierarchy.map((value: ICategoryUrl, index: number) => {\n itemPosition++;\n links.push(\n \n );\n });\n if (product && !config.hideProductName) {\n itemPosition++;\n links.push(\n \n );\n }\n return links;\n };\n\n private readonly _goBack = (): void => {\n window.history.back();\n };\n\n private readonly _getPDPBackButton = (): JSX.Element | null => {\n const isBackAllowed =\n this.props.context && this.props.context.request && this.props.context.request.query && this.props.context.request.query.back;\n if (!isBackAllowed) {\n return null;\n }\n if (MsDyn365.isBrowser && (document.referrer === '' || window.history.length < 2)) {\n return null;\n }\n return (\n \n {this.props.resources.backToResultsText}\n \n );\n };\n}\n\nexport default Breadcrumb;\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 { ICookieSetOptions, IImageDimension, ILocaleItems } from '@msdyn365-commerce/core-internal';\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n ITelemetryContent,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICountryPickerData } from './country-picker.data';\nimport { IActionLinkData, ICountryPickerProps } from './country-picker.props.autogenerated';\n\n/**\n * CountryPicker view props interface.\n */\nexport interface ICountryPickerViewProps extends ICountryPickerProps {\n modalContainer: IModuleProps;\n modalHeaderContainer: INodeProps;\n modalFooterContainer: INodeProps;\n modalBodyContainer: INodeProps;\n heading?: React.ReactNode;\n subheading?: React.ReactNode;\n link?: React.ReactNode;\n countryList?: React.ReactNode[];\n isModalOpen?: boolean;\n state?: ICountryPickerState;\n stayOnCurrentSiteButton?: React.ReactNode;\n}\n\n/**\n * ICountryPickerState: Interface for Country picker State.\n */\nexport interface ICountryPickerState {\n isModalOpen: boolean;\n}\n\n/**\n *\n * CountryPicker component.\n * @extends {React.PureComponent>}\n */\nexport class CountryPicker extends React.PureComponent, ICountryPickerState> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n private readonly _preferredSiteStorageKey: string = '_msdyn365___site_';\n\n private readonly _cookieExpirationTime = 5_184_000;\n\n public constructor(props: ICountryPickerProps) {\n super(props);\n let isCookieValueSet: boolean = false;\n if (props.context.request.cookies.get(this._preferredSiteStorageKey).value) {\n isCookieValueSet = true;\n }\n this.state = {\n isModalOpen: !isCookieValueSet && this.props.context.request.marketSettings !== undefined\n };\n }\n\n public render(): JSX.Element | null {\n const { heading, subheading, countryList, actionLink } = this.props.config;\n\n const isConsentGiven = this.props.context.request.cookies.isConsentGiven();\n\n if (!isConsentGiven) {\n return null;\n }\n\n const countryPickerHeading = heading && (\n \n );\n\n const countryPickerSubHeading = subheading && (\n \n );\n\n const countryPickerActionLink = actionLink && this.createLink(actionLink);\n const currentSiteButton = (\n \n );\n\n const viewprops: ICountryPickerViewProps = {\n ...this.props,\n state: this.state,\n isModalOpen: this.state.isModalOpen,\n modalContainer: {\n moduleProps: this.props,\n tag: Modal,\n className: 'ms-country-picker__dialog',\n isOpen: true,\n 'aria-label': 'country-picker',\n toggle: this.closeModal,\n modalTransition: { timeout: 0 },\n shouldUpdateFocusToFirstElement: true\n },\n modalHeaderContainer: {\n tag: ModalHeader,\n className: 'ms-country-picker__modal-header',\n toggle: this.closeModal,\n closeButtonTabIndex: 1\n },\n modalFooterContainer: {\n tag: ModalFooter,\n className: 'ms-countryPicker__modal-footer'\n },\n modalBodyContainer: {\n tag: ModalBody,\n className: 'ms-counrtyPicker__modal-body'\n },\n heading: countryPickerHeading,\n subheading: countryPickerSubHeading,\n link: countryPickerActionLink,\n countryList: countryList && this.renderCountryList(),\n stayOnCurrentSiteButton: currentSiteButton\n };\n\n return this.props.renderView(viewprops);\n }\n\n /**\n * Initiate close modal.\n */\n public readonly closeModal = (): void => {\n this.setState({\n isModalOpen: false\n });\n };\n\n public handleParagraphChange(event: MsDyn365.ContentEditableEvent): void {\n this.props.config.subheading = event.target.value;\n }\n\n public handleTextChange(event: MsDyn365.ContentEditableEvent): void {\n this.props.config.heading!.text = event.target.value;\n }\n\n public handleLinkTextChange(event: MsDyn365.ContentEditableEvent): void {\n if (this.props.config.actionLink?.linkText) {\n this.props.config.actionLink.linkText = event.target.value;\n }\n }\n\n public createLink(link?: IActionLinkData): React.ReactNode | null {\n if (!StringExtensions.isNullOrEmpty(link?.linkUrl.destinationUrl)) {\n const linkText = link?.linkText ?? '';\n const payLoad = getPayloadObject('click', this._telemetryContent, '', '');\n const attributes = getTelemetryAttributes(this._telemetryContent, payLoad);\n const editableLink: MsDyn365.ILinksData = {\n ariaLabel: link?.ariaLabel,\n className: 'ms-countryPicker__link',\n linkText,\n linkUrl: link?.linkUrl.destinationUrl,\n openInNewTab: link?.openInNewTab,\n role: 'link',\n additionalProperties: attributes!,\n onClick: onTelemetryClick(this._telemetryContent, payLoad, linkText)\n };\n return (\n \n );\n }\n return null;\n }\n\n public renderCountryList(): React.ReactNode[] | undefined {\n const marketSettings = this.props.context.request.marketSettings;\n if (!marketSettings) {\n return undefined;\n }\n const localeItems = marketSettings.localeItems;\n const countryLinks = localeItems.map((value: ILocaleItems) => {\n return this.renderCountry(value);\n });\n\n return countryLinks;\n }\n\n public renderCountry(localeItem: ILocaleItems): React.ReactNode | null {\n const countryList = this.props.config.countryList;\n let baseUrl = localeItem.localeBaseUrl;\n baseUrl = this._appendProtocolToUrl(baseUrl);\n const matchedCountryItem = countryList?.find(item => item.url === baseUrl);\n if (!matchedCountryItem) {\n return null;\n }\n const imageSize: IImageDimension = { q: 'w=48&h=48&m=6', w: 0, h: 0 };\n const defaultImageSettings: MsDyn365.IImageSettings = {\n viewports: {\n xs: imageSize,\n lg: imageSize,\n xl: imageSize\n },\n lazyload: true\n };\n const image = matchedCountryItem.image;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings ?? defaultImageSettings\n };\n return (\n \n {image && (\n \n )}\n
\n {matchedCountryItem.displayString}\n {matchedCountryItem.displaySubString}\n
\n \n );\n }\n\n /**\n * Writes the current site base url to cookie and closes the country picker modal dialog.\n */\n private readonly _handleStayOnSiteButtonClick = (): void => {\n const currentBaseUrl = this.props.context.request.marketSettings?.currentBaseUrl;\n if (currentBaseUrl) {\n const urlToStore = this._appendProtocolToUrl(currentBaseUrl);\n this._writeToCookie(this._preferredSiteStorageKey, urlToStore);\n }\n this.closeModal();\n };\n\n /**\n * Handles click event of country selection.\n * @param storageKey - Cookie storage key.\n * @param storageValue - Preffered site url.\n * @returns - This method just writes the cookie to the browser.\n */\n private readonly _handleClick = (storageKey?: string, storageValue?: string) => () => {\n this._writeToCookie(storageKey, storageValue);\n };\n\n /**\n * Handles click event of country selection.\n * @param storageKey - Cookie storage key.\n * @param storageValue - Preffered site url.\n */\n private readonly _writeToCookie = (storageKey?: string, storageValue?: string): void => {\n if (!storageKey || !storageValue) {\n return;\n }\n const cookieOptions: ICookieSetOptions = { secure: true, sameSite: 'none' };\n cookieOptions.maxAge = this._cookieExpirationTime;\n this.props.context.request.cookies.set(storageKey, storageValue, cookieOptions);\n };\n\n /**\n * Appends protocol to an url.\n * @param baseUrl - Url to be formatted.\n * @returns - URL after appending protocol.\n */\n private readonly _appendProtocolToUrl = (baseUrl: string): string => {\n return !baseUrl.includes('https://') ? `https://${baseUrl}` : baseUrl;\n };\n}\n\nexport default CountryPicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterCategoryConfig, IFooterCategoryProps } from './footer-category.props.autogenerated';\n\nexport interface IFooterCategoryViewProps extends IFooterCategoryProps {\n categories: React.ReactNode[];\n FooterList: IModuleProps;\n FooterListItem: INodeProps;\n}\n\n/**\n *\n * FooterCategory component.\n * @extends {React.PureComponent>}\n */\nclass FooterCategory extends React.PureComponent> {\n public render(): JSX.Element | null {\n if (!this.props.slots || !this.props.slots.content || this.props.slots.content.length === 0) {\n this.props.context.telemetry.error('footer slots content is empty, module wont render');\n return null;\n }\n const viewprops = {\n ...this.props,\n categories: this.props.slots.content,\n FooterList: {\n moduleProps: this.props,\n className: classnames('ms-footer__list', this.props.config.className),\n tag: 'ul'\n },\n FooterListItem: {\n className: classnames('ms-footer__list-item', this.props.config.className),\n tag: 'li'\n }\n };\n\n return this.props.renderView(viewprops) as React.ReactElement;\n }\n}\n\nexport default FooterCategory;\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 * 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 { IImageListConfig, IImageListProps, IImagesData } from './image-list.props.autogenerated';\n\n/**\n * The interface for IImageListViewProps.\n */\nexport interface IImageListViewProps extends IImageListProps {\n imageList: IModuleProps;\n imageListHeading?: React.ReactNode;\n imageListContainer: INodeProps;\n imageListItem: INodeProps;\n imageListItemAnchorTag: INodeProps;\n imageListItems: IImageListItem[] | undefined;\n}\n\n/**\n * The interface for IImageListItem.\n */\nexport interface IImageListItem {\n image: JSX.Element | undefined;\n text: JSX.Element | undefined;\n link: string | undefined;\n linkAltText: string | undefined;\n linkAriaLabel: string | undefined;\n linkOpenInNewTab?: boolean;\n}\n\n/**\n *\n * ImageList component.\n * @extends {React.PureComponent>}\n */\nclass ImageList extends React.PureComponent> {\n public render(): JSX.Element | null {\n const { heading } = this.props.config;\n const imageListTitle = heading && ;\n const viewProps: IImageListViewProps = {\n ...this.props,\n imageList: {\n moduleProps: this.props,\n className: classnames('ms-image-list', this.props.config.className),\n tag: 'div'\n },\n imageListHeading: imageListTitle,\n imageListContainer: {\n className: 'ms-image-list__list',\n role: 'list',\n tag: 'ul'\n },\n imageListItem: {\n className: 'ms-image-list__list-item',\n role: 'listitem',\n tag: 'li'\n },\n imageListItemAnchorTag: {\n tag: 'a',\n className: 'ms-image-list__link',\n role: 'link'\n },\n imageListItems: this._renderImageListItems()\n };\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle paragraph change.\n * @param index - Index of image item in array of image items.\n * @returns Void.\n */\n public handleParagraphChange = (index: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.images![index]) {\n this.props.config.images![index].paragraph = event.target.value;\n }\n };\n\n /**\n * Render list of images.\n * @returns List of images with text and redirection link.\n */\n private readonly _renderImageListItems = (): IImageListItem[] | undefined => {\n const imageList: IImagesData[] | undefined = this.props.config.images;\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 },\n lg: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 },\n xl: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 }\n },\n lazyload: false,\n disableLazyLoad: true\n };\n return imageList?.map((item, index) => {\n const { image, link, paragraph } = item;\n\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: (image?.imageSettings ?? defaultImageSettings) as Msdyn365.IImageSettings | undefined\n };\n\n const imageLink: string | undefined = link?.linkUrl.destinationUrl;\n const imageLinkText: string | undefined = link?.linkText ?? link?.ariaLabel;\n const imageLinkAriaLabel: string | undefined = link?.ariaLabel;\n const imageLinkOpenInNewTab = link?.openInNewTab;\n\n // If image is null, we want to render the placeholder SVG - by passing image data with empty src\n const imageImage = (\n \n );\n\n const imageText = paragraph && (\n \n );\n const imageListItem: IImageListItem = {\n image: imageImage,\n text: imageText,\n link: imageLink,\n linkAltText: imageLinkText,\n linkAriaLabel: imageLinkAriaLabel,\n linkOpenInNewTab: imageLinkOpenInNewTab\n };\n return imageListItem;\n });\n };\n}\n\nexport default ImageList;\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, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature links.\n */\nexport interface IInteractiveFeatureLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * IInteractiveFeatureLinks component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureCollectionLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n
\n {editableLinks && ArrayExtensions.hasElements(editableLinks) ? (\n \n ) : null}\n
\n );\n }\n\n /**\n * IInteractiveFeatureLinks component.\n * @param linkdata - Link data.\n * @returns Editable links.\n */\n private readonly _mapEditableLinks = (linkdata?: ILinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || !ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n for (const link of linkdata) {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-interactive-feature-collection__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'button',\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n }\n\n return editableLinks;\n };\n}\nexport default InteractiveFeatureCollectionLinks;\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, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { InteractiveFeatureCollectionLinks } from './components';\nimport { IHeadingData, IInteractiveFeatureItemProps } from './interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature Item view props.\n */\nexport interface IInteractiveFeatureItemViewProps extends IInteractiveFeatureItemProps<{}> {\n title: React.ReactNode;\n paragraph: React.ReactNode;\n image: React.ReactNode;\n links: React.ReactNode;\n featureItem: IModuleProps;\n isMosaic: boolean;\n indexItem?: number;\n itemCounter?: number;\n\n interactiveFeatureCollectionCarouselContainer: INodeProps;\n interactiveFeatureCollectionCarouselImage: INodeProps;\n interactiveFeatureCollectionCarouselContent: INodeProps;\n\n interactiveFeatureCollectionMosaicContainer: INodeProps;\n interactiveFeatureCollectionMosaicImage: INodeProps;\n interactiveFeatureCollectionMosaicDetails: INodeProps;\n}\n\n/**\n * Interactive Feature Item Extented props.\n */\nexport interface IInteractiveFeatureItemExtentedProps extends IInteractiveFeatureItemProps<{}> {\n isMosaic?: boolean;\n indexItem?: number;\n itemCounter?: number;\n}\n\n/**\n *\n * InteractiveFeatureItem component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureItem extends React.PureComponent {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public constructor(props: IInteractiveFeatureItemProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { indexItem, itemCounter, isMosaic } = this.props;\n const { heading, paragraph, image, links } = this.props.config;\n const featureItemLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n\n const viewProps = {\n ...this.props,\n indexItem,\n itemCounter,\n isMosaic: isMosaic ? isMosaic : false,\n title: this._createHeading(heading),\n paragraph: this._createParagraph(paragraph),\n image: this._renderImage(image),\n links: featureItemLinks,\n featureItem: {\n moduleProps: this.props,\n className: ''\n },\n interactiveFeatureCollectionCarouselContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__container'\n },\n interactiveFeatureCollectionCarouselImage: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__image'\n },\n interactiveFeatureCollectionCarouselContent: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__heading'\n },\n interactiveFeatureCollectionMosaicContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mosaic',\n 'aria-label': heading?.text,\n tabindex: '0',\n role: 'group'\n },\n interactiveFeatureCollectionMosaicImage: {\n className: 'ms-interactive-feature-collection-mosaic__image'\n },\n interactiveFeatureCollectionMosaicDetails: {\n className: 'ms-interactive-feature-collection-mosaic__details'\n }\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 */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param linkIndex - Index of link in linkarray.\n * @returns Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.links?.[Number(linkIndex)]) {\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\n }\n };\n\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createHeading(heading?: IHeadingData): React.ReactNode | null {\n if (!heading) {\n return null;\n }\n if (StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _renderImage(item?: Msdyn365.IImageData, isAriaHiddenAttribute?: boolean): React.ReactNode | null {\n // Even if image.src is null, we render the Image component to render the fallback SVG\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=328&h=459&m=6', w: 328, h: 459 },\n sm: { q: 'w=348&h=487&m=6', w: 348, h: 487 },\n md: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n lg: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n xl: { q: 'w=650&h=366&m=6', w: 650, h: 366 }\n },\n lazyload: true\n };\n const verifiedImageSettings = item?.imageSettings?.viewports ? item.imageSettings : defaultImageSettings;\n return (\n \n );\n }\n}\n\nexport default InteractiveFeatureItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, IDateFormatOptions, isOboRequest, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { IInvoiceErrorState, IPayInvoiceResources, PayInvoiceComponent } from '@msdyn365-commerce-modules/invoice';\nimport React from 'react';\n\nimport { InvoiceDetailsModel } from '../helpers/invoice-data';\n\nexport interface IInvoiceDetailsHeaderData {\n invoiceDetails: InvoiceDetailsModel;\n}\n\nexport interface IInvoiceDetailsHeaderResources extends IPayInvoiceResources {\n invoiceOrderItem: string;\n invoiceOrderItems: string;\n invoiceIdLabel: string;\n invoicePlacedByLabel: string;\n invoiceAmountDueText: string;\n invoicePaymentDueDateText: string;\n}\n\nexport interface IInvoiceDetailsHeaderProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n resources: IInvoiceDetailsHeaderResources;\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n}\n\nexport interface IInvoiceDetailsHeaderComponent extends IComponent {}\n\nconst formatShortDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'numeric', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\nconst formatLongDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\nconst formatAmount = (context: ICoreContext, amount: number | undefined, currencyCode: string | undefined) => {\n if (amount === undefined) {\n return '';\n }\n return context.cultureFormatter.formatCurrency(amount, currencyCode);\n};\n\nconst InvoiceDetailsHeader: React.FC = (props: IInvoiceDetailsHeaderProps): JSX.Element => {\n const {\n className,\n data: { invoiceDetails },\n resources,\n onError\n } = props;\n\n const invoiceNumberText = resources.invoiceIdLabel.replace('{0}', invoiceDetails.id);\n\n const invoiceOrderItemsText =\n invoiceDetails.lines.length === 1\n ? resources.invoiceOrderItem\n : resources.invoiceOrderItems.replace('{0}', invoiceDetails.lines.length.toString());\n\n const invoiceInfoContainerClassName = `${className}__invoice-info-container`;\n const orderInfoContainerClassName = `${invoiceInfoContainerClassName}__order-info-container`;\n const orderInfoClassName = `${orderInfoContainerClassName}__order-info`;\n const orderMainInfoClassName = `${orderInfoClassName}__main-info`;\n const orderDetailsClassName = `${orderInfoClassName}__details`;\n `${className}__actions`;\n const actionsClassName = `${className}__actions`;\n const amountSummaryClassName = `${invoiceInfoContainerClassName}__amount-summary`;\n const orderDate = formatShortDate(props.context, invoiceDetails.invoiceDate);\n\n const dueDate = formatLongDate(props.context, invoiceDetails.dueDate);\n const dueDateText = resources.invoicePaymentDueDateText.replace('{0}', dueDate);\n const isOnBehalfOfRequest = isOboRequest(props.context.request);\n\n return (\n
\n
{invoiceNumberText}
\n
\n
\n
\n
\n
\n {resources.invoicePlacedByLabel}\n {invoiceDetails.customerName}\n
\n
\n
\n
{orderDate}
\n
{invoiceOrderItemsText}
\n
\n
\n
\n
\n
{resources.invoiceAmountDueText}
\n
\n {formatAmount(props.context, invoiceDetails.amountDue, invoiceDetails.currencyCode)}\n
\n
{dueDateText}
\n
\n
\n
\n \n
\n
\n );\n};\n\nexport const InvoiceDetailsHeaderComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoiceDetailsHeaderComponent\n>('InvoiceDetailsHeaderComponent', { component: InvoiceDetailsHeader });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { IInvoicePaymentDetails } from '../helpers/invoice-data';\n\nexport interface IInvoiceDetailsPaymentDetailsData {\n invoicePaymentDetails: IInvoicePaymentDetails;\n}\n\nexport interface IInvoiceDetailsPaymentDetailsResources {\n invoicePaymentDiscounts: string;\n invoicePaymentSubtotal: string;\n invoicePaymentCharges: string;\n invoicePaymentTax: string;\n invoicePaymentInvoiceTotal: string;\n}\n\nexport interface IInvoiceDetailsPaymentDetailsProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n resources: IInvoiceDetailsPaymentDetailsResources;\n}\n\nexport interface IInvoiceDetailsPaymentDetailsComponent extends IComponent {}\n\ninterface IInvoicePaymentLineProps {\n label: string;\n value: number;\n className: string;\n}\n\nconst InvoiceDetailsPaymentDetails: React.FC = (\n props: IInvoiceDetailsPaymentDetailsProps\n): JSX.Element | null => {\n const {\n className,\n data: { invoicePaymentDetails },\n resources\n } = props;\n\n const lineClassName = `${className}__line`;\n\n const lines: IInvoicePaymentLineProps[] = [];\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalDiscount)) {\n lines.push({\n label: resources.invoicePaymentDiscounts,\n value: invoicePaymentDetails.totalDiscount,\n className: `${lineClassName}-total-discount`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.subtotal)) {\n lines.push({\n label: resources.invoicePaymentSubtotal,\n value: invoicePaymentDetails.subtotal,\n className: `${lineClassName}-subtotal`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalCharges)) {\n lines.push({\n label: resources.invoicePaymentCharges,\n value: invoicePaymentDetails.totalCharges,\n className: `${lineClassName}-total-charges`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalTax)) {\n lines.push({\n label: resources.invoicePaymentTax,\n value: invoicePaymentDetails.totalTax,\n className: `${lineClassName}-total-tax`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalAmount)) {\n lines.push({\n label: resources.invoicePaymentInvoiceTotal,\n value: invoicePaymentDetails.totalAmount,\n className: `${lineClassName}-total-amount`\n });\n }\n\n if (!ArrayExtensions.hasElements(lines)) {\n return null;\n }\n\n return (\n
\n {lines.map(line => {\n return (\n
\n
{line.label}
\n
\n {props.context.cultureFormatter.formatCurrency(line.value, invoicePaymentDetails.currencyCode)}\n
\n
\n );\n })}\n
\n );\n};\n\nexport const InvoiceDetailsPaymentDetailsComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoiceDetailsPaymentDetailsComponent\n>('InvoiceDetailsPaymentDetailsComponent', { component: InvoiceDetailsPaymentDetails });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, IImageSettings, Image, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { SalesInvoiceLine } from '@msdyn365-commerce/retail-proxy';\nimport { getFallbackImageUrl, getProductPageUrlSync, ObjectExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport React from 'react';\n\nimport { IInvoiceProductLine, InvoiceDetailsModel } from '../helpers/invoice-data';\n\nexport interface IInvoiceDetailsProductsData {\n invoiceDetails: InvoiceDetailsModel;\n}\n\nexport interface IInvoiceDetailsProductsResources {\n invoiceProductColor: string;\n invoiceProductSize: string;\n invoiceProductStyle: string;\n invoiceQuantity: string;\n}\n\nexport interface IInvoiceDetailsProductsProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n imageSettings?: IImageSettings;\n resources: IInvoiceDetailsProductsResources;\n}\n\nexport interface IInvoiceDetailsProductsComponent extends IComponent {}\n\nconst _renderProductDimensions = (\n className: string,\n resources: IInvoiceDetailsProductsResources,\n product: SalesInvoiceLine\n): JSX.Element => {\n return (\n
\n {StringExtensions.isNullOrWhitespace(product.ColorName) ? null : (\n
{resources.invoiceProductColor.replace('{0}', product.ColorName!)}
\n )}\n {StringExtensions.isNullOrWhitespace(product.SizeName) ? null : (\n
{resources.invoiceProductSize.replace('{0}', product.SizeName!)}
\n )}\n {StringExtensions.isNullOrWhitespace(product.StyleName) ? null : (\n
{resources.invoiceProductStyle.replace('{0}', product.StyleName!)}
\n )}\n
\n );\n};\n\nconst _renderProductImage = (\n className: string,\n context: ICoreContext,\n product: IInvoiceProductLine,\n imageSettings?: IImageSettings\n): JSX.Element | null => {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=80&h=94&m=6', w: 0, h: 0 },\n lg: { q: 'w=148&h=174&m=6', w: 0, h: 0 },\n xl: { q: 'w=148&h=174&m=6', w: 0, h: 0 }\n },\n lazyload: true,\n cropFocalRegion: true\n };\n\n if (imageSettings) {\n imageSettings.cropFocalRegion = true;\n }\n\n const fallbackImage = getFallbackImageUrl(\n product.ItemId,\n context.actionContext.requestContext.apiSettings,\n context.request.app?.config?.OmniChannelMedia\n );\n return (\n \n );\n};\n\nconst formatAmount = (context: ICoreContext, amount: number | undefined, currencyCode: string | undefined) => {\n if (amount === undefined) {\n return '';\n }\n return context.cultureFormatter.formatCurrency(amount, currencyCode);\n};\n\nconst InvoiceDetailsProducts: React.FC = (props: IInvoiceDetailsProductsProps): JSX.Element => {\n const {\n className,\n data: { invoiceDetails },\n resources\n } = props;\n\n const productLineClass = `${className}__product-line`;\n const productLineInfoContainerClass = `${productLineClass}__product-info-container`;\n const productLineDetailsClass = `${productLineInfoContainerClass}__product-details`;\n const productLineSmallDetailsClass = `${productLineDetailsClass}__small-details`;\n\n return (\n
\n {invoiceDetails.lines.map(product => {\n const quantity = product.Quantity || 1;\n\n let productUrl = '';\n if (!ObjectExtensions.isNullOrUndefined(product.ProductName) && !ObjectExtensions.isNullOrUndefined(product.ProductId)) {\n productUrl = getProductPageUrlSync(product.ProductName, product.ProductId, props.context.actionContext);\n }\n\n return (\n
\n
\n {_renderProductImage(`${productLineInfoContainerClass}__product-image`, props.context, product)}\n
\n \n {product.ProductName}\n \n
\n {_renderProductDimensions(`${productLineSmallDetailsClass}__dimensions`, resources, product)}\n
\n {formatAmount(props.context, product.Price, invoiceDetails.currencyCode)}\n
\n
\n {resources.invoiceQuantity.replace('{0}', quantity.toString())}\n
\n
\n
\n
\n
\n {formatAmount(props.context, product.NetAmount, invoiceDetails.currencyCode)}\n
\n
\n );\n })}\n
\n );\n};\n\nexport const InvoiceDetailsProductsComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoiceDetailsProductsComponent\n>('InvoiceDetailsProductsComponent', { component: InvoiceDetailsProducts });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { InvoicePaidStatus, OrderInvoice, SalesInvoice, SalesInvoiceLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { IPayableInvoice } from '@msdyn365-commerce-modules/invoice';\n\nexport interface IInvoicePaymentDetails {\n totalDiscount?: number;\n subtotal?: number;\n totalCharges?: number;\n totalTax?: number;\n totalAmount?: number;\n currencyCode?: string;\n}\n\nexport interface IInvoiceProductLine extends SalesInvoiceLine {\n primaryImageUrl?: string;\n}\n\n/**\n * Represents invoice details data model.\n */\nexport class InvoiceDetailsModel implements IPayableInvoice, IInvoicePaymentDetails {\n public id: string;\n\n public invoiceDate?: Date;\n\n public customerAccountNumber?: string;\n\n public customerName?: string;\n\n public dueDate?: Date;\n\n public amountDue?: number;\n\n public status?: InvoicePaidStatus;\n\n public lines: IInvoiceProductLine[];\n\n public totalDiscount?: number;\n\n public subtotal?: number;\n\n public totalCharges?: number;\n\n public totalTax?: number;\n\n public totalAmount?: number;\n\n public currencyCode?: string;\n\n public constructor(invoice: OrderInvoice, invoiceDetails: SalesInvoice, products: SimpleProduct[]) {\n this.id = invoice.Id || '';\n this.invoiceDate = invoice.InvoiceDate ? new Date(invoice.InvoiceDate) : undefined;\n this.customerName = invoice.CustomerName;\n this.dueDate = invoice.InvoiceDueDate ? new Date(invoice.InvoiceDueDate) : undefined;\n this.amountDue = invoice.AmountBalance;\n this.status = invoice.InvoicePaidStatusValue;\n this.lines = (invoiceDetails.SalesInvoiceLine || []).map(line => {\n const productLine: IInvoiceProductLine = {\n ...line,\n primaryImageUrl: products.find(product => product.RecordId === line.ProductId)?.PrimaryImageUrl\n };\n return productLine;\n });\n\n this.totalDiscount = invoiceDetails.TotalDiscount;\n this.subtotal = invoiceDetails.InvoiceSubtotal;\n this.totalCharges = invoiceDetails.TotalCharges;\n this.totalTax = invoiceDetails.TotalTaxAmount;\n this.totalAmount = invoice.TotalAmount;\n this.currencyCode = invoice.CurrencyCode;\n }\n\n public get canBePaid(): boolean {\n return this.status !== InvoicePaidStatus.Paid;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync } from '@msdyn365-commerce/core';\nimport { SalesInvoiceLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { IInvoiceErrorState, InvoiceErrorComponent } from '@msdyn365-commerce-modules/invoice';\nimport { getSimpleProductsAction, ProductInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { InvoiceDetailsHeaderComponent } from './components/invoice-details-header';\nimport { InvoiceDetailsPaymentDetailsComponent } from './components/invoice-details-payment-summary';\nimport { InvoiceDetailsProductsComponent } from './components/invoice-details-products';\nimport { InvoiceDetailsModel } from './helpers/invoice-data';\nimport { IInvoiceDetailsData } from './invoice-details.data';\nimport { IInvoiceDetailsProps } from './invoice-details.props.autogenerated';\n\nexport interface IInvoiceDetailsViewState {\n invoiceDetails?: InvoiceDetailsModel;\n payInvoiceErrorModalOpen?: boolean;\n errorState?: IInvoiceErrorState;\n}\n\nexport interface IInvoiceDetailsViewProps extends IInvoiceDetailsProps {\n moduleProps: IModuleProps;\n header: JSX.Element;\n products: JSX.Element;\n paymentDetails: JSX.Element;\n payInvoiceError?: JSX.Element;\n}\n\n/**\n * InvoiceDetails component.\n * @extends {React.PureComponent>}\n */\nclass InvoiceDetails extends React.PureComponent, IInvoiceDetailsViewState> {\n private static readonly _className: string = 'msc-invoice-details';\n\n public constructor(props: IInvoiceDetailsProps) {\n super(props);\n\n this.state = { errorState: { errorMessage: '', otherError: '' } };\n this._onAddToCartFailed = this._onAddToCartFailed.bind(this);\n this._setPayInvoiceErrorModalClose = this._setPayInvoiceErrorModalClose.bind(this);\n }\n\n public async componentDidMount(): Promise {\n const invoice = await this.props.data.invoice;\n const invoiceDetails = await this.props.data.invoiceDetails;\n\n const products = await this._getProducts(invoiceDetails.SalesInvoiceLine, invoiceDetails.ChannelId);\n\n const invoiceDetailsModel = new InvoiceDetailsModel(invoice, invoiceDetails, products);\n\n this.setState({\n invoiceDetails: invoiceDetailsModel,\n payInvoiceErrorModalOpen: false,\n errorState: { errorMessage: '', otherError: '' }\n });\n }\n\n public render(): JSX.Element | null {\n if (!this.state.invoiceDetails) {\n return null;\n }\n\n const header = this._renderHeader();\n const products = this._renderProducts();\n const paymentDetails = this._renderPaymentDetails();\n const payInvoiceError = this._renderInvoiceErrors();\n\n const props: IInvoiceDetailsViewProps = {\n ...(this.props as IInvoiceDetailsProps),\n moduleProps: {\n moduleProps: this.props,\n className: InvoiceDetails._className\n },\n header,\n products,\n paymentDetails,\n payInvoiceError\n };\n\n return this.props.renderView(props);\n }\n\n private async _getProducts(invoiceLines: SalesInvoiceLine[] = [], channelId?: number): Promise {\n const productInputs = invoiceLines\n .filter(product => product.ProductId)\n .map(\n product =>\n new ProductInput(\n product.ProductId!,\n this.props.context.request.apiSettings,\n channelId,\n undefined,\n this.props.context.actionContext.requestContext\n )\n );\n return getSimpleProductsAction(productInputs, this.props.context.actionContext);\n }\n\n private _renderHeader(): JSX.Element {\n const invoiceDetails = this.state.invoiceDetails!;\n return (\n \n );\n }\n\n private _renderProducts(): JSX.Element {\n const invoiceDetails = this.state.invoiceDetails!;\n const { imageSettings } = this.props.config;\n return (\n \n );\n }\n\n private _renderPaymentDetails(): JSX.Element {\n const invoiceDetails = this.state.invoiceDetails!;\n return (\n \n );\n }\n\n private _onAddToCartFailed(newErrorState: IInvoiceErrorState): void {\n const errorState = { ...newErrorState };\n errorState.errorHost = 'ADDINVOICETOCART';\n\n // check for errorcode and otherError which contains the LocalizedMessage from API\n if (\n errorState &&\n errorState.errorCode === 'Microsoft_Dynamics_Commerce_Runtime_InvoiceLineAlreadyExistsInCart' &&\n errorState.otherError\n ) {\n this.setState({ errorState: errorState });\n }\n\n this.setState({ payInvoiceErrorModalOpen: true });\n }\n\n private _setPayInvoiceErrorModalClose(): void {\n this.setState({ payInvoiceErrorModalOpen: false });\n }\n\n private _renderInvoiceErrors(): JSX.Element {\n const {\n resources: {\n payInvoiceErrorDialogHeader,\n payInvoiceErrorDialogBodyErrorTitle,\n payInvoiceErrorDialogBodyErrorDescription,\n payInvoiceErrorDialogFooterGoToCartButtonText,\n payInvoiceErrorDialogFooterCancelButtonText\n }\n } = this.props;\n\n const cartUrl = getUrlSync('cart', this.props.context.actionContext) || '';\n\n const errorClassName = `${InvoiceDetails._className}__errors`;\n\n return (\n \n );\n }\n}\n\nexport default InvoiceDetails;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/// \n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observable, reaction, when } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { IMapData } from './map.data';\nimport { IMapProps, IPushpinOptionsData } from './map.props.autogenerated';\n\n/**\n * Header Interface.\n */\nexport interface IHeader {\n headerProps: INodeProps;\n heading: React.ReactNode;\n}\n\n/**\n * MapViewProps Interface.\n */\nexport interface IMapViewProps extends IMapProps {\n ModuleProps: IModuleProps;\n Header: IHeader;\n MapProps: INodeProps;\n Map: Microsoft.Maps.Map | undefined;\n}\n\n/**\n *\n * Map component.\n * @extends {React.Component>}\n */\n@observer\nclass Map extends React.Component> {\n @observable public map: Microsoft.Maps.Map | undefined;\n private timeout: number = 500;\n\n private readonly mapRef: React.RefObject = React.createRef();\n\n public constructor(props: IMapProps) {\n super(props);\n }\n\n public componentDidMount(): void {\n const {\n context: {\n telemetry,\n actionContext: {\n requestContext: { channel }\n }\n }\n } = this.props;\n\n if (channel && !channel.BingMapsApiKey) {\n telemetry.error('BingMapsApiKey is missing.');\n return;\n }\n\n if (channel && !channel.BingMapsEnabled) {\n telemetry.error('Map is disabled from HQ.');\n return;\n }\n\n const loadMapAPIInput = {\n key: channel?.BingMapsApiKey,\n lang: this.props.context.actionContext.requestContext.locale,\n market: this.props.context?.actionContext?.requestContext?.channel?.ChannelCountryRegionISOCode\n };\n\n if (\n this.props.data.storeSelectorStateManager?.result?.isMapApiLoaded ||\n this.props.data.distributorSelectorStateManager?.result?.isMapApiLoaded\n ) {\n this._initMap();\n if (this.props.data.distributorSelectorStateManager?.result?.isDistributorSelectorDialogOpen) {\n this._updateMapsForDistributor();\n } else {\n this._updateMap();\n }\n }\n\n when(\n () => !!this.props.data.storeSelectorStateManager?.result?.setMapModuleLoaded,\n () => {\n this.props.data.storeSelectorStateManager?.result?.setMapModuleLoaded(true);\n }\n );\n\n when(\n () => !!this.props.data.distributorSelectorStateManager?.result?.setMapModuleLoaded,\n () => {\n this.props.data.distributorSelectorStateManager?.result?.setMapModuleLoaded(true);\n }\n );\n\n reaction(\n () =>\n this.props.data.storeSelectorStateManager?.result?.loadMapApi ||\n this.props.data.distributorSelectorStateManager?.result?.loadMapApi,\n () => {\n if (this.props.data.distributorSelectorStateManager?.result?.loadMapApi) {\n this.props.data.distributorSelectorStateManager?.result?.loadMapApi(loadMapAPIInput);\n } else {\n this.props.data.storeSelectorStateManager?.result?.loadMapApi(loadMapAPIInput);\n }\n }\n );\n\n reaction(\n () =>\n this.props.data.storeSelectorStateManager?.result?.isMapApiLoaded ||\n this.props.data.distributorSelectorStateManager?.result?.isMapApiLoaded,\n () => {\n this._initMap();\n }\n );\n\n reaction(\n () => {\n return [\n this.props.data.storeSelectorStateManager.result?.context?.orgUnitStoreInformation,\n this.props.data.storeSelectorStateManager.result?.selectedStoreLocationId,\n this.map\n ];\n },\n () => {\n this._updateMap();\n }\n );\n\n reaction(\n () => {\n return [\n this.props.data.distributorSelectorStateManager?.result?.distributorList,\n this.props.data.distributorSelectorStateManager?.result?.selectedDistributorId,\n this.map\n ];\n },\n () => {\n this._updateMapsForDistributor();\n }\n );\n }\n\n public render(): JSX.Element | null {\n const {\n config: { heading, className },\n data\n } = this.props;\n\n const shouldDisplayMap = data.storeSelectorStateManager?.result?.isDialogOpen\n ? data.storeSelectorStateManager?.result?.listMapViewState.displayMap\n : data.distributorSelectorStateManager?.result?.isDistributorSelectorDialogOpen\n ? data.distributorSelectorStateManager?.result?.listMapViewState.displayMap\n : false;\n\n const viewProps: IMapViewProps = {\n ...this.props,\n ModuleProps: {\n tag: 'div',\n moduleProps: this.props,\n className: classname('ms-map', { show: shouldDisplayMap }, className)\n },\n Header: {\n headerProps: { className: 'ms-map__header' },\n heading: heading?.text && (\n \n )\n },\n MapProps: {\n tag: 'div',\n className: 'ms-map__body',\n ref: this.mapRef\n },\n Map: this.map\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Method to be called on heading change.\n * @param event -Content Edit Event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Initialize the map.\n */\n private readonly _initMap = () => {\n const {\n context: {\n actionContext: {\n requestContext: { channel }\n }\n },\n data\n } = this.props;\n\n if (data.storeSelectorStateManager?.result?.isMapApiLoaded || data.distributorSelectorStateManager?.result?.isMapApiLoaded) {\n const mapLoadOptions = {\n credentials: channel?.BingMapsApiKey,\n pushpinAccessible: true\n };\n this.map = new Microsoft.Maps.Map(this.mapRef.current as HTMLElement, mapLoadOptions);\n Microsoft.Maps.Events.addHandler(this.map, 'click', async () => {\n if (data.distributorSelectorStateManager?.result?.isDistributorSelectorDialogOpen) {\n // Hide the distributor details that appear below the screen size of 768px.\n data.distributorSelectorStateManager?.result?.updateDistributorMapVisibility(false);\n await data.distributorSelectorStateManager?.result?.setSelectedDistributorId(undefined);\n } else {\n await data.storeSelectorStateManager?.result?.setSelectedStoreLocationId(undefined);\n }\n });\n }\n };\n\n private readonly _updateMapsForDistributor = () => {\n const pushpinOptions = this.props.config.pushpinOptions;\n const distributorSelectorStateManager = this.props.data.distributorSelectorStateManager?.result;\n const distributorInfoList = distributorSelectorStateManager?.distributorList;\n const selectedDistributorId = distributorSelectorStateManager?.selectedDistributorId;\n\n if (this.map && ArrayExtensions.hasElements(distributorInfoList)) {\n let mapLocation: OrgUnitLocation | undefined;\n this.map.entities.clear();\n const pushpins: Microsoft.Maps.IPrimitive[] = [];\n\n const distributorList = distributorInfoList.filter(distributor => distributor.OrgUnit !== undefined);\n\n for (const [index, distributorInfo] of distributorList.entries()) {\n const orgUnit = distributorInfo.OrgUnit;\n\n if (orgUnit?.Latitude && orgUnit.Longitude) {\n const isLocationSelected = selectedDistributorId === orgUnit?.RecordId;\n const options = this._getPushpinOptions(isLocationSelected, index, pushpinOptions);\n const pushpin = new Microsoft.Maps.Pushpin(new Microsoft.Maps.Location(orgUnit?.Latitude, orgUnit.Longitude), options);\n\n Microsoft.Maps.Events.addHandler(pushpin, 'click', () => {\n this.handleDistributorPushpinClick(orgUnit.RecordId);\n });\n isLocationSelected ? pushpins.unshift(pushpin) : pushpins.push(pushpin);\n\n if (isLocationSelected) {\n mapLocation = orgUnit;\n }\n }\n }\n if (mapLocation) {\n const currentLocation = new Microsoft.Maps.Location(mapLocation.Latitude, mapLocation.Longitude);\n this.map.setView({ center: currentLocation });\n } else {\n this.map.setView({\n bounds: Microsoft.Maps.LocationRect?.fromShapes(pushpins)\n });\n }\n\n this.map.setOptions({ pushpinAccessible: true } as Microsoft.Maps.IMapOptions);\n this.map.entities.push(pushpins);\n }\n };\n\n /**\n * Update the map.\n */\n private readonly _updateMap = () => {\n const pushpinOptions = this.props.config.pushpinOptions;\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager?.result;\n const orgUnitStoreInformation = storeSelectorStateManager?.context?.orgUnitStoreInformation;\n const selectedStoreLocationId = storeSelectorStateManager?.selectedStoreLocationId;\n\n if (this.map && orgUnitStoreInformation) {\n let mapLocation: OrgUnitLocation | undefined;\n this.map.entities.clear();\n const pushpins: Microsoft.Maps.IPrimitive[] = [];\n\n const storeLocationList = orgUnitStoreInformation.filter(store => store.OrgUnitAvailability !== undefined);\n\n for (const [index, unitStoreInfo] of storeLocationList.entries()) {\n const storeLocation = unitStoreInfo.OrgUnitAvailability?.OrgUnitLocation;\n\n if (storeLocation?.Latitude && storeLocation.Longitude) {\n const isSelectedLocation = selectedStoreLocationId === storeLocation.OrgUnitNumber;\n const options = this._getPushpinOptions(isSelectedLocation, index, pushpinOptions);\n const pushpin = new Microsoft.Maps.Pushpin(\n new Microsoft.Maps.Location(storeLocation.Latitude, storeLocation.Longitude),\n options\n );\n\n Microsoft.Maps.Events.addHandler(pushpin, 'click', () => {\n this.handleClickEvent(storeLocation.OrgUnitNumber);\n });\n isSelectedLocation ? pushpins.unshift(pushpin) : pushpins.push(pushpin);\n\n if (isSelectedLocation) {\n mapLocation = storeLocation;\n }\n }\n }\n\n if (mapLocation) {\n const currentLocation = new Microsoft.Maps.Location(mapLocation.Latitude, mapLocation.Longitude);\n this.map.setView({ center: currentLocation });\n } else {\n // Create a LocationRect from array of pushpins and set the map view.\n this.map.setView({\n bounds: Microsoft.Maps.LocationRect?.fromShapes(pushpins)\n });\n }\n\n this.map.setOptions({ pushpinAccessible: true } as Microsoft.Maps.IMapOptions);\n this.map.entities.push(pushpins);\n }\n };\n\n /**\n * Handle click event.\n * @param orgUnitNumber - Organization unit number.\n */\n private readonly handleClickEvent = (orgUnitNumber: string | undefined): void => {\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager.result;\n storeSelectorStateManager?.setSelectedStoreLocationId(undefined);\n if (orgUnitNumber) {\n setTimeout(() => {\n storeSelectorStateManager?.setSelectedStoreLocationId(orgUnitNumber);\n }, this.timeout);\n }\n };\n\n /**\n * Handle the click event of the pushpin for distributors on the maps.\n * @param recordId - RecordId.\n */\n private readonly handleDistributorPushpinClick = (recordId: number | undefined): void => {\n const distributorSelectorStateManager = this.props.data.distributorSelectorStateManager?.result;\n // Show the distributor details that appear below the screen size of 768px.\n distributorSelectorStateManager?.updateDistributorMapVisibility(true);\n distributorSelectorStateManager?.setSelectedDistributorId(undefined);\n if (recordId) {\n setTimeout(() => {\n distributorSelectorStateManager?.setSelectedDistributorId(recordId);\n }, this.timeout);\n }\n };\n\n /**\n * Get the pushpin option.\n * @param isSelectedLocation - Is selected location.\n * @param index - Index.\n * @param pushpinOptions - PushpinOptions.\n * @returns - The pushpin options.\n */\n private readonly _getPushpinOptions = (isSelectedLocation: boolean, index: number, pushpinOptions?: IPushpinOptionsData) => {\n const text = pushpinOptions?.showIndex ? (index + 1).toString() : undefined;\n\n const size = pushpinOptions?.size || 1;\n const color = isSelectedLocation ? pushpinOptions?.selectionColor || pushpinOptions?.color : pushpinOptions?.color;\n const icon = this._getSvgIcon(size, color, text);\n\n return {\n // Fallback if icon doesn't render properly\n color: isSelectedLocation ? pushpinOptions?.selectionColor : pushpinOptions?.color,\n icon\n };\n };\n\n private readonly _getSvgIcon = (size: number, color?: string, text?: string) => {\n const baseValue: number = 32;\n return `\n \n ${text ? `${text}` : ''}\n `;\n };\n}\n\nexport default Map;\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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISubscribeConfig, ISubscribeProps } from './subscribe.props.autogenerated';\n\n/**\n * Subscribe view props.\n */\nexport interface ISubscribeViewProps extends ISubscribeProps {\n subscribe: IModuleProps;\n subscribeContainer: INodeProps;\n heading: React.ReactNode;\n text: React.ReactNode;\n submitButton?: INodeProps;\n submitButtonLabelText?: string;\n subscribeForm?: INodeProps;\n emailInput?: INodeProps;\n handleText(): void;\n}\n\n/**\n * Subscribe component.\n * @extends {React.PureComponent>}\n */\nexport class Subscribe extends React.PureComponent> {\n private readonly _emailAddressInputRef: React.RefObject;\n\n public constructor(props: ISubscribeViewProps) {\n super(props);\n this._emailAddressInputRef = React.createRef();\n }\n\n public render(): JSX.Element | null {\n const { heading, paragraph } = this.props.config;\n\n const moduleClassName = 'ms-subscribe';\n\n const subscribeParagraph = paragraph && (\n \n );\n\n const subscribeHeading = heading && (\n \n );\n const viewProps = {\n ...this.props,\n handleText: this.handleTextChange,\n subscribe: {\n moduleProps: this.props,\n className: moduleClassName\n },\n subscribeContainer: {\n className: 'ms-subscribe__details'\n },\n heading: subscribeHeading,\n text: subscribeParagraph,\n subscribeForm: {\n className: 'ms-subscribe__details__form',\n tag: 'form',\n 'aria-label': this.props.resources.subscribeFormAriaLabel,\n name: 'subscribeForm',\n role: 'form',\n autoComplete: 'off'\n },\n emailInput: {\n className: 'ms-subscribe__details__form__email',\n tag: 'input',\n ref: this._emailAddressInputRef,\n type: 'email',\n 'aria-label': this.props.resources.subscribeFormEmailAriaLabel,\n placeholder: this.props.resources.subscribeEmailPlaceholderText\n },\n submitButton: {\n className: 'ms-subscribe__details__form__submit',\n tag: Button,\n 'aria-label': this.props.resources.subscribeFormSubmitAriaLabel,\n type: 'submit',\n title: this.props.resources.subscribeButtonLabel\n },\n submitButtonLabelText: this.props.resources.subscribeButtonLabel\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: Msdyn365.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: Msdyn365.ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n}\n\nexport default Subscribe;\n","/*--------------------------------------------------------------\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address';\r\nimport { IAccountManagementAddressProps } from '../definition-extensions/account-management-address.ext.props.autogenerated';\r\n\r\n/**\r\n * Address show component.\r\n * @param param0 - Root param.\r\n * @param param0.AddressDetail - Address detail.\r\n * @param param0.items - IAddressShowItem[].\r\n * @returns - Address Node.\r\n */\r\nconst AddressShow: React.FC = ({ AddressDetail, items }) => {\r\n return (\r\n \r\n {items.map((item: IAddressShowItem) => {\r\n return <>{item.description};\r\n })}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Address List Component.\r\n * @param param0 - Root param.\r\n * @param param0.List - Address list.\r\n * @param param0.isShowList - Boolean.\r\n * @param param0.heading - Address heading.\r\n * @param param0.items - IAddressListItem[].\r\n * @returns - AddressListComponent Node.\r\n */\r\nconst AddressList: React.FC = ({ List, isShowList, heading, items }) => {\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton, removeButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n \r\n {isShowError && (\r\n \r\n {title}\r\n {message}\r\n \r\n )}\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n {removeButton}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Address Lists Component.\r\n * @param param0 - Root param.\r\n * @param param0.ListAddress - List address.\r\n * @param param0.heading - List heading.\r\n * @param param0.isShowEmptyListMessage - Boolean.\r\n * @param param0.emptyListMessage - Empty list message.\r\n * @param param0.addButton - Add button.\r\n * @param param0.primaryAddressList - Primary address.\r\n * @param param0.otherAddressList - Other address.\r\n * @returns Address Lists Component Node.\r\n */\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\n/**\r\n * AddressAddUpdateComponent.\r\n * @param param0 - Root param.\r\n * @param param0.AddressForm - Address form.\r\n * @param param0.heading - Address heading.\r\n * @param param0.items - IAddressAddItem[].\r\n * @param param0.hasError - Boolean.\r\n * @param param0.error - Error message.\r\n * @param param0.isShowSaveButton - Boolean.\r\n * @param param0.saveButton - Save button.\r\n * @param param0.isShowCancelButton - Boolean.\r\n * @param param0.cancelButton - Cancel button.\r\n * @returns Address add update component node.\r\n */\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton\r\n}) => {\r\n return (\r\n \r\n {heading}\r\n {items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n \r\n {label}\r\n {alert}\r\n {input}\r\n \r\n );\r\n })}\r\n {hasError && (\r\n \r\n {error.title}\r\n {error.message}\r\n \r\n )}\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Account Management Address View Component.\r\n * @param props - Props.\r\n * @returns - AccountAddressManagement Module.\r\n */\r\nconst AccountManagementAddressView: React.FC> = props => {\r\n const { AccountAddressManagement, viewState, showAddressList, showAddOrUpdateAddress, screenReaderNotification } = props;\r\n const { phonePlaceholderID, phonePlaceholderText } = props.resources;\r\n React.useEffect(() => {\r\n document.getElementById(phonePlaceholderID)?.setAttribute('placeholder', phonePlaceholderText);\r\n });\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n {screenReaderNotification}\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\r\n","/*--------------------------------------------------------------\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n ICheckoutViewProps,\r\n ILineItem,\r\n ILineItemDeliveryGroup,\r\n ILineItems,\r\n IOrderSummary,\r\n IPickUpAtStore,\r\n IEmailDelivery,\r\n IInvoicePaymentSummary\r\n} from '@msdyn365-commerce-modules/checkout';\r\nimport { ICheckoutProps, ICheckoutResources } from '../definition-extensions/checkout.ext.props.autogenerated';\r\nimport { Collapse, CardBody, Card, CardHeader } from 'reactstrap';\r\nimport { getCartState } from '@msdyn365-commerce/global-state';\r\nimport { ICoreContext } from '@msdyn365-commerce/core';\r\nconst NUMBER_OF_ITEMS = 'ITEM_NUMBERS';\r\n\r\ninterface IOrderSummaryExtended {\r\n lineItems?: ILineItems;\r\n resources: ICheckoutResources;\r\n props: ICheckoutViewProps & ICheckoutProps<{}>;\r\n}\r\n\r\nexport const PickUpAtStoreComponent: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const EmailDeliveryComponent: React.FC = ({ EmailDelivery, label }) => {label};\r\n\r\nexport const LineItemComponent: React.FC = ({ LineItem, item, pickUpAtStore, emailDelivery }) => (\r\n \r\n {item}\r\n {pickUpAtStore && }\r\n {emailDelivery && }\r\n \r\n);\r\n\r\nexport const LineItemGroupComponent: React.FC = ({ LineItemDeliveryGroup, LineItemList, heading, lineItems }) => (\r\n \r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemGroupComponentWithMultiplePickUp: React.FC = ({\r\n LineItemDeliveryGroup,\r\n LineItemList,\r\n heading,\r\n lineItems,\r\n lineItemWraper,\r\n lineItemWraperIcon\r\n}) => (\r\n \r\n {lineItemWraperIcon}\r\n {lineItemWraper}\r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemComponentWithMultiplePickUp: React.FC = ({ LineItem, item, pickUpAtStore, emailDelivery }) => (\r\n \r\n {item}\r\n {emailDelivery && }\r\n \r\n);\r\n\r\nexport const PickUpAtStoreComponentWithMultiplePickUp: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const LineItemsComponent: React.FC = ({\r\n LineItems,\r\n editLink,\r\n itemsForPickup,\r\n itemsForShip,\r\n itemsForEmail,\r\n itemsGroupWithMulitplePickupMode\r\n}) => (\r\n \r\n {itemsGroupWithMulitplePickupMode === undefined && itemsForPickup && }\r\n {itemsGroupWithMulitplePickupMode === undefined && itemsForEmail && }\r\n {itemsGroupWithMulitplePickupMode === undefined && itemsForShip && }\r\n {itemsGroupWithMulitplePickupMode !== undefined\r\n ? itemsGroupWithMulitplePickupMode.map((item, index) => {\r\n return ;\r\n })\r\n : null}\r\n \r\n {editLink}\r\n \r\n \r\n);\r\n\r\nconst OrderSummaryComponent: React.FC = ({ heading, lines, lineItems, resources, props }) => {\r\n const [isOpen, setIsOpen] = React.useState(false);\r\n // NOTE: Need to check for other shipment products (ship, email, pickup)\r\n const itemsCount = props.data.checkout.result?.checkoutCart.cart.CartLines?.length;\r\n return (\r\n
\r\n {heading}\r\n
\r\n {lines && (\r\n <>\r\n {lines.subtotal}\r\n {lines.shipping}\r\n {lines.otherCharge}\r\n {lines.tax}\r\n {lines.totalDiscounts}\r\n {lines.loyalty}\r\n {lines.giftCard}\r\n {lines.orderTotal}\r\n \r\n )}\r\n
\r\n \r\n setIsOpen(prevSt => !prevSt)}\r\n onKeyPress={() => setIsOpen(prevSt => !prevSt)}\r\n >\r\n {resources.itemsInCurrentOrderLabel}\r\n {itemsCount}\r\n \r\n \r\n \r\n {lineItems && }\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nconst PaymentSummaryComponent: React.FC = ({ heading, lines }) => (\r\n
\r\n {heading}\r\n
\r\n {lines && (\r\n <>\r\n {lines.invoices}\r\n {lines.giftCard}\r\n {lines.loyalty}\r\n {lines.orderTotal}\r\n \r\n )}\r\n
\r\n
\r\n);\r\nconst getShowButtonFrmCart = async (\r\n context: ICoreContext<{\r\n [x: string]: any;\r\n }>\r\n): Promise => {\r\n const cartState = await getCartState(context.actionContext);\r\n return cartState?.cart.CartLines && cartState?.cart?.TotalAmount === 0;\r\n};\r\nconst CheckoutView: React.FC> = props => {\r\n const {\r\n canShow,\r\n checkoutProps,\r\n headerProps,\r\n hasSalesOrder,\r\n hasInvoiceLine,\r\n bodyProps,\r\n mainProps,\r\n mainControlProps,\r\n sideProps,\r\n sideControlFirstProps,\r\n sideControlSecondProps,\r\n termsAndConditionsProps,\r\n orderConfirmation,\r\n loading,\r\n alert,\r\n title,\r\n guidedForm,\r\n orderSummary,\r\n invoicePaymentSummary,\r\n lineItems,\r\n placeOrderButton,\r\n termsAndConditions,\r\n context\r\n } = props;\r\n React.useEffect(() => {\r\n const storageName = `${props.context.request.user.customerAccountNumber}-${NUMBER_OF_ITEMS}`;\r\n localStorage?.setItem(storageName, JSON.stringify(lineItems?.itemsForShip?.lineItems?.length));\r\n }, [lineItems?.itemsForShip?.lineItems?.length]);\r\n\r\n const [showButtonFrmCart, setShowButtonFrmCart] = React.useState(false);\r\n getShowButtonFrmCart(context).then(res => setShowButtonFrmCart(res!));\r\n\r\n const getPlaceOrderButton = () => {\r\n return props.config.showPlaceOrderButton ? (\r\n {placeOrderButton}\r\n ) : (\r\n showButtonFrmCart && {placeOrderButton}\r\n );\r\n };\r\n return (\r\n \r\n {!hasSalesOrder && {title}}\r\n {!hasSalesOrder && (\r\n \r\n {loading}\r\n {alert}\r\n {canShow && (\r\n <>\r\n \r\n {guidedForm}\r\n {termsAndConditions}\r\n {getPlaceOrderButton()}\r\n \r\n \r\n {!hasInvoiceLine\r\n ? orderSummary && (\r\n \r\n )\r\n : invoicePaymentSummary && }\r\n \r\n {termsAndConditions}\r\n \r\n \r\n {termsAndConditions}\r\n {/* {getPlaceOrderButton()} */}\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n {hasSalesOrder && orderConfirmation}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header';\r\nimport Modal from 'reactstrap/lib/Modal';\r\nimport ModalBody from 'reactstrap/lib/ModalBody';\r\nimport ModalFooter from 'reactstrap/lib/ModalFooter';\r\nimport { Drawer, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport { AsyncResult } from '@msdyn365-commerce/core';\r\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\r\nimport {\r\n Button,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n getTelemetryObject,\r\n TelemetryConstant\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\nconst headerView: React.FC> = props => {\r\n const { HeaderTag, HeaderContainer, HeaderTopBarContainer, Divider, config } = props;\r\n const { siteSubtext, siteInfotext } = config;\r\n const {\r\n searchHeader,\r\n closeLabel,\r\n lookForLabel,\r\n switchProfileHeader,\r\n profilesAvailableHeader,\r\n switchProfileNote,\r\n siteName,\r\n switchProfileButtonLabel,\r\n searchButtonLabel\r\n } = props.resources;\r\n const [modal, setModal] = React.useState(false);\r\n const [modalSite, setModalSite] = React.useState(false);\r\n const toggle = () => setModal(!modal);\r\n const toggleSite = () => setModalSite(!modalSite);\r\n return (\r\n <>\r\n \r\n
\r\n

\r\n {searchHeader}\r\n

\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n {_renderReactFragment(props.search)}\r\n {props.preferredStore}\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {switchProfileHeader}\r\n

\r\n \r\n
\r\n\r\n \r\n
\r\n

{profilesAvailableHeader}

\r\n {props.siteOptions}\r\n
\r\n
\r\n \r\n

{switchProfileNote}

\r\n {/*
\r\n \r\n
*/}\r\n
\r\n
\r\n \r\n
{_renderAccountBlock(props, false)}
\r\n \r\n \r\n
\r\n {props.logo}\r\n
\r\n {siteName}\r\n
\r\n \r\n {siteSubtext}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n {siteSubtext}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {props.navIcon}\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n {/* {_renderReactFragment(props.search)}\r\n {props.preferredStore} */}\r\n\r\n {/* {props.wishListIconDesktop} */}\r\n \r\n {props.cartIcon}\r\n
\r\n
\r\n {_renderCollapseMenu(props)}\r\n {_renderReactFragment(props.menuBar)}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nfunction _renderCollapseMenu(props: IHeaderViewProps & IHeaderProps<{}>): JSX.Element | null {\r\n const {\r\n Divider,\r\n MobileMenuLinksContainer,\r\n mobileMenuCollapsed,\r\n resources: { navMenuHeader }\r\n } = props;\r\n return (\r\n \r\n
\r\n \r\n {props.navIcon}\r\n
\r\n \r\n \r\n {_renderMobileAccountBlock(props, true)}\r\n {/* {props.wishListIconMobile} */}\r\n \r\n \r\n {_renderReactFragment(props.menuBar)}\r\n \r\n \r\n );\r\n}\r\n\r\nconst renderCustomerName = (accountInformation: AsyncResult): React.ReactChild => {\r\n const customer = accountInformation && accountInformation.result;\r\n return <>{customer ? customer.FirstName || customer.Name : ''};\r\n};\r\n\r\nfunction _renderMobileAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\r\n const { AccountInfoDropdownParentContainer, signOutLink, signInLink, data, accountLinks } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n const accountClassName = classnames(\r\n 'ms-header__drawer',\r\n AccountInfoDropdownParentContainer.className,\r\n renderForMobile ? 'account-mobile' : 'account-desktop'\r\n );\r\n\r\n if (accountLinks) {\r\n return (\r\n \r\n
\r\n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\r\n {signOutLink}\r\n
\r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nfunction _renderAccountBlock(props: IHeaderViewProps & IHeaderProps<{}>, renderForMobile: boolean): JSX.Element | null {\r\n const { AccountInfoDropdownParentContainer, AccountInfoDropdownPopoverConentContainer, signOutLink, signInLink, accountLinks } = props;\r\n const customer = props.data.accountInformation.result;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n const accountClassName = classnames(\r\n AccountInfoDropdownParentContainer.className,\r\n renderForMobile ? 'account-mobile' : 'account-desktop'\r\n );\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {/* VSI-Customization -- START Display username with Hello */}\r\n {_getAccountInfoDropdownButton(customer, props)}\r\n {/* VSI-Customization -- END */}\r\n \r\n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\n// Display user name with Hello as per Design document.\r\nfunction _getAccountInfoDropdownButton(\r\n customer: Customer | undefined,\r\n props: IHeaderViewProps & IHeaderProps<{}>\r\n): React.ReactNode | undefined {\r\n const telemetryContent = getTelemetryObject(props.context.request.telemetryPageName!, props.friendlyName, props.telemetry);\r\n const { helloLabel } = props.resources;\r\n const payLoad = getPayloadObject('click', telemetryContent, TelemetryConstant.MyProfile);\r\n const attributes = getTelemetryAttributes(telemetryContent, payLoad);\r\n const displayName = `${helloLabel} ${customer ? customer.FirstName || customer.Name : undefined}`;\r\n return (\r\n customer &&\r\n displayName && (\r\n \r\n {displayName}\r\n \r\n )\r\n );\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","/*--------------------------------------------------------------\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 { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IProductSpecificationViewProps } from '@msdyn365-commerce-modules/product-specification/src/modules/product-specification/./product-specification';\r\nimport { IProductSpecificationProps } from '../definition-extensions/product-specification.ext.props.autogenerated';\r\n\r\nconst ProductSpecificationView: React.FC> = props => {\r\n const { ProductSpecification, ProductSpecificationTableProps, ProductSpecificationTableBodyProps, productSpecificationResult } = props;\r\n\r\n const rowdata =\r\n productSpecificationResult &&\r\n ArrayExtensions.hasElements(productSpecificationResult) &&\r\n productSpecificationResult.filter(row => !ObjectExtensions.isNullOrUndefined(row));\r\n\r\n const { productAttributesToHide } = props.config;\r\n if (rowdata && productAttributesToHide && productAttributesToHide.length > 0 && rowdata.length > 0) {\r\n for (let index = 0; index < productAttributesToHide.length; index++) {\r\n // const rowIndex = rowdata.findIndex(\r\n // row => row?.props.productName.toLowerCase() === productAttributesToHide[index].toLowerCase().trim()\r\n // );\r\n \r\n // Fix for product description broken on 10.0.39 - Fixed by Prasanna Ruwangana\r\n const rowIndex = rowdata.findIndex(row => {\r\n if (row && row.props && row.props.children && row.props.children.props && row.props.children.props.productName && productAttributesToHide && productAttributesToHide[index]) {\r\n return row.props.children.props.productName.toLowerCase().trim() === productAttributesToHide[index].toLowerCase().trim();\r\n }\r\n return false; // Handle case where row, row.props, or row.props.productName is undefined\r\n });\r\n\r\n if (rowIndex >= 0) {\r\n rowdata.splice(rowIndex, 1);\r\n }\r\n }\r\n return _renderRowData();\r\n } else {\r\n return _renderRowData();\r\n }\r\n\r\n function _renderRowData(): React.ReactElement> | null {\r\n return rowdata && ArrayExtensions.hasElements(rowdata) ? (\r\n \r\n {props.title}\r\n \r\n {rowdata}\r\n \r\n \r\n ) : null;\r\n }\r\n};\r\n\r\nexport default ProductSpecificationView;\r\n","/*--------------------------------------------------------------\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ISitePickerViewProps } from '@msdyn365-commerce-modules/site-picker/src/modules/site-picker/./site-picker';\r\n\r\nexport default (props: ISitePickerViewProps) => {\r\n return <>{_renderSitePicker(props)};\r\n};\r\n\r\nconst _renderMobileView = (props: ISitePickerViewProps): React.ReactNode => {\r\n const { SitePickerMobileContainer } = props;\r\n return (\r\n \r\n
\r\n {props.SitePickerMenuListItemArray?.map((item, index) => {\r\n return
{item}
;\r\n })}\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst _renderSitePicker = (props: ISitePickerViewProps): React.ReactNode => {\r\n const { SitePicker } = props;\r\n return (\r\n \r\n {_renderMobileView(props)}\r\n \r\n );\r\n};\r\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 { 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 { 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 { 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 { 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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbViewProps } from './breadcrumb';\n\nconst BreadCrumbView: React.FC = props => {\n const { root, links, backButton, BreadcrumbContainer, BreadcrumbList, BreadcrumbListItem, separator } = props;\n if (!root && !links && !backButton) {\n props.context.telemetry.error('BreadCrumb content is empty, module wont render');\n return null;\n }\n return (\n \n \n {root && (\n \n {root}\n {links && separator}\n \n )}\n {backButton && {backButton}}\n {links &&\n links.map((link, index) => (\n \n \n {link}\n {links[index + 1] && separator}\n \n \n ))}\n \n \n );\n};\n\nexport default BreadCrumbView;\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 { ICountryPickerViewProps } from './index';\n\n/**\n * Functional component which renders country picker module.\n * @param props - Configuration for the country picker component.\n * @returns React.FC - Functional component of the country picker module.\n */\nexport const countryPickerView: React.FC = (props: ICountryPickerViewProps) => {\n const {\n isModalOpen,\n modalContainer,\n modalHeaderContainer,\n modalBodyContainer,\n heading,\n modalFooterContainer,\n subheading,\n link,\n countryList,\n stayOnCurrentSiteButton\n } = props;\n return isModalOpen && countryList ? (\n \n \n {heading}\n {subheading}\n \n \n {countryList.map(country => (\n <>{country}\n ))}\n \n \n {stayOnCurrentSiteButton}\n {link}\n \n \n ) : null;\n};\n\nexport default countryPickerView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IBuyboxAddToCartViewProps,\n IBuyboxAddToOrderTemplateViewProps,\n IBuyboxAddToWishlistViewProps,\n IBuyboxCallbacks,\n IBuyboxData,\n IBuyboxFindInStoreViewProps,\n IBuyboxKeyInPriceViewProps,\n IBuyboxProductConfigureDropdownViewProps,\n IBuyboxProductConfigureViewProps,\n IBuyboxProductQuantityViewProps,\n IBuyboxProps,\n IBuyboxShopSimilarLookViewProps,\n IBuyboxState,\n IBuyboxViewProps\n} from '@msdyn365-commerce-modules/buybox';\nimport { IncrementalQuantity, ITelemetryContent, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBuyboxProps as IBuyboxExtentionProps,\n IBuyboxResources as IBuyboxExtentionResources\n} from '../definition-extensions/buybox.ext.props.autogenerated';\n\nconst BuyboxView: React.FC> = props => {\n const {\n ModuleProps,\n MediaGalleryContainerProps,\n ProductInfoContainerProps,\n addToCart,\n addToOrderTemplate,\n addToWishlist,\n telemetryContent,\n configure,\n description,\n findInStore,\n quantity,\n price,\n title,\n rating,\n callbacks,\n state,\n resources,\n inventoryLabel,\n shopSimilarLook,\n keyInPrice,\n quantityLimitsMessages,\n min,\n max,\n applyDefaultOrderSettings,\n shopSimilarDescription,\n unitOfMeasure\n } = props;\n\n return (\n \n {props.mediaGallery}\n \n {title}\n {price}\n {unitOfMeasure}\n {props.bulkPurchaseLink}\n {description}\n {_renderTextBlock(props.slots.textBlocks)}\n {rating}\n {configure && _renderConfigure(configure)}\n {keyInPrice && _renderKeyInPrice(keyInPrice)}\n {quantity &&\n _renderQuantity(\n quantity,\n callbacks,\n props,\n state,\n resources,\n quantityLimitsMessages,\n min,\n max,\n applyDefaultOrderSettings,\n telemetryContent\n )}\n {inventoryLabel}\n {_renderCartAndActions(addToCart, addToOrderTemplate, addToWishlist)}\n {findInStore && _renderFindInStore(findInStore)}\n {_renderSocialShare(props.slots && props.slots.socialShare)}\n {shopSimilarLook && _renderShopSimilarItem(shopSimilarLook)}\n {shopSimilarDescription && _renderShopSimilarItem(shopSimilarDescription)}\n \n \n );\n};\n\nconst _renderTextBlock = (textBlocks: React.ReactNode[]): JSX.Element | undefined => {\n if (!textBlocks || textBlocks.length === 0) {\n return undefined;\n }\n\n return <>{textBlocks[0]};\n};\n\nconst _renderSocialShare = (socialShare: React.ReactNode[]): JSX.Element | undefined => {\n if (!socialShare || socialShare.length === 0) {\n return undefined;\n }\n\n return <>{socialShare[0]};\n};\n\nconst _renderCartAndActions = (\n addToCart?: IBuyboxAddToCartViewProps,\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps,\n addToWishlist?: IBuyboxAddToWishlistViewProps\n): JSX.Element | undefined => {\n if (!addToCart && !addToWishlist) {\n return undefined;\n }\n\n return (\n
\n {addToCart && addToCart.errorBlock}\n {addToOrderTemplate && addToOrderTemplate.errorBlock}\n {addToWishlist && addToWishlist.errorBlock}\n
\n {addToCart && addToCart.button}\n {addToOrderTemplate && addToOrderTemplate.button}\n {addToWishlist && addToWishlist.button}\n
\n
\n );\n};\n\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\n const { ContainerProps, dropdowns } = configure;\n\n return {dropdowns.map(_renderConfigureDropdown)};\n};\n\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\n\n return (\n \n \n {heading}\n {errors}\n \n {select}\n \n );\n};\n\nconst _renderFindInStore = (findInStore: IBuyboxFindInStoreViewProps): JSX.Element => {\n const { ContainerProps, storeSelector, heading, description, errors, button, modal, productPickupOptionList } = findInStore;\n\n return (\n \n {storeSelector}\n {heading}\n {productPickupOptionList}\n {description}\n {errors}\n {button}\n {modal}\n \n );\n};\n\n/**\n * On Change function.\n * @param callbacks -Callbacks.\n * @returns Update quantity.\n */\nconst onChangeHandler = (callbacks: IBuyboxCallbacks) => (newValue: number): boolean => {\n if (callbacks.updateQuantity) {\n return callbacks.updateQuantity(newValue);\n }\n return true;\n};\n\nconst _renderQuantity = (\n quantityComponent: IBuyboxProductQuantityViewProps,\n callbacks: IBuyboxCallbacks,\n props: IBuyboxProps,\n state: IBuyboxState,\n extentionResources: IBuyboxExtentionResources,\n quantityLimitsMessages: React.ReactNode,\n min: number | undefined,\n max: number | undefined,\n applyDefaultOrderSettings?: boolean,\n telemetryContent?: ITelemetryContent\n): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors } = quantityComponent;\n\n const { resources } = props;\n\n const { quantity } = state;\n\n return (\n \n \n {heading}\n {errors}\n \n\n \n {quantityLimitsMessages}\n \n );\n};\n\nconst _renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\n\n return (\n \n {heading}\n {input}\n \n );\n};\n\nconst _renderShopSimilarItem = (shopSimilarItem: IBuyboxShopSimilarLookViewProps): JSX.Element => {\n const { ContainerProps, errors, input } = shopSimilarItem;\n\n return (\n \n {errors}\n {input}\n \n );\n};\n\nexport default BuyboxView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { IFooterCategoryViewProps } from './footer-category';\n\nexport const FooterCategoryView: React.FC = props => {\n const { categories, FooterList, FooterListItem } = props;\n if (!categories || categories.length === 0) {\n props.context.telemetry.error('Footer content is empty, module wont render');\n return null;\n }\n return (\n \n {categories.map((category: ReactNode, index: number) => {\n return (\n \n {category}\n \n );\n })}\n \n );\n};\n\nexport default FooterCategoryView;\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.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IImageListViewProps } from './image-list';\n\n/**\n * Render the thumbnail item images.\n * @param props - The image list view props.\n * @returns Return HTML having IImageListViewProps props with image List.\n */\nexport const imageListView = (props: IImageListViewProps): JSX.Element => {\n const { imageList, imageListContainer, imageListHeading, imageListItem, imageListItems, imageListItemAnchorTag } = props;\n return (\n \n {imageListHeading}\n \n {imageListItems?.map(item => {\n let indexKey: string;\n\n if (item.image) {\n const image = (item.image as unknown) as Msdyn365.Image;\n indexKey = image.props.src as string;\n } else {\n const text = (item.text as unknown) as Msdyn365.RichTextComponent;\n indexKey = text.props.text as string;\n }\n return (\n \n {item.image && (\n \n {item.image}\n \n )}\n {item.text}\n \n );\n })}\n \n \n );\n};\n\nexport default imageListView;\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 classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureItemViewProps } from './interactive-feature-item';\n\n/**\n * Enumerator used to make some calculations to set the proper classnames\n * using modular calculations to see if they are in a right or left column or on first or last row.\n */\nenum MagicNumber {\n modularDivisor = 4,\n caseNumberZero = 0,\n caseNumberOne = 1,\n caseNumberTwo = 2\n}\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @param indexItem - Feature Item view props.\n * @param itemCounter - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nconst renderMosaic = (thisProps: IInteractiveFeatureItemViewProps, indexItem?: number, itemCounter?: number): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionMosaicContainer,\n interactiveFeatureCollectionMosaicImage,\n interactiveFeatureCollectionMosaicDetails\n } = thisProps;\n const indexAux = indexItem ? indexItem + MagicNumber.caseNumberOne : MagicNumber.caseNumberOne;\n const itemCounterAux = itemCounter ? itemCounter : MagicNumber.caseNumberZero;\n const modularAux = indexAux % MagicNumber.modularDivisor;\n const firstRow = indexAux <= MagicNumber.caseNumberTwo ? 'firstRow' : '';\n const lastRow =\n itemCounterAux && (indexAux === itemCounterAux || indexAux === itemCounterAux - MagicNumber.caseNumberOne) ? 'lastRow' : '';\n const onCornerRight = modularAux === MagicNumber.caseNumberZero ? 'item-corner-right' : '';\n const onCornerLeft = modularAux === MagicNumber.caseNumberOne ? 'item-corner-left' : '';\n const containerClasses = classnames('ms-interactive-feature-collection-mosaic', onCornerLeft, onCornerRight, firstRow, lastRow);\n\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */ const renderCarousel = (thisProps: IInteractiveFeatureItemViewProps): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionCarouselContainer,\n interactiveFeatureCollectionCarouselImage,\n interactiveFeatureCollectionCarouselContent\n } = thisProps;\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param props - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nexport const FeatureItemViewComponent: React.FC = props => {\n const { isMosaic, featureItem, indexItem, itemCounter } = props;\n if (isMosaic) {\n return <>{renderMosaic(props, indexItem, itemCounter)};\n }\n return {renderCarousel(props)};\n};\n\nexport default FeatureItemViewComponent;\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 { IInvoiceDetailsViewProps } from './invoice-details';\n\nexport const InvoiceDetailsView: React.FC = props => {\n const { header, products, paymentDetails, payInvoiceError } = props;\n\n return (\n \n {header}\n {products}\n {paymentDetails}\n {payInvoiceError}\n \n );\n};\n\nexport default InvoiceDetailsView;\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 { IHeader, IMapViewProps } from './map';\n\n/**\n * Render the heading.\n * @param param0 -- Heading props.\n * @param param0.headerProps -- Heading Props.\n * @param param0.heading -- Heading Node.\n * @returns -- Returns the node.\n */\nconst MapHeader: React.FC = ({ headerProps, heading }) => {heading};\n\n/**\n * Renders the map view props.\n * @param param0 -- Map view props.\n * @param param0.ModuleProps -- Module props.\n * @param param0.Header -- Header props.\n * @param param0.MapProps -- Map props.\n * @returns -- Returns the map module.\n */\nconst MapView: React.FC = ({ ModuleProps, Header, MapProps }) => (\n \n {Header && }\n \n \n);\n\nexport default MapView;\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","/*!\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 { ISubscribeViewProps } from './subscribe';\n\n/**\n * Override form action and button action below.\n * @param event - The form event.\n */\nconst onSubmit = (event: React.FormEvent): void => {\n event.preventDefault();\n};\n\n/**\n * View component.\n * @param props - The view properties.\n * @returns - Returns nothing.\n */\nexport const subscribeView: React.FC = props => {\n const { subscribe, subscribeContainer, heading, text, subscribeForm, emailInput, submitButton } = props;\n return (\n \n \n {heading}\n {text}\n \n \n \n {props.submitButtonLabelText}\n \n \n \n \n );\n};\n\nexport default subscribeView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IOrderTemplateListViewProps, ISingleOrderTemplateViewProps } from '@msdyn365-commerce-modules/order-template';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrderTemplateListProps, IOrderTemplateListResources } from '../definition-extensions/order-template-list.ext.props.autogenerated';\n\n/**\n * Interface for OrderTemplateImage.\n */\ninterface IOrderTemplateImage {\n props: {\n children: React.ReactElement[];\n };\n}\n\n/**\n * To render order template.\n * @param orderTemplate - The order template view props.\n * @param orderTemplateNodeProps - The order template node props.\n * @returns The JSX Element.\n */\nconst renderOrderTemplate = (orderTemplate: ISingleOrderTemplateViewProps, orderTemplateNodeProps?: INodeProps): JSX.Element | null => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file\n const { key, addToCartButton, orderTemplateImage, orderTemplateStatusMessage, removeButton, orderTemplateName } = orderTemplate;\n\n const orderTemplateImageElement: IOrderTemplateImage = orderTemplateImage as React.ReactElement;\n const currentImageListLength = orderTemplateImageElement.props.children.length;\n const defaultNumberImagesInTile = 4;\n\n if (currentImageListLength < defaultNumberImagesInTile) {\n for (let index = 0; index < defaultNumberImagesInTile - currentImageListLength; index++) {\n orderTemplateImageElement.props.children.push();\n }\n }\n\n return (\n \n {orderTemplateName}\n {orderTemplateImage}\n {addToCartButton}\n {removeButton}\n {orderTemplateStatusMessage}\n \n );\n};\n\n/**\n * Order Template List View.\n * @param props - The view props.\n * @returns The JSX Element.\n */\nexport const OrderTemplateListViewComponent: React.FC> = props => {\n const {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file\n OrderTemplateList,\n OrderTemplates,\n OrderTemplate,\n status,\n statusMessage,\n heading,\n orderTemplates,\n createOrderTemplateButton,\n templateHeaderStatusMessage\n } = props;\n\n return (\n \n {heading}\n \n {status === 'SUCCESS' && (!OrderTemplates || !orderTemplates || !ArrayExtensions.hasElements(orderTemplates)) ? (\n
\n

{props.resources.headingForEmptyOrderTemplateList}

\n

{props.resources.textForEmptyOrderTemplateList}

\n {createOrderTemplateButton}\n
\n ) : (\n createOrderTemplateButton\n )}\n {templateHeaderStatusMessage}\n
\n {status !== 'SUCCESS' && statusMessage}\n {OrderTemplates && orderTemplates && ArrayExtensions.hasElements(orderTemplates) && (\n \n {orderTemplates.map(orderTemplate => {\n return renderOrderTemplate(orderTemplate, OrderTemplate);\n })}\n \n )}\n
\n );\n};\n\nexport default OrderTemplateListViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport {\n IReportReviewModalViewProps,\n IReviewCardViewProps,\n IReviewsListData,\n IReviewsListResources,\n IReviewsListState,\n IReviewsListViewProps\n} from '@msdyn365-commerce-modules/ratings-reviews';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IReviewsListProps } from '../definition-extensions/reviews-list.ext.props.autogenerated';\n\n/**\n * Build Review Card.\n * @param props - Review Card ViewProps.\n * @param resources - Resource Strings.\n * @param isUserReview - User review flag.\n * @returns JSX Element.\n */\nconst buildReviewCard = (props: IReviewCardViewProps, resources: IReviewsListResources, isUserReview: boolean) => {\n return (\n \n \n
\n {props.rating}\n {props.date}\n
\n {props.name}\n
\n \n \n {props.reviewTitle}\n {props.reviewText}\n \n \n {props.responseName}\n {props.responseDate}\n {props.responseText}\n \n \n {isUserReview ? undefined :

{resources.wasReviewHelpfulText}

}\n {props.like}\n {props.dislike}\n {props.edit}\n
\n
\n
\n );\n};\n\n/**\n * Render Product Image.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductImage = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const primaryImageSource = props.data.product.result?.PrimaryImageUrl;\n const imageUrl = generateImageUrl(primaryImageSource, props.context.request.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=111&h=111&m=6', w: 111, h: 111 },\n sm: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n md: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n lg: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n xl: { q: 'w=130&h=130&m=6', w: 130, h: 130 }\n },\n lazyload: true,\n cropFocalRegion: true\n };\n\n return (\n \n );\n};\n\n/**\n * Render Product Description.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductDescription = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const product = props.data.product.result;\n return (\n \n
{renderProductImage(props)}
\n
\n
{product?.Name}
\n
{product?.Name}
\n
{product?.ItemId}
\n
\n
\n );\n};\n\n/**\n * Build Review modal.\n * @param props - Review list ViewProps.\n * @returns JSX Element.\n */\nconst createReviewModal = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const { resources, moduleProps, reviewModal } = props;\n return (\n \n {reviewModal.modalHeader}\n \n \n \n {renderProductDescription(props)}\n \n
{resources.selectRatingLabel}
\n {reviewModal.rating}\n
\n
\n \n {resources.reviewTitleLabel}\n {reviewModal.titleInput}\n \n \n {resources.reviewTextLabel}\n {reviewModal.textInput}\n \n {reviewModal.privacyPolicyUrl}\n {reviewModal.error}\n
\n
\n \n {reviewModal.submitButton}\n {reviewModal.cancelButton}\n \n
\n );\n};\n\n/**\n * Build Review modal.\n * @param props - Review modal ViewProps.\n * @param state - Review List State.\n * @returns JSX Element.\n */\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\n return (\n \n {state.reported ? props.headerSubmitted : props.header}\n \n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\n \n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\n \n );\n};\n\n/**\n * ReviewsList view.\n * @param props - Ratings ReviewsList ViewProps.\n * @returns ReviewsList view module.\n */\nconst ReviewsListview: React.FC> = props => {\n const {\n filterByDropdown,\n heading,\n moduleProps,\n noReviewsMessage,\n noReviewsWithFilterMessage,\n pageControls,\n refineReviewsProps,\n reportReviewModal,\n reviewsListProps,\n reviewCards,\n sortByDropdown,\n state,\n userReview,\n resources\n } = props;\n\n if (!userReview && !ArrayExtensions.hasElements(reviewCards) && !state.isFilterApplied) {\n return {noReviewsMessage};\n }\n\n return (\n \n {heading}\n \n {sortByDropdown}\n {filterByDropdown}\n \n \n {userReview && buildReviewCard(userReview, resources, true)}\n {reviewCards.map(review => {\n return buildReviewCard(review, resources, false);\n })}\n \n {!ArrayExtensions.hasElements(reviewCards) && state.isFilterApplied && noReviewsWithFilterMessage}\n {pageControls}\n {createReviewModal(props)}\n {createReportModal(reportReviewModal, state)}\n \n );\n};\n\nexport default ReviewsListview;\n","/*--------------------------------------------------------------\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 { getUrlSync, IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport {\r\n format,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n ITelemetryContent,\r\n onTelemetryClick\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nexport interface ICartIconData {\r\n cart?: ICartState;\r\n}\r\n\r\nexport interface ICartIconComponentProps extends IComponentProps {\r\n className?: string;\r\n cartLabel: string;\r\n cartQtyLabel: string;\r\n telemetryContent?: ITelemetryContent;\r\n}\r\n\r\nexport interface ICartIconComponent extends IComponent {}\r\n\r\nconst CartIconComponentActions = {};\r\n\r\n/**\r\n *\r\n * CartIcon component.\r\n * @extends {React.FC}\r\n */\r\nconst CartIcon: React.FC = observer((props: ICartIconComponentProps) => {\r\n const {\r\n cartLabel,\r\n cartQtyLabel,\r\n data: { cart }\r\n } = props;\r\n const cartLink = getUrlSync('cart', props.context.actionContext);\r\n\r\n // If there are invoice lines, don't update mini cart item quantity\r\n const cartItem = cart ? cart.totalItemsInCart : 0;\r\n const qtyLabel = format(cartQtyLabel, cartItem);\r\n const label = format(cartLabel, cartItem);\r\n\r\n // Construct telemetry attribute to render\r\n const payLoad = getPayloadObject('click', props.telemetryContent!, 'cart-icon', '');\r\n const attributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n const style: React.CSSProperties = {\r\n visibility: cart ? 'visible' : 'hidden'\r\n };\r\n return (\r\n \r\n
\r\n {_displayLabel(qtyLabel, cartItem)}\r\n
\r\n \r\n );\r\n});\r\n\r\nfunction _displayLabel(qtyLabel: string, cartItem: number) {\r\n return cartItem <= 0 ? qtyLabel.split(' ')[0]: qtyLabel;\r\n}\r\n\r\n// @ts-expect-error\r\nexport const CartIconComponent: React.FunctionComponent = msdyn365Commerce.createComponentOverride(\r\n 'CartIcon', { component: CartIcon, ...CartIconComponentActions }\r\n);\r\n\r\nexport default CartIconComponent;\r\n"],"names":["componentClassName","buttonClassName","buttonActiveClassName","buttonInactiveClassName","OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState","OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent","msdyn365Commerce","createComponent","component","props","_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","data","customer","IsB2bAdmin","React","className","classnames","selectorState","setSelectorState","currentSelectorState","onClickHandler","newSelectorState","onChange","currentUserOrderHistoryAttributes","getTelemetryAttributes","telemetryContent","getPayloadObject","resources","currentUserOptionLabel","orgWideOrderHistoryAttributes","Button","Object","assign","CurrentUser","currentUserOptionAriaLabel","title","onClick","OrganizationWide","organizationWideOptionAriaLabel","organizationWideOptionLabel","Accordion","constructor","super","expandAllButtonRef","collapseAllButtonRef","handleHeadingChange","event","this","config","heading","text","target","value","_onExpandAll","bind","_onCollapseAll","getTelemetryObject","context","request","telemetryPageName","friendlyName","telemetry","payLoad","state","isDisabled","render","slots","headingComponent","Msdyn365","tag","editProps","onEdit","requestContext","accordionViewProps","_objectSpread","AccordionContainer","moduleProps","HeaderSection","HeadingWrapper","accordianButtonsContainer","accordionButtons","_renderAccordionButton","accordionItemContainer","accordionItems","length","map","item","index","_getAccordionItem","renderView","contentAction","etext","TelemetryConstant","ExpandAll","attributeExpandAll","CollapseAll","attributeCollapseAll","showToggleAll","disabled","expandAllText","ref","toggleAllSeparator","collapseAllText","error","accordionState","isAllExpanded","actionContext","update","createAccordionStateInput","setState","setTimeout","_this$collapseAllButt","current","focus","_this$expandAllButton","key","interactionStyle","__decorate","observer","AccordionItem","moduleClassName","accordionItemTitle","_onToggle","shouldComponentUpdate","nextProps","accordionExpandedStateResult","accordionExpandedState","result","expanded","undefined","isExpandedOnInitialLoad","AccordionItemContainer","AccordionItemContent","drawer","ControlledDrawer","toggleButtonText","collapseProps","isOpen","onToggle","onTextChange","accordionSlots","BackTopFooter","backtoTopText","destination","BackToTop","href","ariaLabel","Link","_ref","noclick","linkText","attribute","onTelemetryClick","itemProp","content","Separator","separator","Breadcrumb","_pageType","urlTokens","pageType","_getRootLink","root","linkUrl","destinationUrl","_getCustomBreadcrumbLinks","itemPosition","links","keyIndex","toString","_getCategoryHierarchy","categoryHierarchy","_getFriendlyName","locale","NameTranslations","Url","nameTranslations","_nameTranslation","nameTranslation","ArrayExtensions","hasElements","find","Language","toLowerCase","Text","_getPDPLinks","categoryPaths","product","url","requestUrl","push","Name","hideProductName","_goBack","window","history","back","_getPDPBackButton","query","MsDyn365","isBrowser","document","referrer","role","backToResultsText","rootLink","breadcrumbLinks","backButtonComponent","breaCrumbType","app","breadcrumbType","linkSeparator","breadcrumbViewProps","BreadcrumbContainer","BreadcrumbList","BreadcrumbListItem","backButton","CountryPicker","_telemetryContent","_preferredSiteStorageKey","_cookieExpirationTime","closeModal","isModalOpen","_handleStayOnSiteButtonClick","_this$props$context$r","currentBaseUrl","marketSettings","urlToStore","_appendProtocolToUrl","_writeToCookie","_handleClick","storageKey","storageValue","cookieOptions","secure","sameSite","maxAge","cookies","set","baseUrl","includes","isCookieValueSet","get","_heading$tag","subheading","countryList","actionLink","isConsentGiven","countryPickerHeading","handleTextChange","countryPickerSubHeading","handleParagraphChange","countryPickerActionLink","createLink","currentSiteButton","tabIndex","stayOnCurrentSiteButtonText","viewprops","modalContainer","Modal","toggle","modalTransition","timeout","shouldUpdateFocusToFirstElement","modalHeaderContainer","ModalHeader","closeButtonTabIndex","modalFooterContainer","ModalFooter","modalBodyContainer","ModalBody","link","renderCountryList","stayOnCurrentSiteButton","handleLinkTextChange","_this$props$config$ac","StringExtensions","isNullOrEmpty","_link$linkText","attributes","editableLink","openInNewTab","additionalProperties","localeItems","renderCountry","localeItem","_image$imageSettings","_image$src","localeBaseUrl","matchedCountryItem","imageSize","q","w","h","defaultImageSettings","viewports","xs","lg","xl","lazyload","image","imageProps","gridSettings","imageSettings","displayString","src","altText","loadFailureBehavior","shouldSkipToMainImage","displaySubString","FooterCategory","categories","FooterList","FooterListItem","FooterItem","footerItemClassName","viewProps","_createHeading","_createImageMarkup","_createText","_createLinkText","EditableLink","_createLink","HeadingContainer","ItemContainer","ariaHiddenAttr","ImageList","images","paragraph","_renderImageListItems","imageList","disableLazyLoad","imageLink","imageLinkText","imageLinkAriaLabel","imageLinkOpenInNewTab","linkAltText","linkAriaLabel","linkOpenInNewTab","imageListTitle","imageListHeading","imageListContainer","imageListItem","imageListItemAnchorTag","imageListItems","InteractiveFeatureCollectionLinks","_mapEditableLinks","linkdata","editableLinks","InteractiveFeatureItem","linkIndex","_this$props$config$li","Number","indexItem","itemCounter","isMosaic","featureItemLinks","_createParagraph","_renderImage","featureItem","interactiveFeatureCollectionCarouselContainer","interactiveFeatureCollectionCarouselImage","interactiveFeatureCollectionCarouselContent","interactiveFeatureCollectionMosaicContainer","tabindex","interactiveFeatureCollectionMosaicImage","interactiveFeatureCollectionMosaicDetails","isNullOrWhitespace","isAriaHiddenAttribute","_item$imageSettings","_this$props$config$im","verifiedImageSettings","sm","md","moduleType","typeName","imagePropertyName","moduleId","id","InvoiceDetailsHeaderComponent","invoiceDetails","onError","invoiceNumberText","invoiceIdLabel","replace","invoiceOrderItemsText","lines","invoiceOrderItem","invoiceOrderItems","invoiceInfoContainerClassName","orderInfoContainerClassName","orderInfoClassName","orderMainInfoClassName","orderDetailsClassName","actionsClassName","amountSummaryClassName","orderDate","date","invoiceDate","cultureFormatter","formatDate","year","month","day","formatShortDate","dueDate","formatLongDate","dueDateText","invoicePaymentDueDateText","isOnBehalfOfRequest","isOboRequest","invoicePlacedByLabel","customerName","invoiceAmountDueText","formatAmount","amount","currencyCode","formatCurrency","amountDue","PayInvoiceComponent","invoice","InvoiceDetailsPaymentDetailsComponent","invoicePaymentDetails","lineClassName","ObjectExtensions","isNullOrUndefined","totalDiscount","label","invoicePaymentDiscounts","subtotal","invoicePaymentSubtotal","totalCharges","invoicePaymentCharges","totalTax","invoicePaymentTax","totalAmount","invoicePaymentInvoiceTotal","line","InvoiceDetailsProductsComponent","productLineClass","productLineInfoContainerClass","productLineDetailsClass","productLineSmallDetailsClass","quantity","Quantity","productUrl","ProductName","ProductId","getProductPageUrlSync","RecordId","_renderProductImage","_context$request$app","cropFocalRegion","fallbackImage","getFallbackImageUrl","ItemId","apiSettings","OmniChannelMedia","Image","primaryImageUrl","fallBackSrc","_renderProductDimensions","ColorName","invoiceProductColor","SizeName","invoiceProductSize","StyleName","invoiceProductStyle","Price","invoiceQuantity","NetAmount","InvoiceDetailsModel","products","Id","InvoiceDate","Date","CustomerName","InvoiceDueDate","AmountBalance","status","InvoicePaidStatusValue","SalesInvoiceLine","_products$find","PrimaryImageUrl","TotalDiscount","InvoiceSubtotal","TotalCharges","TotalTaxAmount","TotalAmount","CurrencyCode","InvoicePaidStatus","Paid","InvoiceDetails","errorState","errorMessage","otherError","_onAddToCartFailed","_setPayInvoiceErrorModalClose","_getProducts","ChannelId","invoiceDetailsModel","payInvoiceErrorModalOpen","header","_renderHeader","_renderProducts","paymentDetails","_renderPaymentDetails","payInvoiceError","_renderInvoiceErrors","_className","channelId","arguments","productInputs","filter","ProductInput","getSimpleProductsAction","newErrorState","errorHost","errorCode","_this$state$errorStat","payInvoiceErrorDialogHeader","payInvoiceErrorDialogBodyErrorTitle","payInvoiceErrorDialogBodyErrorDescription","payInvoiceErrorDialogFooterGoToCartButtonText","payInvoiceErrorDialogFooterCancelButtonText","cartUrl","getUrlSync","errorClassName","InvoiceErrorComponent","showError","errorDialogHeader","errorDialogBodyErrorTitle","errorDialogBodyErrorDescription","errorDialogFooterGoToCartButtonText","errorDialogFooterCancelButtonText","setPayInvoiceErrorModalClose","Map","mapRef","_initMap","_data$storeSelectorSt","_data$distributorSele","channel","storeSelectorStateManager","isMapApiLoaded","distributorSelectorStateManager","mapLoadOptions","credentials","BingMapsApiKey","pushpinAccessible","Microsoft","Maps","Events","addHandler","async","_data$distributorSele2","_data$distributorSele3","_data$distributorSele4","_data$storeSelectorSt2","isDistributorSelectorDialogOpen","updateDistributorMapVisibility","setSelectedDistributorId","setSelectedStoreLocationId","_updateMapsForDistributor","_this$props$data$dist","pushpinOptions","distributorInfoList","distributorList","selectedDistributorId","mapLocation","entities","clear","pushpins","distributor","OrgUnit","distributorInfo","entries","orgUnit","Latitude","Longitude","isLocationSelected","options","_getPushpinOptions","pushpin","Pushpin","Location","handleDistributorPushpinClick","unshift","currentLocation","setView","center","_Microsoft$Maps$Locat","bounds","LocationRect","fromShapes","setOptions","_updateMap","_this$props$data$stor","_storeSelectorStateMa","orgUnitStoreInformation","selectedStoreLocationId","storeLocationList","store","OrgUnitAvailability","unitStoreInfo","_unitStoreInfo$OrgUni","storeLocation","OrgUnitLocation","isSelectedLocation","OrgUnitNumber","handleClickEvent","_Microsoft$Maps$Locat2","orgUnitNumber","recordId","_this$props$data$dist2","showIndex","size","color","selectionColor","icon","_getSvgIcon","componentDidMount","_this$props$context","_this$props$data$stor2","_this$props$data$dist3","BingMapsEnabled","loadMapAPIInput","lang","market","ChannelCountryRegionISOCode","_this$props$data$dist4","when","_this$props$data$stor3","setMapModuleLoaded","_this$props$data$stor4","_this$props$data$dist5","_this$props$data$dist6","reaction","_this$props$data$stor5","_this$props$data$dist7","loadMapApi","_this$props$data$dist8","_this$props$data$dist9","_this$props$data$stor6","_this$props$data$stor7","_this$props$data$dist10","_this$props$data$stor8","_this$props$data$stor9","_this$props$data$dist11","_this$props$data$dist12","_data$storeSelectorSt3","_data$storeSelectorSt4","_data$distributorSele5","_data$distributorSele6","shouldDisplayMap","isDialogOpen","listMapViewState","displayMap","ModuleProps","classname","show","Header","headerProps","MapProps","observable","SitePicker","_cookieName","_cookieExpirationInSeconds","_escFunction","keyCode","expandSiteOptions","KeyCodes","Escape","_this$_sitePickerMenu","_this$_sitePickerMenu2","nextFocus","activeElement","_this$_sitePickerMenu3","_sitePickerMenuButton","contains","_sitePickerMenuNode","_resetSiteOptionsState","Tab","_this$_sitePickerMenu4","_this$_sitePickerMenu5","_handleOutsideClick","_this$_sitePickerMenu6","_this$_sitePickerMenu7","_handleChange","_renderSiteOptions","_updateViewport","viewport","device","Type","isMobile","_document","_document2","addEventListener","body","resizeThrottledEventHandler","addThrottledEvent","componentWillUnmount","_document3","_document4","removeEventListener","_this$props$config$he","_this$props$config$he2","SitePickerMenu","SitePickerMenuSpan","SitePickerMenuList","SitePickerMenuListItem","SitePickerMobileContainer","Drawer","openGlyph","closeGlyph","glyphPlacement","isMobileView","SitePickerMenuListItemArray","_renderSitePickerImage","renderSiteOptions","resetSiteOptionsState","siteOptionsState","expandSiteOptionsState","e","preventDefault","currentTarget","cookieConfig","location","siteOptions","_item$siteRedirectUrl","siteImage","siteRedirectUrl","siteName","_getViewport","innerWidth","computed","Subscribe","_emailAddressInputRef","subscribeParagraph","subscribeHeading","handleText","subscribe","subscribeContainer","subscribeForm","subscribeFormAriaLabel","name","autoComplete","emailInput","type","subscribeFormEmailAriaLabel","placeholder","subscribeEmailPlaceholderText","submitButton","subscribeFormSubmitAriaLabel","subscribeButtonLabel","submitButtonLabelText","AddressShow","AddressDetail","items","Node","description","AddressList","_ref2","List","isShowList","Item","showItems","isShowPrimaryButton","primaryButton","editButton","removeButton","Error","isShowError","message","AddressLists","_ref3","ListAddress","isShowEmptyListMessage","emptyListMessage","addButton","primaryAddressList","otherAddressList","AddressAddUpdate","_ref4","AddressForm","hasError","isShowSaveButton","saveButton","isShowCancelButton","cancelButton","AddressItem","alert","input","AddressError","AccountAddressManagement","viewState","showAddressList","showAddOrUpdateAddress","screenReaderNotification","phonePlaceholderID","phonePlaceholderText","_document$getElementB","getElementById","setAttribute","Module","isShowAddresList","isShowAddOrUpdateAddress","PickUpAtStoreComponent","PickUpAtStore","EmailDeliveryComponent","EmailDelivery","LineItemComponent","LineItem","pickUpAtStore","emailDelivery","LineItemGroupComponent","LineItemDeliveryGroup","LineItemList","lineItems","lineItem","LineId","LineItemGroupComponentWithMultiplePickUp","_ref5","lineItemWraper","lineItemWraperIcon","LineItemComponentWithMultiplePickUp","_ref6","PickUpAtStoreComponentWithMultiplePickUp","_ref7","LineItemsComponent","_ref8","LineItems","editLink","itemsForPickup","itemsForShip","itemsForEmail","itemsGroupWithMulitplePickupMode","OrderSummaryComponent","_ref9","_props$data$checkout$","setIsOpen","itemsCount","checkout","checkoutCart","cart","CartLines","shipping","otherCharge","tax","totalDiscounts","loyalty","giftCard","orderTotal","CardHeader","prevSt","onKeyPress","itemsInCurrentOrderLabel","Collapse","Card","CardBody","PaymentSummaryComponent","_ref10","invoices","_lineItems$itemsForSh2","canShow","checkoutProps","hasSalesOrder","hasInvoiceLine","bodyProps","mainProps","mainControlProps","sideProps","sideControlFirstProps","sideControlSecondProps","termsAndConditionsProps","orderConfirmation","loading","guidedForm","orderSummary","invoicePaymentSummary","placeOrderButton","termsAndConditions","_localStorage","_lineItems$itemsForSh","storageName","user","customerAccountNumber","localStorage","setItem","JSON","stringify","showButtonFrmCart","setShowButtonFrmCart","_cartState$cart","cartState","getCartState","getShowButtonFrmCart","then","res","showPlaceOrderButton","renderCustomerName","accountInformation","FirstName","_renderReactFragment","slot","HeaderTag","HeaderContainer","HeaderTopBarContainer","Divider","siteSubtext","siteInfotext","searchHeader","closeLabel","lookForLabel","switchProfileHeader","profilesAvailableHeader","switchProfileNote","switchProfileButtonLabel","searchButtonLabel","modal","setModal","modalSite","setModalSite","toggleSite","htmlFor","search","preferredStore","style","padding","renderForMobile","AccountInfoDropdownParentContainer","AccountInfoDropdownPopoverConentContainer","signOutLink","signInLink","accountLinks","accountClassName","_props$AccountInfoDro","_props$AccountInfoDro2","_props$AccountInfoDro3","helloLabel","MyProfile","displayName","innerRef","_getAccountInfoDropdownButton","_renderAccountBlock","logo","navIcon","cartIcon","MobileMenuLinksContainer","mobileMenuCollapsed","navMenuHeader","_renderMobileAccountBlock","menuBar","_renderCollapseMenu","ProductSpecification","ProductSpecificationTableProps","ProductSpecificationTableBodyProps","productSpecificationResult","rowdata","row","productAttributesToHide","rowIndex","findIndex","children","productName","trim","splice","_renderRowData","_renderSitePicker","_props$SitePickerMenu","_renderMobileView","_renderAccordionItemContent","accordionItemContent","aadGeneric","aadConainer","aadAPIConainer","accountSectionHeading","creditSummarySectionHeading","accountLabels","accountValues","creditSummaryLabels","creditSummaryValues","homeButton","actions","requestStatementModal","availableCredit","balanceOwed","creditExcess","AccountInvoiceTile","countryPickerView","country","_renderTextBlock","textBlocks","_renderSocialShare","socialShare","_renderCartAndActions","addToCart","addToOrderTemplate","addToWishlist","errorBlock","button","_renderConfigure","configure","ContainerProps","dropdowns","_renderConfigureDropdown","dropdown","LabelContainerProps","errors","select","_renderFindInStore","findInStore","storeSelector","productPickupOptionList","onChangeHandler","callbacks","newValue","updateQuantity","_renderQuantity","quantityComponent","extentionResources","quantityLimitsMessages","min","max","applyDefaultOrderSettings","IncrementalQuantity","currentCount","inputQuantityAriaLabel","decrementButtonAriaLabel","incrementButtonAriaLabel","minQuantityText","maxQuantityText","_renderKeyInPrice","keyInPrice","_renderShopSimilarItem","shopSimilarItem","MediaGalleryContainerProps","ProductInfoContainerProps","price","rating","inventoryLabel","shopSimilarLook","shopSimilarDescription","unitOfMeasure","mediaGallery","bulkPurchaseLink","FooterCategoryView","category","FooterItemView","_renderElement","imageListView","indexKey","MagicNumber","FeatureItemViewComponent","renderMosaic","thisProps","indexAux","caseNumberOne","itemCounterAux","caseNumberZero","modularAux","modularDivisor","firstRow","caseNumberTwo","lastRow","onCornerRight","onCornerLeft","containerClasses","renderCarousel","InvoiceDetailsView","MapHeader","_renderSiteOptionsList","onMouseLeave","_props$config$heading","_renderDesktopView","onSubmit","subscribeView","_subscribeForm$classN","_emailInput$className","_submitButton$classNa","OrderTemplateListViewComponent","OrderTemplateList","OrderTemplates","OrderTemplate","statusMessage","orderTemplates","createOrderTemplateButton","templateHeaderStatusMessage","headingForEmptyOrderTemplateList","textForEmptyOrderTemplateList","orderTemplate","renderOrderTemplate","orderTemplateNodeProps","addToCartButton","orderTemplateImage","orderTemplateStatusMessage","orderTemplateName","orderTemplateImageElement","currentImageListLength","buildReviewCard","isUserReview","cardProps","cardBodyProps","reviewProps","reviewTitle","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","wasReviewHelpfulText","like","dislike","edit","renderProductDescription","_props$data$product$r","primaryImageSource","imageUrl","generateImageUrl","renderProductImage","filterByDropdown","noReviewsMessage","noReviewsWithFilterMessage","pageControls","refineReviewsProps","reportReviewModal","reviewsListProps","reviewCards","sortByDropdown","userReview","isFilterApplied","review","reviewModal","modalHeader","modalBody","form","inputRow","selectRatingLabel","reviewTitleLabel","titleInput","reviewTextLabel","textInput","privacyPolicyUrl","modalFooter","createReviewModal","createReportModal","reported","headerSubmitted","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton","CartIcon","cartLabel","cartQtyLabel","cartLink","cartItem","totalItemsInCart","qtyLabel","format","visibility","split","_displayLabel","CartIconComponent","createComponentOverride"],"sourceRoot":""}