{"version":3,"file":"static/js/18.33cf64b68ef9262e2162.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/gtm-body/gtm-body.tsx?9597","webpack://Msdyn365.Commerce.Online/./src/modules/gtm-body/gtm-body.view.tsx?be28","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme-b2c/views/components/price.component.tsx?a8af","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/components/price.component.tsx?8ade","webpack://Msdyn365.Commerce.Online/./src/modules/msdyn365-pva-chat-connector/msdyn365-pva-chat-connector.tsx?797a","webpack://Msdyn365.Commerce.Online/./src/modules/msdyn365-pva-chat-connector/msdyn365-pva-chat-connector.view.tsx?cb2f","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-metatags/default-metatags.tsx?97a7","webpack://Msdyn365.Commerce.Online/./src/utils/classnames.ts?a0ff","webpack://Msdyn365.Commerce.Online/./src/modules/default-page-summary/default-page-summary.tsx?0c78","webpack://Msdyn365.Commerce.Online/./src/modules/text-block/text-block.tsx?db84","webpack://Msdyn365.Commerce.Online/./src/modules/text-block/text-block.view.tsx?9307"],"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 { IGtmBodyData } from './gtm-body.data';\r\nimport { IGtmBodyProps } from './gtm-body.props.autogenerated';\r\n\r\nexport interface IGtmBodyViewProps extends IGtmBodyProps {}\r\n\r\n/**\r\n *\r\n * GtmBody component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass GtmBody 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 GtmBody;\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 msdyn365Commerce from '@msdyn365-commerce/core-internal';\r\nimport { IGtmBodyViewProps } from './gtm-body';\r\n\r\nexport default (props: IGtmBodyViewProps) => {\r\n if (msdyn365Commerce.isBrowser) {\r\n const url = `https://www.googletagmanager.com/ns.html?id=${props.config.gtmId}`;\r\n const body = document.querySelector('body');\r\n const exists = !!document.querySelector('#gtm');\r\n if (body && !exists) {\r\n const gtm = document.createElement('noscript');\r\n gtm.id = 'gtm';\r\n const ifel = document.createElement('iframe');\r\n ifel.setAttribute('src', url);\r\n ifel.setAttribute('height', '0');\r\n ifel.setAttribute('width', '0');\r\n ifel.setAttribute('style', 'display: none; visibility: hidden;');\r\n gtm.appendChild(ifel);\r\n body.prepend(gtm);\r\n }\r\n }\r\n\r\n return null;\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\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { ProductPrice } from '@msdyn365-commerce/retail-proxy';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nconst defaultPrice: number = 0;\r\nconst freePrice: number = 0;\r\n\r\n/**\r\n * Interface for price component resources.\r\n * @param {string} priceRangeSeparator - The price range separator.\r\n */\r\nexport interface IPriceComponentResources {\r\n priceRangeSeparator?: string;\r\n loginToViewPricingText: string;\r\n}\r\n\r\n/**\r\n * Interface for price component props.\r\n * @param {boolean} isPriceMinMaxEnabled - Whether the price range feature is enabled or not.\r\n * @param {IPriceComponentResources} priceResources - The price range resources.\r\n */\r\nexport interface IPriceComponentProps extends IComponentProps<{ price: ProductPrice }> {\r\n className?: string;\r\n savingsText?: string;\r\n freePriceText?: string;\r\n originalPriceText?: string;\r\n currentPriceText?: string;\r\n isPriceMinMaxEnabled?: boolean;\r\n priceResources?: IPriceComponentResources;\r\n}\r\nexport interface IPriceComponent extends IComponent {\r\n}\r\n\r\nconst priceComponentActions = {};\r\n\r\n/**\r\n * Price.\r\n * @param props - The props.\r\n * @returns The JSX.Element.\r\n */\r\nconst Price: React.FC = (props: IPriceComponentProps): JSX.Element | null => {\r\n // CustomerContextualPrice could be zero\r\n if (props.data.price.CustomerContextualPrice === undefined) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {showStrikethroughPricing(props) ? renderCurrentPriceWithOriginalPrice(props) : renderCurrentPrice(props)}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * ShowStrikethroughPricing.\r\n * @param props - The props.\r\n * @returns True if showStrikethroughPricing, false otherwise.\r\n */\r\nconst showStrikethroughPricing = (props: IPriceComponentProps): boolean => {\r\n if (props.isPriceMinMaxEnabled &&\r\n props.data.price.MaxVariantPrice &&\r\n props.data.price.MinVariantPrice &&\r\n props.data.price.MaxVariantPrice > props.data.price.MinVariantPrice) {\r\n return true;\r\n }\r\n\r\n const originalPrice = getOriginalPrice(props);\r\n if (originalPrice && props.data.price.CustomerContextualPrice) {\r\n return originalPrice > props.data.price.CustomerContextualPrice;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst getOriginalPrice = (props: IPriceComponentProps): number => {\r\n return Math.max(\r\n props.data.price.BasePrice ?? defaultPrice,\r\n props.data.price.TradeAgreementPrice ?? defaultPrice,\r\n props.data.price.AdjustedPrice ?? defaultPrice\r\n );\r\n};\r\n\r\nconst formatCurrency = (props: IPriceComponentProps, price: number | undefined, shouldUseFreePriceText: boolean | undefined): string => {\r\n if (price === undefined) {\r\n return '';\r\n }\r\n\r\n if (shouldUseFreePriceText && price === freePrice && props.freePriceText) {\r\n return props.freePriceText;\r\n }\r\n\r\n return props.context.cultureFormatter.formatCurrency(price);\r\n};\r\n\r\nconst renderCurrentPrice = (props: IPriceComponentProps): JSX.Element => {\r\n const initialPrice: string = formatCurrency(props, props.data.price.CustomerContextualPrice, true);\r\n const maxVariantPrice: string = formatCurrency(props, props.data.price.MaxVariantPrice, false);\r\n const minVariantPrice: string = formatCurrency(props, props.data.price.MinVariantPrice, false);\r\n if (props.isPriceMinMaxEnabled &&\r\n props.data.price.MaxVariantPrice &&\r\n props.data.price.MinVariantPrice &&\r\n props.data.price.MaxVariantPrice > props.data.price.MinVariantPrice) {\r\n return (\r\n \r\n {' '}\r\n \r\n {minVariantPrice}\r\n \r\n \r\n {props.priceResources?.priceRangeSeparator}\r\n \r\n \r\n {maxVariantPrice}\r\n \r\n \r\n );\r\n }\r\n return (\r\n {initialPrice}\r\n );\r\n};\r\n\r\nconst renderCurrentPriceWithOriginalPrice = (props: IPriceComponentProps): JSX.Element => {\r\n const originalPrice: number = getOriginalPrice(props);\r\n const initialPrice: string = formatCurrency(props, originalPrice, true);\r\n\r\n return (\r\n <>\r\n \r\n {' '}\r\n {props.originalPriceText}\r\n {' '}\r\n {initialPrice}\r\n {' '}\r\n {props.currentPriceText}\r\n {' '}\r\n {renderCurrentPrice(props)}\r\n \r\n \r\n \r\n {props.savingsText && \r\n {props.savingsText}\r\n }\r\n \r\n );\r\n};\r\n\r\nexport const PriceComponent: React.FunctionComponent = msdyn365Commerce.createComponentOverride(\r\n 'Price',\r\n { component: Price, ...priceComponentActions }\r\n);\r\n\r\n\r\nexport default PriceComponent;","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { ProductPrice } from '@msdyn365-commerce/retail-proxy';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nconst defaultPrice: number = 0;\r\nconst freePrice: number = 0;\r\n\r\n/**\r\n * Interface for price component resources.\r\n * @param {string} priceRangeSeparator - The price range separator.\r\n */\r\nexport interface IPriceComponentResources {\r\n priceRangeSeparator?: string;\r\n loginToViewPricingText: string;\r\n}\r\n\r\n/**\r\n * Interface for price component props.\r\n * @param {boolean} isPriceMinMaxEnabled - Whether the price range feature is enabled or not.\r\n * @param {IPriceComponentResources} priceResources - The price range resources.\r\n */\r\nexport interface IPriceComponentProps extends IComponentProps<{ price: ProductPrice }> {\r\n className?: string;\r\n savingsText?: string;\r\n freePriceText?: string;\r\n originalPriceText?: string;\r\n currentPriceText?: string;\r\n isPriceMinMaxEnabled?: boolean;\r\n priceResources?: IPriceComponentResources;\r\n}\r\nexport interface IPriceComponent extends IComponent {\r\n}\r\n\r\nconst priceComponentActions = {};\r\n\r\n/**\r\n * Price.\r\n * @param props - The props.\r\n * @returns The JSX.Element.\r\n */\r\nconst Price: React.FC = (props: IPriceComponentProps): JSX.Element | null => {\r\n // CustomerContextualPrice could be zero\r\n if (props.data.price.CustomerContextualPrice === undefined) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {showStrikethroughPricing(props) ? renderCurrentPriceWithOriginalPrice(props) : renderCurrentPrice(props)}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * ShowStrikethroughPricing.\r\n * @param props - The props.\r\n * @returns True if showStrikethroughPricing, false otherwise.\r\n */\r\nconst showStrikethroughPricing = (props: IPriceComponentProps): boolean => {\r\n if (props.isPriceMinMaxEnabled &&\r\n props.data.price.MaxVariantPrice &&\r\n props.data.price.MinVariantPrice &&\r\n props.data.price.MaxVariantPrice > props.data.price.MinVariantPrice) {\r\n return true;\r\n }\r\n\r\n const originalPrice = getOriginalPrice(props);\r\n if (originalPrice && props.data.price.CustomerContextualPrice) {\r\n return originalPrice > props.data.price.CustomerContextualPrice;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst getOriginalPrice = (props: IPriceComponentProps): number => {\r\n return Math.max(\r\n props.data.price.BasePrice ?? defaultPrice,\r\n props.data.price.TradeAgreementPrice ?? defaultPrice,\r\n props.data.price.AdjustedPrice ?? defaultPrice\r\n );\r\n};\r\n\r\nconst formatCurrency = (props: IPriceComponentProps, price: number | undefined, shouldUseFreePriceText: boolean | undefined): string => {\r\n if (price === undefined) {\r\n return '';\r\n }\r\n\r\n if (shouldUseFreePriceText && price === freePrice && props.freePriceText) {\r\n return props.freePriceText;\r\n }\r\n\r\n return props.context.cultureFormatter.formatCurrency(price);\r\n};\r\n\r\nconst renderCurrentPrice = (props: IPriceComponentProps): JSX.Element => {\r\n const initialPrice: string = formatCurrency(props, props.data.price.CustomerContextualPrice, true);\r\n const maxVariantPrice: string = formatCurrency(props, props.data.price.MaxVariantPrice, false);\r\n const minVariantPrice: string = formatCurrency(props, props.data.price.MinVariantPrice, false);\r\n if (props.isPriceMinMaxEnabled &&\r\n props.data.price.MaxVariantPrice &&\r\n props.data.price.MinVariantPrice &&\r\n props.data.price.MaxVariantPrice > props.data.price.MinVariantPrice) {\r\n return (\r\n \r\n {' '}\r\n \r\n {minVariantPrice}\r\n \r\n \r\n {props.priceResources?.priceRangeSeparator}\r\n \r\n \r\n {maxVariantPrice}\r\n \r\n \r\n );\r\n }\r\n return (\r\n {initialPrice}\r\n );\r\n};\r\n\r\nconst renderCurrentPriceWithOriginalPrice = (props: IPriceComponentProps): JSX.Element => {\r\n const originalPrice: number = getOriginalPrice(props);\r\n const initialPrice: string = formatCurrency(props, originalPrice, true);\r\n\r\n return (\r\n <>\r\n \r\n {' '}\r\n {props.originalPriceText}\r\n {' '}\r\n {initialPrice}\r\n {' '}\r\n {props.currentPriceText}\r\n {' '}\r\n {renderCurrentPrice(props)}\r\n \r\n \r\n \r\n {props.savingsText && \r\n {props.savingsText}\r\n }\r\n \r\n );\r\n};\r\n\r\nexport const PriceComponent: React.FunctionComponent = msdyn365Commerce.createComponentOverride(\r\n 'Price',\r\n { component: Price, ...priceComponentActions }\r\n);\r\n\r\n\r\nexport default PriceComponent;","/*!\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 { isOboRequest } from '@msdyn365-commerce/core-internal';\nimport { IMsdyn365PvaChatConnectorData } from './msdyn365-pva-chat-connector.data';\nimport { IMsdyn365PvaChatConnectorConfig, IMsdyn365PvaChatConnectorProps } from './msdyn365-pva-chat-connector.props.autogenerated';\n\nexport interface IPvaChatConnectorViewProps extends IMsdyn365PvaChatConnectorProps {\n config: IMsdyn365PvaChatConnectorConfig;\n}\n\n/**\n * PvaChatConnector component\n * @extends {React.PureComponent>}\n */\nclass PvaChatConnector extends React.PureComponent> {\n // Loads CDN version of Botframework-Webchat library\n public componentDidMount(): void {\n if (isOboRequest(this.props.context.request)) {\n return;\n }\n\n const url = this.props.config.botFrameworkCDNURL || this.props.context.app.config.pvaChatConnectorBotFrameworkCDNURL;\n const script = document.createElement('script');\n script.src = url;\n script.async = true;\n script.crossOrigin = 'anonymous';\n document.body.appendChild(script);\n }\n\n public render(): JSX.Element | null {\n if (isOboRequest(this.props.context.request)) {\n return null;\n }\n\n return this.props.renderView(this.props);\n }\n}\n\nexport default PvaChatConnector;\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 { Chat, IPvaChatConnectorViewProps } from './index';\n\nexport default (props: IPvaChatConnectorViewProps) => {\n // Only for CDN loading check, won't be needed with npm package of Botframework-WebChat\n const [loaded, setLoaded] = React.useState(false);\n const p = {\n ...props\n };\n\n // Just to verify that CDN Chat Widget js lib is loaded\n // Remove this block if moving to npm package of Botframework-WebChat\n const interval = setInterval(() => {\n const t = typeof window;\n if (t !== 'undefined' && window.WebChat) {\n setLoaded(true);\n clearInterval(interval);\n }\n }, 100);\n\n return
{loaded && }
;\n};\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 * as React from 'react';\n\nimport { isNonceEnabled, SDK_FRAGMENT_NAME } from '@msdyn365-commerce/core-internal';\nimport { IDefaultMetatagsData } from './default-metatags.data';\nimport { IDefaultMetatagsProps } from './default-metatags.props.autogenerated';\n\n/**\n *\n * DefaultPageSummaryMetadata component\n * @extends {React.PureComponent>}\n */\nclass DefaultMetaTags extends React.PureComponent> {\n public render(): JSX.Element {\n const { data, config } = this.props;\n const nonceToken = this.props.context && isNonceEnabled(this.props.context.request);\n let metaTagsHtml: string = '';\n let metaTags;\n if (config.metaTags) {\n metaTags = nonceToken ? this._addNonceToInlineScript(config.metaTags, nonceToken) : config.metaTags;\n metaTagsHtml = metaTags && metaTags.join('\\n');\n } else if (data.metaTags) {\n metaTags = data.metaTags;\n let metaTagsText = metaTags.map(simpleText => simpleText.text);\n metaTagsText = nonceToken ? this._addNonceToInlineScript(metaTagsText, nonceToken) : metaTagsText;\n metaTagsHtml = metaTagsText && metaTagsText.join('\\n');\n }\n return React.createElement(SDK_FRAGMENT_NAME, { key: this.props.id, dangerouslySetInnerHTML: { __html: metaTagsHtml } });\n }\n\n private _addNonceToInlineScript(metaTags: string[], nonceToken: string): string[] {\n const inlineScripRegex = /(.*?)<\\/script>/g;\n return metaTags\n .map(metaTag => {\n if (inlineScripRegex.test(metaTag)) {\n return metaTag.replace(/