{"version":3,"file":"static/js/7.64d08559099bc724095a.chunk.js","mappings":"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","sources":["webpack://nile.commerce.online/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-organization-wide-selector.component.tsx?b9a7","webpack://nile.commerce.online/./src/modules/accordion/accordion.tsx?78b1","webpack://nile.commerce.online/./src/modules/accordion-item/accordion-item.tsx?36f7","webpack://nile.commerce.online/./src/modules/catalog-picker/catalog-picker.tsx?02aa","webpack://nile.commerce.online/./src/modules/footer-item/footer-item.tsx?074a","webpack://nile.commerce.online/./src/modules/image-list/image-list.tsx?5602","webpack://nile.commerce.online/./src/modules/interactive-feature-collection/interactive-feature-collection.tsx?96a6","webpack://nile.commerce.online/./src/modules/notifications-list/notifications-list.tsx?8377","webpack://nile.commerce.online/./src/modules/site-picker/site-picker.tsx?b9ec","webpack://nile.commerce.online/./src/modules/clarity-cookie-compliance/components/accept-button.tsx?d8f8","webpack://nile.commerce.online/./src/modules/clarity-cookie-compliance/components/links.tsx?03fc","webpack://nile.commerce.online/./src/modules/clarity-cookie-compliance/clarity-cookie-compliance.tsx?5eb0","webpack://nile.commerce.online/./src/modules/nile-newsletter/nile-newsletter.tsx?f408","webpack://nile.commerce.online/./src/modules/clarity-cookie-compliance/clarity-cookie-compliance.view.tsx?5236","webpack://nile.commerce.online/./src/modules/nile-newsletter/nile-newsletter.view.tsx?1256","webpack://nile.commerce.online/./src/themes/nile-theme/views/accordion-item.view.tsx?0bc2","webpack://nile.commerce.online/./src/themes/nile-theme/views/account-loyalty.view.tsx?65cc","webpack://nile.commerce.online/./src/themes/nile-theme/views/account-management-address.view.tsx?1c5f","webpack://nile.commerce.online/./src/themes/nile-theme/views/account-profile.view.tsx?6917","webpack://nile.commerce.online/./src/themes/nile-theme/views/cart-icon.view.tsx?5acd","webpack://nile.commerce.online/./src/themes/nile-theme/views/footer-category.view.tsx?7a90","webpack://nile.commerce.online/./src/themes/nile-theme/views/video-player.view.tsx?8f55","webpack://nile.commerce.online/./src/modules/accordion-item/accordion-item.view.tsx?a302","webpack://nile.commerce.online/./src/modules/accordion/accordion.view.tsx?8c7b","webpack://nile.commerce.online/./src/modules/aad-generic/aad-generic.view.tsx?b418","webpack://nile.commerce.online/./src/modules/account-invoice-tile/account-invoice-tile.view.tsx?0a60","webpack://nile.commerce.online/./src/modules/catalog-picker/catalog-picker.view.tsx?1e13","webpack://nile.commerce.online/./src/modules/footer-item/footer-item.view.tsx?c5af","webpack://nile.commerce.online/./src/modules/image-list/image-list.view.tsx?2bed","webpack://nile.commerce.online/./src/modules/interactive-feature-collection/interactive-feature-collection.view.tsx?db52","webpack://nile.commerce.online/./src/modules/notifications-list/notifications-list.view.tsx?d466","webpack://nile.commerce.online/./src/modules/site-picker/site-picker.view.tsx?5319","webpack://nile.commerce.online/./src/modules/adventureworks/views/reviews-list.view.tsx?39ca"],"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 Msdyn365, {\n ContentEditableEvent,\n generateImageUrl,\n getCatalogId,\n getUrlSync,\n Image,\n RichTextComponent,\n Text\n} from '@msdyn365-commerce/core';\nimport { MediaLocation, ProductCatalog } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ICatalogPickerData } from './catalog-picker.data';\nimport { ICatalogPickerProps } from './catalog-picker.props.autogenerated';\n\n/**\n * ICatalogPickerViewProps.\n */\nexport interface ICatalogPickerViewProps extends ICatalogPickerProps {\n catalogPicker: IModuleProps;\n heading: React.ReactNode;\n paragraph: React.ReactNode;\n catalogs: ReactNode;\n}\n\n/**\n * CatalogPicker component.\n * @extends {React.PureComponent>}\n */\nexport class CatalogPicker extends React.PureComponent> {\n private static readonly _moduleClassName = 'ms-catalog-picker';\n\n public constructor(props: ICatalogPickerViewProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { heading, paragraph } = this.props.config;\n\n const catalogPickerHeading = heading && (\n \n );\n\n const isCatalogsAvailable: boolean = ArrayExtensions.hasElements(this.props.data.catalogs?.result);\n const catalogPickerParagraph = paragraph && (\n \n );\n const viewProps = {\n ...this.props,\n handleText: this.handleTextChange,\n catalogPicker: {\n moduleProps: this.props,\n className: CatalogPicker._moduleClassName\n },\n heading: catalogPickerHeading,\n paragraph: catalogPickerParagraph,\n catalogs: isCatalogsAvailable ? this._renderCatalogPicker() : ''\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n private _renderCatalogPickerButton(item: ProductCatalog): React.ReactNode {\n const catalogId = item.RecordId;\n const currentCatalogId = getCatalogId(this.props.context.request);\n if (currentCatalogId === catalogId) {\n return
{this.props.resources.currentCatalogText}
;\n }\n let linkToCatalog = '';\n if (Msdyn365.isBrowser) {\n const catalogUrl = getUrlSync('home', this.props.context.actionContext) ?? '';\n const fullUrl = new URL(catalogUrl, window.location.href);\n fullUrl.searchParams.set('catalogid', `${catalogId}`);\n linkToCatalog = fullUrl.href;\n }\n return (\n \n {this.props.resources.changeCatalogButtonText}\n \n );\n }\n\n private _renderCatalogPicker(): React.ReactNode {\n const catalogs = this.props.data.catalogs?.result;\n\n const isBrowser = Msdyn365.isBrowser;\n\n return (\n
\n {catalogs?.map(item => {\n const reactKey = `${JSON.stringify(item)}-${String(isBrowser)}`;\n const image: MediaLocation | undefined = ArrayExtensions.firstOrDefault(item.Images);\n return (\n \n

{item.Name}

\n
\n \n
\n {this._renderCatalogPickerButton(item)}\n
\n
\n
\n );\n })}\n
\n );\n }\n}\n\nexport default CatalogPicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * 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 {\n getTelemetryObject,\n IComponentNodeProps,\n IModuleProps,\n INodeProps,\n ISingleSlideCarouselProps,\n ITelemetryContent,\n NodeTag,\n SingleSlideCarousel\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureCollectionProps } from './interactive-feature-collection.props.autogenerated';\n\n/**\n * Interactive Feature Collection view props.\n */\nexport interface IInteractiveFeatureCollectionViewProps extends IInteractiveFeatureCollectionProps<{}> {\n title: React.ReactNode;\n interactiveFeatureCollectionHeading: INodeProps;\n interactiveFeatureCollectionContainer: IModuleProps;\n interactiveFeatureCollectionDesktopContainer: INodeProps;\n interactiveFeatureCollectionDesktopItems: React.ReactNode[];\n interactiveFeatureCollectionMobileContainer: INodeProps;\n interactiveFeatureCollectionMobileItems: React.ReactNode[];\n singleSlideCarouselComponentProps: INodeProps;\n singleSlideCarouselItemContainer: INodeProps;\n}\n\n/**\n *\n * InteractiveFeatureCollection component.\n * @extends {React.PureComponent>}\n */\nexport class InteractiveFeatureCollection 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 private static _getFeatureItem(item: React.ReactNode, index: number, itemsCounter: number): React.ReactNode {\n const keyIndex = `interactive-feature-mosaic-item__${index}`;\n return (\n \n {React.cloneElement(item as React.ReactElement, { indexItem: index, itemCounter: itemsCounter, isMosaic: true })}\n \n );\n }\n\n public constructor(props: IInteractiveFeatureCollectionProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { resources } = this.props;\n const { title, className } = this.props.config;\n const interactiveItems = this.props.slots && this.props.slots.interactiveFeatureItems;\n const itemsFeatureCounter = interactiveItems && interactiveItems.length;\n const singleSlideCarouselComponentProps: IComponentNodeProps = {\n tag: SingleSlideCarousel,\n className: this.props.config.className ?? '',\n flipperPrevLabel: resources.flipperPrevious,\n flipperNextLabel: resources.flipperNext,\n parentId: this.props.id,\n telemetryContent: this._telemetryContent,\n vertical: false\n };\n const initItemsFeatureCounter = 0;\n const createHeading = title && (\n \n );\n const viewProps = {\n ...this.props,\n title: createHeading,\n interactiveFeatureCollectionHeading: {\n className: 'ms-interactive-feature-collection__heading'\n },\n interactiveFeatureCollectionContainer: {\n moduleProps: this.props,\n className: classnames('ms-interactive-feature-collection', className)\n },\n interactiveFeatureCollectionDesktopContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-desktop'\n },\n interactiveFeatureCollectionMobileContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mobile'\n },\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer: {\n tag: 'li' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel',\n role: 'listitem'\n },\n interactiveFeatureCollectionMobileItems: this.props.slots.interactiveFeatureItems,\n interactiveFeatureCollectionDesktopItems:\n itemsFeatureCounter > initItemsFeatureCounter &&\n interactiveItems.map((item: React.ReactNode, index: number) =>\n InteractiveFeatureCollection._getFeatureItem(item, index, itemsFeatureCounter)\n )\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * To handle text change.\n * @param event - To handle text change event.\n * @name - HandleTextChange\n * @public\n * @returns - The Text value.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.title!.text = event.target.value);\n}\n\nexport default InteractiveFeatureCollection;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport {\n INotificationComponentsList,\n INotificationComponentsListState,\n INotificationComponentType,\n NotificationComponentsListsManager,\n NotificationEvents,\n NotificationFeedType\n} from '@msdyn365-commerce-modules/notifications-core';\nimport { ArrayExtensions, ObjectExtensions, Random } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { INotificationsListProps } from './notifications-list.props.autogenerated';\n\n/**\n * View for the notifications list which specifies the container and notifications items.\n */\nexport interface INotificationsListViewProps extends INotificationsListProps<{}> {\n container: IModuleProps;\n notificationsList: React.ReactNode;\n}\n\n/**\n * Configuration to make the list stickable to the page without overlapping any content on top.\n */\nexport interface INotificationComponentStickyConfiguration {\n /**\n * Minimum offset for top (default for the page).\n */\n minTopOffset: number;\n\n /**\n * Maximum offset for top (to limit the top offset while scrolling).\n */\n maxTopOffset: number;\n}\n\n/**\n * Stickable notification list state which defines the top position of the list at the moment.\n */\nexport interface IStickableNotificationComponentsListState extends INotificationComponentsListState {\n /**\n * The top position of the list on the page.\n */\n top?: number;\n}\n\n/**\n * A notification list which is operated by notification manager.\n * It is responsible for rendering the received notifications.\n */\nexport class NotificationComponentsList extends React.Component, IStickableNotificationComponentsListState>\n implements INotificationComponentsList {\n /**\n * The class name to use.\n */\n private static readonly _className: string = 'msc-notifications-list';\n\n /**\n * The feed which the list is responsible for displaying.\n */\n public readonly feed: NotificationFeedType;\n\n /**\n * Configuration which specifies if and how the list should be stickable.\n * If undefined, the configuration will not be used at all. And list will not be stickable.\n */\n private readonly _stickyConfiguration?: INotificationComponentStickyConfiguration;\n\n /**\n * The list of notification which should be shown in the list at the moment.\n * @remarks Should be used to retrieve the latest list of notifications\n * as the list from the state is updated only after rendering.\n */\n private _notificationsComponentList: INotificationComponentType[];\n\n /**\n * Unique identifier of the list.\n * Uses format 'NotificationComponentsList-GUID';.\n */\n private _instanceId?: string;\n\n /**\n * Initializes instance with the given props.\n * @param props - The configuration of the list.\n */\n public constructor(props: INotificationsListProps<{}>) {\n super(props);\n\n this.feed = props.config.feed;\n\n if (\n !ObjectExtensions.isNullOrUndefined(props.config.minTopOffset) &&\n !ObjectExtensions.isNullOrUndefined(props.config.maxTopOffset)\n ) {\n this._stickyConfiguration = {\n minTopOffset: props.config.minTopOffset,\n maxTopOffset: props.config.maxTopOffset\n };\n }\n\n this._notificationsComponentList = [];\n\n this.state = {\n notificationsComponentList: []\n };\n\n this._handleTopUpdate = this._handleTopUpdate.bind(this);\n this._getCurrentTopPosition = this._getCurrentTopPosition.bind(this);\n }\n\n /**\n * Specifies if the component should be re-rendered.\n * @param nextProps - The next configuration the component is receiving.\n * @param nextState - The next state the component is receiving.\n * @returns True if component should be re-rendered, false if component should not be changed.\n */\n public shouldComponentUpdate(\n nextProps: Readonly>,\n nextState: Readonly\n ): boolean {\n const isPropsDifferent =\n this.feed !== nextProps.config.feed ||\n this.props.config.maxNotificationsCount !== nextProps.config.maxNotificationsCount ||\n this.props.config.maxTopOffset !== nextProps.config.maxTopOffset ||\n this.props.config.minTopOffset !== nextProps.config.minTopOffset ||\n this.props.config.className !== nextProps.config.className ||\n this.props.id !== nextProps.id;\n const isStateDifferent =\n this.state.top !== nextState.top ||\n this.state.notificationsComponentList.length !== nextState.notificationsComponentList.length ||\n this.state.notificationsComponentList.every(value =>\n nextState.notificationsComponentList.find(otherValue => otherValue.props.notification.id === value.props.notification.id)\n );\n return isPropsDifferent || isStateDifferent;\n }\n\n /**\n * Adds the current instance to the global list of instances so that it becomes available for the notification manager.\n * In case the list is specified to be stickable, also subscribes to the scroll event to update the offsets.\n */\n public componentDidMount(): void {\n NotificationComponentsListsManager.subscribe(this);\n\n this._instanceId = `NotificationComponentsList-${Random.Guid.generateGuid()}`;\n\n if (MsDyn365.isBrowser && this._stickyConfiguration !== undefined) {\n window.addEventListener('scroll', this._handleTopUpdate);\n }\n }\n\n /**\n * Remove the instance from the global list of instances so that it becomes unavailable for the notification manager.\n * Unsubscribes itself from the notification events and scroll event.\n */\n public componentWillUnmount(): void {\n NotificationComponentsListsManager.unsubscribe(this);\n\n this._notificationsComponentList.forEach(component =>\n component.props.notification.events.getValue(NotificationEvents.RemovedFromList)?.unsubscribe(this._instanceId!)\n );\n\n if (MsDyn365.isBrowser && this._stickyConfiguration !== undefined) {\n window.removeEventListener('scroll', this._handleTopUpdate);\n }\n }\n\n /**\n * Adds a new notification to the list.\n * @param {INotificationComponentType} notificationComponent Data required to render the notification. @see INotificationComponentType.\n */\n public addNotificationComponent(notificationComponent: INotificationComponentType): void {\n if (this._instanceId === undefined) {\n return;\n }\n\n if (\n !ObjectExtensions.isNullOrUndefined(this.props.config.maxNotificationsCount) &&\n this._notificationsComponentList.length >= this.props.config.maxNotificationsCount\n ) {\n throw new Error('Notifications limit reached, cannot show more notifications.');\n }\n\n // Subscribe to the remove event to filter the removed notifications out from the list.\n notificationComponent.props.notification.events.getValue(NotificationEvents.RemovedFromList)?.subscribe({\n instanceId: this._instanceId,\n handler: () => {\n notificationComponent.props.notification.events\n .getValue(NotificationEvents.RemovedFromList)\n ?.unsubscribe(this._instanceId!);\n const newList = this._notificationsComponentList.filter(component => component !== notificationComponent);\n this._notificationsComponentList = newList;\n this.setState({ notificationsComponentList: this._notificationsComponentList });\n }\n });\n\n // Prepend the notification as newest should come to the top.\n this._notificationsComponentList.unshift(notificationComponent);\n this.setState({ notificationsComponentList: this._notificationsComponentList });\n this._handleTopUpdate();\n }\n\n public render(): React.ReactNode {\n const className = classnames(\n NotificationComponentsList._className,\n `${NotificationComponentsList._className}__${this.feed}`,\n this.props.config.className\n );\n\n const viewProps: INotificationsListViewProps = {\n ...this.props,\n container: {\n moduleProps: this.props,\n className,\n id: this._instanceId,\n style: { top: this.state.top }\n },\n notificationsList: this._renderNotificationsList()\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Renders the list of notifications.\n * @returns React node with a list of notifications.\n */\n private _renderNotificationsList(): React.ReactNode {\n const hasNotifications = ArrayExtensions.hasElements(this.state.notificationsComponentList);\n const containerClassName = classnames(\n `${NotificationComponentsList._className}__scrollable`,\n hasNotifications\n ? `${NotificationComponentsList._className}__has-notifications`\n : `${NotificationComponentsList._className}__empty`\n );\n\n return (\n
\n {this.state.notificationsComponentList.map(component => {\n const ComponentClass = component.componentClass;\n return ;\n })}\n
\n );\n }\n\n /**\n * Retrieves current top offset position by looking at scroll position and rounding it to the stickable limits.\n */\n private _getCurrentTopPosition(): number | undefined {\n const configuration = this._stickyConfiguration;\n\n if (configuration === undefined) {\n return undefined;\n }\n\n let pageYOffset = 0;\n if (MsDyn365.isBrowser) {\n pageYOffset = window.pageYOffset;\n }\n\n return Math.max(Math.min(configuration.maxTopOffset, configuration.maxTopOffset - pageYOffset), configuration.minTopOffset);\n }\n\n /**\n * Updates the top offset on scroll event to make the list stickable.\n */\n private _handleTopUpdate(): void {\n const newTop = this._getCurrentTopPosition();\n this.setState({ top: newTop });\n }\n}\n\nexport default NotificationComponentsList;\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","/*--------------------------------------------------------------\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\n/* eslint-disable no-duplicate-imports */\r\nimport { getPayloadObject, getTelemetryAttributes, IPayLoad, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface ICookieComplianceAcceptButton {\r\n acceptCookiesButtonText?: string;\r\n acceptCookiesButtonAriaLabel?: string;\r\n\r\n /**\r\n * The telemetry content\r\n */\r\n telemetryContent?: ITelemetryContent;\r\n onClose(): void;\r\n}\r\n\r\nexport const CookieComplianceAcceptButton: React.FC = ({\r\n acceptCookiesButtonText,\r\n acceptCookiesButtonAriaLabel,\r\n telemetryContent,\r\n onClose\r\n}) => {\r\n const payLoad: IPayLoad = getPayloadObject('click', telemetryContent!, 'accept cookies');\r\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n\r\n return (\r\n \r\n {acceptCookiesButtonText}\r\n \r\n );\r\n};\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\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IActionLinksData } from '../clarity-cookie-compliance.props.autogenerated';\r\n\r\nexport interface ICookieComplianceLinks {\r\n links: IActionLinksData[];\r\n requestContext: Msdyn365.IRequestContext;\r\n telemetryContent: ITelemetryContent;\r\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\r\n}\r\n\r\n/**\r\n *\r\n * ContentCardLinks component.\r\n * @extends {React.PureComponent}\r\n */\r\nexport class CookieComplianceLinks extends React.PureComponent {\r\n public render(): JSX.Element {\r\n const editableLinks = this._mapEditableLinks(this.props.links);\r\n return (\r\n \r\n {editableLinks && editableLinks.length > 0 ? (\r\n \r\n ) : null}\r\n \r\n );\r\n }\r\n\r\n private readonly _mapEditableLinks = (linkdata: IActionLinksData[]): Msdyn365.ILinksData[] | null => {\r\n if (!linkdata || linkdata.length === 0) {\r\n return null;\r\n }\r\n const editableLinks: Msdyn365.ILinksData[] = [];\r\n linkdata.forEach((link, index) => {\r\n // Construct telemetry attribute to render\r\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\r\n const linkText = link.linkText ? link.linkText : '';\r\n payLoad.contentAction.etext = linkText;\r\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\r\n const editableLink: Msdyn365.ILinksData = {\r\n ariaLabel: link.ariaLabel,\r\n className: 'link',\r\n linkText: link.linkText,\r\n linkUrl: link.linkUrl.destinationUrl,\r\n openInNewTab: link.openInNewTab,\r\n role: 'link',\r\n additionalProperties: attributes,\r\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\r\n };\r\n editableLinks.push(editableLink);\r\n });\r\n\r\n return editableLinks;\r\n };\r\n}\r\n\r\nexport default CookieComplianceLinks;\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\n/* eslint-disable no-duplicate-imports */\r\nimport * as MsDyn365 from '@msdyn365-commerce/core';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { getTelemetryObject, IAlertProps, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { CookieComplianceAcceptButton, CookieComplianceLinks } from './components';\r\nimport { IClarityCookieComplianceConfig, IClarityCookieComplianceProps } from './clarity-cookie-compliance.props.autogenerated';\r\n\r\n/**\r\n * Alert state interface.\r\n */\r\nexport interface IAlertState {\r\n visible: boolean;\r\n}\r\n\r\n/**\r\n * Cookie compliance view props interface.\r\n */\r\nexport interface ICookieComplianceViewProps extends IClarityCookieComplianceProps<{}> {\r\n CookieComplianceBanner: IModuleProps;\r\n AlertProps: IAlertProps;\r\n Content: INodeProps;\r\n text?: React.ReactNode;\r\n links?: React.ReactNode;\r\n acceptButton?: React.ReactNode;\r\n className: string;\r\n onDismiss(): void;\r\n}\r\n\r\n/**\r\n *\r\n * CookieCompliance component.\r\n * @extends {React.PureComponent>}\r\n */\r\nclass CookieCompliance extends React.PureComponent, IAlertState> {\r\n private readonly cookieRef: React.RefObject;\r\n\r\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n\r\n public constructor(props: IClarityCookieComplianceProps) {\r\n super(props);\r\n this.state = { visible: false };\r\n this.cookieRef = React.createRef();\r\n this._onDismiss = this._onDismiss.bind(this);\r\n }\r\n\r\n public componentDidMount(): void {\r\n const { context } = this.props;\r\n\r\n if (context && context.request && context.request.cookies && !context.request.cookies.isConsentGiven()) {\r\n this.setState({ visible: true });\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { config, context, resources, telemetry } = this.props;\r\n const { acceptCookiesButtonText, acceptCookiesAriaLabel } = resources;\r\n const { visible } = this.state;\r\n\r\n const isConsentGiven = context && context.request && context.request.cookies && context.request.cookies.isConsentGiven();\r\n let moduleConfig: IClarityCookieComplianceConfig;\r\n\r\n try {\r\n moduleConfig = config;\r\n } catch (error) {\r\n telemetry.error(`Something went wrong while rendering the alert module ------${error}`);\r\n return
{error}
;\r\n }\r\n\r\n if (isConsentGiven && !visible) {\r\n this.props.context.telemetry.error('Cookie Compliance content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n if (!MsDyn365.msdyn365Commerce.isBrowser) {\r\n return <>;\r\n }\r\n\r\n const viewProps = {\r\n ...this.props,\r\n onDismiss: this._onDismiss,\r\n CookieComplianceBanner: {\r\n moduleProps: this.props,\r\n className: classnames('ms-cookie-compliance', moduleConfig.className),\r\n ref: this.cookieRef\r\n },\r\n AlertProps: {\r\n className: 'ms-cookie-compliance__container',\r\n color: 'white',\r\n fade: false\r\n },\r\n Content: {\r\n className: 'ms-cookie-compliance__content'\r\n },\r\n text: moduleConfig.content && (\r\n \r\n ),\r\n links: ArrayExtensions.hasElements(moduleConfig.actionLinks) && (\r\n \r\n ),\r\n acceptButton: (\r\n \r\n )\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n /**\r\n * Handles Link content change event.\r\n * @param linkIndex - Index of link in linkarray.\r\n * @returns Void.\r\n */\r\n public handleLinkTextChange = (linkIndex: number) => (event: MsDyn365.ContentEditableEvent): void => {\r\n if (this.props.config.actionLinks?.[linkIndex]) {\r\n this.props.config.actionLinks[linkIndex].linkText = event.target.value;\r\n }\r\n };\r\n\r\n /**\r\n * Handles content change event.\r\n * @param event - Event.\r\n */\r\n public handleContentChange = (event: MsDyn365.ContentEditableEvent): void => {\r\n this.props.config.content = event.target.value;\r\n };\r\n\r\n private _onDismiss(): void {\r\n const { context } = this.props;\r\n\r\n if (context && context.request && context.request.cookies) {\r\n context.request.cookies.setConsentCookie();\r\n if (MsDyn365.msdyn365Commerce.isBrowser && window.frames['clarity'] !== null) {\r\n // https://learn.microsoft.com/en-us/clarity/setup-and-installation/cookie-consent#step-2\r\n // @ts-expect-error\r\n window.clarity('consent');\r\n }\r\n location.reload();\r\n }\r\n this.setState({ visible: false });\r\n }\r\n}\r\n\r\nexport default CookieCompliance;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n// @ts-ignore\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { INileNewsletterData } from './nile-newsletter.data';\r\nimport { INileNewsletterProps } from './nile-newsletter.props.autogenerated';\r\nimport { IModuleProps, INodeProps, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\r\n\r\nexport interface INileNewsletterPreference {\r\n nileNewsletterPreference: INodeProps;\r\n buttonWrapper: INodeProps;\r\n buttonYesText: React.ReactNode;\r\n buttonNoText: React.ReactNode;\r\n button: React.ReactNode;\r\n description: React.ReactNode;\r\n}\r\nexport interface INileNewsletterItem {\r\n NileNewsletterItem: INodeProps;\r\n links?: React.ReactNode;\r\n description?: React.ReactNode;\r\n}\r\n\r\nexport interface INileNewsletterViewProps extends INileNewsletterProps {\r\n nileNewsletter: IModuleProps;\r\n nileNewsletterWrapper?: INodeProps;\r\n className: string;\r\n modalContainer: IModuleProps;\r\n modalHeaderContainer: INodeProps;\r\n modalFooterContainer: INodeProps;\r\n modalBodyContainer: INodeProps;\r\n}\r\n/**\r\n *\r\n * NileNewsletter component.\r\n * @extends {React.Component>}\r\n */\r\n@observer\r\nexport class NileNewsletter extends React.PureComponent> {\r\n public constructor(props: INileNewsletterProps) {\r\n super(props);\r\n }\r\n public shouldComponentUpdate(nextProps: INileNewsletterProps): boolean {\r\n if (this.props.data === nextProps.data) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n /**\r\n * Initiate close modal\r\n */\r\n public readonly closeModal = (): void => {\r\n this.setState({\r\n isModalOpen: false\r\n });\r\n };\r\n public render(): JSX.Element {\r\n const { config } = this.props;\r\n const { className } = config;\r\n const viewProps = {\r\n ...this.props,\r\n className,\r\n nileNewsletter: {\r\n moduleProps: this.props\r\n },\r\n modalContainer: {\r\n moduleProps: this.props,\r\n tag: Modal,\r\n className: 'ms-nile-newsletter__dialog',\r\n isOpen: true,\r\n 'aria-label': 'nile-newsletter',\r\n toggle: this.closeModal,\r\n modalTransition: { timeout: 0 },\r\n shouldUpdateFocusToFirstElement: true\r\n },\r\n modalHeaderContainer: {\r\n tag: ModalHeader,\r\n className: 'ms-nile-newsletter__modal-header',\r\n toggle: this.closeModal\r\n },\r\n modalFooterContainer: {\r\n tag: ModalFooter,\r\n className: 'ms-nileNewsletter__modal-footer'\r\n },\r\n modalBodyContainer: {\r\n tag: ModalBody,\r\n className: 'ms-nileNewsletter__modal-body'\r\n }\r\n };\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n}\r\n\r\nexport default NileNewsletter;\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\n/* eslint-disable no-duplicate-imports */\r\nimport { Alert, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ICookieComplianceViewProps } from './clarity-cookie-compliance';\r\n\r\nconst CookieComplianceView: React.FC = props => {\r\n const { CookieComplianceBanner, AlertProps, Content, acceptButton, text, links } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n {text}\r\n {links}\r\n \r\n {acceptButton}\r\n \r\n \r\n );\r\n};\r\nexport default CookieComplianceView;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\nimport { Button, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { INileNewsletterViewProps } from './nile-newsletter';\r\nimport { INileNewsletterProps } from '../nile-newsletter/nile-newsletter.props.autogenerated';\r\nimport classnames from 'classnames';\r\nimport { IGetMailchimpSubscriptionStatusData } from '../../actions/get-mailchimp-subscription-status.action';\r\nimport { changeMailChimpSubscriptionStatusAsync, setUserBirthdayAsync } from '../../actions/DataActionExtension.g';\r\n\r\nimport { MouseEventHandler } from 'react';\r\nimport { AsyncResult } from '@msdyn365-commerce/retail-proxy';\r\nimport { IGetBirthdayResponse } from '../../actions/get-user-birthday.action';\r\nimport { padStart } from 'lodash';\r\n\r\ninterface IMailchimpSignupPreferences {\r\n yesText: string;\r\n noText: string;\r\n newsletterYesText: string;\r\n physicalYesText: string;\r\n mailchimpState: IMailchimpState;\r\n handler: MouseEventHandler;\r\n physicalHandler: MouseEventHandler;\r\n}\r\ninterface IMailChimpSubmitPreferences {\r\n submitButtonText: string;\r\n handler: MouseEventHandler;\r\n}\r\ninterface IMailchimpState {\r\n isModalOpen: boolean;\r\n newsletterSubscribed: boolean;\r\n physicalSubscribed: boolean;\r\n dayString: string | undefined;\r\n bDay: number;\r\n bMonth: number;\r\n bYear: number;\r\n bdayError: string;\r\n newsletterCookieSet: boolean;\r\n showBirthday: boolean;\r\n showNewsletter: boolean;\r\n}\r\n\r\ninterface IBdayPreferences {\r\n state: IMailchimpState;\r\n onEditBirthdayInput: any;\r\n}\r\n\r\nexport interface INileNewsletterData {\r\n mailchimpSubscriptionStatus: AsyncResult;\r\n birthday: AsyncResult;\r\n}\r\n\r\nconst MailchimpSignupSection: React.FC> = ({\r\n physicalYesText,\r\n newsletterYesText,\r\n yesText,\r\n noText,\r\n mailchimpState,\r\n handler,\r\n physicalHandler\r\n}) => {\r\n const newsletterClassText = mailchimpState.newsletterSubscribed ? 'enable' : 'disable';\r\n const physicalClassText = mailchimpState.physicalSubscribed ? 'enable' : 'disable';\r\n const classNames = classnames('ms-nile-newsletter__container', ``);\r\n const buttonWrapper = {\r\n className: classnames('ms-nile-newsletter__container__flex', ``)\r\n };\r\n\r\n const button = (\r\n \r\n );\r\n const physicalButton = (\r\n \r\n );\r\n //Yes, I would like to recieve newsletter.\r\n\r\n const buttonYesText = {yesText} ;\r\n const buttonNoText = {noText};\r\n\r\n const buttonPhysicalYesText = {yesText};\r\n const buttonPhysicalNoText = {noText};\r\n return (\r\n <>\r\n \r\n \r\n
\r\n {buttonNoText}\r\n {button}\r\n {buttonYesText}\r\n
\r\n

{newsletterYesText}

\r\n
\r\n
\r\n \r\n \r\n
\r\n {buttonPhysicalNoText}\r\n {physicalButton}\r\n {buttonPhysicalYesText}\r\n
\r\n

{physicalYesText}

\r\n
\r\n
\r\n \r\n );\r\n};\r\nconst MailchimpSubmitButton: React.FC> = ({\r\n submitButtonText,\r\n handler\r\n}) => {\r\n const submitButton = (\r\n \r\n );\r\n // const classNames = classnames('ms-account-profile__preference', `ms-account-profile__preference-web-tracking`, {\r\n // 'ms-account-profile__personalization-updating': true\r\n // });\r\n return (\r\n <>\r\n
{submitButton}
\r\n \r\n );\r\n};\r\n\r\nconst NewsletterBirthdaySection: React.FC> = ({\r\n state,\r\n onEditBirthdayInput\r\n}) => {\r\n return (\r\n <>\r\n \r\n

{state.bdayError}

\r\n \r\n );\r\n};\r\n\r\nexport interface ICookieSetOptions {\r\n path?: string;\r\n expires?: Date;\r\n maxAge?: number;\r\n domain?: string;\r\n secure?: boolean;\r\n httpOnly?: boolean;\r\n sameSite?: boolean | 'none' | 'lax' | 'strict';\r\n}\r\nexport class NileNewsletterView extends React.PureComponent<\r\n INileNewsletterViewProps & INileNewsletterProps,\r\n IMailchimpState\r\n> {\r\n private readonly _preferredNewsLettertorageKey: string = '_msdyn365___newsletter_popup';\r\n public string = '_msdyn365__birthday_';\r\n constructor(props: INileNewsletterViewProps & INileNewsletterProps) {\r\n super(props);\r\n this.getIsModalOpenNeeded();\r\n }\r\n public getIsModalOpenNeeded = () => {\r\n const {\r\n data: { mailchimpSubscriptionStatus, birthday }\r\n } = this.props;\r\n const status = mailchimpSubscriptionStatus.result;\r\n const birthdayStatus = birthday.result;\r\n //When to display:\r\n //You are not subscribed to either physical or newsletter and this popup has not shown for X time\r\n //You have not entered your birthday and this popup has not shown for X time.\r\n\r\n const newsletterSubscribedValue: boolean = status?.newsletterActive || false;\r\n const physicalSubscribedValue: boolean = status?.physicalActive || false;\r\n\r\n const bDayint: number = birthdayStatus?.Day || -1;\r\n const bMonthint: number = birthdayStatus?.Month || -1;\r\n const bYearint: number = birthdayStatus?.Year || -1;\r\n\r\n let isCookieValueSet: boolean = false;\r\n\r\n let isModalOpenState = !(newsletterSubscribedValue && physicalSubscribedValue) || bDayint === -1;\r\n\r\n if (this.props.context.request.cookies.get(this._preferredNewsLettertorageKey).value) {\r\n isCookieValueSet = true;\r\n }\r\n if (isCookieValueSet) {\r\n isModalOpenState = false;\r\n }\r\n\r\n this.setState({\r\n newsletterSubscribed: newsletterSubscribedValue,\r\n physicalSubscribed: physicalSubscribedValue,\r\n isModalOpen: isModalOpenState,\r\n dayString: undefined,\r\n bDay: bDayint,\r\n bMonth: bMonthint,\r\n bYear: bYearint,\r\n bdayError: '',\r\n newsletterCookieSet: isCookieValueSet,\r\n showBirthday: bDayint === -1 || bMonthint === -1 || bYearint === -1,\r\n showNewsletter: !(newsletterSubscribedValue && physicalSubscribedValue)\r\n });\r\n };\r\n private readonly _writeToCookie = (storageKey?: string, storageValue?: string): void => {\r\n if (!storageKey || !storageValue) {\r\n return;\r\n }\r\n const cookieOptions: ICookieSetOptions = { secure: true, sameSite: 'none' };\r\n cookieOptions.maxAge = this.props.config.cookieLifetime;\r\n this.props.context.request.cookies.set(storageKey, storageValue, cookieOptions);\r\n };\r\n public handleMailChimpSubscriptionStatusClick = () => {\r\n changeMailChimpSubscriptionStatusAsync(\r\n { callerContext: this.props.context.actionContext },\r\n !this.state.newsletterSubscribed,\r\n false\r\n ).then(res => {\r\n if (res.Success) {\r\n this.setState({ newsletterSubscribed: !this.state.newsletterSubscribed });\r\n this._writeToCookie(this._preferredNewsLettertorageKey, this.state.newsletterSubscribed.toString());\r\n }\r\n });\r\n };\r\n public handleMailChimpPhysicalSubscriptionStatusClick = () => {\r\n changeMailChimpSubscriptionStatusAsync(\r\n { callerContext: this.props.context.actionContext },\r\n !this.state.physicalSubscribed,\r\n true\r\n ).then(res => {\r\n if (res.Success) {\r\n this.setState({ physicalSubscribed: !this.state.physicalSubscribed });\r\n this._writeToCookie(this._preferredNewsLettertorageKey, this.state.newsletterSubscribed.toString());\r\n }\r\n });\r\n };\r\n public handlSubmiteMailChimpSubscriptionStatusClick = async () => {\r\n // this.handleMailChimpPhysicalSubscriptionStatusClick();\r\n // this.handleMailChimpSubscriptionStatusClick();\r\n if (this.state.bDay === -1) {\r\n const success = await this.submitBirthday();\r\n if (success) {\r\n if (this.state.newsletterSubscribed === true || this.state.physicalSubscribed === true) {\r\n this._writeToCookie(this._preferredNewsLettertorageKey, this.state.newsletterSubscribed.toString());\r\n }\r\n this._writeToCookie(this._preferredNewsLettertorageKey, 'true');\r\n this.setState({\r\n isModalOpen: false\r\n });\r\n }\r\n } else {\r\n if (this.state.newsletterSubscribed === true || this.state.physicalSubscribed === true) {\r\n this._writeToCookie(this._preferredNewsLettertorageKey, this.state.newsletterSubscribed.toString());\r\n }\r\n this.setState({\r\n isModalOpen: false\r\n });\r\n }\r\n };\r\n\r\n public CloseModal = (): void => {\r\n this._writeToCookie(this._preferredNewsLettertorageKey, this.state.newsletterSubscribed.toString());\r\n this.setState({\r\n isModalOpen: false\r\n });\r\n };\r\n\r\n public onEditBirthdayInput = (e: any) => {\r\n this.setState({ dayString: e.target.value });\r\n return false;\r\n };\r\n\r\n public submitBirthday = async (): Promise => {\r\n const customerAccountNum = this.props.context.request.user.customerAccountNumber;\r\n if (this.state.dayString && customerAccountNum) {\r\n if (\r\n new Date(this.state.dayString) &&\r\n new Date(this.state.dayString).getFullYear() < new Date().getFullYear() &&\r\n new Date(this.state.dayString).getFullYear() > 1901 //Magic \"Not before 1901 year plz\"\r\n ) {\r\n //Is this a valid date, and is it before today?\r\n const splitDate: string[] = this.state.dayString.split('-');\r\n\r\n const result = await setUserBirthdayAsync(\r\n { callerContext: this.props.context.actionContext },\r\n parseInt(splitDate[2], 10),\r\n parseInt(splitDate[1], 10),\r\n parseInt(splitDate[0], 10),\r\n customerAccountNum\r\n );\r\n\r\n this.setState({\r\n bDay: parseInt(splitDate[2], 10),\r\n bMonth: parseInt(splitDate[1], 10),\r\n bYear: parseInt(splitDate[0], 10),\r\n bdayError: ''\r\n });\r\n\r\n return result !== undefined;\r\n } else {\r\n this.setState({\r\n bdayError: this.props.resources.invalidDateError,\r\n dayString: `${this.state.bYear}-${padStart(this.state.bMonth.toString(), 2, '0')}-${padStart(\r\n this.state.bDay.toString(),\r\n 2,\r\n '0'\r\n )}`\r\n });\r\n return false;\r\n }\r\n }\r\n this.setState({\r\n bdayError: this.props.resources.invalidDateError\r\n });\r\n return false;\r\n };\r\n\r\n public render(): JSX.Element | null {\r\n const {\r\n resources: {\r\n heading,\r\n mailchimpModalYesText,\r\n mailchimpModalNoText,\r\n submitButtonText,\r\n mailchimpPhysicalYesText,\r\n mailchimpYesText\r\n },\r\n modalContainer,\r\n modalBodyContainer,\r\n modalFooterContainer\r\n } = this.props;\r\n return this?.state?.isModalOpen && this.props.context.actionContext.requestContext.user.isAuthenticated ? (\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n {this.state.showNewsletter ? (\r\n \r\n {heading}\r\n
\r\n\r\n \r\n
\r\n ) : (\r\n <>\r\n )}\r\n\r\n {this.state.showBirthday ? (\r\n \r\n

{this.props.resources.birthdayHeading}

\r\n
\r\n \r\n
\r\n ) : (\r\n <>\r\n )}\r\n\r\n \r\n \r\n \r\n
\r\n ) : null;\r\n }\r\n}\r\nexport default NileNewsletterView;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport IAccordionItemData from \"@msdyn365-commerce-modules/accordion/src/modules/accordion-item/./accordion-item\"\r\nimport { IAccordionItemProps } from '../definition-extensions/accordion-item.ext.props.autogenerated';\r\nimport { IAccordionItemViewProps } from '@msdyn365-commerce-modules/accordion/src/modules/accordion-item/./accordion-item';\r\n\r\nconst AccordionItemView: React.FC & IAccordionItemViewProps> = props => {\r\n const { drawer, accordionSlots, AccordionItemContainer, AccordionItemContent } = props;\r\n return (\r\n \r\n \r\n \r\n {accordionSlots &&\r\n accordionSlots.accordionItemContent &&\r\n accordionSlots.accordionItemContent.length &&\r\n _renderAccordionItemContent(accordionSlots.accordionItemContent)}\r\n {accordionSlots &&\r\n accordionSlots.paymentSlot &&\r\n _renderAccordionItemContent(accordionSlots.paymentSlot)\r\n }\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderAccordionItemContent = (items: React.ReactNode[]): JSX.Element | null => {\r\n return (\r\n <>\r\n {items && items.length > 0\r\n ? items.map((item: React.ReactNode, index: number) => {\r\n return {item};\r\n })\r\n : null}\r\n \r\n );\r\n};\r\nexport default AccordionItemView;\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 { Modal, ModalBody, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAccountLoyaltyViewProps } from '@msdyn365-commerce-modules/account-management/src/modules/account-loyalty/./account-loyalty';\r\nimport {IAccountLoyaltyProps, IAccountLoyaltyResources} from '../definition-extensions/account-loyalty.ext.props.autogenerated';\r\n\r\nconst AccountLoyaltyView: React.FC> = props => {\r\n\r\n const { AccountLoyalty, Info, Points, Button, heading, infoLabel, cardNumber, /*joinDate,*/ pointsLabel, points, homeButton, pointsModal, resources } = props;\r\n const { ModalBodyTop, ModalBodyHeaders } = pointsModal;\r\n return (\r\n \r\n {heading}\r\n \r\n {infoLabel}\r\n {cardNumber}\r\n {/*joinDate*/}\r\n \r\n \r\n {pointsLabel}\r\n {points}\r\n\r\n \r\n

