{"version":3,"file":"static/js/18.fb057e2d569eed5d2665.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/allowable-freight/utils/AllowableFreightStatusEnum.ts?9853","webpack://Msdyn365.Commerce.Online/./src/modules/allowable-freight/allowable-freight.tsx?476b","webpack://Msdyn365.Commerce.Online/./src/modules/allowable-freight/allowable-freight.view.tsx?1c71","webpack://Msdyn365.Commerce.Online/./src/modules/allowable-freight/utils/AllowableFreightProgressBarEnum.ts?27b9","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/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/modules/default-external-script/default-external-script.tsx?2a33","webpack://Msdyn365.Commerce.Online/./src/modules/default-inline-script/default-inline-script.tsx?5ccd","webpack://Msdyn365.Commerce.Online/./src/modules/default-inline-style/default-inline-style.tsx?3552","webpack://Msdyn365.Commerce.Online/./src/modules/default-metatags/default-metatags.tsx?97a7","webpack://Msdyn365.Commerce.Online/./src/utils/script-utils.ts?cb52","webpack://Msdyn365.Commerce.Online/./src/modules/default-page-summary/default-page-summary.tsx?0c78","webpack://Msdyn365.Commerce.Online/./src/modules/product-page-summary/product-page-summary.tsx?2924","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":["export enum AllowableFreightStatusType {\r\n Oil = 'Oil',\r\n Oversized = 'Oversized',\r\n LTL = 'LTL'\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 { IAllowableFreightData } from './allowable-freight.data';\r\nimport { IAllowableFreightProps } from './allowable-freight.props.autogenerated';\r\nimport { AllowableFreightStatusType } from './utils/AllowableFreightStatusEnum';\r\nimport { AllowableFreightProgressBarClassEnum } from './utils/AllowableFreightProgressBarEnum';\r\nimport { reaction } from 'mobx';\r\nimport _ from 'lodash';\r\nimport { IAllowableFreightCalculation, IAllowableFreightStatusLine, IProductCodeEntity } from '../../actions/DataServiceEntities.g';\r\n\r\nimport getAllowableFreightCalculationAction, {\r\n GetAllowableFreightCalculationInput\r\n} from '../../actions/get-allowable-freight-calculation.action';\r\nimport { CartLine } from '@msdyn365-commerce/retail-proxy';\r\nimport { getProductCodesAsync } from '../../actions/DataActionExtension.g';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nexport interface IAllowableFreightViewProps extends IAllowableFreightProps {\r\n state: AllowableFreightState;\r\n}\r\nexport interface AllowableFreightState {\r\n containsOil: boolean;\r\n oversizedItem: boolean;\r\n mustShipLTL: boolean;\r\n limitReached: boolean;\r\n cartFreight: number;\r\n sliderColourClass: string;\r\n errorMessage: string | undefined;\r\n maxLimit: number;\r\n isUnitCount: boolean;\r\n cartHasSpringPromoCoupon: boolean;\r\n productCodes: IProductCodeEntity[];\r\n}\r\n\r\n/**\r\n *\r\n * AllowableFreight component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass AllowableFreight extends React.PureComponent, AllowableFreightState> {\r\n constructor(props: IAllowableFreightProps) {\r\n super(props);\r\n this.state = {\r\n containsOil: false,\r\n oversizedItem: false,\r\n mustShipLTL: false,\r\n limitReached: false,\r\n cartFreight: 0,\r\n sliderColourClass: AllowableFreightProgressBarClassEnum.Red,\r\n errorMessage: undefined,\r\n maxLimit: 0,\r\n isUnitCount: false,\r\n cartHasSpringPromoCoupon: false,\r\n productCodes: []\r\n };\r\n }\r\n public componentDidMount() {\r\n if (this.props.data.cart.result?.cart) {\r\n const {\r\n data: {\r\n cart: {\r\n result: {\r\n cart: { Id, CartLines }\r\n }\r\n }\r\n }\r\n } = this.props;\r\n\r\n this.setState({ cartHasSpringPromoCoupon: this.cartHasSpringPromoCoupons() });\r\n void this.updateAllowableFreightv2(Id, CartLines || []);\r\n void this.getProductCodesForCartLines();\r\n }\r\n\r\n reaction(\r\n () => this.props.data.cart.result?.cart,\r\n () => {\r\n if (this.props.data.cart.result?.cart) {\r\n const {\r\n data: {\r\n cart: {\r\n result: {\r\n cart: { Id, CartLines }\r\n }\r\n }\r\n }\r\n } = this.props;\r\n this.setState({ cartHasSpringPromoCoupon: this.cartHasSpringPromoCoupons() });\r\n // this.updateAllowableFreight(this.props.data.cart.result!.cart);\r\n void this.updateAllowableFreightv2(Id, CartLines || []);\r\n void this.getProductCodesForCartLines();\r\n }\r\n }\r\n );\r\n }\r\n\r\n public cartHasSpringPromoCoupons = () => {\r\n if (this.props.data.cart.result) {\r\n const {\r\n data: {\r\n cart: {\r\n result: {\r\n cart: { Coupons }\r\n }\r\n }\r\n },\r\n config: { springPromoCoupons }\r\n } = this.props;\r\n if (ArrayExtensions.hasElements(springPromoCoupons) && ArrayExtensions.hasElements(Coupons)) {\r\n const items = _.intersection(\r\n springPromoCoupons.map(c => c.toUpperCase()),\r\n Coupons.map(c => c.Code?.toUpperCase()).filter(c => c !== undefined)\r\n );\r\n return ArrayExtensions.hasElements(items);\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n public getProductCodesForCartLines = async () => {\r\n const {\r\n data: {\r\n cart: { result }\r\n },\r\n context: { actionContext }\r\n } = this.props;\r\n if (!result) {\r\n return;\r\n }\r\n const itemIds = _.uniq(result.cart.CartLines?.map(cl => cl.ItemId).filter(item => item !== undefined) || []);\r\n const productCodes = await getProductCodesAsync({ callerContext: actionContext }, itemIds as string[]);\r\n if (productCodes && productCodes.ProductCodes) {\r\n this.setState({ productCodes: productCodes.ProductCodes });\r\n }\r\n };\r\n\r\n public updateAllowableFreightv2 = async (cartId: string | undefined, cartLines: CartLine[]) => {\r\n if (!cartId) {\r\n return;\r\n }\r\n const actionInput = new GetAllowableFreightCalculationInput(cartId, cartLines);\r\n const freightCalc = await getAllowableFreightCalculationAction(actionInput, this.props.context.actionContext);\r\n // const freightCalc = await getAllowableFreightAsync({ callerContext: this.props.context.actionContext }, cartId);\r\n this.checkAllowableFreightLimit(freightCalc);\r\n Object.keys(AllowableFreightStatusType).forEach(k => {\r\n // eslint-disable-next-line security/detect-object-injection\r\n if (freightCalc?.AllowableFreightStatusLine && freightCalc.AllowableFreightStatusLine.length) {\r\n // @ts-ignore\r\n this.applyGlobalState(freightCalc.AllowableFreightStatusLine, AllowableFreightStatusType[k]);\r\n }\r\n });\r\n };\r\n\r\n // public updateAllowableFreight = (cart: Cart) => {\r\n // //Check the allowable freight because it has the lowest priority, followed by the item filter.\r\n // this.checkAllowableFreightLimit(cart);\r\n // Object.keys(AllowableFreightStatusType).forEach(k => {\r\n // // eslint-disable-next-line security/detect-object-injection\r\n // this.applyGlobalState(cart, AllowableFreightStatusType[k]);\r\n // });\r\n\r\n // // this.applyFreightSliderColor();\r\n // };\r\n\r\n // private applyFreightSliderColor = () => {\r\n // if (this.state.mustShipLTL) {\r\n // this.setState({ sliderColourClass: AllowableFreightProgressBarClassEnum.Red });\r\n // return;\r\n // } else if (this.state.containsOil || this.state.oversizedItem) {\r\n // this.setState({ sliderColourClass: AllowableFreightProgressBarClassEnum.Yellow });\r\n // return;\r\n // } else if (this.state.limitReached) {\r\n // this.setState({ sliderColourClass: AllowableFreightProgressBarClassEnum.Green });\r\n // return;\r\n // }\r\n // };\r\n\r\n private checkAllowableFreightLimit = (freightCalculation: IAllowableFreightCalculation) => {\r\n if (!freightCalculation) {\r\n return;\r\n }\r\n const maxAllowableFreight = freightCalculation.ThresholdAmountTotal;\r\n\r\n const isUnitCount = freightCalculation.IsUnitCount;\r\n\r\n const cartFreight = freightCalculation.ThresholdAmountCurrent;\r\n\r\n this.setState({\r\n cartFreight: parseInt((cartFreight as unknown) as string, 10),\r\n maxLimit: parseInt((maxAllowableFreight as unknown) as string, 10)\r\n });\r\n if (cartFreight >= maxAllowableFreight) {\r\n this.setState({\r\n limitReached: true,\r\n sliderColourClass: AllowableFreightProgressBarClassEnum.Red,\r\n errorMessage: this.props.resources.freightAllowanceLimitMessage,\r\n isUnitCount: isUnitCount || false\r\n });\r\n } else {\r\n this.setState({\r\n limitReached: false,\r\n sliderColourClass: AllowableFreightProgressBarClassEnum.Red,\r\n errorMessage: undefined,\r\n isUnitCount: isUnitCount || false\r\n });\r\n }\r\n };\r\n\r\n private applyGlobalState = (statusLine: IAllowableFreightStatusLine[], key: AllowableFreightStatusType) => {\r\n const hasStatus = statusLine?.filter(f => f.StatusType === key) || false;\r\n if (hasStatus.length > 0) {\r\n switch (key) {\r\n //Highest priority\r\n case AllowableFreightStatusType.LTL:\r\n this.setState({\r\n mustShipLTL: true,\r\n errorMessage: this.props.resources.mustShipLTLMessage\r\n });\r\n break;\r\n case AllowableFreightStatusType.Oil:\r\n this.setState({\r\n containsOil: true,\r\n errorMessage: this.props.resources.containsOilMessage\r\n });\r\n break;\r\n case AllowableFreightStatusType.Oversized:\r\n this.setState({\r\n oversizedItem: true,\r\n errorMessage: this.props.resources.overSizedItemMessage\r\n });\r\n break;\r\n }\r\n }\r\n };\r\n\r\n public render(): JSX.Element | null {\r\n const viewProps: IAllowableFreightViewProps = {\r\n ...this.props,\r\n state: this.state\r\n };\r\n return this.props.renderView(viewProps);\r\n }\r\n}\r\n\r\nexport default AllowableFreight;\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 { IAllowableFreightViewProps } from './allowable-freight';\r\nimport { Progress } from 'reactstrap';\r\nimport { AllowableFreightProgressBarClassEnum } from './utils/AllowableFreightProgressBarEnum';\r\nimport { IPromotionsData } from './allowable-freight.props.autogenerated';\r\n\r\nexport default (props: IAllowableFreightViewProps) => {\r\n const {\r\n data: { cart },\r\n config: { requireCouponForPromoBar, promotions },\r\n state: { maxLimit, limitReached, mustShipLTL, oversizedItem, containsOil, errorMessage, cartFreight }\r\n } = props;\r\n const minimumRange = 0;\r\n\r\n const getTickerColourClass = () => {\r\n //works on a priority system\r\n if (mustShipLTL) {\r\n return AllowableFreightProgressBarClassEnum.Red;\r\n }\r\n if (oversizedItem || containsOil) {\r\n return AllowableFreightProgressBarClassEnum.Yellow;\r\n }\r\n if (limitReached) {\r\n return AllowableFreightProgressBarClassEnum.Green;\r\n }\r\n return AllowableFreightProgressBarClassEnum.Red;\r\n };\r\n\r\n const shouldRenderPromoBars = () => {\r\n if (requireCouponForPromoBar && props.state.cartHasSpringPromoCoupon) {\r\n return true;\r\n } else if (!requireCouponForPromoBar) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n const getValueForLabel = (value: string | number) => {\r\n const formattedValue = !props.state.isUnitCount ? props.context.cultureFormatter.formatCurrency(value) : value;\r\n return formattedValue.toString();\r\n };\r\n\r\n const getProductCodeByItemId = (itemId: string) => props.state.productCodes.find(pc => pc.ItemId === itemId)?.ProductCode || null;\r\n\r\n const getMaxPromoAmount = (promotion: IPromotionsData) => Math.max(...promotion.promoBreakpoints.map(pr => pr.spendAmount));\r\n const getAmountForMfr = (promotion: IPromotionsData) => {\r\n const mfr = promotion.mfr;\r\n if (mfr === '*') {\r\n const total = (cart.result?.cart.CartLines || []).map(cl => cl.TotalAmount).reduce((tot, acc) => tot! + acc!) || 0;\r\n console.log('Total', total);\r\n return total;\r\n } else {\r\n let cartLines = cart.result?.cart.CartLines?.filter(cl => cl.ItemId?.startsWith(mfr)) || [];\r\n const { inclusionCodes, exclusionCodes } = promotion;\r\n if (inclusionCodes && inclusionCodes.length) {\r\n cartLines = cartLines.filter(cl => {\r\n const productCode = getProductCodeByItemId(cl.ItemId || '');\r\n if (productCode) {\r\n return inclusionCodes.includes(productCode);\r\n }\r\n return true;\r\n });\r\n } else if (exclusionCodes) {\r\n cartLines = cartLines.filter(cl => !exclusionCodes.includes(getProductCodeByItemId(cl.ItemId || '') || ''));\r\n }\r\n const amounts = cartLines.map(cl => cl.TotalAmount);\r\n if (Array.isArray(amounts) && !!amounts.length) {\r\n const total = amounts.reduce((tot, acc) => tot! + acc!) || 0;\r\n return total;\r\n }\r\n }\r\n return 0;\r\n };\r\n\r\n const getNextTier = (promo: IPromotionsData) => {\r\n let tierIdx = 0;\r\n let tier = promo.promoBreakpoints[tierIdx];\r\n const totalForMfr = getAmountForMfr(promo);\r\n // eslint-disable-next-line no-constant-condition\r\n while (true) {\r\n if (tier.spendAmount > totalForMfr) {\r\n return tier;\r\n }\r\n tierIdx++;\r\n const _tier = promo.promoBreakpoints[tierIdx];\r\n if (_tier) {\r\n tier = _tier;\r\n } else {\r\n break;\r\n }\r\n }\r\n return tier;\r\n };\r\n\r\n if (!props.state.cartFreight && !props.state.maxLimit) {\r\n return null;\r\n }\r\n React.useEffect(() => {\r\n if (cart.result?.cart.CartLines?.length === 0) {\r\n props.state.cartFreight = 0;\r\n }\r\n }, [cart.result?.cart.CartLines?.length]);\r\n\r\n return (\r\n (shouldRenderPromoBars() || (!props.state.cartHasSpringPromoCoupon && cart.result?.cart.CartLines?.length! > 0)) && (\r\n
\r\n {!props.state.cartHasSpringPromoCoupon && cart.result?.cart.CartLines?.length! > 0 ? (\r\n
\r\n

{`${props.resources.sliderLabel}: ${getValueForLabel(\r\n cartFreight\r\n )}`}

\r\n
\r\n {getValueForLabel(minimumRange)}\r\n \r\n {getValueForLabel(maxLimit)}\r\n
\r\n {errorMessage &&
{errorMessage}
}\r\n
\r\n ) : null}\r\n\r\n {shouldRenderPromoBars() &&\r\n promotions?.map((promo, i) => {\r\n const maxPromoAmount = getMaxPromoAmount(promo);\r\n const total = getAmountForMfr(promo);\r\n if (maxPromoAmount === 0 || total === 0) {\r\n return null;\r\n }\r\n const tier = getNextTier(promo);\r\n\r\n let headerText = `Spend ${props.context.cultureFormatter.formatCurrency(tier.spendAmount - total)} to ${\r\n tier.savingText\r\n }`;\r\n if (total >= maxPromoAmount) {\r\n headerText = `${tier.savingText}!`;\r\n }\r\n const valueMax = promo.promoBreakpoints.map(bp => bp.spendAmount).reduce((tot, acc) => tot + acc);\r\n\r\n return (\r\n
\r\n

\r\n \r\n Current {promo.mfr === '*' ? '' : promo.label || promo.mfr} spend:{' '}\r\n {props.context.cultureFormatter.formatCurrency(total)}\r\n \r\n {headerText} \r\n

\r\n
\r\n {promo.label}\r\n \r\n {promo.promoBreakpoints.map((tier, idx) => {\r\n let className = 'gardner-red-promo';\r\n if (total >= tier.spendAmount) {\r\n className = `gardner-green-promo`;\r\n }\r\n if (idx > 0) {\r\n const prevTier = promo.promoBreakpoints[idx - 1];\r\n if (prevTier.spendAmount >= total) {\r\n return null;\r\n }\r\n }\r\n return (\r\n \r\n \r\n {tier.spendAmount <= total\r\n ? tier.savingText\r\n : props.context.cultureFormatter.formatCurrency(total)}\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n {props.context.cultureFormatter.formatCurrency(getMaxPromoAmount(promo)).replace('.00', '')}\r\n \r\n
\r\n
\r\n );\r\n })}\r\n
\r\n )\r\n );\r\n};\r\n","export enum AllowableFreightProgressBarClassEnum {\r\n Red = 'gardner-red',\r\n Green = 'gardner-green',\r\n Yellow = 'gardner-yellow'\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 { 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","/*!\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 { SDK_FRAGMENT_NAME, msdyn365Commerce } from '@msdyn365-commerce/core-internal';\nimport * as path from 'path';\nimport * as React from 'react';\nimport { isAbsoluteUrl, isRelativeUrl, logDebug, logError } from '../../utils/script-utils';\nimport { IDefaultExternalScriptProps } from './default-external-script.props.autogenerated';\n\n/**\n *\n * DefaultExternalScript component\n * @extends {React.PureComponent>}\n */\nclass DefaultExternalScript extends React.PureComponent> {\n constructor(props: IDefaultExternalScriptProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { config } = this.props;\n logDebug(`Adding script tags for '${this.props.id}/${this.props.typeName}'`, this.props.telemetry);\n let source = config.scriptSource;\n\n let relativeBaseUrl: string = '';\n // Construct the relative base url, i.e. the base url from which statics will be served\n if (this.props.context) {\n relativeBaseUrl += this.props.context.request.url.staticCdnUrl;\n relativeBaseUrl += msdyn365Commerce.getEnvironmentVariable('SUBMISSIONID') || '';\n }\n\n if (isRelativeUrl(source)) {\n // If the source is a relative URL prepend the relative base url to the resolved source url for the actual source\n source = `${relativeBaseUrl}/${path.join(source)}`;\n } else if (source === '' || !isAbsoluteUrl(source)) {\n logError(\n 'Invalid external script - not a url. The external source is not an external or relative url, please use default-inline-script if you wish to load inline scripts',\n this.props.telemetry\n );\n return null;\n }\n const scriptHtml = ``;\n\n return React.createElement(SDK_FRAGMENT_NAME, { key: this.props.id, dangerouslySetInnerHTML: { __html: scriptHtml } });\n }\n}\n\nexport default DefaultExternalScript;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { isNonceEnabled, SDK_FRAGMENT_NAME } from '@msdyn365-commerce/core-internal';\nimport * as React from 'react';\nimport { isAbsoluteUrl, isRelativeUrl, logDebug, logError } from '../../utils/script-utils';\nimport { IDefaultInlineScriptProps } from './default-inline-script.props.autogenerated';\n\n/**\n *\n * DefaultScript\n * @extends {React.PureComponent>}\n */\nclass DefaultInlineScript extends React.PureComponent> {\n constructor(props: IDefaultInlineScriptProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { config } = this.props;\n logDebug(`Adding script tags for '${this.props.id}/${this.props.typeName}'`, this.props.telemetry);\n const source = config.inlineScript;\n\n if (!source || source === '' || isAbsoluteUrl(source) || isRelativeUrl(source)) {\n logError(\n 'Invalid inline script - Empty inline source defined or a url is being used as a source. Use default-external-script to load scripts from an external or relative url.',\n this.props.telemetry\n );\n return null;\n }\n\n if (source.includes('')) {\n logError('Invalid inline script - inline script should not contain html tags', this.props.telemetry);\n return null;\n }\n\n const nonceToken = this.props.context && isNonceEnabled(this.props.context.request);\n const scriptHtml = ``;\n return React.createElement(SDK_FRAGMENT_NAME, { key: this.props.id, dangerouslySetInnerHTML: { __html: scriptHtml } });\n }\n}\n\nexport default DefaultInlineScript;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { SDK_FRAGMENT_NAME } from '@msdyn365-commerce/core-internal';\nimport * as React from 'react';\nimport { isAbsoluteUrl, isRelativeUrl, logDebug, logError } from '../../utils/script-utils';\nimport { IDefaultInlineStyleProps } from './default-inline-style.props.autogenerated';\n\n/**\n *\n * DefaultStyle\n * @extends {React.PureComponent>}\n */\n\nconst DefaultInlineStyle = (props: IDefaultInlineStyleProps<{}>) => {\n const { config, id, typeName, telemetry } = props;\n logDebug(`Adding style tags for '${id}/${typeName}'`, telemetry);\n const source = config.inlineStyle;\n\n if (!source || source === '' || isAbsoluteUrl(source) || isRelativeUrl(source)) {\n logError('Invalid inline style - Empty inline source defined or a url is being used as a source.', telemetry);\n return null;\n }\n\n if (source.includes('')) {\n logError('Invalid inline style - inline style should not contain html tags', telemetry);\n return null;\n }\n\n const styleHtml = ``;\n return React.createElement(SDK_FRAGMENT_NAME, { key: id, dangerouslySetInnerHTML: { __html: styleHtml } });\n};\n\nexport default DefaultInlineStyle;\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(/