{"version":3,"file":"static/js/13.e01c5237ab8fc2d5b1f0.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/dyn-cookie-compliance/dyn-cookie-compliance.tsx?7ae9","webpack://Msdyn365.Commerce.Online/./src/modules/dyn-cookie-compliance/dyn-cookie-compliance.view.tsx?890c","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/components/account-organization-users-tile-description.tsx?3b33","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/components/account-organization-users-tile-links.tsx?f1c7","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/organization-users-tile.tsx?f5de","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/organization-users-tile.view.tsx?bac2","webpack://Msdyn365.Commerce.Online/./src/modules/content-block/components/additional-content.tsx?d5f9","webpack://Msdyn365.Commerce.Online/./src/modules/content-block/components/links.tsx?abbf","webpack://Msdyn365.Commerce.Online/./src/modules/content-block/content-block.tsx?3084","webpack://Msdyn365.Commerce.Online/./src/modules/content-block/content-block.view.tsx?1773","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/cart.view.tsx?ac8f","webpack://Msdyn365.Commerce.Online/./src/modules/default-page-summary/default-page-summary.tsx?0c78","webpack://Msdyn365.Commerce.Online/./src/modules/site-picker/site-picker.tsx?b9ec","webpack://Msdyn365.Commerce.Online/./src/modules/site-picker/site-picker.view.tsx?5319"],"sourcesContent":["/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\n\r\nimport { IDynCookieComplianceData } from './dyn-cookie-compliance.data';\r\nimport { IDynCookieComplianceProps } from './dyn-cookie-compliance.props.autogenerated';\r\n\r\nexport interface IDynCookieComplianceViewProps extends IDynCookieComplianceProps {\r\n onAccept(): void;\r\n // onCancel(): void;\r\n}\r\n\r\n/**\r\n *\r\n * DynCookieCompliance component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass DynCookieCompliance extends React.PureComponent> {\r\n public constructor(props: IDynCookieComplianceProps) {\r\n super(props);\r\n // All of _msdyn365_# cookies are considered as required by Tebu and Dyn ...\r\n // theoretically should only be called on onAccept which is triggered by Commerce inline script (in cookiebot bridge component)\r\n // window.addEventListener('CookiebotOnAccept', function (e) {document.getElementById('commerce-cookie-consent-accept').click();}, false);\r\n this.props.context.request.cookies.setConsentCookie();\r\n }\r\n\r\n private readonly _onAccept = (): void => {\r\n const context = this.props.context;\r\n if (context && context.request && context.request.cookies && !context.request.cookies.isConsentGiven()) {\r\n context.request.cookies.setConsentCookie();\r\n location.reload();\r\n }\r\n };\r\n\r\n // private readonly _onCancel = (): void => {\r\n // const context = this.props.context;\r\n // if (context && context.request && context.request.cookies && context.request.cookies.isConsentGiven()) {\r\n // context.request.cookies.deleteConsentCookie();\r\n // location.reload();\r\n // }\r\n // };\r\n\r\n public render(): JSX.Element | null {\r\n const viewProps = {\r\n ...this.props,\r\n onAccept: this._onAccept.bind(this)\r\n // onCancel: this._onCancel\r\n };\r\n return this.props.renderView(viewProps);\r\n }\r\n}\r\n\r\nexport default DynCookieCompliance;\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 * as React from 'react';\r\nimport { IDynCookieComplianceViewProps } from './dyn-cookie-compliance';\r\n\r\nexport default (props: IDynCookieComplianceViewProps) => {\r\n return (\r\n <>\r\n \r\n {/* */}\r\n \r\n );\r\n};\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountOrganizationUsersTileDescription {\n description: string;\n}\n\nexport const AccountOrganizationUsersTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../organization-users-tile.props.autogenerated';\n\nexport interface IAccountOrganizationUsersTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nexport const AccountOrganizationUsersTileLinks: React.FC = ({\n links,\n telemetryContent,\n onTextChange,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-organization-users-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { AccountOrganizationUsersTileDescription, AccountOrganizationUsersTileLinks } from './components';\nimport { IOrganizationUsersTileData } from './organization-users-tile.data';\nimport { IOrganizationUsersTileProps } from './organization-users-tile.props.autogenerated';\n\nexport interface IOrganizationUsersTileViewProps extends IOrganizationUsersTileProps {\n OrganizationUsersTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * OrganizationUsersTile component.\n * @extends {React.PureComponent>}\n */\nclass OrganizationUsersTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IOrganizationUsersTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountOrganizationUsersTileDescriptionForSingleUser, accountOrganizationUsersTileDescriptionForMultipleUsers } = resources;\n const numUsers = data.users && data.users.result;\n const accountOrganizationUsersTileDescription =\n numUsers === 1 ? accountOrganizationUsersTileDescriptionForSingleUser : accountOrganizationUsersTileDescriptionForMultipleUsers;\n const customerInformation = data.customerInformation.result;\n\n // Organization-users tile will not be render for non-admin users.\n if (!customerInformation?.IsB2bAdmin) {\n return null;\n }\n\n const viewProps = {\n ...this.props,\n className,\n OrganizationUsersTile: {\n moduleProps: this.props,\n className: classnames('ms-account-organization-users-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n this.props.config.heading.text = event.target.value;\n };\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default OrganizationUsersTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrganizationUsersTileViewProps } from './organization-users-tile';\n\nconst OrganizationUsersTileView: React.FC = props => {\n const { OrganizationUsersTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default OrganizationUsersTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAdditionalContentData, ILinksData } from '../content-block.props.autogenerated';\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content Component props.\n */\nexport interface IContentBlockAdditionalContentProps {\n requestContext: Msdyn365.IRequestContext;\n additionalContent: IAdditionalContentData[] | undefined;\n handleAdditionalTextChange(index: number, event: Msdyn365.ContentEditableEvent): void;\n handleAdditionalParagraphChange(index: number, event: Msdyn365.ContentEditableEvent): void;\n handleAdditionalLinkTextChange(linkIndex: number, index: number, event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content view props.\n */\nexport interface IContentBlockAdditionalContentViewProps {\n additionalContentNode: INodeProps;\n additionalContentItems?: IContentBlockAdditionalContentItemViewProps[];\n}\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content Item view props.\n */\nexport interface IContentBlockAdditionalContentItemViewProps {\n heading: React.ReactNode;\n text: React.ReactNode;\n links: React.ReactNode;\n additionalContentItemContainer: INodeProps;\n additionalContentItemLinks: INodeProps;\n}\n\n/**\n * Renders additional content heading.\n * @param additionalContentHeading - Additional content heading.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns Heading Node.\n */\nconst renderHeading = (additionalContentHeading: string, props: IContentBlockAdditionalContentProps, itemIndex: number) => {\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalTextChange(itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Renders additional content heading.\n * @param additionalContentParagraphText - Additional content paragraph text.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns Paragraph Node.\n */\nconst renderParagraph = (additionalContentParagraphText: string, props: IContentBlockAdditionalContentProps, itemIndex: number) => {\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalTextChange(itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Renders additional content heading.\n * @param ctaLink - Additional content link.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @param linkIndex - Additional content link index.\n * @returns Link Node.\n */\nconst renderLinks = (ctaLink: ILinksData, props: IContentBlockAdditionalContentProps, itemIndex: number, linkIndex: number) => {\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: ctaLink.ariaLabel,\n className: 'ms-content-block__details__additional-content-cta-links',\n linkText: ctaLink.linkText,\n linkUrl: ctaLink.linkUrl.destinationUrl,\n openInNewTab: ctaLink.openInNewTab,\n role: 'link'\n };\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalLinkTextChange(linkIndex, itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Create node for each additonal content item.\n * @param item - Content block additonal content item props.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns IContentBlockAdditionalContentItemViewProps.\n */\nconst assembleNode = (\n item: IAdditionalContentData,\n props: IContentBlockAdditionalContentProps,\n itemIndex: number\n): IContentBlockAdditionalContentItemViewProps => {\n const headingNode = item.heading && renderHeading(item.heading, props, itemIndex);\n const paragraphNode = item.subtext && renderParagraph(item.subtext, props, itemIndex);\n const linksNode = item.links?.map((ctaLink: ILinksData, index: number) => {\n return renderLinks(ctaLink, props, itemIndex, index);\n });\n\n return {\n heading: headingNode,\n text: paragraphNode,\n links: linksNode,\n additionalContentItemContainer: { className: 'ms-content-block__details__additional-content__container' },\n additionalContentItemLinks: { className: 'ms-content-block__details__additional-content-cta' }\n };\n};\n\n/**\n * ContentBlockAdditionalContent component.\n * @param props - Content Block Additional content component props.\n * @returns Content Block Additional content view props.\n */\nexport const contentBlockAdditionalContent = (\n props: IContentBlockAdditionalContentProps\n): IContentBlockAdditionalContentViewProps | undefined => {\n const { additionalContent } = props;\n if (!additionalContent) {\n return undefined;\n }\n\n const reactNodes: IContentBlockAdditionalContentItemViewProps[] = [];\n additionalContent.map((item, index: number) => {\n return reactNodes.push(assembleNode(item, props, index));\n });\n\n return {\n additionalContentNode: { className: 'ms-content-block__details__additional-content' },\n additionalContentItems: reactNodes\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../content-block.props.autogenerated';\n\nexport interface IContentCardLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n role?: string;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * ContentCardLinks component.\n * @extends {React.PureComponent}\n */\nexport class ContentCardLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n }\n\n private readonly _mapEditableLinks = (linkdata: ILinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n linkdata.forEach((link, index) => {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const btnClass = index === 0 ? 'msc-cta__primary' : 'msc-cta__secondary';\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: btnClass,\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: this.props.role,\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n };\n}\nexport default ContentCardLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { contentBlockAdditionalContent, IContentBlockAdditionalContentViewProps } from './components/additional-content';\nimport LinksComponent from './components/links';\nimport { actionableRegion as region, IContentBlockConfig, IContentBlockProps } from './content-block.props.autogenerated';\n\nexport interface IContentBlockViewProps extends IContentBlockProps<{}> {\n title?: React.ReactNode;\n text?: React.ReactNode;\n image?: React.ReactNode;\n links?: React.ReactNode;\n className?: string;\n contentBlockContainer: IModuleProps;\n imageContainer: INodeProps;\n detailsContainer: INodeProps;\n contentBlockAnchorTag?: INodeProps;\n imageLink?: string;\n imageAriaLabel?: string;\n additionalContent?: IContentBlockAdditionalContentViewProps;\n handleAdditionalText?(): void;\n handleAdditionalParagraph?(): void;\n handleAdditionalLinkTextChange?(): void;\n}\n\n/**\n * Site-builder configuration for the module.\n */\nexport interface IContentBlockFullConfig extends IContentBlockConfig {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- This field comes from SDK.\n msdyn365__moduleLayout?: string;\n}\n\n/**\n * ContentCard component.\n * @extends {React.PureComponent}\n */\nexport class ContentBlock extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public render(): JSX.Element | null {\n const { heading, paragraph, image, links, className, imageAriaLabel } = this.props.config;\n const contentBlockTitle = heading && (\n \n );\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings ?? {},\n imageSettings: image?.imageSettings\n };\n const contentBlockLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n const contentBlockText = paragraph && (\n \n );\n const contentBlockImage = (\n \n );\n\n if (!contentBlockTitle && !contentBlockText && !contentBlockLinks) {\n this.props.context.telemetry.error('Content block content is empty, module wont render.');\n return null;\n }\n const contentBlockviewProps = {\n ...this.props,\n title: contentBlockTitle,\n text: contentBlockText,\n image: contentBlockImage,\n links: contentBlockLinks,\n moduleClass: this.props.config.className,\n contentBlockContainer: {\n moduleProps: this.props,\n className: classnames('ms-content-block', className)\n },\n imageContainer: { className: 'ms-content-block__image' },\n detailsContainer: { className: 'ms-content-block__details' },\n contentBlockAnchorTag: {\n tag: 'a',\n className: 'ms-content-block__link',\n role: 'link'\n },\n imageLink: this._getImageLink(),\n imageAriaLabel,\n additionalContent: contentBlockAdditionalContent({\n requestContext: this.props.context.request,\n additionalContent: this.props.config.additionalContent,\n handleAdditionalTextChange: this.handleAdditionalTextChange,\n handleAdditionalParagraphChange: this.handleAdditionalParagraphChange,\n handleAdditionalLinkTextChange: this.handleAdditionalLinkTextChange\n }),\n handleAdditionalText: this.handleAdditionalTextChange,\n handleAdditionalParagraph: this.handleAdditionalParagraphChange,\n handleAdditionalLinkTextChange: this.handleAdditionalLinkTextChange\n };\n\n return this.props.renderView(contentBlockviewProps) 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.heading!.text = event.target.value);\n\n /**\n * To handle paragraph change.\n * @param event - To handle text change event.\n * @name - HandleParagraphChange\n * @public\n * @returns - The Paragraph value.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.paragraph = event.target.value);\n\n /**\n * Handle link text change.\n * @param linkIndex - The link index.\n * @returns - Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[Number(linkIndex)]) {\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\n }\n };\n\n public handleAdditionalTextChange(index: number, event: Msdyn365.ContentEditableEvent): void {\n if (this.props.config.additionalContent) {\n this.props.config.additionalContent[Number(index)].heading = event.target.value;\n }\n }\n\n public handleAdditionalLinkTextChange(linkIndex: number, index: number, event: Msdyn365.ContentEditableEvent): void {\n const additionalContentObject =\n (this.props.config.additionalContent &&\n ArrayExtensions.hasElements(this.props.config.additionalContent) &&\n this.props.config.additionalContent[Number(index)]) ||\n {};\n if (additionalContentObject.links) {\n additionalContentObject.links[Number(linkIndex)].linkText = event.target.value;\n }\n }\n\n public handleAdditionalParagraphChange(index: number, event: Msdyn365.ContentEditableEvent): void {\n if (this.props.config.additionalContent) {\n this.props.config.additionalContent[Number(index)].subtext = event.target.value;\n }\n }\n\n private _getImageLink(): string | null {\n const { imageLink, links, actionableRegion } = this.props.config;\n if (actionableRegion === region.imageAndLinks) {\n if (imageLink?.destinationUrl) {\n return imageLink.destinationUrl;\n } else if (links && ArrayExtensions.hasElements(links) && links[0].linkUrl) {\n return links[0].linkUrl.destinationUrl;\n }\n return null;\n }\n return null;\n }\n}\n\nexport default ContentBlock;\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 { IContentBlockAdditionalContentItemViewProps, IContentBlockAdditionalContentViewProps } from './components/additional-content';\nimport { IContentBlockViewProps } from './content-block';\n\n/**\n * Render Additional Content.\n * @param additionalContent - Additional content view props.\n * @returns JSX Element.\n */\nconst renderAdditionalContent = (additionalContent: IContentBlockAdditionalContentViewProps) => {\n return (\n \n {additionalContent.additionalContentItems?.map((item: IContentBlockAdditionalContentItemViewProps) => {\n return (\n <>\n {item.heading}\n \n {item.text}\n {item.links}\n \n \n );\n })}\n \n );\n};\n\nconst ContentBlockView: React.FC = props => {\n const {\n contentBlockContainer,\n imageContainer,\n detailsContainer,\n title,\n text,\n links,\n image,\n contentBlockAnchorTag,\n imageLink,\n imageAriaLabel,\n additionalContent\n } = props;\n\n if (imageLink) {\n return (\n \n \n {image}\n \n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n }\n return (\n \n {image}\n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n};\n\nexport default ContentBlockView;\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 { ICartlinesViewProps, ICartResources, ICartViewProps, IOrderSummaryErrors } from '@msdyn365-commerce-modules/cart';\nimport { ICartLineItemViewProps } from '@msdyn365-commerce-modules/cart/dist/types/modules/cart/components/cart-line-items-promotion';\nimport { IInvoiceSummaryLines } from '@msdyn365-commerce-modules/invoice-payment-summary';\nimport { IOrderSummaryLines } from '@msdyn365-commerce-modules/order-summary-utilities';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent,\n Node,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst CartView: React.FC = (props: ICartViewProps) => (\n
\n {props.title}\n {props.promotionOptions && _renderPromotions(props.promotionOptions)}\n {props.cart?.hasInvoiceLine || props.multiplePickUpEnabled ? (\n _renderCartLinesGroup(props, props.resources)\n ) : (\n \n {_renderCartlines(\n props.cartlines,\n props.resources,\n props.storeSelector,\n props.backToShoppingButton,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult,\n props.telemetryContent,\n props.multiplePickUpEnabled,\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n \n )}\n {props.orderSummaryHeading && (\n \n {props.orderSummaryHeading}\n {props.cart?.hasInvoiceLine\n ? _renderInvoiceSummarylines(props.invoiceSummaryLineitems, props.OrderSummaryItems, props)\n : _renderOrderSummarylines(props.orderSummaryLineitems, props.OrderSummaryItems, props)}\n {_renderErrorBlock(props.OrderSummaryErrors)}\n {props.checkoutAsSignInUserButton}\n {props.checkoutAsGuestButton}\n {props.expressCheckoutButton && ArrayExtensions.hasElements(props.expressCheckoutButton) ? (\n {props.expressCheckoutButton}\n ) : null}\n {props.backToShoppingButton}\n {props.createTemplateFromCartButton}\n \n )}\n {props.storeSelector}\n
\n);\n\nconst _renderPromotions = (promotions: ICartLineItemViewProps): JSX.Element | undefined => {\n return (\n <>\n \n {promotions.promotionMessage}\n {promotions.promotionSeeAllLink}\n {promotions.promotionDialog}\n \n \n );\n};\n\nconst _renderCartlines = (\n cartLines: ICartlinesViewProps[] | undefined,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n backToShoppingButton: React.ReactNode,\n waitingComponent: React.ReactNode,\n cartLoadingStatus: string,\n cartDataResult: boolean,\n telemetryContent?: ITelemetryContent,\n mulitplePickUp?: boolean,\n emailDeliveryModeCode?: string\n): JSX.Element[] | JSX.Element => {\n const { emptyCartText } = resources;\n\n if (cartLoadingStatus) {\n return <>{cartLoadingStatus};\n }\n if (cartLines) {\n return cartLines.map((cartLine, index) => {\n return (\n
\n {cartLine.cartline}\n {mulitplePickUp ? null : _renderBOPISBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {mulitplePickUp ? (\n \n {_renderGroupBOPISBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n ) : cartLine.addToOrderTemplate ? (\n \n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n ) : (\n <>\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n )}\n
\n );\n });\n }\n return cartDataResult ? (\n
\n

{emptyCartText}

\n {backToShoppingButton}\n
\n ) : (\n <>{waitingComponent}\n );\n};\n\n/**\n * On Toggle function.\n * @param cartLine -Cartline.\n * @param isBopisSelected -Boolean.\n * @returns Set state of button.\n */\nconst onToggleBopisHandler = (cartLine: ICartlinesViewProps, isBopisSelected: boolean) => () => {\n cartLine.pickUpInStore && cartLine.pickUpInStore.callbacks.toggleBopis(!isBopisSelected);\n};\n\n/**\n * On change store function.\n * @param cartLine -CartLine items prop.\n * @returns Set state of button.\n */\nconst onChangeStoreHandler = (cartLine: ICartlinesViewProps) => () => {\n cartLine.pickUpInStore && cartLine.pickUpInStore.callbacks.toggleBopis(true);\n};\n\nconst _renderBOPISBlock = (\n cartLine: ICartlinesViewProps,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent,\n emailDeliveryModeCode?: string\n): JSX.Element | null => {\n // If it is electronic item cart line, then return null for BOPISBlock.\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\n return null;\n }\n\n const {\n shipInsteadDisplayText,\n shipToAddressDisplayText,\n pickItUpDisplayText,\n pickUpAtStoreWithLocationText,\n changeStoreDisplayText\n } = resources;\n\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n
\n {isBopisSelected ? (\n {pickUpAtStoreWithLocationText}\n ) : (\n {shipToAddressDisplayText}\n )}\n
\n {isBopisSelected && (\n
\n {cartLine.pickUpInStore.orgUnitName}\n \n
\n )}\n \n {isBopisSelected ? shipInsteadDisplayText : pickItUpDisplayText}\n \n
\n );\n};\n\nconst _renderErrorBlock = (errorData: IOrderSummaryErrors | undefined): JSX.Element | null => {\n if (!errorData || errorData.errors.length === 0) {\n return null;\n }\n return (\n \n {errorData.header}\n {errorData.errors}\n \n );\n};\n\nconst _renderOrderSummarylines = (\n orderSummaryLines: IOrderSummaryLines | undefined,\n OrderSummaryItems: INodeProps,\n props: ICartViewProps\n): JSX.Element | null => {\n if (!orderSummaryLines) {\n return null;\n }\n return (\n \n {props.promoCode}\n {orderSummaryLines.subtotal}\n {orderSummaryLines.shipping}\n {orderSummaryLines.otherCharge}\n {orderSummaryLines.tax}\n {orderSummaryLines.totalDiscounts ? orderSummaryLines.totalDiscounts : null}\n {orderSummaryLines.orderTotal}\n \n );\n};\n\nconst _renderInvoiceSummarylines = (\n invoiceSummaryLines: IInvoiceSummaryLines | undefined,\n OrderSummaryItems: INodeProps,\n props: ICartViewProps\n): JSX.Element | null => {\n if (!invoiceSummaryLines) {\n props.context.telemetry.error('InvoiceSummary content is empty, module wont render');\n return null;\n }\n return (\n \n {invoiceSummaryLines.invoices}\n {invoiceSummaryLines.giftCard}\n {invoiceSummaryLines.loyalty}\n {invoiceSummaryLines.orderTotal}\n \n );\n};\n\nconst _renderCartLinesGroup = (props: ICartViewProps, resources: ICartResources): JSX.Element | undefined => {\n if (props.cartLinesGroup && props.cartLinesGroup.length > 0) {\n return (\n
\n {props.cartLinesGroup.map(cartlines => {\n return (\n
\n {_renderCartLinesGroupHeader(\n cartlines[0],\n props.storeSelector,\n resources,\n _countItems(cartlines),\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n {_renderCartlines(\n cartlines,\n props.resources,\n props.storeSelector,\n props.backToShoppingButton,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult,\n props.telemetryContent,\n props.multiplePickUpEnabled,\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n
\n );\n })}\n
\n );\n }\n return props.cartDataResult ? (\n
\n
\n

{props.resources.emptyCartText}

\n {props.backToShoppingButton}\n
\n
\n ) : (\n <>{props.waitingComponent}\n );\n};\nconst _renderCartLinesGroupHeader = (\n cartLine: ICartlinesViewProps,\n storeSelector: React.ReactNode | undefined,\n resources: ICartResources,\n count: number,\n emailDeliveryModeCode?: string\n) => {\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\n const { pickUpText, shippingText, emailshippingText, payInvoicesDisplayText } = resources;\n let groupTitle: string;\n\n groupTitle = isBopisSelected ? pickUpText : shippingText;\n if (cartLine.data && cartLine.data.cartline.IsInvoiceLine) {\n groupTitle = payInvoicesDisplayText;\n } else if (!StringExtensions.isNullOrEmpty(emailDeliveryModeCode)) {\n groupTitle = cartLine.data && cartLine.data.cartline.DeliveryMode === emailDeliveryModeCode ? emailshippingText : groupTitle;\n }\n\n return (\n <>\n
\n

\n

{groupTitle}

\n {_renderCartLinesGroupTitle(cartLine, resources, count)}\n
\n \n );\n};\n\nconst _renderGroupBOPISBlock = (\n cartLine: ICartlinesViewProps,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent,\n emailDeliveryModeCode?: string\n): JSX.Element | null => {\n // If it is electronic item cart line, then return null for GroupBOPISBlock.\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\n return null;\n }\n\n const { changeStoreDisplayText, shipInsteadDisplayText, pickItUpDisplayText } = resources;\n\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n <>\n {isBopisSelected ? (\n \n ) : null}\n \n {isBopisSelected ? shipInsteadDisplayText : pickItUpDisplayText}\n \n \n );\n};\n\nconst _countItems = (cartLine: ICartlinesViewProps[]): number => {\n let countItem = 0;\n countItem = cartLine.reduce((count, item) => {\n return count + (item.data?.cartline.Quantity || 0);\n }, 0);\n return countItem;\n};\n\nconst _renderCartLinesGroupTitle = (cartLine: ICartlinesViewProps, resources: ICartResources, count: number) => {\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\n const { itemLabel, itemsLabel } = resources;\n const suffix = count > 1 ? itemsLabel : itemLabel;\n return (\n <>\n \n {isBopisSelected ? (\n

\n {cartLine.pickUpInStore?.deliveryOption}\n {', '}\n {cartLine.pickUpInStore?.orgUnitName}\n

\n ) : null}\n

\n ({count}\n {` `}\n {suffix})\n

\n
\n \n );\n};\n\nexport default CartView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { HtmlHeadInclude, IAny, IGeneric } from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\nimport { IDefaultPageSummaryData } from './default-page-summary.data';\nimport { IDefaultPageSummaryProps } from './default-page-summary.props.autogenerated';\n\n/**\n *\n * DefaultPageSummaryMetadata component.\n * @extends {React.PureComponent}\n */\nclass DefaultPageSummary extends React.PureComponent> {\n public render(): JSX.Element {\n if (this.props.data.pageSummary.result === undefined) {\n throw new Error('PageSummaryData input to page-summary is undefined. Unable to generate page-summary');\n }\n let {\n data: {\n pageSummary: {\n result: { title, description, keywords, sharingImageUrl, faviconUrl }\n }\n }\n } = this.props;\n\n const {\n config,\n context,\n data: {\n pageSummary: {\n result: { canonicalUrl }\n }\n }\n } = this.props;\n\n // Override values coming from data action if config values are provided\n title = config.title || title;\n description = config.description || description;\n keywords = config.keywords || keywords;\n sharingImageUrl = (config.sharingImage && config.sharingImage.src) || sharingImageUrl;\n faviconUrl = config.faviconUrl || faviconUrl;\n\n const pageTitle = this._constructPageTitle(title, context && context.request && context.request.app);\n return (\n <>\n \n {pageTitle && {pageTitle}}\n {description && }\n {keywords && }\n {canonicalUrl && }\n {faviconUrl && }\n \n {!config.disableOgTags && this._renderOgTags(pageTitle, description, sharingImageUrl)}\n {!config.disableTwitterTags && this._renderTwitterTags(pageTitle, description, sharingImageUrl)}\n \n );\n }\n\n private _renderOgTags(title: string | undefined, description: string | undefined, sharingImageUrl: string | undefined): JSX.Element {\n return (\n \n {title && }\n {description && }\n {sharingImageUrl && }\n \n \n );\n }\n\n private _renderTwitterTags(\n title: string | undefined,\n description: string | undefined,\n sharingImageUrl: string | undefined\n ): JSX.Element {\n return (\n \n {title && }\n {description && }\n {sharingImageUrl && }\n \n \n );\n }\n\n private _constructPageTitle(title: string | undefined, app: IGeneric): string | undefined {\n if (!title) {\n title = '';\n }\n\n const moduleConfig = this.props.config;\n if (moduleConfig && moduleConfig.ignoreTitleSuffixPrefix) {\n return title;\n }\n\n const appConfig = app && app.platform;\n if (appConfig) {\n if (appConfig.pageTitlePrefix) {\n title = (appConfig.pageTitlePrefix as string) + title;\n }\n if (appConfig.pageTitleSuffix) {\n title += appConfig.pageTitleSuffix as string;\n }\n }\n\n return title;\n }\n}\n\nexport default DefaultPageSummary;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { addThrottledEvent, Drawer, IModuleProps, INodeProps, KeyCodes, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport React from 'react';\n\nimport { ISitePickerConfig, ISitePickerProps } from './site-picker.props.autogenerated';\n\nexport interface ISitePickerViewProps extends ISitePickerProps {\n SitePicker: IModuleProps;\n SitePickerMenu: INodeProps;\n SitePickerMenuSpan: INodeProps;\n SitePickerMenuList: INodeProps;\n SitePickerMenuListItem: INodeProps;\n SitePickerMenuListItemArray: React.ReactNode[] | undefined;\n siteOptionsState: boolean;\n SitePickerMobileContainer: INodeProps;\n isMobileView: boolean;\n renderSiteOptions(): void;\n resetSiteOptionsState(): void;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\ninterface ISitePickerState {\n expandSiteOptions: boolean;\n isMobile: boolean;\n}\n\n/**\n *\n * SitePicker component.\n * @extends {React.PureComponent>}\n */\nclass SitePicker extends React.PureComponent, ISitePickerState> {\n private readonly _cookieName: string = '_msdyn365___site_';\n\n private readonly _cookieExpirationInSeconds: number = 5_184_000;\n\n private readonly _sitePickerMenuNode: React.RefObject;\n\n private readonly _sitePickerMenuButton: React.RefObject;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\n @observable\n private viewport: GridSize;\n\n public constructor(props: ISitePickerViewProps) {\n super(props);\n this._handleChange = this._handleChange.bind(this);\n this._sitePickerMenuNode = React.createRef();\n this._sitePickerMenuButton = React.createRef();\n this._renderSiteOptions = this._renderSiteOptions.bind(this);\n this._resetSiteOptionsState = this._resetSiteOptionsState.bind(this);\n this._escFunction = this._escFunction.bind(this);\n this._handleOutsideClick = this._handleOutsideClick.bind(this);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this.state = {\n expandSiteOptions: false,\n isMobile: this.isMobile\n };\n }\n\n @computed get isMobile(): boolean {\n return this.viewport === 'xs' || this.viewport === 'sm';\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document?.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.addEventListener('mousedown', this._handleOutsideClick);\n this.resizeThrottledEventHandler = window && addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document?.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.removeEventListener('mousedown', this._handleOutsideClick, false);\n window && window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n\n public render(): JSX.Element | null {\n const viewProps: ISitePickerViewProps = {\n ...(this.props as ISitePickerProps),\n SitePicker: {\n moduleProps: this.props,\n className: classnames('ms-site-picker', this.props.config.className, this.state.isMobile ? 'mobile-view' : 'desktop-view'),\n tag: 'div'\n },\n SitePickerMenu: {\n tag: 'button' as NodeTag,\n className: 'ms-site-picker__button',\n 'aria-label': this.props.config.heading?.text,\n 'aria-expanded': this.state.expandSiteOptions,\n onClick: this.props,\n ref: this._sitePickerMenuButton\n },\n SitePickerMenuSpan: {\n className: 'ms-site-picker__span',\n tag: 'span'\n },\n SitePickerMenuList: {\n className: 'ms-site-picker__list',\n role: 'menu',\n tag: 'ul',\n ref: this._sitePickerMenuNode\n },\n SitePickerMenuListItem: {\n className: 'ms-site-picker__list__item',\n role: 'presentation',\n tag: 'li'\n },\n SitePickerMobileContainer: {\n tag: Drawer,\n className: 'ms-site-picker__drawer',\n toggleButtonText: this.props.config.heading?.text,\n openGlyph: 'ms-site-picker__drawer-open',\n closeGlyph: 'ms-site-picker__drawer-close',\n glyphPlacement: 'end'\n },\n isMobileView: this.state.isMobile,\n SitePickerMenuListItemArray: this._renderSitePickerImage(),\n renderSiteOptions: this._renderSiteOptions,\n resetSiteOptionsState: this._resetSiteOptionsState,\n siteOptionsState: this.state.expandSiteOptions\n };\n return this.props.renderView(viewProps);\n }\n\n private _renderSiteOptions(): void {\n const expandSiteOptionsState = this.state.expandSiteOptions;\n this.setState({\n expandSiteOptions: !expandSiteOptionsState\n });\n }\n\n private _resetSiteOptionsState(): void {\n this.setState({\n expandSiteOptions: false\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _escFunction = (event: any) => {\n const key = event.keyCode;\n if (this.state.expandSiteOptions) {\n switch (key) {\n case KeyCodes.Escape: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n this._sitePickerMenuButton?.current?.contains(nextFocus) ||\n this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n this._sitePickerMenuButton?.current?.focus();\n }\n }, 50);\n break;\n }\n case KeyCodes.Tab: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n !this._sitePickerMenuButton?.current?.contains(nextFocus) &&\n !this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n }\n }, 50);\n break;\n }\n default:\n return;\n }\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _handleOutsideClick = (event: any) => {\n if (\n (this._sitePickerMenuButton.current?.contains(event.target) && this.state.expandSiteOptions) ||\n (this._sitePickerMenuNode.current?.contains(event.target) && this.state.expandSiteOptions)\n ) {\n return;\n }\n this._resetSiteOptionsState();\n };\n\n private _handleChange(e: React.MouseEvent): void {\n e.preventDefault();\n if (e.currentTarget.href && e.currentTarget.href.length > 0 && window) {\n if (this.props.context.request.cookies.isConsentGiven()) {\n const cookieConfig = { maxAge: this._cookieExpirationInSeconds };\n this.props.context.request.cookies.set(this._cookieName, e.currentTarget.href, cookieConfig);\n }\n window.location.assign(e.currentTarget.href);\n }\n }\n\n private _renderSitePickerImage(): React.ReactNode[] | undefined {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n sm: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n md: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n lg: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n xl: { q: 'w=40&h=20&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n const siteOptions = this.props.config.siteOptions && this.props.config.siteOptions;\n return (\n siteOptions &&\n siteOptions.map((item, index) => {\n const image = item?.siteImage;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings?.viewports ? image.imageSettings : defaultImageSettings\n };\n return (\n \n {item?.siteName}\n \n \n );\n })\n );\n }\n\n private _updateViewport(): void {\n this.viewport = this._getViewport();\n this.setState({ isMobile: this.isMobile });\n }\n\n private _getViewport(): GridSize {\n const { context } = this.props;\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (typeof window !== undefined && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n return 'xs';\n }\n}\n\nexport default SitePicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISitePickerViewProps } from './site-picker';\n\nexport default (props: ISitePickerViewProps) => {\n return <>{_renderSitePicker(props)};\n};\n\nconst _renderDesktopView = (props: ISitePickerViewProps) => {\n const { SitePickerMenu, SitePickerMenuSpan } = props;\n return (\n <>\n \n {props.config.heading?.text}\n \n \n {props.siteOptionsState ? _renderSiteOptionsList(props) : null}\n \n );\n};\n\nconst _renderSiteOptionsList = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMenuList, SitePickerMenuListItem, SitePickerMenuListItemArray } = props;\n const options = SitePickerMenuListItemArray!.map((item, index) => {\n return (\n \n {item}\n \n );\n });\n return (\n \n {options}\n \n );\n};\n\nconst _renderMobileView = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMobileContainer } = props;\n return (\n \n
\n {props.SitePickerMenuListItemArray?.map((item, index) => {\n return
{item}
;\n })}\n
\n
\n );\n};\n\nconst _renderSitePicker = (props: ISitePickerViewProps): React.ReactNode => {\n const { isMobileView, SitePicker } = props;\n return {isMobileView ? _renderMobileView(props) : _renderDesktopView(props)};\n};\n"],"names":["DynCookieCompliance","React","constructor","props","super","_onAccept","context","this","request","cookies","isConsentGiven","setConsentCookie","location","reload","render","viewProps","onAccept","bind","renderView","id","className","onClick","AccountOrganizationUsersTileDescription","description","AccountOrganizationUsersTileLinks","links","telemetryContent","onTextChange","requestContext","length","editableLinks","_mapEditableLinks","Msdyn365","editProps","linkdata","payLoad","getPayloadObject","forEach","link","index","contentAction","etext","linkText","attributes","getTelemetryAttributes","editableLink","ariaLabel","linkUrl","destinationUrl","openInNewTab","role","additionalProperties","push","OrganizationUsersTile","handleHeadingChange","event","config","heading","text","target","value","handleLinkTextChange","linkIndex","getTelemetryObject","telemetryPageName","friendlyName","telemetry","resources","data","accountOrganizationUsersTileDescriptionForSingleUser","accountOrganizationUsersTileDescriptionForMultipleUsers","numUsers","users","result","accountOrganizationUsersTileDescription","customerInformation","IsB2bAdmin","moduleProps","classnames","tag","onEdit","Object","format","Module","assembleNode","item","itemIndex","additionalContentHeading","handleAdditionalTextChange","renderHeading","subtext","additionalContentParagraphText","renderParagraph","map","ctaLink","key","handleAdditionalLinkTextChange","renderLinks","additionalContentItemContainer","additionalContentItemLinks","contentBlockAdditionalContent","additionalContent","reactNodes","additionalContentNode","additionalContentItems","ContentCardLinks","btnClass","onTelemetryClick","ContentBlock","handleTextChange","handleParagraphChange","paragraph","Number","image","imageAriaLabel","contentBlockTitle","imageProps","gridSettings","imageSettings","contentBlockLinks","ArrayExtensions","LinksComponent","msdyn365__moduleLayout","contentBlockText","contentBlockImage","preserveImageSpace","moduleType","typeName","imagePropertyName","moduleId","layout","shouldSkipToMainImage","error","contentBlockviewProps","title","moduleClass","contentBlockContainer","imageContainer","detailsContainer","contentBlockAnchorTag","imageLink","_getImageLink","handleAdditionalParagraphChange","handleAdditionalText","handleAdditionalParagraph","additionalContentObject","actionableRegion","renderAdditionalContent","Node","href","_renderPromotions","promotions","promotionMessageWrapper","promotionMessage","promotionSeeAllLink","promotionDialog","_renderCartlines","cartLines","storeSelector","backToShoppingButton","waitingComponent","cartLoadingStatus","cartDataResult","mulitplePickUp","emailDeliveryModeCode","emptyCartText","cartLine","MsDyn365","cartline","_renderBOPISBlock","_renderGroupBOPISBlock","addToOrderTemplate","addToWishlist","remove","onToggleBopisHandler","isBopisSelected","pickUpInStore","callbacks","toggleBopis","onChangeStoreHandler","DeliveryMode","shipInsteadDisplayText","shipToAddressDisplayText","pickItUpDisplayText","pickUpAtStoreWithLocationText","changeStoreDisplayText","TelemetryConstant","puckUpinStoreAttribute","ContainerProps","orgUnitName","Button","_renderErrorBlock","errorData","errors","Wrapper","header","_renderOrderSummarylines","orderSummaryLines","OrderSummaryItems","promoCode","subtotal","shipping","otherCharge","tax","totalDiscounts","orderTotal","_renderInvoiceSummarylines","invoiceSummaryLines","invoices","giftCard","loyalty","_renderCartLinesGroup","cartLinesGroup","cartlines","cartlineId","_renderCartLinesGroupHeader","_countItems","actionContext","channel","EmailDeliveryModeCode","multiplePickUpEnabled","count","pickUpText","shippingText","emailshippingText","payInvoicesDisplayText","groupTitle","IsInvoiceLine","StringExtensions","toLowerCase","_renderCartLinesGroupTitle","countItem","reduce","Quantity","itemLabel","itemsLabel","suffix","deliveryOption","renderModuleAttributes","promotionOptions","cart","hasInvoiceLine","CartlinesWrapper","orderSummaryHeading","OrderSummaryWrapper","invoiceSummaryLineitems","orderSummaryLineitems","OrderSummaryErrors","checkoutAsSignInUserButton","checkoutAsGuestButton","expressCheckoutButton","ExpressCheckoutSectionWrapper","createTemplateFromCartButton","DefaultPageSummary","undefined","pageSummary","Error","keywords","sharingImageUrl","faviconUrl","canonicalUrl","sharingImage","src","pageTitle","_constructPageTitle","app","HtmlHeadInclude","name","content","rel","disableOgTags","_renderOgTags","disableTwitterTags","_renderTwitterTags","property","moduleConfig","ignoreTitleSuffixPrefix","appConfig","platform","pageTitlePrefix","pageTitleSuffix","SitePicker","_cookieName","_cookieExpirationInSeconds","_escFunction","keyCode","state","expandSiteOptions","KeyCodes","setTimeout","nextFocus","document","activeElement","_sitePickerMenuButton","current","contains","_sitePickerMenuNode","_resetSiteOptionsState","focus","_handleOutsideClick","_handleChange","_renderSiteOptions","_updateViewport","viewport","device","Type","isMobile","componentDidMount","addEventListener","body","resizeThrottledEventHandler","window","addThrottledEvent","componentWillUnmount","removeEventListener","SitePickerMenu","ref","SitePickerMenuSpan","SitePickerMenuList","SitePickerMenuListItem","SitePickerMobileContainer","Drawer","toggleButtonText","openGlyph","closeGlyph","glyphPlacement","isMobileView","SitePickerMenuListItemArray","_renderSitePickerImage","renderSiteOptions","resetSiteOptionsState","siteOptionsState","expandSiteOptionsState","setState","e","preventDefault","currentTarget","cookieConfig","maxAge","set","assign","defaultImageSettings","viewports","xs","q","w","h","sm","md","lg","xl","lazyload","siteOptions","siteImage","tabIndex","siteRedirectUrl","siteName","Image","altText","loadFailureBehavior","_getViewport","innerWidth","__decorate","observable","computed","_renderSitePicker","_renderSiteOptionsList","options","onMouseLeave","_renderMobileView","_renderDesktopView"],"sourceRoot":""}