{"version":3,"file":"static/js/11.b2811dd866295e2a13b6.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/dyn-body-inline-script/dyn-body-inline-script.tsx?87ce","webpack://Msdyn365.Commerce.Online/./src/modules/dyn-body-inline-script/dyn-body-inline-script.view.tsx?f4fb","webpack://Msdyn365.Commerce.Online/./src/themes/dyn-tebutheme/dyn-tebutheme.tsx?e8ba","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/components/link.tsx?d232","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/components/separator.tsx?92bb","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/breadcrumb.tsx?efcc","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/breadcrumb.view.tsx?4b3d","webpack://Msdyn365.Commerce.Online/./src/modules/check-in-for-pickup/check-in-confirmation.tsx?406f","webpack://Msdyn365.Commerce.Online/./src/modules/check-in-for-pickup/check-in-error.tsx?e789","webpack://Msdyn365.Commerce.Online/./src/modules/check-in-for-pickup/check-in-for-pickup.tsx?8686","webpack://Msdyn365.Commerce.Online/./src/modules/check-in-for-pickup/check-in-for-pickup.view.tsx?bd7a","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-google-pay/checkout-google-pay.view.tsx?b92f","webpack://Msdyn365.Commerce.Online/./src/modules/country-picker/country-picker.tsx?4fcb","webpack://Msdyn365.Commerce.Online/./src/modules/country-picker/country-picker.view.tsx?0036","webpack://Msdyn365.Commerce.Online/./src/modules/footer-category/footer-category.tsx?e0bd","webpack://Msdyn365.Commerce.Online/./src/modules/footer-category/footer-category.view.tsx?fdce","webpack://Msdyn365.Commerce.Online/./src/modules/subscribe/subscribe.tsx?9fea","webpack://Msdyn365.Commerce.Online/./src/modules/subscribe/subscribe.view.tsx?19c8"],"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 { IDynBodyInlineScriptData } from './dyn-body-inline-script.data';\r\nimport { IDynBodyInlineScriptProps } from './dyn-body-inline-script.props.autogenerated';\r\n\r\nexport interface IDynBodyInlineScriptViewProps extends IDynBodyInlineScriptProps {}\r\n\r\n/**\r\n *\r\n * DynBodyInlineScript component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass DynBodyInlineScript extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n return this.props.renderView(this.props);\r\n }\r\n}\r\n\r\nexport default DynBodyInlineScript;\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 { IDynBodyInlineScriptViewProps } from './dyn-body-inline-script';\r\n\r\nexport const useScript = (props: IDynBodyInlineScriptViewProps, position: string) => {\r\n React.useEffect(() => {\r\n const placement: Element | null = document.querySelector(position);\r\n\r\n const inlineScript: HTMLScriptElement = document.createElement('script');\r\n inlineScript.type = 'text/javascript';\r\n inlineScript.innerHTML = props.config.script;\r\n\r\n placement?.appendChild(inlineScript);\r\n\r\n return () => {\r\n placement?.removeChild(inlineScript);\r\n };\r\n });\r\n};\r\n\r\nexport default (props: IDynBodyInlineScriptViewProps) => {\r\n return <>{props.config.script && useScript(props, 'body')};\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 React from 'react';\r\n\r\n// TODO: Current build require at least one tsx file\r\nexport default () =>
;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILink {\n className?: string;\n text?: string;\n href?: string;\n ariaLabel?: string;\n index: string;\n noclick?: boolean;\n telemetryContent: ITelemetryContent;\n}\n\nexport const Link: React.FC = ({ text, className, href, ariaLabel, index, noclick, telemetryContent }) => {\n const payLoad = getPayloadObject('click', telemetryContent, '', '');\n\n const linkText = text !== undefined ? text : '';\n payLoad.contentAction.etext = linkText;\n\n // Construct telemetry attribute to render\n const attribute = getTelemetryAttributes(telemetryContent, payLoad);\n\n return (\n \n {linkText}\n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface ISeparator {\n separator: string;\n}\n\nexport const Separator: React.FC = ({ separator }) => (\n \n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport { ICategoryUrl } from '@msdyn365-commerce/core-internal/dist/types/interfaces/ICategoryPathInterfaces';\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbData } from './breadcrumb.data';\nimport { IBreadcrumbProps, ILinksData } from './breadcrumb.props.autogenerated';\nimport { Link } from './components/link';\nimport { Separator } from './components/separator';\n\nexport interface IBreadcrumbViewProps extends IBreadcrumbProps {\n root?: React.ReactNode;\n links?: React.ReactNode[];\n backButton?: React.ReactNode;\n separator?: React.ReactNode;\n BreadcrumbContainer: IModuleProps;\n BreadcrumbList: INodeProps;\n BreadcrumbListItem: INodeProps;\n}\n\n/**\n *\n * Breadcrumb component.\n * @extends {React.PureComponent>}\n */\nclass Breadcrumb extends React.PureComponent> {\n private readonly _pageType: string | undefined = this.props.context.request.urlTokens.pageType;\n\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public render(): JSX.Element | null {\n const { className } = this.props.config;\n let rootLink = null;\n let breadcrumbLinks = null;\n let backButtonComponent = null;\n rootLink = this._getRootLink();\n const itemPosition = rootLink ? 1 : 0;\n if (this._pageType === 'Category') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n breadcrumbLinks = this._getCategoryHierarchy(itemPosition);\n }\n } else if (this._pageType === 'Product') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n const breaCrumbType = this.props.context.app.config.breadcrumbType;\n if (breaCrumbType === 'category') {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'categoryAndBack') {\n backButtonComponent = this._getPDPBackButton();\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'back') {\n backButtonComponent = this._getPDPBackButton();\n if (backButtonComponent === null) {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n }\n }\n } else {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n }\n const linkSeparator = ;\n\n const breadcrumbViewProps = {\n ...this.props,\n BreadcrumbContainer: {\n moduleProps: this.props,\n className: classnames('ms-breadcrumb', className),\n tag: 'nav',\n role: 'navigation'\n },\n BreadcrumbList: {\n tag: 'ol' as NodeTag,\n className: 'ms-breadcrumb_list'\n },\n BreadcrumbListItem: {\n tag: 'li',\n className: 'ms-breadcrumb_item'\n },\n root: rootLink,\n links: breadcrumbLinks,\n backButton: backButtonComponent,\n separator: linkSeparator\n };\n return this.props.renderView(breadcrumbViewProps) as React.ReactElement;\n }\n\n private readonly _getRootLink = (): JSX.Element | null => {\n const { root } = this.props.config;\n if (!root || !root.linkUrl || !root.linkUrl.destinationUrl) {\n this.props.context.telemetry.error('BreadCrumb link url content is empty, link wont render');\n return null;\n }\n return (\n \n );\n };\n\n private readonly _getCustomBreadcrumbLinks = (itemPosition: number): JSX.Element[] | null => {\n const { links } = this.props.config;\n\n if (!links || links.length === 0) {\n this.props.context.telemetry.error('BreadCrumb links content is empty, links wont render');\n return null;\n }\n const defaultValueToSubtract = 1;\n return links.map((value: ILinksData, index: number) => {\n itemPosition++;\n const keyIndex = index;\n return index !== links.length - defaultValueToSubtract ? (\n \n ) : (\n
\n {value.linkText}\n
\n );\n });\n };\n\n private readonly _getCategoryHierarchy = (itemPosition: number): JSX.Element[] | null => {\n const { data } = this.props;\n const categoryHierarchy = data.categoryHierarchy.result;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category Hierarchy content is empty, module wont render');\n return null;\n }\n return categoryHierarchy.map((value: CategoryHierarchy, index: number) => {\n itemPosition++;\n\n const friendlyName = this._getFriendlyName(this.props.context.request.locale, value.NameTranslations);\n\n return (\n \n );\n });\n };\n\n /**\n * The function to get translation name for the locale.\n * @param locale - The locale information.\n * @param nameTranslations - The name translations names.\n * @returns - The translation name for the locale.\n */\n private readonly _getFriendlyName = (locale: string, nameTranslations?: TextValueTranslation[]): string | undefined => {\n let nameTranslation: TextValueTranslation | undefined;\n if (locale && nameTranslations && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\n }\n\n // If friendly name for current locale is null, should use default locale.\n if (nameTranslation === undefined && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations[0];\n }\n\n return nameTranslation?.Text;\n };\n\n private readonly _getPDPLinks = (itemPosition: number): JSX.Element[] | null => {\n const { data, config } = this.props;\n const categoryHierarchy = data.categoryPaths.result;\n const product = data.product.result;\n const url = this.props.context.request.url.requestUrl.href;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category path content is empty for the product');\n return null;\n }\n const links: JSX.Element[] = [];\n\n categoryHierarchy.map((value: ICategoryUrl, index: number) => {\n itemPosition++;\n links.push(\n \n );\n });\n if (product && !config.hideProductName) {\n itemPosition++;\n links.push(\n \n );\n }\n return links;\n };\n\n private readonly _goBack = (): void => {\n window.history.back();\n };\n\n private readonly _getPDPBackButton = (): JSX.Element | null => {\n const isBackAllowed =\n this.props.context && this.props.context.request && this.props.context.request.query && this.props.context.request.query.back;\n if (!isBackAllowed) {\n return null;\n }\n if (MsDyn365.isBrowser && (document.referrer === '' || window.history.length < 2)) {\n return null;\n }\n return (\n \n {this.props.resources.backToResultsText}\n \n );\n };\n}\n\nexport default Breadcrumb;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbViewProps } from './breadcrumb';\n\nconst BreadCrumbView: React.FC = props => {\n const { root, links, backButton, BreadcrumbContainer, BreadcrumbList, BreadcrumbListItem, separator } = props;\n if (!root && !links && !backButton) {\n props.context.telemetry.error('BreadCrumb content is empty, module wont render');\n return null;\n }\n return (\n \n \n {root && (\n \n {root}\n {links && separator}\n \n )}\n {backButton && {backButton}}\n {links &&\n links.map((link, index) => (\n \n \n {link}\n {links[index + 1] && separator}\n \n \n ))}\n \n \n );\n};\n\nexport default BreadCrumbView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport QRCode from 'qrcode.react';\nimport * as React from 'react';\n\n/**\n * CheckInConfirmation component Properties.\n */\nexport interface ICheckInConfirmationProps {\n /**\n * The confirmation text to show.\n */\n confirmationText: string;\n\n /**\n * Should the order confirmation number shown as QR code or not.\n * If false, the order confirmation number (channel reference ID) will be shown as text.\n */\n shouldShowQrCode: boolean;\n\n /**\n * The label shows for channel reference ID.\n */\n channelReferenceIdLabel: string;\n\n /**\n * The channel reference ID to show. When shouldShowQrCode is true, the ID is shown as QR code, otherwise it is shown as text.\n */\n channelReferenceId?: string;\n}\n\n/**\n * CheckInConfirmation component for showing confirmation information after check-in succeed.\n * @param confirmationProps - The confirmation properties.\n * @param confirmationProps.confirmationText - The confirmation text.\n * @param confirmationProps.shouldShowQrCode - Should the order confirmation number shown as QR code or not.\n * If false, the order confirmation number (channel reference ID) will be shown as text.\n * @param confirmationProps.channelReferenceIdLabel - The label shows for channel reference ID.\n * @param confirmationProps.channelReferenceId - The channel reference ID to show.\n * When shouldShowQrCode is true, the ID is shown as QR code, otherwise it is shown as text.\n * @returns The check-in confirmation component.\n */\nexport const CheckInConfirmationComponent: React.FC = ({\n confirmationText,\n shouldShowQrCode,\n channelReferenceIdLabel,\n channelReferenceId\n}) => {\n return (\n
\n

{confirmationText}

\n {channelReferenceId && (\n

\n {`${channelReferenceIdLabel} ${channelReferenceId}`}\n

\n )}\n {channelReferenceId && shouldShowQrCode && (\n \n \n \n )}\n
\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\n/**\n * Check-in error properties.\n */\nexport interface ICheckInErrorProps {\n errorMessage?: string;\n}\n\n/**\n * Check-in error.\n * @param errorProps - The error properties.\n * @param errorProps.errorMessage - The error message to show.\n * @returns The alert element showing check-in errors.\n */\nexport const CheckInErrorComponent: React.FC = ({ errorMessage }) => {\n if (!errorMessage) {\n return null;\n }\n\n return (\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 { IDictionary } from '@msdyn365-commerce/core';\nimport { CommerceProperty, SalesOrdersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\nimport { CheckInConfirmationComponent } from './check-in-confirmation';\nimport { CheckInErrorComponent } from './check-in-error';\nimport { IAdditionalInformationKeysData, ICheckInForPickupConfig, ICheckInForPickupProps } from './check-in-for-pickup.props.autogenerated';\n\n/**\n * The interface representing a piece of additional information data.\n */\ninterface IAdditionalInformation {\n formKey: IAdditionalInformationKeysData;\n value: string;\n}\n\n/**\n * The state for check-in view.\n */\nexport interface ICheckInViewState {\n /**\n * If the module has header error to show.\n */\n isHeaderError: boolean;\n\n /**\n * If the customer has checked in.\n */\n isCheckedIn: boolean;\n\n /**\n * Additional information to capture.\n */\n additionalInformation: IDictionary[];\n}\n\n/**\n * The properties for check-in view.\n */\nexport interface ICheckInViewProps extends ICheckInForPickupProps {\n headerError: React.ReactNode;\n confirmationComponent: React.ReactNode;\n viewState: ICheckInViewState;\n additionalInformationValues: string[];\n checkInForOrderPickup(additionalInformation?: IAdditionalInformation[]): Promise;\n}\n\n/**\n * The state of the CheckInForPickup module.\n */\nexport interface ICheckInForPickupState {\n /**\n * The header error message.\n */\n headerErrorMessage: string;\n\n /**\n * If the customer has checked in successfully.\n */\n isCheckedIn: boolean;\n}\n\n/**\n *\n * CheckIn component.\n * @extends {React.Component, ICheckInForPickupState>}\n */\nclass CheckInForPickup extends React.Component, ICheckInForPickupState> {\n public constructor(props: ICheckInForPickupProps) {\n super(props);\n this.state = {\n headerErrorMessage: '',\n isCheckedIn: false\n };\n }\n\n public render(): JSX.Element | null {\n const isHeaderError: boolean = this.state.headerErrorMessage !== '';\n\n const viewProps = {\n ...this.props,\n headerError: ,\n confirmationComponent: (\n \n ),\n checkInForOrderPickup: this.checkInForOrderPickup,\n additionalInformationValues: this.props.config.additionalInformationKeys\n ? this.props.config.additionalInformationKeys.map(() => {\n return {};\n })\n : undefined,\n viewState: {\n isHeaderError,\n isCheckedIn: this.state.isCheckedIn\n }\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public shouldComponentUpdate(nextProps: ICheckInForPickupProps, nextState: ICheckInForPickupState): boolean {\n if (\n this.props.config.additionalInformationHeading !== nextProps.config.additionalInformationHeading ||\n this.props.config.confirmationText !== nextProps.config.confirmationText\n ) {\n return true;\n }\n if (this.state.headerErrorMessage !== nextState.headerErrorMessage || this.state.isCheckedIn !== nextState.isCheckedIn) {\n return true;\n }\n return false;\n }\n\n public async componentDidMount(): Promise {\n await this._onInit();\n }\n\n /**\n * The async callback for submitting check-in.\n * @param additionalInformationList - The optional additional information captured.\n * @returns The async result.\n */\n public checkInForOrderPickup = async (additionalInformationList?: IAdditionalInformation[]): Promise => {\n const channelId: number = Number.parseInt(this.props.context.request.query!.channelId, 10);\n const channelReferenceId: string = this.props.context.request.query!.channelReferenceId;\n const packingSlipId: string = this.props.context.request.query!.packingSlipId;\n\n const additionalInformationToSubmit: { formKey: string; value: string }[] | undefined = additionalInformationList?.map(\n additionalInformationKeyValuePair => {\n return {\n formKey: additionalInformationKeyValuePair.formKey.resourceId ?? '',\n value: additionalInformationKeyValuePair.value\n };\n }\n );\n const extensionPropertyList: CommerceProperty[] = [];\n if (!ObjectExtensions.isNullOrUndefined(additionalInformationToSubmit)) {\n for (const additionalInformation of additionalInformationToSubmit) {\n extensionPropertyList.push({\n Key: additionalInformation.formKey,\n Value: {\n StringValue: additionalInformation.value\n }\n });\n }\n }\n try {\n await SalesOrdersDataActions.checkInForOrderPickupAsync(\n { callerContext: this.props.context.actionContext, queryResultSettings: {} },\n channelId,\n packingSlipId,\n channelReferenceId,\n extensionPropertyList\n );\n } catch (error) {\n this.setState({ headerErrorMessage: this.props.resources.genericErrorMessage, isCheckedIn: false });\n this.props.telemetry.error(error);\n return Promise.resolve();\n }\n this.setState({ headerErrorMessage: '', isCheckedIn: true });\n return Promise.resolve();\n };\n\n /**\n * The action performed on module initialization.\n * @returns The async result.\n */\n private readonly _onInit = async (): Promise => {\n const channelId: number = Number.parseInt(this.props.context.request.query?.channelId ?? '', 10);\n const channelReferenceId: string | undefined = this.props.context.request.query?.channelReferenceId;\n const packingSlipId: string | undefined = this.props.context.request.query?.packingSlipId;\n if (Number.isNaN(channelId) || !channelReferenceId || !packingSlipId) {\n // No error message shown in editor mode.\n if (this.props.context.request.params.isEditor) {\n return Promise.resolve();\n } else if (this.props.context.request.params.isPreview) {\n this.setState({ headerErrorMessage: this.props.resources.requiredParameterMissingErrorMessage });\n } else {\n this.setState({ headerErrorMessage: this.props.resources.genericErrorMessage });\n }\n this.props.context.telemetry.error(\n 'One or more required URL parameters are missing. ' +\n 'Please make sure you have pass in channelId, channelReferenceId and packingSlipId through URL parameter.'\n );\n return Promise.resolve();\n }\n\n const { additionalInformationKeys } = this.props.config;\n\n const hasAdditionalInformation: boolean = ArrayExtensions.hasElements(additionalInformationKeys);\n\n // Call check-in-for-pickup directly if no additional information to capture.\n if (!hasAdditionalInformation) {\n try {\n await SalesOrdersDataActions.checkInForOrderPickupAsync(\n { callerContext: this.props.context.actionContext, queryResultSettings: {} },\n channelId,\n packingSlipId,\n channelReferenceId\n );\n } catch (error) {\n this.setState({ headerErrorMessage: this.props.resources.genericErrorMessage, isCheckedIn: false });\n this.props.telemetry.error(error);\n return Promise.resolve();\n }\n this.setState({ headerErrorMessage: '', isCheckedIn: true });\n }\n return Promise.resolve();\n };\n}\n\nexport default CheckInForPickup;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { FormBuilder } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICheckInViewProps } from './check-in-for-pickup';\n\n/**\n * The check-in view for submitting check-in, capturing additional information, and showing check-in confirmation.\n * @param props - The check-in view properties.\n * @returns The check-in view as a react component.\n */\nconst CheckInViewComponent: React.FC = (props: ICheckInViewProps) => {\n const { headerError, checkInForOrderPickup, confirmationComponent, viewState } = props;\n return (\n <>\n {viewState.isHeaderError && headerError}\n {!viewState.isHeaderError && ArrayExtensions.hasElements(props.config.additionalInformationKeys) && (\n \n )}\n {!viewState.isHeaderError &&\n !ArrayExtensions.hasElements(props.config.additionalInformationKeys) &&\n viewState.isCheckedIn &&\n confirmationComponent}\n \n );\n};\n\nexport default CheckInViewComponent;\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';\nimport { ICheckoutGooglePayViewProps } from './checkout-google-pay';\n\nconst CheckoutGooglePayView: React.FC = props => {\n const { alert, checkoutGooglePay, checkoutButton } = props;\n return (\n \n {alert}\n
ref?.appendChild(checkoutButton || document.createElement('div'))}>
\n
\n );\n};\n\nexport default CheckoutGooglePayView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport { ICookieSetOptions, IImageDimension, ILocaleItems } from '@msdyn365-commerce/core-internal';\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n ITelemetryContent,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICountryPickerData } from './country-picker.data';\nimport { IActionLinkData, ICountryPickerProps } from './country-picker.props.autogenerated';\n\n/**\n * CountryPicker view props interface.\n */\nexport interface ICountryPickerViewProps extends ICountryPickerProps {\n modalContainer: IModuleProps;\n modalHeaderContainer: INodeProps;\n modalFooterContainer: INodeProps;\n modalBodyContainer: INodeProps;\n heading?: React.ReactNode;\n subheading?: React.ReactNode;\n link?: React.ReactNode;\n countryList?: React.ReactNode[];\n isModalOpen?: boolean;\n state?: ICountryPickerState;\n stayOnCurrentSiteButton?: React.ReactNode;\n}\n\n/**\n * ICountryPickerState: Interface for Country picker State.\n */\nexport interface ICountryPickerState {\n isModalOpen: boolean;\n}\n\n/**\n *\n * CountryPicker component.\n * @extends {React.PureComponent>}\n */\nexport class CountryPicker extends React.PureComponent, ICountryPickerState> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n private readonly _preferredSiteStorageKey: string = '_msdyn365___site_';\n\n private readonly _cookieExpirationTime = 5_184_000;\n\n public constructor(props: ICountryPickerProps) {\n super(props);\n let isCookieValueSet: boolean = false;\n if (props.context.request.cookies.get(this._preferredSiteStorageKey).value) {\n isCookieValueSet = true;\n }\n this.state = {\n isModalOpen: !isCookieValueSet && this.props.context.request.marketSettings !== undefined\n };\n }\n\n public render(): JSX.Element | null {\n const { heading, subheading, countryList, actionLink } = this.props.config;\n\n const isConsentGiven = this.props.context.request.cookies.isConsentGiven();\n\n if (!isConsentGiven) {\n return null;\n }\n\n const countryPickerHeading = heading && (\n \n );\n\n const countryPickerSubHeading = subheading && (\n \n );\n\n const countryPickerActionLink = actionLink && this.createLink(actionLink);\n const currentSiteButton = (\n \n );\n\n const viewprops: ICountryPickerViewProps = {\n ...this.props,\n state: this.state,\n isModalOpen: this.state.isModalOpen,\n modalContainer: {\n moduleProps: this.props,\n tag: Modal,\n className: 'ms-country-picker__dialog',\n isOpen: true,\n 'aria-label': 'country-picker',\n toggle: this.closeModal,\n modalTransition: { timeout: 0 },\n shouldUpdateFocusToFirstElement: true\n },\n modalHeaderContainer: {\n tag: ModalHeader,\n className: 'ms-country-picker__modal-header',\n toggle: this.closeModal,\n closeButtonTabIndex: 1\n },\n modalFooterContainer: {\n tag: ModalFooter,\n className: 'ms-countryPicker__modal-footer'\n },\n modalBodyContainer: {\n tag: ModalBody,\n className: 'ms-counrtyPicker__modal-body'\n },\n heading: countryPickerHeading,\n subheading: countryPickerSubHeading,\n link: countryPickerActionLink,\n countryList: countryList && this.renderCountryList(),\n stayOnCurrentSiteButton: currentSiteButton\n };\n\n return this.props.renderView(viewprops);\n }\n\n /**\n * Initiate close modal.\n */\n public readonly closeModal = (): void => {\n this.setState({\n isModalOpen: false\n });\n };\n\n public handleParagraphChange(event: MsDyn365.ContentEditableEvent): void {\n this.props.config.subheading = event.target.value;\n }\n\n public handleTextChange(event: MsDyn365.ContentEditableEvent): void {\n this.props.config.heading!.text = event.target.value;\n }\n\n public handleLinkTextChange(event: MsDyn365.ContentEditableEvent): void {\n if (this.props.config.actionLink?.linkText) {\n this.props.config.actionLink.linkText = event.target.value;\n }\n }\n\n public createLink(link?: IActionLinkData): React.ReactNode | null {\n if (!StringExtensions.isNullOrEmpty(link?.linkUrl.destinationUrl)) {\n const linkText = link?.linkText ?? '';\n const payLoad = getPayloadObject('click', this._telemetryContent, '', '');\n const attributes = getTelemetryAttributes(this._telemetryContent, payLoad);\n const editableLink: MsDyn365.ILinksData = {\n ariaLabel: link?.ariaLabel,\n className: 'ms-countryPicker__link',\n linkText,\n linkUrl: link?.linkUrl.destinationUrl,\n openInNewTab: link?.openInNewTab,\n role: 'link',\n additionalProperties: attributes!,\n onClick: onTelemetryClick(this._telemetryContent, payLoad, linkText)\n };\n return (\n \n );\n }\n return null;\n }\n\n public renderCountryList(): React.ReactNode[] | undefined {\n const marketSettings = this.props.context.request.marketSettings;\n if (!marketSettings) {\n return undefined;\n }\n const localeItems = marketSettings.localeItems;\n const countryLinks = localeItems.map((value: ILocaleItems) => {\n return this.renderCountry(value);\n });\n\n return countryLinks;\n }\n\n public renderCountry(localeItem: ILocaleItems): React.ReactNode | null {\n const countryList = this.props.config.countryList;\n let baseUrl = localeItem.localeBaseUrl;\n baseUrl = this._appendProtocolToUrl(baseUrl);\n const matchedCountryItem = countryList?.find(item => item.url === baseUrl);\n if (!matchedCountryItem) {\n return null;\n }\n const imageSize: IImageDimension = { q: 'w=48&h=48&m=6', w: 0, h: 0 };\n const defaultImageSettings: MsDyn365.IImageSettings = {\n viewports: {\n xs: imageSize,\n lg: imageSize,\n xl: imageSize\n },\n lazyload: true\n };\n const image = matchedCountryItem.image;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings ?? defaultImageSettings\n };\n return (\n \n {image && (\n \n )}\n
\n {matchedCountryItem.displayString}\n {matchedCountryItem.displaySubString}\n
\n \n );\n }\n\n /**\n * Writes the current site base url to cookie and closes the country picker modal dialog.\n */\n private readonly _handleStayOnSiteButtonClick = (): void => {\n const currentBaseUrl = this.props.context.request.marketSettings?.currentBaseUrl;\n if (currentBaseUrl) {\n const urlToStore = this._appendProtocolToUrl(currentBaseUrl);\n this._writeToCookie(this._preferredSiteStorageKey, urlToStore);\n }\n this.closeModal();\n };\n\n /**\n * Handles click event of country selection.\n * @param storageKey - Cookie storage key.\n * @param storageValue - Preffered site url.\n * @returns - This method just writes the cookie to the browser.\n */\n private readonly _handleClick = (storageKey?: string, storageValue?: string) => () => {\n this._writeToCookie(storageKey, storageValue);\n };\n\n /**\n * Handles click event of country selection.\n * @param storageKey - Cookie storage key.\n * @param storageValue - Preffered site url.\n */\n private readonly _writeToCookie = (storageKey?: string, storageValue?: string): void => {\n if (!storageKey || !storageValue) {\n return;\n }\n const cookieOptions: ICookieSetOptions = { secure: true, sameSite: 'none' };\n cookieOptions.maxAge = this._cookieExpirationTime;\n this.props.context.request.cookies.set(storageKey, storageValue, cookieOptions);\n };\n\n /**\n * Appends protocol to an url.\n * @param baseUrl - Url to be formatted.\n * @returns - URL after appending protocol.\n */\n private readonly _appendProtocolToUrl = (baseUrl: string): string => {\n return !baseUrl.includes('https://') ? `https://${baseUrl}` : baseUrl;\n };\n}\n\nexport default CountryPicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICountryPickerViewProps } from './index';\n\n/**\n * Functional component which renders country picker module.\n * @param props - Configuration for the country picker component.\n * @returns React.FC - Functional component of the country picker module.\n */\nexport const countryPickerView: React.FC = (props: ICountryPickerViewProps) => {\n const {\n isModalOpen,\n modalContainer,\n modalHeaderContainer,\n modalBodyContainer,\n heading,\n modalFooterContainer,\n subheading,\n link,\n countryList,\n stayOnCurrentSiteButton\n } = props;\n return isModalOpen && countryList ? (\n \n \n {heading}\n {subheading}\n \n \n {countryList.map(country => (\n <>{country}\n ))}\n \n \n {stayOnCurrentSiteButton}\n {link}\n \n \n ) : null;\n};\n\nexport default countryPickerView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterCategoryConfig, IFooterCategoryProps } from './footer-category.props.autogenerated';\n\nexport interface IFooterCategoryViewProps extends IFooterCategoryProps {\n categories: React.ReactNode[];\n FooterList: IModuleProps;\n FooterListItem: INodeProps;\n}\n\n/**\n *\n * FooterCategory component.\n * @extends {React.PureComponent>}\n */\nclass FooterCategory extends React.PureComponent> {\n public render(): JSX.Element | null {\n if (!this.props.slots || !this.props.slots.content || this.props.slots.content.length === 0) {\n this.props.context.telemetry.error('footer slots content is empty, module wont render');\n return null;\n }\n const viewprops = {\n ...this.props,\n categories: this.props.slots.content,\n FooterList: {\n moduleProps: this.props,\n className: classnames('ms-footer__list', this.props.config.className),\n tag: 'ul'\n },\n FooterListItem: {\n className: classnames('ms-footer__list-item', this.props.config.className),\n tag: 'li'\n }\n };\n\n return this.props.renderView(viewprops) as React.ReactElement;\n }\n}\n\nexport default FooterCategory;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { IFooterCategoryViewProps } from './footer-category';\n\nexport const FooterCategoryView: React.FC = props => {\n const { categories, FooterList, FooterListItem } = props;\n if (!categories || categories.length === 0) {\n props.context.telemetry.error('Footer content is empty, module wont render');\n return null;\n }\n return (\n \n {categories.map((category: ReactNode, index: number) => {\n return (\n \n {category}\n \n );\n })}\n \n );\n};\n\nexport default FooterCategoryView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISubscribeConfig, ISubscribeProps } from './subscribe.props.autogenerated';\n\n/**\n * Subscribe view props.\n */\nexport interface ISubscribeViewProps extends ISubscribeProps {\n subscribe: IModuleProps;\n subscribeContainer: INodeProps;\n heading: React.ReactNode;\n text: React.ReactNode;\n submitButton?: INodeProps;\n submitButtonLabelText?: string;\n subscribeForm?: INodeProps;\n emailInput?: INodeProps;\n handleText(): void;\n}\n\n/**\n * Subscribe component.\n * @extends {React.PureComponent>}\n */\nexport class Subscribe extends React.PureComponent> {\n private readonly _emailAddressInputRef: React.RefObject;\n\n public constructor(props: ISubscribeViewProps) {\n super(props);\n this._emailAddressInputRef = React.createRef();\n }\n\n public render(): JSX.Element | null {\n const { heading, paragraph } = this.props.config;\n\n const moduleClassName = 'ms-subscribe';\n\n const subscribeParagraph = paragraph && (\n \n );\n\n const subscribeHeading = heading && (\n \n );\n const viewProps = {\n ...this.props,\n handleText: this.handleTextChange,\n subscribe: {\n moduleProps: this.props,\n className: moduleClassName\n },\n subscribeContainer: {\n className: 'ms-subscribe__details'\n },\n heading: subscribeHeading,\n text: subscribeParagraph,\n subscribeForm: {\n className: 'ms-subscribe__details__form',\n tag: 'form',\n 'aria-label': this.props.resources.subscribeFormAriaLabel,\n name: 'subscribeForm',\n role: 'form',\n autoComplete: 'off'\n },\n emailInput: {\n className: 'ms-subscribe__details__form__email',\n tag: 'input',\n ref: this._emailAddressInputRef,\n type: 'email',\n 'aria-label': this.props.resources.subscribeFormEmailAriaLabel,\n placeholder: this.props.resources.subscribeEmailPlaceholderText\n },\n submitButton: {\n className: 'ms-subscribe__details__form__submit',\n tag: Button,\n 'aria-label': this.props.resources.subscribeFormSubmitAriaLabel,\n type: 'submit',\n title: this.props.resources.subscribeButtonLabel\n },\n submitButtonLabelText: this.props.resources.subscribeButtonLabel\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n}\n\nexport default Subscribe;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISubscribeViewProps } from './subscribe';\n\n/**\n * Override form action and button action below.\n * @param event - The form event.\n */\nconst onSubmit = (event: React.FormEvent): void => {\n event.preventDefault();\n};\n\n/**\n * View component.\n * @param props - The view properties.\n * @returns - Returns nothing.\n */\nexport const subscribeView: React.FC = props => {\n const { subscribe, subscribeContainer, heading, text, subscribeForm, emailInput, submitButton } = props;\n return (\n \n \n {heading}\n {text}\n \n \n \n {props.submitButtonLabelText}\n \n \n \n \n );\n};\n\nexport default subscribeView;\n"],"names":["DynBodyInlineScript","React","render","this","props","renderView","useScript","position","placement","document","querySelector","inlineScript","createElement","type","innerHTML","config","script","appendChild","removeChild","Link","text","className","href","ariaLabel","index","noclick","telemetryContent","payLoad","getPayloadObject","linkText","undefined","contentAction","etext","attribute","getTelemetryAttributes","onClick","onTelemetryClick","itemProp","content","Separator","separator","Breadcrumb","constructor","_pageType","context","request","urlTokens","pageType","getTelemetryObject","telemetryPageName","friendlyName","telemetry","_getRootLink","root","linkUrl","destinationUrl","error","_getCustomBreadcrumbLinks","itemPosition","links","length","map","value","keyIndex","key","toString","_getCategoryHierarchy","data","categoryHierarchy","result","_getFriendlyName","locale","NameTranslations","Url","nameTranslations","nameTranslation","ArrayExtensions","find","item","Language","toLowerCase","Text","_getPDPLinks","categoryPaths","product","url","requestUrl","push","Name","hideProductName","_goBack","window","history","back","_getPDPBackButton","query","MsDyn365","referrer","role","resources","backToResultsText","rootLink","breadcrumbLinks","backButtonComponent","breaCrumbType","app","breadcrumbType","linkSeparator","breadcrumbViewProps","BreadcrumbContainer","moduleProps","classnames","tag","BreadcrumbList","BreadcrumbListItem","backButton","Module","Object","Node","link","CheckInConfirmationComponent","confirmationText","shouldShowQrCode","channelReferenceIdLabel","channelReferenceId","QRCode","size","CheckInErrorComponent","errorMessage","CheckInForPickup","super","checkInForOrderPickup","async","channelId","Number","parseInt","packingSlipId","additionalInformationToSubmit","additionalInformationList","additionalInformationKeyValuePair","formKey","resourceId","extensionPropertyList","ObjectExtensions","additionalInformation","Key","Value","StringValue","SalesOrdersDataActions","callerContext","actionContext","queryResultSettings","setState","headerErrorMessage","genericErrorMessage","isCheckedIn","Promise","resolve","_onInit","isNaN","params","isEditor","isPreview","requiredParameterMissingErrorMessage","additionalInformationKeys","state","isHeaderError","viewProps","headerError","confirmationComponent","defaultConfirmationText","confirmationIdLabel","additionalInformationValues","viewState","shouldComponentUpdate","nextProps","nextState","additionalInformationHeading","FormBuilder","heading","additionalInformationDefaultHeading","submitButtonText","additionalInformationSubmitButtonText","keys","requiredValueMissingErrorMessage","onSubmit","alert","checkoutGooglePay","checkoutButton","ref","CountryPicker","_telemetryContent","_preferredSiteStorageKey","_cookieExpirationTime","closeModal","isModalOpen","_handleStayOnSiteButtonClick","currentBaseUrl","marketSettings","urlToStore","_appendProtocolToUrl","_writeToCookie","_handleClick","storageKey","storageValue","cookieOptions","secure","sameSite","maxAge","cookies","set","baseUrl","includes","isCookieValueSet","get","subheading","countryList","actionLink","isConsentGiven","countryPickerHeading","editProps","onEdit","handleTextChange","requestContext","countryPickerSubHeading","handleParagraphChange","countryPickerActionLink","createLink","currentSiteButton","Button","tabIndex","stayOnCurrentSiteButtonText","viewprops","modalContainer","Modal","isOpen","toggle","modalTransition","timeout","shouldUpdateFocusToFirstElement","modalHeaderContainer","ModalHeader","closeButtonTabIndex","modalFooterContainer","ModalFooter","modalBodyContainer","ModalBody","renderCountryList","stayOnCurrentSiteButton","event","target","handleLinkTextChange","StringExtensions","attributes","editableLink","openInNewTab","additionalProperties","onTextChange","localeItems","renderCountry","localeItem","localeBaseUrl","matchedCountryItem","imageSize","q","w","h","defaultImageSettings","viewports","xs","lg","xl","lazyload","image","imageProps","gridSettings","imageSettings","displayString","src","altText","loadFailureBehavior","shouldSkipToMainImage","displaySubString","countryPickerView","country","FooterCategory","slots","categories","FooterList","FooterListItem","FooterCategoryView","category","Subscribe","paragraph","_emailAddressInputRef","subscribeParagraph","Msdyn365","subscribeHeading","handleText","subscribe","subscribeContainer","subscribeForm","subscribeFormAriaLabel","name","autoComplete","emailInput","subscribeFormEmailAriaLabel","placeholder","subscribeEmailPlaceholderText","submitButton","subscribeFormSubmitAriaLabel","title","subscribeButtonLabel","submitButtonLabelText","preventDefault","subscribeView"],"sourceRoot":""}