{"version":3,"file":"static/js/7.142189ca229f830916e9.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/custom-contentcode-block/custom-contentcode-block.tsx?3093","webpack://Msdyn365.Commerce.Online/./src/modules/linked-container/linked-container.tsx?090c","webpack://Msdyn365.Commerce.Online/./src/modules/region-selector/region-selector.tsx?3750","webpack://Msdyn365.Commerce.Online/./src/modules/region-selector/region-selector.view.tsx?c983","webpack://Msdyn365.Commerce.Online/./src/modules/timeline/timeline.tsx?62a2","webpack://Msdyn365.Commerce.Online/./src/modules/timeline/getTimelineItemLabel.ts?1b0d","webpack://Msdyn365.Commerce.Online/./src/modules/timeline/timeline.view.tsx?f138","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/venchi.tsx?30fb","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-apple-pay/checkout-apple-pay.view.tsx?222d","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-customer-account-payment/checkout-customer-account-payment.view.tsx?79c6","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-express/checkout-express.view.tsx?134b","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-google-pay/checkout-google-pay.view.tsx?b92f","webpack://Msdyn365.Commerce.Online/./src/components/container-background-image/container-background-image-helper.ts?ce2e","webpack://Msdyn365.Commerce.Online/./src/components/container-background-image/container-backgroud-image.tsx?e863","webpack://Msdyn365.Commerce.Online/./src/components/base-components.tsx?daec","webpack://Msdyn365.Commerce.Online/./src/modules/default-container-2-slots/default-container-2-slots.tsx?8065","webpack://Msdyn365.Commerce.Online/./src/modules/default-container-3-slots/default-container-3-slots.tsx?ac77","webpack://Msdyn365.Commerce.Online/./src/modules/default-container/default-container.tsx?01c3","webpack://Msdyn365.Commerce.Online/./src/modules/default-page/default-page.tsx?b382","webpack://Msdyn365.Commerce.Online/./src/modules/place-holder-for-container-preview/place-holder-for-container-preview.tsx?605e","webpack://Msdyn365.Commerce.Online/./src/utils/classnames.ts?a0ff","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/fabrikam.tsx?5b10","webpack://Msdyn365.Commerce.Online/./src/modules/html-block/html-block.tsx?c080","webpack://Msdyn365.Commerce.Online/./src/modules/html-block/html-block.view.tsx?b072","webpack://Msdyn365.Commerce.Online/./src/modules/notifications-list/notifications-list.tsx?8377","webpack://Msdyn365.Commerce.Online/./src/modules/notifications-list/notifications-list.view.tsx?d466","webpack://Msdyn365.Commerce.Online/./src/modules/default-page-summary/default-page-summary.tsx?0c78","webpack://Msdyn365.Commerce.Online/./src/modules/spacer/spacer.tsx?7565","webpack://Msdyn365.Commerce.Online/./src/modules/spacer/spacer.view.tsx?1f15","webpack://Msdyn365.Commerce.Online/./src/modules/starter/starter.tsx?aade","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/adventureworks.tsx?8342"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable no-duplicate-imports */\r\n//import * as MsDyn365 from '@msdyn365-commerce/core';\r\n//import classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { ICustomContentcodeBlockProps } from './custom-contentcode-block.props.autogenerated';\r\n\r\nexport interface ITextBlockViewProps extends ICustomContentcodeBlockProps<{}> {\r\n paragraph?: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\n/**\r\n *\r\n * TextBlock component\r\n */\r\nclass TextBlock extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n const paragraph = this.props.config.paragraph || '';\r\n\r\n // tslint:disable:react-no-dangerous-html -- intentionally set inner html\r\n return
;\r\n }\r\n}\r\nexport default TextBlock;\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 { ILinkedContainerProps } from './linked-container.props.autogenerated';\r\nimport { ILinkedContainerData } from './linked-container.data';\r\nimport classnames from 'classnames';\r\n\r\nconst LinkedContainer: React.FC> = props => {\r\n const { slots, id, config } = props;\r\n return (\r\n
\r\n {slots.content.map((children: React.ReactNode, index: number) => (\r\n {children}\r\n ))}\r\n
\r\n );\r\n};\r\n\r\nexport default LinkedContainer;\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\n\r\nimport { IRegionSelectorData } from './region-selector.data';\r\nimport { IRegionSelectorProps } from './region-selector.props.autogenerated';\r\n\r\nexport interface IRegionSelectorViewProps extends IRegionSelectorProps {}\r\n\r\n/**\r\n *\r\n * RegionSelector component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass RegionSelector 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 RegionSelector;\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 { IRegionSelectorViewProps } from './region-selector';\r\n\r\nexport default (props: IRegionSelectorViewProps) => {\r\n const { destinationUrl, useQueryParameter, queryParameter, checkFlag, regions } = props.config;\r\n const { regionSelectorHeading } = props.resources;\r\n\r\n let query_param = 'true'; // Default value\r\n if (useQueryParameter && queryParameter) {\r\n query_param = (props.context.request.query as Object)[queryParameter];\r\n }\r\n const active_flag = props.context.request.query?.flag ? true : false;\r\n\r\n return (\r\n
\r\n
\r\n

{regionSelectorHeading}

\r\n
\r\n
\r\n {regions?.map(region => (\r\n // eslint-disable-next-line react/jsx-key\r\n {\r\n if (typeof window !== undefined && region.url !== undefined) {\r\n let destination_chain = `https://${region.url}/${destinationUrl}`;\r\n if (useQueryParameter) {\r\n destination_chain += `?${queryParameter}=${query_param}`;\r\n if (checkFlag) {\r\n destination_chain += `&flag=${active_flag}`;\r\n }\r\n } else {\r\n if (checkFlag) {\r\n destination_chain += `?flag=${active_flag}`;\r\n }\r\n }\r\n window.location.href = destination_chain;\r\n }\r\n }}\r\n >\r\n
\r\n {region.displayString}\r\n

{region.displayString}

\r\n

{region.displaySubString}

\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n );\r\n};\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\n\r\nimport { ITimelineData } from './timeline.data';\r\nimport { ITimelineProps } from './timeline.props.autogenerated';\r\n\r\nexport interface ITimelineViewProps extends ITimelineProps {}\r\n\r\n/**\r\n *\r\n * Timeline component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass Timeline 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 Timeline;\r\n","export const getTimelineItemLabel = (linkText: string, heading?: string) => {\r\n return heading ? `${heading} ${linkText}` : linkText;\r\n};\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 { ITimelineViewProps } from './timeline';\r\nimport { getTimelineItemLabel } from './getTimelineItemLabel';\r\n\r\nexport default (props: ITimelineViewProps) => {\r\n return (\r\n \r\n );\r\n};\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport * as React from 'react';\r\ndeclare global {\r\n interface Window {\r\n dataLayer: any;\r\n }\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 { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\nimport { ICheckoutApplePayViewProps } from './checkout-apple-pay';\n\nconst CheckoutApplePayView: React.FC = props => {\n const { checkoutApplePay, applePayButton, alert } = props;\n\n return (\n \n {alert}\n {applePayButton}\n \n );\n};\n\nexport default CheckoutApplePayView;\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 { ICheckoutCustomerAccountPaymentViewProps, IAccountPaymentEditViewForm, IAccountPaymentSummaryViewForm } from './index';\n\nexport const SummaryForm: React.FC = ({\n formProps,\n label,\n paymentAmount,\n addPaymentButton,\n appliedLine,\n bottomBorder\n}) => (\n \n <>\n {label}\n {paymentAmount}\n {addPaymentButton}\n {appliedLine}\n {bottomBorder}\n \n \n);\n\nexport const EditForm: React.FC = ({\n formProps,\n inputLabel,\n inputAmount,\n addPaymentButton,\n customerName,\n customerAccountNumber,\n customerSince,\n accountCredit,\n alert,\n accountDetails,\n appliedLine,\n bottomBorder\n}) => (\n \n <>\n {customerName}\n {customerAccountNumber}\n {customerSince}\n {accountCredit}\n {accountDetails}\n {inputLabel}\n {alert}\n {inputAmount}\n {addPaymentButton}\n {appliedLine}\n {bottomBorder}\n \n \n);\n\nconst CheckoutCustomerAccountView: React.FC = props => {\n const { checkoutCustomerAccount, checkoutErrorRef, summaryView, editView, moduleState, alert } = props;\n return (\n \n {alert}\n {moduleState.isReady && summaryView && }\n {!moduleState.isReady && editView && }\n \n );\n};\n\nexport default CheckoutCustomerAccountView;\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 { ICheckoutExpressOverlayModal, ICheckoutExpressViewProps } from './checkout-express';\n\n/**\n * Overlay modal.\n * @param param0 - Modal.\n * @param param0.modal - Modal param.\n * @returns React node.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention -- public name.\nconst OverlayModal: React.FC = ({ modal }) => {\n return ;\n};\n\n/**\n * Checkout express view.\n * @param param0 - Checkout express view props.\n * @param param0.checkoutExpress - Checkout express.\n * @param param0.waiting - Waiting.\n * @param param0.alert - Alert.\n * @param param0.addPaymentForm - Add payment form.\n * @param param0.overlayModal - Overlay modal.\n * @param param0.title - Module title.\n * @param param0.shouldHideExpressCheckout - ShouldHideExpressCheckout.\n * @returns React node.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention -- Public name.\nconst CheckoutExpressView: React.FC = ({\n checkoutExpress,\n waiting,\n alert,\n addPaymentForm,\n overlayModal,\n title,\n shouldHideExpressCheckout\n}) =>\n shouldHideExpressCheckout ? (\n <>\n ) : (\n \n {title}\n {waiting}\n {alert}\n {addPaymentForm}\n {overlayModal && }\n \n );\n\nexport default CheckoutExpressView;\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 msdyn365Commerce, {\n constructViewportInformationForImage,\n getImageResizeUrl,\n getLargestGridSettingViewportName,\n getMinMaxWidth,\n IAny,\n IGeneric,\n IViewPort,\n Viewport\n} from '@msdyn365-commerce/core-internal';\nimport { cloneDeep as _cloneDeep } from 'lodash';\nimport {\n BackgroundImageRepeat,\n BackgroundImageSize,\n IBackgroundImageAttributes,\n IBackgroundImageLazyloadAttributes,\n IBackgroundImageProps,\n IBackgroundImageStyle\n} from './container-background-image-interfaces';\n\nconst getBackgroundRepeatProperty = (size: string | undefined, repeat: string | undefined): BackgroundImageRepeat => {\n if (!size || size === 'cover') {\n return 'no-repeat';\n }\n switch (repeat) {\n case 'noRepeat':\n return 'no-repeat';\n case 'repeat':\n return 'repeat';\n default:\n return 'no-repeat';\n }\n};\n\nconst getBackgroundSizeProperty = (size: string | undefined): BackgroundImageSize => {\n switch (size) {\n case 'cover':\n return 'cover';\n case 'contain':\n return 'contain';\n case 'default':\n default:\n return undefined;\n }\n};\n\nconst getDefaultViewports = (): IViewPort => {\n return {\n xs: {\n w: 800,\n h: 600\n },\n sm: {\n w: 1200,\n h: 900\n },\n md: {\n w: 1600,\n h: 900\n },\n lg: {\n w: 1600,\n h: 700\n },\n xl: {\n w: 1600,\n h: 700\n }\n };\n};\n\nconst getAuthoringViewport = (moduleName: string | undefined, layout: string | undefined): IViewPort | undefined => {\n if (!msdyn365Commerce.isBrowser) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const authoringHelper = (window as any)._msdyn365.authoringHelper;\n if (!authoringHelper) {\n return;\n }\n\n // if authoring helper is setup, component is rendering from site builder. Build viewport based on layout selected.\n return constructViewportInformationForImage(moduleName, layout, 'backgroundImage', authoringHelper?.themeSettings) as IViewPort;\n};\n\nexport const buildBackgroundImageStylesByViewport = (props: IBackgroundImageProps): IGeneric => {\n const { containerType, image, request, configs } = props;\n\n const gridSettings = request.gridSettings ?? {};\n const imageSettings = image.imageSettings;\n\n const styles: IGeneric = {};\n\n const largestGridSettingViewportName = getLargestGridSettingViewportName(gridSettings);\n if (largestGridSettingViewportName && imageSettings) {\n // in site builder the layout may change, so use authoring viewports.\n const authoringViewPorts = getAuthoringViewport(containerType, configs?.layout);\n const imgSettings = {\n ...imageSettings,\n viewports: { ..._cloneDeep(authoringViewPorts || imageSettings.viewports || getDefaultViewports()) }\n };\n\n // Skip resizing width and height for background images.\n const skipWidthAndHeightSettings = true;\n Object.keys(imgSettings.viewports).map(vp => {\n const viewport = vp as Viewport;\n const minMaxWidth = getMinMaxWidth(gridSettings, imgSettings, viewport, largestGridSettingViewportName);\n const urlSrc = getImageResizeUrl(\n image.src,\n // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\n imgSettings.viewports[viewport],\n imgSettings,\n skipWidthAndHeightSettings,\n image?.externalProvider,\n request?.apiSettings\n );\n // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\n styles[viewport] = {\n maxWidth: minMaxWidth.max,\n minWidth: minMaxWidth.min,\n // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\n minHeight: imgSettings.viewports[viewport]?.h,\n backgroundImage: urlSrc,\n backgroundRepeat: getBackgroundRepeatProperty(configs?.size, configs?.repeat),\n backgroundSize: getBackgroundSizeProperty(configs?.size),\n backgroundPosition: 'center center'\n };\n });\n }\n\n return styles;\n};\n\nexport const setStyleAttribute = (currentStyle: IBackgroundImageStyle): IGeneric => {\n let style: IGeneric = {};\n if (currentStyle) {\n style = { ...currentStyle };\n style['minWidth'] = undefined;\n style['width'] = '100%';\n if (currentStyle.backgroundImage) {\n style['backgroundImage'] = `url('${currentStyle.backgroundImage}')`;\n }\n }\n return style;\n};\n\nexport const getBackgroundImageLazyloadAttributes = (\n className: string,\n currentStyle: IBackgroundImageStyle | undefined,\n styles: IGeneric\n): IBackgroundImageLazyloadAttributes => {\n const attributes = {\n role: 'img',\n className: `${className} lazyload`,\n 'data-bgset': getDataBgSetAttribute(styles)\n };\n\n if (currentStyle) {\n attributes['style'] = setStyleAttribute(currentStyle);\n // On lazyload, lazysizes plugin should pick which background image to use based on data-bgset attribute.\n attributes['style']['backgroundImage'] = undefined;\n }\n return attributes;\n};\n\nexport const getBackgroundImageAttributes = (\n className: string,\n currentStyle: IBackgroundImageStyle | undefined\n): IBackgroundImageAttributes => {\n const attributes = {\n role: 'img',\n className\n };\n\n if (currentStyle) {\n attributes['style'] = setStyleAttribute(currentStyle);\n }\n return attributes;\n};\n\nexport const getBgSetMinMaxWidthAttribute = (style: IBackgroundImageStyle): string => {\n if (style.maxWidth) {\n return `[(max-width: ${style.maxWidth}px)]`;\n }\n return '';\n};\n\nexport const getDataBgSetAttribute = (styles: IGeneric): string => {\n const dataBgSetAttributes: string[] = [];\n Object.keys(styles).map(vp => {\n // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\n if (styles[vp].backgroundImage) {\n // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\n dataBgSetAttributes.push(`${styles[vp].backgroundImage} ${getBgSetMinMaxWidthAttribute(styles[vp])}`);\n }\n });\n\n return dataBgSetAttributes.join(' | ');\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport msdyn365Commerce, { getLargestGridSettingViewportName, IGeneric, isAuthoringEditEnabled } from '@msdyn365-commerce/core-internal';\nimport * as React from 'react';\nimport { isEqual as _isEqual } from 'lodash';\nimport {\n buildBackgroundImageStylesByViewport,\n getBackgroundImageAttributes,\n getBackgroundImageLazyloadAttributes\n} from './container-background-image-helper';\nimport {\n IBackgroundImageAttributes,\n IBackgroundImageProps,\n IBackgroundImageState,\n IBackgroundImageStyle\n} from './container-background-image-interfaces';\n\nconst BACKGROUND_IMAGE_CLASS_NAME = 'ms-container-background-image';\n\n/**\n * BackgroundImage component\n * @extends {React.PureComponent}\n */\nexport class BackgroundImage extends React.PureComponent {\n private stylesByViewport: IGeneric;\n private currentStyle: IBackgroundImageStyle | undefined;\n private mounted: boolean;\n\n constructor(props: IBackgroundImageProps, state: IBackgroundImageState) {\n super(props);\n this.stylesByViewport = buildBackgroundImageStylesByViewport(this.props);\n this._onChangeHandler = this._onChangeHandler.bind(this);\n this.currentStyle = this._getCurrentStyle();\n this.mounted = false;\n this._componentResize = this._componentResize.bind(this);\n this._getCurrentStyle = this._getCurrentStyle.bind(this);\n this.state = { updateAttributes: false };\n }\n\n public componentDidMount(): void {\n if (msdyn365Commerce.isBrowser) {\n window.addEventListener('resize', this._componentResize);\n this.mounted = true;\n this._componentResize();\n }\n }\n\n public componentWillUnmount(): void {\n if (msdyn365Commerce.isBrowser) {\n window.removeEventListener('resize', this._componentResize);\n this.mounted = false;\n }\n }\n\n public shouldComponentUpdate(nextProps: IBackgroundImageProps, nextState: { updateAttributes: boolean }): boolean {\n if (\n this.state !== nextState ||\n this.props.request?.gridSettings !== nextProps.request?.gridSettings ||\n this.props.configs.repeat !== nextProps.configs.repeat ||\n this.props.configs.size !== nextProps.configs.size ||\n this.props.configs.layout !== nextProps.configs.layout ||\n this.props.image?.imageSettings !== nextProps.image?.imageSettings ||\n this.props.image?.src !== nextProps.image?.src\n ) {\n return true;\n }\n return false;\n }\n\n public render(): JSX.Element | null {\n const { children } = this.props;\n\n try {\n this.stylesByViewport = buildBackgroundImageStylesByViewport(this.props);\n this.currentStyle = this._getCurrentStyle();\n\n if (this.currentStyle) {\n const backgroundImageClassName = isAuthoringEditEnabled(this.props.request)\n ? `${BACKGROUND_IMAGE_CLASS_NAME} ms-editable-field enabled`\n : BACKGROUND_IMAGE_CLASS_NAME;\n const processedAtributes = this._processAttributes(\n backgroundImageClassName,\n this.currentStyle,\n this.stylesByViewport,\n this._isLazyload()\n );\n const attributes = this._getAttributes(processedAtributes);\n const eventHandlers = isAuthoringEditEnabled(this.props.request) ? { onDoubleClick: this._onChangeHandler } : {};\n\n if (this.state.updateAttributes) {\n // Update component with the latest attributes.\n return (\n
\n {children}\n
\n );\n } else if (this._isLazyload()) {\n // On lazyload, only include the class name on the first render.\n return (\n
\n {children}\n
\n );\n } else {\n // On lazyload disabled, render the default attributes from server side.\n return (\n
\n {children}\n
\n );\n }\n } else {\n // in no style is found, return the container content.\n return <>{children};\n }\n } catch {\n // in case of any failure, return the container content.\n return <>{children};\n }\n }\n\n private _processAttributes(\n className: string,\n currentStyle: IBackgroundImageStyle,\n stylesByViewport: IGeneric,\n lazyLoad: boolean\n ) {\n if (lazyLoad) {\n return getBackgroundImageLazyloadAttributes(className, currentStyle, stylesByViewport);\n } else {\n return getBackgroundImageAttributes(className, currentStyle);\n }\n }\n\n private _getAttributes(processedAtributes: IBackgroundImageAttributes) {\n return { ...processedAtributes, style: { ...processedAtributes?.style } };\n }\n\n private _onChangeHandler(event: React.SyntheticEvent | { target: { value: string } }): void {\n if (event.target === (event as React.SyntheticEvent).currentTarget) {\n const binding: any = this.props.image;\n const eventTarget: any = event.target;\n binding.$type = eventTarget.value;\n }\n }\n\n private _componentResize(): void {\n if (msdyn365Commerce.isBrowser) {\n const selectedStyle = this._getCurrentStyle();\n\n if (this.mounted || (selectedStyle && !_isEqual(this.currentStyle, selectedStyle))) {\n this.setState({ updateAttributes: true });\n }\n }\n }\n\n private _getCurrentStyle(): IBackgroundImageStyle | undefined {\n if (msdyn365Commerce.isBrowser) {\n const winInnerWidth: number = window.innerWidth;\n let selectedStyle: IBackgroundImageStyle | undefined;\n Object.keys(this.stylesByViewport).map(vp => {\n if (\n // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\n (this.stylesByViewport[vp]?.minWidth || this.stylesByViewport[vp]?.maxWidth) &&\n // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\n (this.stylesByViewport[vp]?.minWidth || 0) <= winInnerWidth &&\n // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\n winInnerWidth <= (this.stylesByViewport[vp]?.maxWidth || Number.MAX_SAFE_INTEGER)\n ) {\n // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\n selectedStyle = this.stylesByViewport[vp];\n }\n });\n return selectedStyle;\n } else {\n return this._getDefaultStyle();\n }\n }\n\n private _isLazyload(): boolean {\n // Lazyload by default if nothing is specified\n return !this.props.image?.imageSettings?.disableLazyLoad;\n }\n\n private _getDefaultStyle(): IBackgroundImageStyle | undefined {\n const { request } = this.props;\n const largestGridSettingViewportName = getLargestGridSettingViewportName(request.gridSettings ?? {});\n // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\n return this.stylesByViewport[largestGridSettingViewportName];\n }\n\n private _getDefaultAttributes(): IBackgroundImageAttributes {\n const style = this._getDefaultStyle();\n const processedAtributes = style\n ? this._processAttributes(BACKGROUND_IMAGE_CLASS_NAME, style, this.stylesByViewport, this._isLazyload())\n : {};\n return this._getAttributes(processedAtributes);\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ContentEditableEvent, IImageData, IRequestContext, Text } from '@msdyn365-commerce/core';\nimport * as React from 'react';\nimport { BackgroundImage } from './container-background-image/container-backgroud-image';\n\n/**\n * Heading options\n */\nexport interface IHeadingComponentProps {\n /**\n * Heading text\n */\n headingText?: string;\n /**\n * Heading tag (h1, h2, h3, h4, h5, h6)\n */\n tag?: HeadingTag;\n /**\n * Heading text size (sm, md, lg, xl)\n */\n textSize?: TextSize;\n\n requestContext: IRequestContext;\n\n handleTextChange(event: ContentEditableEvent): string;\n}\n\nexport type HeadingTag = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\nexport type TextSize = 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n * Container class options\n */\nexport interface IContainerProps {\n /**\n * CSS class name\n */\n className?: string;\n /**\n * Bootstrap supported container types\n */\n containerType?: string;\n /**\n * type name\n */\n typeName?: string;\n /**\n * id of container\n */\n id?: string;\n /**\n * React children\n */\n children: React.ReactNode;\n /**\n * Request context\n */\n request?: IRequestContext;\n /**\n * background image\n */\n backgroundImage?: IImageData;\n /**\n * background image repeat property\n */\n backgroundImageRepeat?: string;\n /**\n * background image size property\n */\n backgroundImageSize?: string;\n /**\n * module layout property\n */\n moduleLayout?: string;\n /**\n * background color\n */\n backgroundColor?: string;\n}\n\nconst getContainerType = (containerType: string | undefined) => {\n switch (containerType) {\n case 'container':\n return 'container';\n case 'fluid':\n default:\n return 'fluid';\n }\n};\n\n/**\n * HOC to create bootstrap container div. If no container type is specified children are rendered.\n * @param options IContainerClasses\n */\nexport const Container: React.SFC = (props: IContainerProps): JSX.Element => {\n const {\n containerType,\n className,\n typeName,\n id,\n children,\n backgroundImage,\n request,\n backgroundImageRepeat,\n backgroundImageSize,\n moduleLayout,\n backgroundColor\n } = props;\n const customClassName = className ? ` ${className}` : '';\n\n let containerContent = children;\n if (containerType) {\n containerContent =
{containerContent}
;\n }\n\n if (backgroundImage && backgroundImage.src && backgroundImage.imageSettings && request) {\n containerContent = (\n \n {containerContent}\n \n );\n }\n\n const containerStyle: React.CSSProperties | undefined = backgroundColor ? { backgroundColor } : undefined;\n\n return containerType ? (\n
\n {containerContent}\n
\n ) : (\n
\n {containerContent}\n
\n );\n};\n\nexport const HeadingComponent = (props: IHeadingComponentProps & { className: string }): JSX.Element | null => {\n const { tag, headingText, textSize, className } = props;\n const Tag = tag || 'h2';\n const classNameWithHeading = textSize ? `heading ${textSize} ${className}` : `heading ${className}`;\n return (\n (headingText && (\n \n )) ||\n null\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ContentEditableEvent } from '@msdyn365-commerce/core';\nimport { LogLevel } from '@msdyn365-commerce/telemetry-internal';\nimport React, { ReactNode } from 'react';\nimport { Container, HeadingComponent, IHeadingComponentProps } from '../../components/base-components';\nimport { getColClassArray, showErrors } from '../../utils/classnames';\nimport { IDefaultContainer2SlotsData } from './default-container-2-slots.data';\nimport { IDefaultContainer2SlotsProps } from './default-container-2-slots.props.autogenerated';\n\ninterface IColSizes {\n left: string[];\n right: string[];\n}\n\n/**\n * Default container that displays 2 modules\n * CoreComponent component\n * @extends {React.PureComponent>}\n */\nclass Default2SlotContainer extends React.PureComponent> {\n constructor(props: IDefaultContainer2SlotsProps) {\n super(props);\n }\n\n public render(): JSX.Element {\n const { slots, telemetry, context, config, data } = this.props;\n telemetry.log(LogLevel.Debug, \"Default 2 Slot Container rendering for '{id}/{typeName}'\", {\n values: [this.props.id, this.props.typeName]\n });\n\n const content = slots && slots.content;\n const slotsClassNames = this._getColClassName();\n if (content && content.length > 2) {\n telemetry.log(LogLevel.Warning, 'Default 2 Slot Container passed more than 2 slots');\n }\n const heading = config.heading || data.heading;\n const headingProps: IHeadingComponentProps = {\n ...heading,\n handleTextChange: this.handleTextChange,\n requestContext: this.props.context.request\n };\n return (\n \n {heading && }\n {content && content[0] &&
{content[0]}
}\n {content && content[1] &&
{content[1]}
}\n <>\n {showErrors(context) &&\n content &&\n content.slice(2, content.length - 1).map((slot: ReactNode, index: number) => {\n return (\n
\n
\n
\n Slot exceeded maximum number of slots supported by container. (2)\n
\n
\n
\n );\n })}\n \n \n );\n }\n\n public handleTextChange = (event: ContentEditableEvent) => (this.props.config.heading!.headingText = event.target.value);\n /**\n * Captures left and right column classnames from this.props.config. Returns col if no options specified.\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _getColClassName = (): IColSizes => {\n const { config } = this.props;\n\n const classNames = getColClassArray(config);\n\n if (!classNames.length) {\n return {\n left: ['col'],\n right: ['col']\n };\n }\n\n return classNames.reduce(\n (memo: IColSizes, [left, right]: string[]) => {\n memo.left.push(left);\n memo.right.push(right);\n return memo;\n },\n { left: [], right: [] }\n );\n };\n}\n\nexport default Default2SlotContainer;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ContentEditableEvent } from '@msdyn365-commerce/core';\nimport { LogLevel } from '@msdyn365-commerce/telemetry-internal';\nimport React, { ReactNode } from 'react';\nimport { Container, HeadingComponent, IHeadingComponentProps } from '../../components/base-components';\nimport { getColClassArray, showErrors } from '../../utils/classnames';\nimport { IDefaultContainer3SlotsData } from './default-container-3-slots.data';\nimport { IDefaultContainer3SlotsProps } from './default-container-3-slots.props.autogenerated';\n\ninterface IColSizes {\n left: string[];\n center: string[];\n right: string[];\n}\n\n/**\n *\n * CoreComponent component\n * @extends {React.PureComponent>}\n */\nclass Default3SlotContainer extends React.PureComponent> {\n constructor(props: IDefaultContainer3SlotsProps) {\n super(props);\n }\n\n public render(): JSX.Element {\n const { slots, telemetry, context, config, data } = this.props;\n\n const slotsClassNames = this._getColClassName();\n const content = slots && slots.content;\n\n telemetry.log(LogLevel.Debug, \"Default 3 Slot Container rendering for '{id}/{typeName}'\", {\n values: [this.props.id, this.props.typeName]\n });\n if (content && content.length > 3) {\n telemetry.log(LogLevel.Warning, 'Default 3 Slot Container passed more than 3 slots');\n }\n const heading = config.heading || data.heading;\n const headingProps: IHeadingComponentProps = {\n ...heading,\n handleTextChange: this.handleTextChange,\n requestContext: this.props.context.request\n };\n return (\n \n {heading && }\n {content && content[0] &&
{content[0]}
}\n {content && content[1] &&
{content[1]}
}\n {content && content[2] &&
{content[2]}
}\n <>\n {showErrors(context) &&\n content &&\n content.slice(2, content.length - 1).map((slot: ReactNode, index: number) => {\n return (\n
\n
\n
\n Slot exceeded maximum number of slots supported by container. (3)\n
\n
\n
\n );\n })}\n \n \n );\n }\n\n public handleTextChange = (event: ContentEditableEvent) => (this.props.config.heading!.headingText = event.target.value);\n /**\n * Captures left and right column classnames from this.props.config. Returns col if no options specified.\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _getColClassName = (): IColSizes => {\n const { config } = this.props;\n\n const classNames = getColClassArray(config);\n\n if (!classNames.length) {\n return {\n left: ['col'],\n center: ['col'],\n right: ['col']\n };\n }\n\n return classNames.reduce(\n (memo: IColSizes, [left, center, right]: string[]) => {\n memo.left.push(left);\n memo.center.push(center);\n memo.right.push(right);\n return memo;\n },\n { left: [], center: [], right: [] }\n );\n };\n}\n\nexport default Default3SlotContainer;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ContentEditableEvent } from '@msdyn365-commerce/core';\nimport { LogLevel } from '@msdyn365-commerce/telemetry-internal';\nimport * as React from 'react';\nimport { Container, HeadingComponent, IHeadingComponentProps } from '../../components/base-components';\nimport { colWidths } from '../../utils/classnames';\nimport { IDefaultContainerData } from './default-container.data';\nimport { childrenWidth as childrenWidthEnum, IDefaultContainerProps, layout as layoutEnum } from './default-container.props.autogenerated';\n\n/**\n *\n * CoreComponent component\n * @extends {React.PureComponent>}\n */\nclass DefaultContainer extends React.PureComponent> {\n constructor(props: IDefaultContainerProps) {\n super(props);\n }\n\n public render(): JSX.Element {\n const { slots, telemetry, config, data } = this.props;\n telemetry.log(LogLevel.Debug, \"Default Container rendering for '{id}/{typeName}'\", {\n values: [this.props.id, this.props.typeName]\n });\n\n const heading = config.heading || data.heading;\n const headingProps: IHeadingComponentProps = {\n ...heading,\n handleTextChange: this.handleTextChange,\n requestContext: this.props.context.request\n };\n\n return (\n \n {heading && }\n {slots &&\n slots.content &&\n slots.content.map((children: React.ReactNode, index: number) => {\n return (\n
\n {children}\n
\n );\n })}\n \n );\n }\n\n public handleTextChange = (event: ContentEditableEvent) => (this.props.config.heading!.headingText = event.target.value);\n\n private _getChildColClassName(): string {\n const {\n config: { layout, childrenWidth }\n } = this.props;\n switch (layout) {\n case layoutEnum.flow:\n return childrenWidth === childrenWidthEnum.auto ? 'col-12 col-md' : this._getWidthClass(childrenWidth);\n case layoutEnum.stacked:\n default:\n return 'col-12';\n }\n }\n\n private _getWidthClass(s?: childrenWidthEnum): string {\n return colWidths.get(s || childrenWidthEnum.four) || 'col-12';\n }\n}\n\nexport default DefaultContainer;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { LogLevel } from '@msdyn365-commerce/telemetry-internal';\nimport * as React from 'react';\nimport { isEditorialMode } from '@msdyn365-commerce/core-internal';\nimport { IDefaultPageProps } from './default-page.props.autogenerated';\n\n/**\n *\n * CoreComponent component\n * @extends {React.PureComponent}\n */\nclass DefaultPageContainer extends React.PureComponent> {\n constructor(props: IDefaultPageProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element {\n const { slots, telemetry, id, typeName } = this.props;\n\n let skipToMainText = this.props.config && this.props.config.skipToMainText;\n telemetry.log(LogLevel.Debug, \"DefaultPageContainer rendering for '{id}/{typeName}'\", { values: [id, typeName] });\n\n if (!skipToMainText) {\n skipToMainText =\n this.props.context.app && this.props.context.app.platform ? this.props.context.app.platform.skipToMainText : '';\n }\n\n const tabIndexSkipToMain = isEditorialMode(this.props.context.actionContext.requestContext) ? -1 : 0;\n\n return (\n \n \n {skipToMainText}\n \n
\n {slots &&\n slots.header &&\n slots.header.map((children: React.ReactNode) => {\n return children;\n })}\n
\n {slots && slots.subheader && (\n
\n {slots.subheader.map((children: React.ReactNode) => {\n return children;\n })}\n
\n )}\n
\n {slots &&\n slots.primary &&\n slots.primary.map((children: React.ReactNode) => {\n return children;\n })}\n
\n {slots && slots.subfooter && (\n
\n {slots.subfooter.map((children: React.ReactNode) => {\n return children;\n })}\n
\n )}\n
\n {slots &&\n slots.footer &&\n slots.footer.map((children: React.ReactNode) => {\n return children;\n })}\n
\n
\n );\n }\n}\n\nexport default DefaultPageContainer;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { PlaceholderForContainerPreviewComponent } from '@msdyn365-commerce/core';\n\nexport default PlaceholderForContainerPreviewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ICoreContext } from '@msdyn365-commerce/core';\nimport * as twoSlots from '../modules/default-container-2-slots/default-container-2-slots.props.autogenerated';\nimport * as threeSlots from '../modules/default-container-3-slots/default-container-3-slots.props.autogenerated';\n\n// eslint-disable-next-line security/detect-unsafe-regex\nconst sizePattern = /col(_(\\d|auto){1,2}){2,}/;\n\nexport interface IShowErrorOptions {\n isDebug?: boolean;\n isEditor?: boolean;\n}\n\nexport interface IViewPortOptions {\n xsmall?: threeSlots.xsmall | twoSlots.xsmall;\n small?: threeSlots.small | twoSlots.small;\n medium?: threeSlots.medium | twoSlots.medium;\n large?: threeSlots.large | twoSlots.large;\n}\n\nconst translatePrefix = (prefix: `large` | `medium` | `small` | `xsmall` | undefined) => {\n switch (prefix && prefix.toLowerCase()) {\n case 'large':\n return 'lg';\n case 'medium':\n return 'md';\n case 'small':\n return 'sm';\n case 'xsmall':\n default:\n return '';\n }\n};\n\n/**\n * converts config option and size to bootstrap col class name\n * If size is auto or config option is invalid col-auto will be returned\n * If size is xsmall or size is invalid col-{config} will be returned\n * @param config configuration option e.g. col_12_12\n * @param size bootstrap gridsize\n */\nexport const getColumnSizes = (config: string, size?: `large` | `medium` | `small` | `xsmall`): string[] | boolean => {\n if (!sizePattern.exec(config)) {\n return false;\n }\n const cols = config.split('_').slice(1);\n const translatedSize = translatePrefix(size);\n const sizePrefix = (translatedSize && `-${translatedSize}`) || '';\n return cols.map((colWidth: string) => `col${sizePrefix}-${colWidth}`);\n};\n\nexport const showErrors = (context?: ICoreContext): Boolean => {\n const { isDebug, isEditor }: IShowErrorOptions = (context && context.request && context.request.params) || {};\n return !!isDebug || !!isEditor;\n};\n\n/**\n * Converts viewport configuration into a two dimensional array of class names\n */\nexport const getColClassArray = (options: IViewPortOptions): string[][] =>\n (\n [\n options.xsmall && getColumnSizes(options.xsmall),\n options.small && getColumnSizes(options.small, 'small'),\n options.medium && getColumnSizes(options.medium, 'medium'),\n options.large && getColumnSizes(options.large, 'large')\n ].filter(Boolean)\n );\n\nexport const colWidths = new Map([\n ['one', 'col-md-1'],\n ['two', 'col-md-2'],\n ['three', 'col-md-3'],\n ['four', 'col-md-4'],\n ['six', 'col-md-6'],\n ['twelve', 'col-md-12']\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// TODO: Current build require at least one tsx file\nexport default () =>
;\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';\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport classnames from 'classnames';\n\nimport { IHtmlBlockProps } from './html-block.props.autogenerated';\n\nexport interface IHtmlBlockViewProps extends IHtmlBlockProps<{}> {\n content?: React.ReactNode;\n className?: string;\n}\n\n/**\n *\n * HtmlBlock component\n * @extends {React.PureComponent>}\n */\nclass HtmlBlock extends React.PureComponent> {\n public render(): JSX.Element | null {\n const { content, className } = this.props.config;\n const text = content && (\n \n );\n const htmlBlockViewProps = {\n ...this.props,\n content: text,\n className: classnames('ms-html-block', className)\n };\n return this.props.renderView(htmlBlockViewProps) as React.ReactElement;\n }\n\n public handleTextChange = (event: MsDyn365.ContentEditableEvent) => (this.props.config.content = event.target.value);\n}\n\nexport default HtmlBlock;\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';\nimport { IHtmlBlockViewProps } from './html-block';\n\nconst HtmlBlockView: React.FC = props => (\n
\n {props.content}\n
\n);\n\nexport default HtmlBlockView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport {\n INotificationComponentsList,\n INotificationComponentsListState,\n INotificationComponentType,\n NotificationComponentsListsManager,\n NotificationEvents,\n NotificationFeedType\n} from '@msdyn365-commerce-modules/notifications-core';\nimport { ArrayExtensions, ObjectExtensions, Random } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { INotificationsListProps } from './notifications-list.props.autogenerated';\n\n/**\n * View for the notifications list which specifies the container and notifications items.\n */\nexport interface INotificationsListViewProps extends INotificationsListProps<{}> {\n container: IModuleProps;\n notificationsList: React.ReactNode;\n}\n\n/**\n * Configuration to make the list stickable to the page without overlapping any content on top.\n */\nexport interface INotificationComponentStickyConfiguration {\n /**\n * Minimum offset for top (default for the page).\n */\n minTopOffset: number;\n\n /**\n * Maximum offset for top (to limit the top offset while scrolling).\n */\n maxTopOffset: number;\n}\n\n/**\n * Stickable notification list state which defines the top position of the list at the moment.\n */\nexport interface IStickableNotificationComponentsListState extends INotificationComponentsListState {\n /**\n * The top position of the list on the page.\n */\n top?: number;\n}\n\n/**\n * A notification list which is operated by notification manager.\n * It is responsible for rendering the received notifications.\n */\nexport class NotificationComponentsList extends React.Component, IStickableNotificationComponentsListState>\n implements INotificationComponentsList {\n /**\n * The class name to use.\n */\n private static readonly _className: string = 'msc-notifications-list';\n\n /**\n * The feed which the list is responsible for displaying.\n */\n public readonly feed: NotificationFeedType;\n\n /**\n * Configuration which specifies if and how the list should be stickable.\n * If undefined, the configuration will not be used at all. And list will not be stickable.\n */\n private readonly _stickyConfiguration?: INotificationComponentStickyConfiguration;\n\n /**\n * The list of notification which should be shown in the list at the moment.\n * @remarks Should be used to retrieve the latest list of notifications\n * as the list from the state is updated only after rendering.\n */\n private _notificationsComponentList: INotificationComponentType[];\n\n /**\n * Unique identifier of the list.\n * Uses format 'NotificationComponentsList-GUID';.\n */\n private _instanceId?: string;\n\n /**\n * Initializes instance with the given props.\n * @param props - The configuration of the list.\n */\n public constructor(props: INotificationsListProps<{}>) {\n super(props);\n\n this.feed = props.config.feed;\n\n if (\n !ObjectExtensions.isNullOrUndefined(props.config.minTopOffset) &&\n !ObjectExtensions.isNullOrUndefined(props.config.maxTopOffset)\n ) {\n this._stickyConfiguration = {\n minTopOffset: props.config.minTopOffset,\n maxTopOffset: props.config.maxTopOffset\n };\n }\n\n this._notificationsComponentList = [];\n\n this.state = {\n notificationsComponentList: []\n };\n\n this._handleTopUpdate = this._handleTopUpdate.bind(this);\n this._getCurrentTopPosition = this._getCurrentTopPosition.bind(this);\n }\n\n /**\n * Specifies if the component should be re-rendered.\n * @param nextProps - The next configuration the component is receiving.\n * @param nextState - The next state the component is receiving.\n * @returns True if component should be re-rendered, false if component should not be changed.\n */\n public shouldComponentUpdate(\n nextProps: Readonly>,\n nextState: Readonly\n ): boolean {\n const isPropsDifferent =\n this.feed !== nextProps.config.feed ||\n this.props.config.maxNotificationsCount !== nextProps.config.maxNotificationsCount ||\n this.props.config.maxTopOffset !== nextProps.config.maxTopOffset ||\n this.props.config.minTopOffset !== nextProps.config.minTopOffset ||\n this.props.config.className !== nextProps.config.className ||\n this.props.id !== nextProps.id;\n const isStateDifferent =\n this.state.top !== nextState.top ||\n this.state.notificationsComponentList.length !== nextState.notificationsComponentList.length ||\n this.state.notificationsComponentList.every(value =>\n nextState.notificationsComponentList.find(otherValue => otherValue.props.notification.id === value.props.notification.id)\n );\n return isPropsDifferent || isStateDifferent;\n }\n\n /**\n * Adds the current instance to the global list of instances so that it becomes available for the notification manager.\n * In case the list is specified to be stickable, also subscribes to the scroll event to update the offsets.\n */\n public componentDidMount(): void {\n NotificationComponentsListsManager.subscribe(this);\n\n this._instanceId = `NotificationComponentsList-${Random.Guid.generateGuid()}`;\n\n if (MsDyn365.isBrowser && this._stickyConfiguration !== undefined) {\n window.addEventListener('scroll', this._handleTopUpdate);\n }\n }\n\n /**\n * Remove the instance from the global list of instances so that it becomes unavailable for the notification manager.\n * Unsubscribes itself from the notification events and scroll event.\n */\n public componentWillUnmount(): void {\n NotificationComponentsListsManager.unsubscribe(this);\n\n this._notificationsComponentList.forEach(component =>\n component.props.notification.events.getValue(NotificationEvents.RemovedFromList)?.unsubscribe(this._instanceId!)\n );\n\n if (MsDyn365.isBrowser && this._stickyConfiguration !== undefined) {\n window.removeEventListener('scroll', this._handleTopUpdate);\n }\n }\n\n /**\n * Adds a new notification to the list.\n * @param {INotificationComponentType} notificationComponent Data required to render the notification. @see INotificationComponentType.\n */\n public addNotificationComponent(notificationComponent: INotificationComponentType): void {\n if (this._instanceId === undefined) {\n return;\n }\n\n if (\n !ObjectExtensions.isNullOrUndefined(this.props.config.maxNotificationsCount) &&\n this._notificationsComponentList.length >= this.props.config.maxNotificationsCount\n ) {\n throw new Error('Notifications limit reached, cannot show more notifications.');\n }\n\n // Subscribe to the remove event to filter the removed notifications out from the list.\n notificationComponent.props.notification.events.getValue(NotificationEvents.RemovedFromList)?.subscribe({\n instanceId: this._instanceId,\n handler: () => {\n notificationComponent.props.notification.events\n .getValue(NotificationEvents.RemovedFromList)\n ?.unsubscribe(this._instanceId!);\n const newList = this._notificationsComponentList.filter(component => component !== notificationComponent);\n this._notificationsComponentList = newList;\n this.setState({ notificationsComponentList: this._notificationsComponentList });\n }\n });\n\n // Prepend the notification as newest should come to the top.\n this._notificationsComponentList.unshift(notificationComponent);\n this.setState({ notificationsComponentList: this._notificationsComponentList });\n this._handleTopUpdate();\n }\n\n public render(): React.ReactNode {\n const className = classnames(\n NotificationComponentsList._className,\n `${NotificationComponentsList._className}__${this.feed}`,\n this.props.config.className\n );\n\n const viewProps: INotificationsListViewProps = {\n ...this.props,\n container: {\n moduleProps: this.props,\n className,\n id: this._instanceId,\n style: { top: this.state.top }\n },\n notificationsList: this._renderNotificationsList()\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Renders the list of notifications.\n * @returns React node with a list of notifications.\n */\n private _renderNotificationsList(): React.ReactNode {\n const hasNotifications = ArrayExtensions.hasElements(this.state.notificationsComponentList);\n const containerClassName = classnames(\n `${NotificationComponentsList._className}__scrollable`,\n hasNotifications\n ? `${NotificationComponentsList._className}__has-notifications`\n : `${NotificationComponentsList._className}__empty`\n );\n\n return (\n
\n {this.state.notificationsComponentList.map(component => {\n const ComponentClass = component.componentClass;\n return ;\n })}\n
\n );\n }\n\n /**\n * Retrieves current top offset position by looking at scroll position and rounding it to the stickable limits.\n */\n private _getCurrentTopPosition(): number | undefined {\n const configuration = this._stickyConfiguration;\n\n if (configuration === undefined) {\n return undefined;\n }\n\n let pageYOffset = 0;\n if (MsDyn365.isBrowser) {\n pageYOffset = window.pageYOffset;\n }\n\n return Math.max(Math.min(configuration.maxTopOffset, configuration.maxTopOffset - pageYOffset), configuration.minTopOffset);\n }\n\n /**\n * Updates the top offset on scroll event to make the list stickable.\n */\n private _handleTopUpdate(): void {\n const newTop = this._getCurrentTopPosition();\n this.setState({ top: newTop });\n }\n}\n\nexport default NotificationComponentsList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { INotificationsListViewProps } from './notifications-list';\n\nexport const NotificationsListView: React.FC = props => {\n return {props.notificationsList};\n};\n\nexport default NotificationsListView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ISpacerProps } from './spacer.props.autogenerated';\n\nexport interface ISpacerViewProps extends ISpacerProps<{}> {\n className?: string;\n}\n\n/**\n *\n * SpacerModule component.\n * @extends {React.PureComponent}\n */\nclass Spacer extends React.PureComponent> {\n public render(): JSX.Element | null {\n const { className } = this.props.config;\n const spacerClass = this.props.config.spacerHeight ? `ms-${this.props.config.spacerHeight}` : 'ms-spacer';\n const viewProps = {\n // Context for telemetry and raw data for C1 to do customization\n // Including computed data, state data and methods\n ...this.props,\n className: (className && classnames(spacerClass, className)) || spacerClass\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n}\n\nexport default Spacer;\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\nimport { ISpacerViewProps } from './spacer';\n\nconst SpacerView: React.FC = props => {\n const child = props.config.divider &&
;\n\n return (\n
\n {child}\n
\n );\n};\n\nexport default SpacerView;\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// TODO: Current build require at least one tsx file\nexport default () =>
;\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// TODO: Current build require at least one tsx file\nexport default () =>
;\n"],"names":["TextBlock","React","render","paragraph","this","props","config","suppressHydrationWarning","dangerouslySetInnerHTML","__html","slots","id","anchorID","className","classnames","content","map","children","index","key","RegionSelector","renderView","_props$context$reques","destinationUrl","useQueryParameter","queryParameter","checkFlag","regions","regionSelectorHeading","resources","query_param","context","request","query","active_flag","flag","region","_region$image","onClick","undefined","window","url","destination_chain","location","href","src","image","alt","displayString","displaySubString","Timeline","_props$config$items","title","items","menuItem","anchor","style","backgroundImage","linkText","heading","getTimelineItemLabel","checkoutApplePay","applePayButton","alert","Module","Object","assign","SummaryForm","_ref","formProps","label","paymentAmount","addPaymentButton","appliedLine","bottomBorder","Node","EditForm","_ref2","inputLabel","inputAmount","customerName","customerAccountNumber","customerSince","accountCredit","accountDetails","checkoutCustomerAccount","checkoutErrorRef","summaryView","editView","moduleState","ref","isReady","OverlayModal","modal","checkoutExpress","waiting","addPaymentForm","overlayModal","shouldHideExpressCheckout","checkoutGooglePay","checkoutButton","appendChild","document","createElement","getBackgroundRepeatProperty","size","repeat","getBackgroundSizeProperty","buildBackgroundImageStylesByViewport","_request$gridSettings","containerType","configs","gridSettings","imageSettings","styles","largestGridSettingViewportName","getLargestGridSettingViewportName","authoringViewPorts","getAuthoringViewport","moduleName","layout","msdyn365Commerce","isBrowser","authoringHelper","_msdyn365","constructViewportInformationForImage","themeSettings","imgSettings","_objectSpread","viewports","_cloneDeep2","xs","w","h","sm","md","lg","xl","skipWidthAndHeightSettings","keys","vp","_imgSettings$viewport","viewport","minMaxWidth","getMinMaxWidth","urlSrc","getImageResizeUrl","externalProvider","apiSettings","maxWidth","max","minWidth","min","minHeight","backgroundRepeat","backgroundSize","backgroundPosition","setStyleAttribute","currentStyle","getDataBgSetAttribute","dataBgSetAttributes","push","join","BACKGROUND_IMAGE_CLASS_NAME","BackgroundImage","constructor","state","super","stylesByViewport","_onChangeHandler","bind","_getCurrentStyle","mounted","_componentResize","updateAttributes","componentDidMount","addEventListener","componentWillUnmount","removeEventListener","shouldComponentUpdate","nextProps","nextState","_this$props$request","_nextProps$request","_this$props$image","_nextProps$image","_this$props$image2","_nextProps$image2","backgroundImageClassName","isAuthoringEditEnabled","processedAtributes","_processAttributes","_isLazyload","attributes","_getAttributes","eventHandlers","onDoubleClick","_getDefaultAttributes","_unused","lazyLoad","getBackgroundImageLazyloadAttributes","role","getBackgroundImageAttributes","event","target","currentTarget","binding","eventTarget","$type","value","selectedStyle","_isEqual2","setState","winInnerWidth","innerWidth","_this$stylesByViewpor","_this$stylesByViewpor2","_this$stylesByViewpor3","_this$stylesByViewpor4","Number","MAX_SAFE_INTEGER","_getDefaultStyle","_this$props$image3","disableLazyLoad","getContainerType","Container","typeName","backgroundImageRepeat","backgroundImageSize","moduleLayout","backgroundColor","customClassName","containerContent","containerStyle","HeadingComponent","tag","headingText","textSize","Tag","classNameWithHeading","Text","text","editProps","onEdit","handleTextChange","requestContext","Default2SlotContainer","_getColClassName","classNames","getColClassArray","length","reduce","memo","left","right","telemetry","data","log","LogLevel","Debug","values","slotsClassNames","Warning","headingProps","msdyn365__moduleLayout","showErrors","slice","slot","Default3SlotContainer","center","DefaultContainer","_getChildColClassName","childrenWidth","_getWidthClass","s","colWidths","get","DefaultPageContainer","skipToMainText","app","platform","tabIndexSkipToMain","isEditorialMode","actionContext","tabIndex","header","subheader","primary","subfooter","footer","sizePattern","getColumnSizes","exec","cols","split","translatedSize","prefix","toLowerCase","translatePrefix","sizePrefix","colWidth","isDebug","isEditor","params","options","xsmall","small","medium","large","filter","Boolean","Map","HtmlBlock","MsDyn365","htmlBlockViewProps","renderModuleAttributes","NotificationComponentsList","feed","ObjectExtensions","isNullOrUndefined","minTopOffset","maxTopOffset","_stickyConfiguration","_notificationsComponentList","notificationsComponentList","_handleTopUpdate","_getCurrentTopPosition","isPropsDifferent","maxNotificationsCount","isStateDifferent","top","every","find","otherValue","notification","NotificationComponentsListsManager","subscribe","_instanceId","Random","Guid","generateGuid","unsubscribe","forEach","component","_component$props$noti","events","getValue","NotificationEvents","RemovedFromList","addNotificationComponent","notificationComponent","_notificationComponen","Error","instanceId","handler","_notificationComponen2","newList","unshift","_className","viewProps","container","moduleProps","notificationsList","_renderNotificationsList","hasNotifications","ArrayExtensions","hasElements","containerClassName","maxHeight","ComponentClass","componentClass","configuration","pageYOffset","Math","newTop","NotificationsListView","DefaultPageSummary","pageSummary","result","description","keywords","sharingImageUrl","faviconUrl","canonicalUrl","sharingImage","pageTitle","_constructPageTitle","HtmlHeadInclude","name","rel","disableOgTags","_renderOgTags","disableTwitterTags","_renderTwitterTags","property","moduleConfig","ignoreTitleSuffixPrefix","appConfig","pageTitlePrefix","pageTitleSuffix","Spacer","spacerClass","spacerHeight","child","divider"],"sourceRoot":""}