\r\n \r\n \r\n {homeButton}\r\n \r\n\r\n {!pointsModal.isOpen &&\r\n ||\r\n \r\n\r\n \r\n {pointsModal.modalHeader}\r\n \r\n \r\n \r\n {pointsModal.pointsDescription}\r\n {pointsModal.totalPoints}\r\n \r\n \r\n {pointsModal.date}\r\n {pointsModal.balanceLabel}\r\n \r\n {pointsModal.rewardPointsActivity && pointsModal.rewardPointsActivity.map((activity, index) => {\r\n const { Activity, activityType, activityDate, activityPoints } = activity;\r\n return (\r\n \r\n {activityType}\r\n {activityDate}\r\n {activityPoints}\r\n \r\n );\r\n })}\r\n \r\n }\r\n \r\n );\r\n};\r\n\r\nexport default AccountLoyaltyView;\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 { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address/src/modules/account-management-address/../../common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address/src/modules/account-management-address/../../common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address/src/modules/account-management-address/../../common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/src/modules/account-management-address/./account-management-address';\r\n\r\ninterface IAddressListExtended extends IAddressList {\r\n classNameExtended: string;\r\n}\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 = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\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 = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items,\r\n classNameExtended\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {items.length ? : null}\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 {isShowError && \r\n {title}\r\n {message}\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/**\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\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\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\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 {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\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\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\nimport { Button, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n IAccountPreference,\r\n IAccountPreferences,\r\n IAccountProfileItem,\r\n IAccountProfileViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/account-profile/./account-profile';\r\nimport classnames from 'classnames';\r\nimport { IAccountProfileProps } from '../definition-extensions/account-profile.ext.props.autogenerated';\r\nimport { IGetMailchimpSubscriptionStatusData } from '../../../actions/get-mailchimp-subscription-status.action';\r\nimport { changeMailChimpSubscriptionStatusAsync, setUserBirthdayAsync } from '../../../actions/DataActionExtension.g';\r\nimport { MouseEventHandler } from 'react';\r\n// from account-profile.ext.data.tsx file, which is now deleted\r\nimport { AsyncResult } from '@msdyn365-commerce/retail-proxy';\r\nimport { IGetBirthdayResponse } from '../../../actions/get-user-birthday.action';\r\nimport { padStart } from 'lodash';\r\n\r\ninterface IMailchimpSignupPreferences {\r\n heading: string;\r\n description: string;\r\n physicalHeading: string;\r\n physicalDescription: string;\r\n yesText: string;\r\n noText: string;\r\n state: IMailchimpState;\r\n handler: MouseEventHandler;\r\n physicalHandler: MouseEventHandler;\r\n}\r\n\r\ninterface IBdayPreferences {\r\n state: IMailchimpState;\r\n editBirthday: MouseEventHandler;\r\n submitBirthday: MouseEventHandler;\r\n onEditBirthdayInput: any;\r\n label: string;\r\n submit: string;\r\n cancel: string;\r\n edit: string;\r\n notSet: string;\r\n}\r\n\r\ninterface IMailchimpState {\r\n newsletterSubscribed: boolean;\r\n physicalSubscribed: boolean;\r\n dayString: string | undefined;\r\n bDay: number;\r\n bMonth: number;\r\n bYear: number;\r\n editingBirthday: boolean;\r\n bdayError: string;\r\n}\r\n\r\n// from account-profile.ext.data.tsx file, now deleted\r\nexport interface IAccountProfileData {\r\n mailchimpSubscriptionStatus: AsyncResult;\r\n birthday: AsyncResult;\r\n}\r\n\r\nconst AccountPreferencesSection: React.FC = ({ accountPreferences, heading, personalization, extraPreferences }) => {\r\n return (\r\n \r\n {heading}\r\n \r\n {extraPreferences &&\r\n extraPreferences.map((preferenceSecton, index) => {\r\n return ;\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AccountPreferenceSection: React.FC = ({\r\n accountPreference,\r\n heading,\r\n description,\r\n buttonWrapper,\r\n buttonYesText,\r\n button,\r\n buttonNoText\r\n}) => {\r\n return (\r\n \r\n {heading}\r\n {description}\r\n \r\n {buttonNoText}\r\n {button}\r\n {buttonYesText}\r\n \r\n \r\n );\r\n};\r\n\r\nconst AccountProfileSection: React.FC = ({ AccountProfileItem, heading, links, description }) => {\r\n return (\r\n \r\n {heading}\r\n {description}\r\n {links}\r\n \r\n );\r\n};\r\n\r\nconst BirthdaySection: React.FC> = ({\r\n state,\r\n editBirthday,\r\n submitBirthday,\r\n onEditBirthdayInput,\r\n label,\r\n submit,\r\n cancel,\r\n edit,\r\n notSet\r\n}) => {\r\n //TODO: Replace this with resource strings.\r\n if (state.editingBirthday) {\r\n return (\r\n <>\r\n

{label}

\r\n \r\n

{state.bdayError}

\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n } else if (state.bDay != -1 && state.bMonth != -1 && state.bYear != -1) {\r\n return (\r\n <>\r\n

{label}

\r\n

{state.dayString}

\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n } else {\r\n return (\r\n <>\r\n

{label}

\r\n

{notSet}

\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n};\r\n\r\nconst MailchimpSignupSection: React.FC> = ({\r\n noText,\r\n description,\r\n heading,\r\n physicalHeading,\r\n physicalDescription,\r\n yesText,\r\n state,\r\n handler,\r\n physicalHandler\r\n}) => {\r\n const newsletterClassText = state.newsletterSubscribed ? 'enable' : 'disable';\r\n const physicalClassText = state.physicalSubscribed ? 'enable' : 'disable';\r\n const classNames = classnames('ms-account-profile__preference', `ms-account-profile__preference-web-tracking`, {\r\n 'ms-account-profile__personalization-updating': true\r\n });\r\n const buttonWrapper = {\r\n className: classnames('ms-account-profile__toggle-wrapper', `ms-account-profile__toggle-${newsletterClassText}`)\r\n };\r\n\r\n const physButtonWrapper = {\r\n className: classnames('ms-account-profile__toggle-wrapper', `ms-account-profile__toggle-${physicalClassText}`)\r\n };\r\n const button = (\r\n \r\n );\r\n\r\n const physicalButton = (\r\n \r\n );\r\n const buttonYesText = {yesText};\r\n const buttonNoText = {noText};\r\n\r\n const descriptionComponent =

{description}

;\r\n const physicalDescriptionComponent =

{physicalDescription}

;\r\n\r\n return (\r\n <>\r\n

{heading}

\r\n \r\n {descriptionComponent}\r\n \r\n {buttonNoText}\r\n {button}\r\n {buttonYesText}\r\n \r\n \r\n
\r\n

{physicalHeading}

\r\n \r\n {physicalDescriptionComponent}\r\n \r\n {buttonNoText}\r\n {physicalButton}\r\n {buttonYesText}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport class AccountProfileView extends React.PureComponent<\r\n IAccountProfileViewProps & IAccountProfileProps,\r\n IMailchimpState\r\n> {\r\n constructor(props: IAccountProfileViewProps & IAccountProfileProps) {\r\n super(props);\r\n this.state = {\r\n newsletterSubscribed: false,\r\n physicalSubscribed: false,\r\n dayString: undefined,\r\n editingBirthday: false,\r\n bDay: -1,\r\n bMonth: -1,\r\n bYear: -1,\r\n bdayError: ''\r\n };\r\n }\r\n\r\n async componentDidMount(): Promise {\r\n const {\r\n data: { mailchimpSubscriptionStatus, birthday }\r\n } = this.props;\r\n const status = await mailchimpSubscriptionStatus.result;\r\n const bday = await birthday.result;\r\n this.setState({\r\n newsletterSubscribed: status?.newsletterActive || false,\r\n physicalSubscribed: status?.physicalActive || false,\r\n bDay: bday?.Day || 0,\r\n bMonth: bday?.Month || 0,\r\n bYear: bday?.Year || 0,\r\n dayString: `${bday?.Year}-${padStart(bday?.Month.toString(), 2, '0')}-${padStart(bday?.Day.toString(), 2, '0')}`\r\n });\r\n }\r\n\r\n handleMailChimpSubscriptionStatusClick = () => {\r\n changeMailChimpSubscriptionStatusAsync(\r\n { callerContext: this.props.context.actionContext },\r\n !this.state.newsletterSubscribed,\r\n false\r\n ).then(res => {\r\n if (res.Success) {\r\n this.setState({ newsletterSubscribed: !this.state.newsletterSubscribed });\r\n }\r\n });\r\n };\r\n\r\n setBday = (year: number, month: number, day: number) => {\r\n this.setState({ dayString: `${year}-${month}-${day}`, bDay: day, bMonth: month, bYear: year });\r\n };\r\n\r\n editBirthday = () => {\r\n this.setState({\r\n editingBirthday: !this.state.editingBirthday,\r\n dayString: `${this.state.bYear}-${padStart(this.state.bMonth.toString(), 2, '0')}-${padStart(\r\n this.state.bDay.toString(),\r\n 2,\r\n '0'\r\n )}`,\r\n bdayError: ''\r\n });\r\n };\r\n\r\n onEditBirthdayInput = (e: any) => {\r\n this.setState({ dayString: e.target.value });\r\n return false;\r\n };\r\n\r\n submitBirthday = async () => {\r\n if (this.state.dayString && this.props.data.customerInformation.result?.AccountNumber) {\r\n if (\r\n new Date(this.state.dayString) &&\r\n new Date(this.state.dayString).getFullYear() < new Date().getFullYear() &&\r\n new Date(this.state.dayString).getFullYear() > 1901 //Magic \"Not before 1901 year plz\"\r\n ) {\r\n //Is this a valid date, and is it before today?\r\n const splitDate: string[] = this.state.dayString.split('-');\r\n await setUserBirthdayAsync(\r\n { callerContext: this.props.context.actionContext },\r\n parseInt(splitDate[2]),\r\n parseInt(splitDate[1]),\r\n parseInt(splitDate[0]),\r\n this.props.data.customerInformation.result.AccountNumber\r\n );\r\n\r\n this.setState({\r\n editingBirthday: false,\r\n bDay: parseInt(splitDate[2]),\r\n bMonth: parseInt(splitDate[1]),\r\n bYear: parseInt(splitDate[0]),\r\n bdayError: ''\r\n });\r\n } else {\r\n this.setState({\r\n bdayError: this.props.resources.invalidDateError,\r\n dayString: `${this.state.bYear}-${padStart(this.state.bMonth.toString(), 2, '0')}-${padStart(\r\n this.state.bDay.toString(),\r\n 2,\r\n '0'\r\n )}`\r\n });\r\n }\r\n }\r\n };\r\n\r\n handleMailChimpPhysicalSubscriptionStatusClick = () => {\r\n changeMailChimpSubscriptionStatusAsync(\r\n { callerContext: this.props.context.actionContext },\r\n !this.state.physicalSubscribed,\r\n true\r\n ).then(res => {\r\n if (res.Success) {\r\n this.setState({ physicalSubscribed: !this.state.physicalSubscribed });\r\n }\r\n });\r\n };\r\n\r\n public render(): JSX.Element | null {\r\n const {\r\n resources: {\r\n mailchimpHeading,\r\n mailchimpDescription,\r\n mailchimpYesText,\r\n mailchimpNoText,\r\n mailchimpPhysicalDescription,\r\n mailchimpPhysicalHeading,\r\n birthdayLabel,\r\n submitLabel,\r\n cancelLabel,\r\n editLabel,\r\n notSetLabel\r\n }\r\n } = this.props;\r\n return (\r\n \r\n {this.props.accountProfileWrapper && (\r\n \r\n {this.props.heading}\r\n \r\n \r\n {this.props.data.birthday.status === 'SUCCESS' ? (\r\n \r\n ) : (\r\n <>\r\n )}\r\n\r\n \r\n \r\n \r\n )}\r\n {this.props.customerAttributesWrapper && (\r\n {this.props.customerAttributesSection}\r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default AccountProfileView;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ICartIconViewProps } from '@msdyn365-commerce-modules/cart/src/modules/cart-icon/./cart-icon';\r\nimport { IFlyoutCartLineItemViewProps } from '@msdyn365-commerce-modules/cart/src/modules/cart-icon/./components/flyout-cart-line-items';\r\n//import { useEffect } from 'react';\r\nimport { ICartIconProps as ICartIconExtensionProps } from '../definition-extensions/cart-icon.ext.props.autogenerated';\r\n\r\nconst _renderCartlines = (cartLines: IFlyoutCartLineItemViewProps[] | undefined, props: ICartIconViewProps): JSX.Element[] | null => {\r\n if (!cartLines) {\r\n props.context.telemetry.error('Cartlines content is empty, module wont render');\r\n return null;\r\n }\r\n return cartLines.map((cartLine, index) => {\r\n return (\r\n \r\n {cartLine.cartline}\r\n {cartLine.storeLocation}\r\n {/* {cartLine.remove} */}\r\n {React.cloneElement(cartLine.remove as React.ReactElement, { 'data-article-number': cartLine.data?.product?.ItemId })}\r\n \r\n );\r\n });\r\n};\r\n\r\nconst CartIconView: React.FC> = props => {\r\n return (\r\n \r\n {props.cartIcon}\r\n {props.FlyoutContainer ? (\r\n \r\n {props.flyoutTitle}\r\n {props.checkoutBlockedDueToUnavailableFunds}\r\n {_renderCartlines(props.cartlines, props)}\r\n {props.totalPrice}\r\n {props.checkoutAsSignInUserButton}\r\n {/* {props.checkoutAsGuestButton} */}\r\n {props.goToCartButton}\r\n \r\n ) : (\r\n false\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CartIconView;\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 React, { ReactNode } from 'react';\r\n\r\nimport { IFooterCategoryViewProps } from '@msdyn365-commerce-modules/footer/src/modules/footer-category/./footer-category';\r\nimport msdyn365Commerce from '@msdyn365-commerce/core-internal';\r\nimport { noop } from 'lodash';\r\n\r\nexport const FooterCategoryView: React.FC = props => {\r\n const { categories, FooterList, FooterListItem } = props;\r\n if (!categories || categories.length === 0) {\r\n props.context.telemetry.error('Footer content is empty, module wont render');\r\n return null;\r\n }\r\n \r\n React.useEffect(() => {\r\n if (msdyn365Commerce.isBrowser && document.URL.includes(\"b2clogin.com\")){\r\n function getCookie(cname:string) {\r\n var name = cname + \"=\";\r\n var ca = document.cookie.split(';');\r\n for(var i=0; i -1 )|| backnum == \"\"){\r\n noop;\r\n } else {\r\n const here = document.URL;\r\n const last = getCookie(\"lastURL\");\r\n count = parseInt(backnum);\r\n if (last == here || last == \"\"){\r\n setCookie(\"lastURL\", here);\r\n } else {\r\n count++;\r\n }\r\n }\r\n setCookie(\"backnum\",count);\r\n let el = document.querySelector('.change-country-link a');\r\n if (el){\r\n el.href = \"javascript:history.go(-\" + count +\")\";\r\n }\r\n }\r\n }\r\n }, []);\r\n\r\n\r\n \r\n\r\n\r\n return (\r\n \r\n { categories.map((category: ReactNode, index: number) => {\r\n return (\r\n \r\n {category}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nexport default FooterCategoryView;\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 { Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IVideoPlayerAdditionalContentViewProps } from '@msdyn365-commerce-modules/video-player/src/modules/video-player/./components/additional-content';\r\nimport { IVideoPlayerViewProps } from '@msdyn365-commerce-modules/video-player/src/modules/video-player/./video-player';\r\nimport {\r\n IVideoPlayerProps as IVideoPlayerViewExtensionProps\r\n } from '../definition-extensions/video-player.ext.props.autogenerated';\r\n\r\n/**\r\n * Render Additional Content.\r\n * @param additionalContent - Additional content view props.\r\n * @returns JSX Element.\r\n */\r\nconst renderAdditionalContent = (additionalContent: IVideoPlayerAdditionalContentViewProps) => {\r\n if (additionalContent.additionalContentItems) {\r\n return (\r\n \r\n <>\r\n {additionalContent.additionalContentItems.heading}\r\n \r\n {additionalContent.additionalContentItems.text}\r\n \r\n {additionalContent.additionalContentItems.links}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst VideoPlayerView: React.FC> = props => {\r\n const [yPosition, setYPosition] = React.useState(0);\r\n\r\n React.useEffect(() => {\r\n const onScroll = () => setYPosition(window.pageYOffset);\r\n window.removeEventListener('scroll', onScroll);\r\n window.addEventListener('scroll', onScroll, { passive: true });\r\n return () => window.removeEventListener('scroll', onScroll);\r\n });\r\n \r\n const scrollDownClickHandler = (id: string) => {\r\n const element = document.getElementById(id);\r\n const header = document.getElementsByTagName('header').item(0);\r\n const videoPlayerHeight = element ? element.clientHeight : 0;\r\n const headerHeight = header ? header.clientHeight : 0;\r\n return window.scrollTo(0, headerHeight+videoPlayerHeight) ;\r\n }\r\n return (\r\n \r\n {props.player}\r\n \r\n {props.title}\r\n {props.text}\r\n {props.additionalContent && renderAdditionalContent(props.additionalContent)}\r\n \r\n {props.links}\r\n \r\n \r\n \r\n {props.config.showScrollDownButton && yPosition <= 0 &&
scrollDownClickHandler(props.id)}>{props.resources.scrollDownButton}
}\r\n \r\n );\r\n};\r\n\r\nexport default VideoPlayerView;\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 { 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 } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICatalogPickerViewProps } from './catalog-picker';\n\n/**\n * ICatalogPickerViewProps.\n * @param props - ICatalogPickerViewProps.\n * @returns - Render Catalog Picker.\n */\nexport const CatalogPickerViewFunctionComponent: React.FC = props => {\n const { catalogPicker } = props;\n return (\n \n {props.heading}\n {props.paragraph}\n {props.catalogs}\n \n );\n};\n\nexport default CatalogPickerViewFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 React, { ReactNode } from 'react';\n\nimport { IInteractiveFeatureCollectionViewProps } from './interactive-feature-collection';\n\n/**\n * Feature Collection View.\n * @param props - Feature Collection view props.\n * @returns Feature Collection View.\n */\nexport const interactiveFeatureCollectionView: React.FC = props => {\n const {\n title,\n interactiveFeatureCollectionHeading,\n interactiveFeatureCollectionContainer,\n interactiveFeatureCollectionDesktopContainer,\n interactiveFeatureCollectionDesktopItems,\n interactiveFeatureCollectionMobileItems,\n interactiveFeatureCollectionMobileContainer,\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer\n } = props;\n return (\n \n {title}\n {interactiveFeatureCollectionDesktopItems}\n \n \n {interactiveFeatureCollectionMobileItems &&\n interactiveFeatureCollectionMobileItems.map((tileItem: ReactNode, index: number) => {\n const keyIndex = `interactive-feature-carousel-item__${index}`;\n return (\n \n {tileItem}\n \n );\n })}\n \n \n \n );\n};\n\nexport default interactiveFeatureCollectionView;\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 { INotificationsListViewProps } from './notifications-list';\n\nexport const NotificationsListView: React.FC = props => {\n return {props.notificationsList};\n};\n\nexport default NotificationsListView;\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 { 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"],"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","CatalogPicker","handleTextChange","handleParagraphChange","paragraph","_heading$tag","_this$props$data$cata","catalogPickerHeading","Text","_moduleClassName","isCatalogsAvailable","ArrayExtensions","hasElements","catalogs","catalogPickerParagraph","RichTextComponent","catalogValidationText","viewProps","handleText","catalogPicker","_renderCatalogPicker","_renderCatalogPickerButton","catalogId","RecordId","getCatalogId","currentCatalogText","linkToCatalog","isBrowser","_getUrlSync","catalogUrl","getUrlSync","fullUrl","URL","window","location","href","searchParams","set","changeCatalogButtonText","_this$props$data$cata2","role","reactKey","JSON","stringify","String","image","firstOrDefault","Images","tabIndex","Name","Image","src","generateImageUrl","apiSettings","Uri","gridSettings","imageSettings","galleryImageSettings","altText","AltText","loadFailureBehavior","FooterItem","handleLinkTextChange","link","linkText","footerItemClassName","attributes","_createHeading","_createImageMarkup","_createText","_createLinkText","EditableLink","_createLink","HeadingContainer","ItemContainer","Link","linkUrl","destinationUrl","ariaLabel","openInNewTab","onTelemetryClick","editableLink","additionalProperties","ariaHiddenAttr","viewports","xs","q","w","h","lg","lazyload","shouldSkipToMainImage","ImageList","images","_renderImageListItems","imageList","defaultImageSettings","xl","disableLazyLoad","_image$imageSettings","_link$linkText","imageProps","imageLink","imageLinkText","imageLinkAriaLabel","imageLinkOpenInNewTab","linkAltText","linkAriaLabel","linkOpenInNewTab","imageListTitle","imageListHeading","imageListContainer","imageListItem","imageListItemAnchorTag","imageListItems","InteractiveFeatureCollection","_telemetryContent","itemsCounter","keyIndex","indexItem","itemCounter","isMosaic","_this$props$config$cl","_title$tag","interactiveItems","interactiveFeatureItems","itemsFeatureCounter","singleSlideCarouselComponentProps","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","id","vertical","createHeading","interactiveFeatureCollectionHeading","interactiveFeatureCollectionContainer","interactiveFeatureCollectionDesktopContainer","interactiveFeatureCollectionMobileContainer","singleSlideCarouselItemContainer","interactiveFeatureCollectionMobileItems","interactiveFeatureCollectionDesktopItems","_getFeatureItem","NotificationComponentsList","feed","ObjectExtensions","isNullOrUndefined","minTopOffset","maxTopOffset","_stickyConfiguration","_notificationsComponentList","notificationsComponentList","_handleTopUpdate","_getCurrentTopPosition","nextState","isPropsDifferent","maxNotificationsCount","isStateDifferent","top","every","find","otherValue","notification","componentDidMount","NotificationComponentsListsManager","subscribe","_instanceId","Random","Guid","generateGuid","MsDyn365","addEventListener","componentWillUnmount","unsubscribe","forEach","_component$props$noti","events","getValue","NotificationEvents","RemovedFromList","removeEventListener","addNotificationComponent","notificationComponent","_notificationComponen","Error","instanceId","handler","_notificationComponen2","newList","filter","unshift","_className","container","style","notificationsList","_renderNotificationsList","hasNotifications","containerClassName","maxHeight","ComponentClass","componentClass","configuration","pageYOffset","Math","max","min","newTop","SitePicker","_cookieName","_cookieExpirationInSeconds","_escFunction","keyCode","expandSiteOptions","KeyCodes","Escape","_this$_sitePickerMenu","_this$_sitePickerMenu2","nextFocus","document","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","body","resizeThrottledEventHandler","addThrottledEvent","_document3","_document4","_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","cookies","isConsentGiven","cookieConfig","maxAge","sm","md","siteOptions","_item$siteRedirectUrl","siteImage","siteRedirectUrl","siteName","_getViewport","innerWidth","observable","computed","CookieComplianceAcceptButton","_ref","acceptCookiesButtonText","acceptCookiesButtonAriaLabel","onClose","type","CookieComplianceLinks","_mapEditableLinks","linkdata","editableLinks","push","links","CookieCompliance","linkIndex","_this$props$config$ac","actionLinks","handleContentChange","content","visible","cookieRef","_onDismiss","acceptCookiesAriaLabel","moduleConfig","onDismiss","CookieComplianceBanner","AlertProps","color","fade","Content","acceptButton","setConsentCookie","frames","clarity","reload","NileNewsletter","closeModal","isModalOpen","nileNewsletter","modalContainer","Modal","toggle","modalTransition","timeout","shouldUpdateFocusToFirstElement","modalHeaderContainer","ModalHeader","modalFooterContainer","ModalFooter","modalBodyContainer","ModalBody","Module","Alert","Node","MailchimpSignupSection","physicalYesText","newsletterYesText","yesText","noText","mailchimpState","physicalHandler","newsletterClassText","newsletterSubscribed","physicalClassText","physicalSubscribed","classNames","buttonWrapper","button","physicalButton","buttonYesText","buttonNoText","buttonPhysicalYesText","buttonPhysicalNoText","MailchimpSubmitButton","_ref2","submitButtonText","submitButton","NewsletterBirthdaySection","_ref3","onEditBirthdayInput","Date","toDateString","name","dayString","bdayError","NileNewsletterView","_preferredNewsLettertorageKey","string","getIsModalOpenNeeded","mailchimpSubscriptionStatus","birthday","status","birthdayStatus","newsletterSubscribedValue","newsletterActive","physicalSubscribedValue","physicalActive","bDayint","Day","bMonthint","Month","bYearint","Year","isCookieValueSet","isModalOpenState","get","bDay","bMonth","bYear","newsletterCookieSet","showBirthday","showNewsletter","_writeToCookie","storageKey","storageValue","cookieOptions","secure","sameSite","cookieLifetime","handleMailChimpSubscriptionStatusClick","changeMailChimpSubscriptionStatusAsync","callerContext","then","res","Success","toString","handleMailChimpPhysicalSubscriptionStatusClick","handlSubmiteMailChimpSubscriptionStatusClick","async","submitBirthday","CloseModal","customerAccountNum","user","customerAccountNumber","getFullYear","splitDate","split","setUserBirthdayAsync","parseInt","invalidDateError","_padStart","_this$state","mailchimpModalYesText","mailchimpModalNoText","mailchimpPhysicalYesText","mailchimpYesText","isAuthenticated","birthdayHeading","_renderAccordionItemContent","items","accordionItemContent","paymentSlot","AccountLoyalty","Info","Points","infoLabel","cardNumber","pointsLabel","points","homeButton","pointsModal","ModalBodyTop","ModalBodyHeaders","dangerouslySetInnerHTML","__html","nilemsg","returnFocusRef","autoFocus","horizontalPosition","verticalPosition","modalClassName","zIndex","onClosed","onOpened","modalHeaderClassName","modalHeader","modalBodyClassName","pointsDescription","totalPoints","date","balanceLabel","rewardPointsActivity","activity","Activity","activityType","activityDate","activityPoints","AddressShow","AddressDetail","description","AddressList","List","isShowList","classNameExtended","Item","showItems","isShowPrimaryButton","primaryButton","editButton","removeButton","isShowError","message","AddressLists","ListAddress","isShowEmptyListMessage","emptyListMessage","addButton","primaryAddressList","otherAddressList","AddressAddUpdate","_ref4","AddressForm","hasError","isShowSaveButton","saveButton","isShowCancelButton","cancelButton","AddressItem","label","alert","input","AddressError","AccountAddressManagement","viewState","showAddressList","showAddOrUpdateAddress","screenReaderNotification","isShowAddresList","isShowAddOrUpdateAddress","AccountPreferencesSection","accountPreferences","personalization","extraPreferences","AccountPreferenceSection","preferenceSecton","accountPreference","AccountProfileSection","AccountProfileItem","BirthdaySection","editBirthday","submit","cancel","edit","notSet","editingBirthday","_ref5","physicalHeading","physicalDescription","physButtonWrapper","descriptionComponent","physicalDescriptionComponent","AccountProfileView","setBday","year","month","day","_this$props$data$cust","customerInformation","AccountNumber","bday","mailchimpHeading","mailchimpDescription","mailchimpNoText","mailchimpPhysicalDescription","mailchimpPhysicalHeading","birthdayLabel","submitLabel","cancelLabel","editLabel","notSetLabel","AccountProfile","accountProfileWrapper","emailSection","nameSection","preferenceSection","customerAttributesWrapper","customerAttributesSection","miniCartWrapper","renderModuleAttributes","cartIcon","FlyoutContainer","flyoutTitle","checkoutBlockedDueToUnavailableFunds","CartlinesWrapper","_renderCartlines","cartLines","cartLine","_cartLine$data","miniCartItemWrapper","cartline","storeLocation","remove","product","ItemId","cartlines","totalPrice","checkoutAsSignInUserButton","goToCartButton","FooterCategoryView","categories","FooterList","FooterListItem","includes","getCookie","cname","ca","cookie","i","c","charAt","substring","indexOf","setCookie","cvalue","currentDate","expiry","getTime","backnum","referrer","_noop","count","here","last","el","querySelector","category","yPosition","setYPosition","onScroll","passive","player","detailsContainer","additionalContent","additionalContentItems","additionalContentNode","additionalContentItemContainer","additionalContentItemLinks","detailsContainerCta","showScrollDownButton","element","getElementById","header","getElementsByTagName","videoPlayerHeight","clientHeight","headerHeight","scrollTo","scrollDownClickHandler","scrollDownButton","aadGeneric","aadConainer","aadAPIConainer","AccountInvoiceTile","CatalogPickerViewFunctionComponent","FooterItemView","_renderElement","imageListView","indexKey","interactiveFeatureCollectionView","tileItem","NotificationsListView","_renderSitePicker","_renderSiteOptionsList","options","onMouseLeave","_props$SitePickerMenu","_renderMobileView","_props$config$heading","_renderDesktopView","buildReviewCard","isUserReview","cardProps","headerProps","rating","cardBodyProps","reviewProps","reviewTitle","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","wasReviewHelpfulText","like","dislike","renderProductDescription","_props$data$product$r","primaryImageSource","PrimaryImageUrl","imageUrl","cropFocalRegion","renderProductImage","filterByDropdown","noReviewsMessage","noReviewsWithFilterMessage","pageControls","refineReviewsProps","reportReviewModal","reviewsListProps","reviewCards","sortByDropdown","userReview","isFilterApplied","review","reviewModal","modal","modalBody","form","inputRow","selectRatingLabel","reviewTitleLabel","titleInput","reviewTextLabel","textInput","privacyPolicyUrl","modalFooter","createReviewModal","createReportModal","reported","headerSubmitted","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton"],"sourceRoot":""}