{"version":3,"file":"static/js/11.fdfe12461b532e3270ec.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/absolute-full-charts/absolute-full-charts.tsx?ac45","webpack://Msdyn365.Commerce.Online/./src/modules/absolute-full-charts/absolute-full-charts.view.tsx?3ad0","webpack://Msdyn365.Commerce.Online/./src/modules/absolute-media-container/absolute-media-container.tsx?4099","webpack://Msdyn365.Commerce.Online/./src/modules/absolute-media-container/absolute-media-container.view.tsx?25fe","webpack://Msdyn365.Commerce.Online/./src/modules/absolute-prop65/absolute-prop65.tsx?b48d","webpack://Msdyn365.Commerce.Online/./src/modules/absolute-prop65/absolute-prop65.view.tsx?31a4","webpack://Msdyn365.Commerce.Online/./src/modules/absolute-video-container/absolute-video-container.tsx?fb59","webpack://Msdyn365.Commerce.Online/./src/modules/absolute-video-container/absolute-video-container.view.tsx?78ff","webpack://Msdyn365.Commerce.Online/./src/modules/liquid-category-image/liquid-category-image.tsx?b927","webpack://Msdyn365.Commerce.Online/./src/modules/liquid-category-image/liquid-category-image.view.tsx?6f89","webpack://Msdyn365.Commerce.Online/./src/modules/liquid-upc/liquid-upc.tsx?4ca4","webpack://Msdyn365.Commerce.Online/./src/modules/liquid-upc/liquid-upc.view.tsx?a998","webpack://Msdyn365.Commerce.Online/./src/modules/obrien-prop65/obrien-prop65.tsx?0c79","webpack://Msdyn365.Commerce.Online/./src/modules/obrien-prop65/obrien-prop65.view.tsx?b43d","webpack://Msdyn365.Commerce.Online/./src/modules/obrien-upc/obrien-upc.tsx?79a8","webpack://Msdyn365.Commerce.Online/./src/modules/obrien-upc/obrien-upc.view.tsx?8db3","webpack://Msdyn365.Commerce.Online/./src/modules/check-in-for-pickup/check-in-confirmation.tsx?406f","webpack://Msdyn365.Commerce.Online/./src/modules/check-in-for-pickup/check-in-error.tsx?e789","webpack://Msdyn365.Commerce.Online/./src/modules/check-in-for-pickup/check-in-for-pickup.tsx?8686","webpack://Msdyn365.Commerce.Online/./src/modules/check-in-for-pickup/check-in-for-pickup.view.tsx?bd7a","webpack://Msdyn365.Commerce.Online/./src/modules/cookie-compliance/components/accept-button.tsx?8e73","webpack://Msdyn365.Commerce.Online/./src/modules/cookie-compliance/components/links.tsx?97b8","webpack://Msdyn365.Commerce.Online/./src/modules/cookie-compliance/cookie-compliance.tsx?02ac","webpack://Msdyn365.Commerce.Online/./src/modules/cookie-compliance/cookie-compliance.view.tsx?a33f","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/order-details.view.tsx?1ce1","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/ratings-histogram.view.tsx?6e01","webpack://Msdyn365.Commerce.Online/./src/modules/iframe/iframe.tsx?65fe","webpack://Msdyn365.Commerce.Online/./src/modules/iframe/iframe.view.tsx?a7d6","webpack://Msdyn365.Commerce.Online/./src/modules/product-comparison-button/product-comparison-button.tsx?9384","webpack://Msdyn365.Commerce.Online/./src/modules/product-comparison-button/product-comparison-button.view.tsx?94a7","webpack://Msdyn365.Commerce.Online/./src/modules/product-specification/components/product-specification-table-stucture.tsx?c1c4","webpack://Msdyn365.Commerce.Online/./src/modules/product-specification/product-specification.tsx?6583","webpack://Msdyn365.Commerce.Online/./src/modules/product-specification/product-specification.view.tsx?7490","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/b2b-requests-status.view.tsx?de3b","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/cart.view.tsx?3909","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/footer-item.view.tsx?15be","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/order-details.view.tsx?027b","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/sign-in.view.tsx?048a"],"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/* tslint:disable: no-duplicate-imports this is a change */\r\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport classnames from 'classnames';\r\nimport { reaction } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { getAttributesForSelectedVariant } from '@msdyn365-commerce-modules/product-specification';\r\nimport { AttributesForSelectedVariantInput } from '@msdyn365-commerce-modules/product-specification';\r\n\r\n\r\nimport { IAbsoluteFullChartsData } from './absolute-full-charts.data';\r\nimport { IAbsoluteFullChartsProps } from './absolute-full-charts.props.autogenerated';\r\n\r\nexport interface IProductSpecificationViewProps extends IAbsoluteFullChartsProps<{}> {\r\n ProductSpecification: IModuleProps;\r\n ProductSpecificationTableProps: INodeProps;\r\n ProductSpecificationTableBodyProps: INodeProps;\r\n productSpecificationResult?: (JSX.Element | null)[];\r\n title?: React.ReactNode;\r\n onlinetitle?: React.ReactNode;\r\n \r\n\r\n}\r\n\r\n/**\r\n *\r\n * ProductSpecification component\r\n * @extends {React.Component>}\r\n */\r\n@observer\r\nclass ProductSpecification extends React.Component> {\r\n public async componentDidMount(): Promise {\r\n const { context, data, telemetry } = this.props;\r\n\r\n // @ts-ignore: Compiler not reconizing condition check for function params\r\n reaction(\r\n () => (data.product.result ? data.product.result.RecordId : null),\r\n () => {\r\n if (context && data.product.result) {\r\n //@ts-ignore\r\n const actionInput = new AttributesForSelectedVariantInput(\r\n data.product.result.RecordId,\r\n // @ts-ignore\r\n +context.actionContext.requestContext.apiSettings.channelId,\r\n data.product.result\r\n );\r\n //@ts-ignore\r\n getAttributesForSelectedVariant(actionInput, this.props.context.actionContext).catch(error => {\r\n telemetry.warning(error);\r\n telemetry.debug('Unable to update attributes for Product');\r\n telemetry.error(error);\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n // tslint:disable-next-line:max-func-body-length\r\n public render(): JSX.Element | null {\r\n let data: IAbsoluteFullChartsData;\r\n\r\n try {\r\n data = this.props.data;\r\n } catch (e) {\r\n this.props.telemetry.error(`Something went wrong ------${e}`);\r\n //@ts-ignore\r\n return
{e}
;\r\n }\r\n\r\n if (!data.productSpecificationData.result || data.productSpecificationData.result.length <= 0) {\r\n this.props.telemetry.error('Product specification content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n const { className } = this.props.config;\r\n\r\n \r\n\r\n \r\n const { productSpecificationData } = this.props.data;\r\n\r\n const viewProps = {\r\n ...this.props,\r\n \r\n\r\n ProductSpecification: {\r\n moduleProps: this.props,\r\n className: classnames('locally', className)\r\n },\r\n ProductSpecificationTableProps: {\r\n className: classnames('nick-test'),\r\n tag: 'span'\r\n },\r\n ProductSpecificationTableBodyProps: {\r\n className: '',\r\n tag: 'div'\r\n },\r\n //@ts-ignore\r\n productSpecificationResult: productSpecificationData && this._createTableBody(data)\r\n } as IProductSpecificationViewProps;\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n \r\n private _createTableBody(content: IAbsoluteFullChartsData): (JSX.Element | null)[] {\r\n //@ts-ignore\r\n return content.productSpecificationData.result!.map((product, index) => {\r\n const cellData: JSX.Element | null = this._renderProductCell(product);\r\n\r\n if (!cellData) {\r\n return null;\r\n }\r\n \r\n if (product.TextValue === \"Child\") {\r\n\r\n const child = `
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Product Description
\r\n
\r\n
\r\n

\r\n LITTLE DIPPERS,
\r\n WATER BUDDIES,
\r\n CHILD & YOUTH NYLON,
\r\n TEEN NYLON,
\r\n CHILD & YOUTH RAPID-DRY,
\r\n JUNIOR RAPID-DRY,
\r\n CHILD & YOUTH RAPID-DRY/FLEX-BACK\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SizeChestWeight
\r\n
\r\n
\r\n

Child

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

- - - -

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

33-55 Lbs.

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Youth

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

- - - -

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

55-88 Lbs.

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Junior

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

28\" - 32\"

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

77-125 Lbs.

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Teen

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

28\" - 32\"

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

90 Lbs. and Over

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n `;\r\n\r\n return (\r\n \r\n
\r\n\r\n\r\n\r\n\r\n \r\n\r\n );\r\n }\r\n if (product.TextValue === \"Adult Ski\") {\r\n\r\n const adultSki = `
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Product Description
\r\n
\r\n
\r\n

ADULT UNIVERSAL SKI

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SizeChestWeight
\r\n
\r\n
\r\n

Adult Universal

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

30\" - 52\"

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

90 Lbs. and Over

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Adult Oversize

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

40\" - 60\"

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

90 Lbs. and Over

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n `;\r\n\r\n return (\r\n \r\n
\r\n\r\n );\r\n }\r\n\r\n if (product.TextValue === \"Adult Nylon\") {\r\n\r\n const adultNylon = `
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Product Description
\r\n
\r\n
\r\n

\r\n ADULT NYLON,
\r\n ADULT RAPID-DRY\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SizeChestWeight
\r\n
\r\n
\r\n

Small / Medium

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

32\" - 40\"

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

90 Lbs. and Over

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Large / X-Large

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

40\" - 52\"

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

90 Lbs. and Over

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

2X-Large / 3X-Large

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

50\" - 60\"

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

90 Lbs. and Over

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

4X-Large / 7X-Large

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

60\" - 70\"

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

90 Lbs. and Over

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n `;\r\n\r\n return (\r\n \r\n
\r\n\r\n );\r\n }\r\n\r\n\r\n if (product.TextValue === \"Adult Rapid\") {\r\n\r\n const adultRapid = `
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Product Description
\r\n
\r\n
\r\n

\r\n ADULT RAPID-DRY FLEX-BACK\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SizeChestWeight
\r\n
\r\n
\r\n

X-Small

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

28\" - 32\"

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

90 Lbs. and Over

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Small

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

32\" - 36\"

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

90 Lbs. and Over

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Medium

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

36\" - 40\"

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

90 Lbs. and Over

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Large

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

40\" - 44\"

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

90 Lbs. and Over

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

X-Large

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

44\" - 48\"

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

90 Lbs. and Over

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

2X-Large

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

48\" - 52\"

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

90 Lbs. and Over

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

3X-Large

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

52\" - 56\"

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

90 Lbs. and Over

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n `;\r\n\r\n return (\r\n \r\n
\r\n\r\n );\r\n }\r\n\r\n\r\n if (product.TextValue === \"Infant\") {\r\n\r\n const infant = `
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Product Description
\r\n
\r\n
\r\n

\r\n INFANT BABY-SAFE, INFANT NYLON, INFANT RAPID-DRY, INFANT FLEX-BACK, INFANT/CHILD CHARACTER\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SizeChestWeight
\r\n
\r\n
\r\n

Infant

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

- - - -

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Less than 30 Lbs.

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Infant / Child

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

- - - -

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Less Than 50 Lbs.

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n `;\r\n\r\n return (\r\n \r\n
\r\n\r\n );\r\n }\r\n\r\n\r\n return (\r\n null\r\n );\r\n });\r\n }\r\n\r\n private _renderProductCell(product: AttributeValue): JSX.Element | null {\r\n switch (product.DataTypeValue) {\r\n case 0: // none\r\n // Return span here instead of null so the row still shows\r\n return ;\r\n case 1: // Currency\r\n return this._renderCurrencyCell(product);\r\n case 2: // DateTime\r\n return this._renderDateTimeCell(product);\r\n case 3: // Decimal\r\n return this._renderDecimalCell(product);\r\n case 4: // Integer\r\n return this._renderIntegerCell(product);\r\n case 5: // Text\r\n return this._renderTextCell(product);\r\n case 6: // TrueFalse\r\n return this._renderTrueFalseCell(product);\r\n case 40: // Video\r\n this.props.telemetry.warning('Got video specification type, not supported yet so skipping line');\r\n return null;\r\n case 41: // Image\r\n this.props.telemetry.warning('Got image specification type, not supported yet so skipping line');\r\n return null;\r\n default:\r\n this.props.telemetry.warning(`Got unknown specification type ${product.DataTypeValue} so skipping line`);\r\n return null;\r\n }\r\n }\r\n\r\n private _renderCurrencyCell(product: AttributeValue): JSX.Element | null {\r\n if (product.CurrencyValue !== null && product.CurrencyValue !== undefined) {\r\n return (\r\n \r\n {product.CurrencyCode}\r\n {product.CurrencyValue}\r\n \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderDateTimeCell(product: AttributeValue): JSX.Element | null {\r\n if (product.DateTimeOffsetValue !== null && product.DateTimeOffsetValue !== undefined && product.DateTimeOffsetValue.toUTCString) {\r\n return {product.DateTimeOffsetValue.toUTCString()};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderIntegerCell(product: AttributeValue): JSX.Element | null {\r\n if (product.IntegerValue !== null && product.IntegerValue !== undefined) {\r\n return {product.IntegerValue};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderDecimalCell(product: AttributeValue): JSX.Element | null {\r\n if (product.FloatValue !== null && product.FloatValue !== undefined) {\r\n return {product.FloatValue};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderTextCell(product: AttributeValue): JSX.Element | null {\r\n if (product.TextValue !== null && product.TextValue !== undefined) {\r\n // tslint:disable-next-line\r\n return ;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderTrueFalseCell(product: AttributeValue): JSX.Element | null {\r\n // TODO 20369885 setting to default value is needed to work around a platform bug where\r\n // config string value does not get its default value.\r\n if (product.BooleanValue) {\r\n return {this.props.resources.trueValueText ? this.props.resources.trueValueText : 'Yes'};\r\n } else {\r\n return {this.props.resources.falseValueText ? this.props.resources.falseValueText : 'No'};\r\n }\r\n }\r\n}\r\n\r\nexport default ProductSpecification;\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/* tslint:disable: no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IProductSpecificationViewProps } from './absolute-full-charts';\r\n\r\nconst ProductSpecificationView: React.FC = props => {\r\n const { ProductSpecification, ProductSpecificationTableProps, ProductSpecificationTableBodyProps, productSpecificationResult } = props;\r\n\r\n \r\n return (\r\n \r\n
\r\n\r\n \r\n {props.title}\r\n \r\n \r\n
\r\n {productSpecificationResult && productSpecificationResult.map((row) => {\r\n return row;\r\n })}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ProductSpecificationView;\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 { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { IAbsoluteMediaContainerConfig, IAbsoluteMediaContainerProps } from './absolute-media-container.props.autogenerated';\r\n\r\n\r\nexport interface IAbsoluteMediaContainerViewProps extends IAbsoluteMediaContainerProps {\r\n\r\n row2categories?: React.ReactNode[];\r\n Row2List: IModuleProps;\r\n Row2ListItem: INodeProps;\r\n \r\n columnHeading2: string;\r\n \r\n \r\n \r\n}\r\n\r\n\r\n/**\r\n *\r\n * AbsoluteMediaContainer component.\r\n * @extends {React.PureComponent>}\r\n */\r\n class AbsoluteMediaContainer extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n const { config } = this.props;\r\n\r\n const ColumnHeading2 = config.columnHeading2 ? config.columnHeading2 : '';\r\n \r\n\r\n \r\n if (!this.props.slots || !this.props.slots.row2 || this.props.slots.row2.length === 0) {\r\n this.props.context.telemetry.error('row2 is empty, module wont render');\r\n return null;\r\n }\r\n \r\n\r\n\r\n const viewprops = {\r\n ...this.props,\r\n\r\n columnHeading2: ColumnHeading2,\r\n \r\n \r\n \r\n row2categories: this.props.slots.row2,\r\n Row2List: {\r\n moduleProps: this.props,\r\n className: classnames('ff-row', this.props.config.className),\r\n tag: 'div'\r\n },\r\n Row2ListItem: {\r\n className: classnames('ff-row-column', this.props.config.className),\r\n tag: 'div'\r\n },\r\n \r\n \r\n };\r\n\r\n return this.props.renderView(viewprops) as React.ReactElement;\r\n \r\n }\r\n}\r\n\r\nexport default AbsoluteMediaContainer;\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React, { ReactNode } from 'react';\r\n\r\nimport { IAbsoluteMediaContainerViewProps } from './absolute-media-container';\r\n\r\n\r\n\r\n\r\nexport const AbsoluteMediaContainerView: React.FC = props => {\r\n\r\n const { \r\n\r\n row2categories,\r\n Row2List,\r\n Row2ListItem,\r\n columnHeading2\r\n \r\n } = props;\r\n\r\n \r\n return (\r\n\r\n \r\n
\r\n
\r\n\r\n\r\n {row2categories ? (\r\n \r\n {columnHeading2 ? (\r\n
\r\n

{columnHeading2}

\r\n
\r\n ) : null}\r\n
\r\n {row2categories.map((row2category: ReactNode, index: number) => {\r\n return (\r\n \r\n {row2category}\r\n \r\n );\r\n })}\r\n
\r\n
\r\n ) : null}\r\n \r\n
\r\n
\r\n\r\n );\r\n};\r\n\r\nexport default AbsoluteMediaContainerView;\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/* tslint:disable: no-duplicate-imports this is a change */\r\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport classnames from 'classnames';\r\nimport { reaction } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { getAttributesForSelectedVariant } from '@msdyn365-commerce-modules/product-specification';\r\nimport { AttributesForSelectedVariantInput } from '@msdyn365-commerce-modules/product-specification';\r\n\r\n\r\n//import { ProductSpecificationTableRow } from './components/obrien-prop65-table-stucture';\r\nimport { IAbsoluteProp65Data } from './absolute-prop65.data';\r\nimport { IAbsoluteProp65Props } from './absolute-prop65.props.autogenerated';\r\n\r\nexport interface IProductSpecificationViewProps extends IAbsoluteProp65Props<{}> {\r\n ProductSpecification: IModuleProps;\r\n ProductSpecificationTableProps: INodeProps;\r\n ProductSpecificationTableBodyProps: INodeProps;\r\n productSpecificationResult?: (JSX.Element | null)[];\r\n title?: React.ReactNode;\r\n onlinetitle?: React.ReactNode;\r\n \r\n\r\n}\r\n\r\n/**\r\n *\r\n * ProductSpecification component\r\n * @extends {React.Component>}\r\n */\r\n@observer\r\nclass ProductSpecification extends React.Component> {\r\n public async componentDidMount(): Promise {\r\n const { context, data, telemetry } = this.props;\r\n\r\n // @ts-ignore: Compiler not reconizing condition check for function params\r\n reaction(\r\n () => (data.product.result ? data.product.result.RecordId : null),\r\n () => {\r\n if (context && data.product.result) {\r\n //@ts-ignore\r\n const actionInput = new AttributesForSelectedVariantInput(\r\n data.product.result.RecordId,\r\n // @ts-ignore\r\n +context.actionContext.requestContext.apiSettings.channelId,\r\n data.product.result\r\n );\r\n //@ts-ignore\r\n getAttributesForSelectedVariant(actionInput, this.props.context.actionContext).catch(error => {\r\n telemetry.warning(error);\r\n telemetry.debug('Unable to update attributes for Product');\r\n telemetry.error(error);\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n // tslint:disable-next-line:max-func-body-length\r\n public render(): JSX.Element | null {\r\n let data: IAbsoluteProp65Data;\r\n\r\n try {\r\n data = this.props.data;\r\n } catch (e) {\r\n this.props.telemetry.error(`Something went wrong ------${e}`);\r\n //@ts-ignore\r\n return
{e}
;\r\n }\r\n\r\n if (!data.productSpecificationData.result || data.productSpecificationData.result.length <= 0) {\r\n this.props.telemetry.error('Product specification content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n const { className } = this.props.config;\r\n\r\n \r\n\r\n \r\n const { productSpecificationData } = this.props.data;\r\n\r\n const viewProps = {\r\n ...this.props,\r\n \r\n\r\n ProductSpecification: {\r\n moduleProps: this.props,\r\n className: classnames('locally', className)\r\n },\r\n ProductSpecificationTableProps: {\r\n className: classnames('nick-test'),\r\n tag: 'span'\r\n },\r\n ProductSpecificationTableBodyProps: {\r\n className: '',\r\n tag: 'div'\r\n },\r\n //@ts-ignore\r\n productSpecificationResult: productSpecificationData && this._createTableBody(data)\r\n } as IProductSpecificationViewProps;\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n \r\n private _createTableBody(content: IAbsoluteProp65Data): (JSX.Element | null)[] {\r\n //@ts-ignore\r\n return content.productSpecificationData.result!.map((product, index) => {\r\n const cellData: JSX.Element | null = this._renderProductCell(product);\r\n\r\n if (!cellData) {\r\n return null;\r\n }\r\n \r\n if (product.TextValue === \"AO-Di2ethylhexylphthalateDEHP\") {\r\n\r\n const warningOne = `\r\n
\r\n
\r\n

WARNING: This product can expose you to chemicals, including Di(2-ethylhexyl) phthalate (DEHP), which are known to the State of California to cause cancer and birth defects or other reproductive harm. \r\n For more information go to www.P65Warnings.ca.gov.\r\n

\r\n
\r\n
\r\n
\r\n `;\r\n\r\n return (\r\n \r\n
\r\n\r\n );\r\n }\r\n if (product.TextValue === \"AO-DiisonoylphthalateDINP-LEAD\") {\r\n\r\n const warningTwo = `\r\n
\r\n
\r\n

WARNING: This product can expose you to chemicals, including Lead, and Diisononyl phthalate (DINP), which are known to the State of California to cause cancer and birth defects, or other reproductive harm. For more information go to \r\n www.P65Warnings.ca.gov.\r\n

\r\n
\r\n
\r\n
\r\n `;\r\n\r\n return (\r\n \r\n
\r\n\r\n );\r\n }\r\n if (product.TextValue === \"AO-DiisononylphthalateDINP-Di2ethylhexylphthalateDEHP\") {\r\n\r\n const warningThree = `\r\n
\r\n
\r\n

WARNING: This product can expose you to chemicals, including Di(2-ethylhexyl) phthalate (DEHP), and Diisononyl Phthalate (DINP), which are known to the State of California to cause cancer and birth defects or other reproductive harm. For more information go to \r\n www.P65Warnings.ca.gov.\r\n

\r\n
\r\n
\r\n
\r\n `;\r\n\r\n return (\r\n \r\n
\r\n\r\n );\r\n }\r\n if (product.TextValue === \"AO-DiisononylphthalateDINP-DiisodecylphthalateDIDP\") {\r\n\r\n const warningFour = `\r\n
\r\n
\r\n

WARNING: This product can expose you to chemicals including Diisononyl Phthalate (DINP), which is known to the State of California to cause cancer, and Di-isodecyl Phthalate (DIDP), which is known to the State of California to cause birth defects or other reproductive harm. For more information go to\r\n www.P65Warnings.ca.gov.\r\n

\r\n
\r\n
\r\n
\r\n `;\r\n\r\n return (\r\n \r\n
\r\n\r\n );\r\n }\r\n\r\n if (product.TextValue === \"AO-AntimonyoxideAntimonytrioxide\") {\r\n\r\n const warningFive = `\r\n
\r\n
\r\n

WARNING: This product can expose you to chemicals, including Antimony oxide (Antimony trioxide), which are known to the State of California to cause cancer. For more information go to\r\n www.P65Warnings.ca.gov.\r\n

\r\n
\r\n
\r\n
\r\n `;\r\n\r\n return (\r\n \r\n
\r\n\r\n );\r\n }\r\n\r\n if (product.TextValue === \"AO-DiisononylphthalateDINP-Di2ethylhexylphthalateDEHP-DiisodecylphthalateDIDP\") {\r\n\r\n const warningSix = `\r\n
\r\n
\r\n

WARNING: This product can expose you to chemicals, including Di(2-ethylhexyl) phthalate (DEHP), and Diisononyl Phthalate (DINP), and Di-isodecyl phthalate (DIDP), which are known to the State of California to cause cancer and birth defects or other reproductive harm. For more information go to\r\n www.P65Warnings.ca.gov.\r\n

\r\n
\r\n
\r\n
\r\n `;\r\n\r\n return (\r\n \r\n
\r\n\r\n );\r\n }\r\n\r\n if (product.TextValue === \"AO-DiisononylphthalateDINP\") {\r\n\r\n const warningSeven = `\r\n
\r\n
\r\n

WARNING: This product can expose you to chemicals, including Diisononyl Phthalate (DINP), which are known to the State of California to cause cancer. For more information go to\r\n www.P65Warnings.ca.gov.\r\n

\r\n
\r\n
\r\n
\r\n `;\r\n\r\n return (\r\n \r\n
\r\n\r\n );\r\n }\r\n\r\n\r\n\r\n return (\r\n null\r\n );\r\n });\r\n }\r\n\r\n private _renderProductCell(product: AttributeValue): JSX.Element | null {\r\n switch (product.DataTypeValue) {\r\n case 0: // none\r\n // Return span here instead of null so the row still shows\r\n return ;\r\n case 1: // Currency\r\n return this._renderCurrencyCell(product);\r\n case 2: // DateTime\r\n return this._renderDateTimeCell(product);\r\n case 3: // Decimal\r\n return this._renderDecimalCell(product);\r\n case 4: // Integer\r\n return this._renderIntegerCell(product);\r\n case 5: // Text\r\n return this._renderTextCell(product);\r\n case 6: // TrueFalse\r\n return this._renderTrueFalseCell(product);\r\n case 40: // Video\r\n this.props.telemetry.warning('Got video specification type, not supported yet so skipping line');\r\n return null;\r\n case 41: // Image\r\n this.props.telemetry.warning('Got image specification type, not supported yet so skipping line');\r\n return null;\r\n default:\r\n this.props.telemetry.warning(`Got unknown specification type ${product.DataTypeValue} so skipping line`);\r\n return null;\r\n }\r\n }\r\n\r\n private _renderCurrencyCell(product: AttributeValue): JSX.Element | null {\r\n if (product.CurrencyValue !== null && product.CurrencyValue !== undefined) {\r\n return (\r\n \r\n {product.CurrencyCode}\r\n {product.CurrencyValue}\r\n \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderDateTimeCell(product: AttributeValue): JSX.Element | null {\r\n if (product.DateTimeOffsetValue !== null && product.DateTimeOffsetValue !== undefined && product.DateTimeOffsetValue.toUTCString) {\r\n return {product.DateTimeOffsetValue.toUTCString()};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderIntegerCell(product: AttributeValue): JSX.Element | null {\r\n if (product.IntegerValue !== null && product.IntegerValue !== undefined) {\r\n return {product.IntegerValue};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderDecimalCell(product: AttributeValue): JSX.Element | null {\r\n if (product.FloatValue !== null && product.FloatValue !== undefined) {\r\n return {product.FloatValue};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderTextCell(product: AttributeValue): JSX.Element | null {\r\n if (product.TextValue !== null && product.TextValue !== undefined) {\r\n // tslint:disable-next-line\r\n return ;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderTrueFalseCell(product: AttributeValue): JSX.Element | null {\r\n // TODO 20369885 setting to default value is needed to work around a platform bug where\r\n // config string value does not get its default value.\r\n if (product.BooleanValue) {\r\n return {this.props.resources.trueValueText ? this.props.resources.trueValueText : 'Yes'};\r\n } else {\r\n return {this.props.resources.falseValueText ? this.props.resources.falseValueText : 'No'};\r\n }\r\n }\r\n}\r\n\r\nexport default ProductSpecification;\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/* tslint:disable: no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IProductSpecificationViewProps } from './absolute-prop65';\r\n\r\nconst ProductSpecificationView: React.FC = props => {\r\n const { ProductSpecification, ProductSpecificationTableProps, ProductSpecificationTableBodyProps, productSpecificationResult } = props;\r\n\r\n \r\n return (\r\n \r\n
\r\n\r\n \r\n {props.title}\r\n \r\n \r\n
\r\n {productSpecificationResult && productSpecificationResult.map((row) => {\r\n return row;\r\n })}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ProductSpecificationView;\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 { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { IAbsoluteVideoContainerConfig, IAbsoluteVideoContainerProps } from './absolute-video-container.props.autogenerated';\r\n\r\n\r\nexport interface IAbsoluteVideoContainerViewProps extends IAbsoluteVideoContainerProps {\r\n row1categories?: React.ReactNode[];\r\n Row1List: IModuleProps;\r\n Row1ListItem: INodeProps;\r\n columnHeading1: string;\r\n \r\n \r\n \r\n}\r\n\r\n\r\n/**\r\n *\r\n * AbsoluteVideoContainer component.\r\n * @extends {React.PureComponent>}\r\n */\r\n class AbsoluteVideoContainer extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n const { config } = this.props;\r\n\r\n const ColumnHeading1 = config.columnHeading1 ? config.columnHeading1 : '';\r\n \r\n\r\n if (!this.props.slots || !this.props.slots.row1 || this.props.slots.row1.length === 0) {\r\n this.props.context.telemetry.error('row1 is empty, module wont render');\r\n return null;\r\n }\r\n \r\n \r\n\r\n\r\n const viewprops = {\r\n ...this.props,\r\n\r\n columnHeading1: ColumnHeading1,\r\n \r\n \r\n row1categories: this.props.slots.row1,\r\n Row1List: {\r\n moduleProps: this.props,\r\n className: classnames('video-row', this.props.config.className),\r\n tag: 'div'\r\n },\r\n Row1ListItem: {\r\n className: classnames('video-row-column fifty', this.props.config.className),\r\n tag: 'div'\r\n }\r\n \r\n \r\n \r\n };\r\n\r\n return this.props.renderView(viewprops) as React.ReactElement;\r\n \r\n }\r\n}\r\n\r\nexport default AbsoluteVideoContainer;\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React, { ReactNode } from 'react';\r\n\r\nimport { IAbsoluteVideoContainerViewProps } from './absolute-video-container';\r\n\r\n\r\n\r\n\r\nexport const AbsoluteVideoContainerView: React.FC = props => {\r\n\r\n const { \r\n row1categories,\r\n Row1List,\r\n Row1ListItem,\r\n columnHeading1\r\n \r\n } = props;\r\n\r\n \r\n return (\r\n\r\n \r\n
\r\n
\r\n\r\n\r\n {row1categories ? (\r\n \r\n {columnHeading1 ? (\r\n
\r\n

{columnHeading1}

\r\n
\r\n ) : null}\r\n
\r\n {row1categories.map((row1category: ReactNode, index: number) => {\r\n return (\r\n \r\n {row1category}\r\n \r\n );\r\n })}\r\n
\r\n
\r\n ) : null}\r\n \r\n
\r\n
\r\n\r\n );\r\n};\r\n\r\nexport default AbsoluteVideoContainerView;\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\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { ILiquidCategoryImageData } from './liquid-category-image.data';\r\nimport { ILiquidCategoryImageProps } from './liquid-category-image.props.autogenerated';\r\n\r\n\r\nexport interface ILiquidCategoryImageViewProps extends ILiquidCategoryImageProps {\r\n heading?: React.ReactNode;\r\n categoryImage?: React.ReactNode;\r\n imageContainer: INodeProps;\r\n detailsContainer: INodeProps;\r\n headingClass: string;\r\n}\r\n\r\n/**\r\n *\r\n * LiquidCategoryImage component\r\n * @extends {React.PureComponent>}\r\n */\r\n\r\nclass LiquidCategoryImage extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n\r\n const { categoryImage, heading, headingClass } = this.props.config;\r\n\r\n const HeadingClass = headingClass ? headingClass : '';\r\n\r\n const Heading = heading && (\r\n \r\n );\r\n\r\n const imageProps = {\r\n gridSettings: this.props.context.request.gridSettings || {},\r\n imageSettings: categoryImage && categoryImage.imageSettings,\r\n };\r\n\r\n const CategoryImage = categoryImage && (\r\n \r\n );\r\n \r\n const LiquidCategoryImageViewProps = {\r\n ...this.props,\r\n heading: Heading,\r\n headingClass: HeadingClass,\r\n categoryImage: CategoryImage,\r\n imageContainer: { className: 'lf-header-image' },\r\n detailsContainer: { className: 'lf-title' },\r\n };\r\n return this.props.renderView(LiquidCategoryImageViewProps) as React.ReactElement;\r\n }\r\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.heading!.text = event.target.value;\r\n}\r\n\r\nexport default LiquidCategoryImage;\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\nimport { Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from \"react\";\r\nimport { ILiquidCategoryImageViewProps } from \"./liquid-category-image\";\r\n\r\nexport default (props: ILiquidCategoryImageViewProps) => {\r\n const { heading, categoryImage, imageContainer, headingClass } = props;\r\n\r\n \r\n return (\r\n
\r\n {categoryImage}\r\n\r\n {!headingClass ? (\r\n
\r\n
\r\n {heading}\r\n
\r\n
\r\n ) : null}\r\n\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/* tslint:disable: no-duplicate-imports this is a change */\r\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport classnames from 'classnames';\r\nimport { reaction } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { getAttributesForSelectedVariant } from '@msdyn365-commerce-modules/product-specification';\r\nimport { AttributesForSelectedVariantInput } from '@msdyn365-commerce-modules/product-specification';\r\n\r\n//import { ProductSpecificationTableRow } from './components/liquid-upc-table-stucture';\r\nimport { ILiquidUpcData } from './liquid-upc.data';\r\nimport { ILiquidUpcProps } from './liquid-upc.props.autogenerated';\r\n\r\nexport interface IProductSpecificationViewProps extends ILiquidUpcProps<{}> {\r\n ProductSpecification: IModuleProps;\r\n ProductSpecificationTableProps: INodeProps;\r\n ProductSpecificationTableBodyProps: INodeProps;\r\n productSpecificationResult?: (JSX.Element | null)[];\r\n title?: React.ReactNode;\r\n onlinetitle?: React.ReactNode;\r\n buttontext: string;\r\n buttonlink: string;\r\n}\r\n\r\n/**\r\n *\r\n * ProductSpecification component\r\n * @extends {React.Component>}\r\n */\r\n@observer\r\nclass ProductSpecification extends React.Component> {\r\n public async componentDidMount(): Promise {\r\n const { context, data, telemetry } = this.props;\r\n\r\n // @ts-ignore: Compiler not reconizing condition check for function params\r\n reaction(\r\n () => (data.product.result ? data.product.result.RecordId : null),\r\n () => {\r\n if (context && data.product.result) {\r\n //@ts-ignore\r\n const actionInput = new AttributesForSelectedVariantInput(\r\n data.product.result.RecordId,\r\n // @ts-ignore\r\n +context.actionContext.requestContext.apiSettings.channelId,\r\n data.product.result\r\n );\r\n //@ts-ignore\r\n getAttributesForSelectedVariant(actionInput, this.props.context.actionContext).catch(error => {\r\n telemetry.warning(error);\r\n telemetry.debug('Unable to update attributes for Product');\r\n telemetry.error(error);\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n // tslint:disable-next-line:max-func-body-length\r\n public render(): JSX.Element | null {\r\n let data: ILiquidUpcData;\r\n\r\n try {\r\n data = this.props.data;\r\n } catch (e) {\r\n this.props.telemetry.error(`Something went wrong ------${e}`);\r\n return
{e}
;\r\n }\r\n\r\n if (!data.productSpecificationData.result || data.productSpecificationData.result.length <= 0) {\r\n this.props.telemetry.error('Product specification content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n const { heading, className, onlineheading, buttontext, buttonlink } = this.props.config;\r\n\r\n const ButtonText = buttontext ? buttontext : 'No Text';\r\n const ButtonLink = buttonlink ? buttonlink : 'No Link';\r\n\r\n const { productSpecificationData } = this.props.data;\r\n\r\n const viewProps = {\r\n ...this.props,\r\n buttontext: ButtonText,\r\n buttonlink: ButtonLink,\r\n\r\n ProductSpecification: {\r\n moduleProps: this.props,\r\n className: classnames('locally', className)\r\n },\r\n ProductSpecificationTableProps: {\r\n className: classnames('nick-test'),\r\n tag: 'span'\r\n },\r\n ProductSpecificationTableBodyProps: {\r\n className: '',\r\n tag: 'div'\r\n },\r\n title: heading && heading.text && (\r\n \r\n ),\r\n onlinetitle: onlineheading && onlineheading.text && (\r\n \r\n ),\r\n\r\n productSpecificationResult: productSpecificationData && this._createTableBody(data)\r\n } as IProductSpecificationViewProps;\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\r\n public handleOnlineHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\r\n (this.props.config.onlineheading!.text = event.target.value);\r\n private _createTableBody(content: ILiquidUpcData): (JSX.Element | null)[] {\r\n return content.productSpecificationData.result!.map((product, index) => {\r\n const cellData: JSX.Element | null = this._renderProductCell(product);\r\n\r\n if (!cellData) {\r\n return null;\r\n }\r\n\r\n if (product.Name === 'UPC') {\r\n const scriptHtml = ` \r\n \r\n \r\n `;\r\n\r\n return
;\r\n }\r\n\r\n return null;\r\n });\r\n }\r\n\r\n private _renderProductCell(product: AttributeValue): JSX.Element | null {\r\n switch (product.DataTypeValue) {\r\n case 0: // none\r\n // Return span here instead of null so the row still shows\r\n return ;\r\n case 1: // Currency\r\n return this._renderCurrencyCell(product);\r\n case 2: // DateTime\r\n return this._renderDateTimeCell(product);\r\n case 3: // Decimal\r\n return this._renderDecimalCell(product);\r\n case 4: // Integer\r\n return this._renderIntegerCell(product);\r\n case 5: // Text\r\n return this._renderTextCell(product);\r\n case 6: // TrueFalse\r\n return this._renderTrueFalseCell(product);\r\n case 40: // Video\r\n this.props.telemetry.warning('Got video specification type, not supported yet so skipping line');\r\n return null;\r\n case 41: // Image\r\n this.props.telemetry.warning('Got image specification type, not supported yet so skipping line');\r\n return null;\r\n default:\r\n this.props.telemetry.warning(`Got unknown specification type ${product.DataTypeValue} so skipping line`);\r\n return null;\r\n }\r\n }\r\n\r\n private _renderCurrencyCell(product: AttributeValue): JSX.Element | null {\r\n if (product.CurrencyValue !== null && product.CurrencyValue !== undefined) {\r\n return (\r\n \r\n {product.CurrencyCode}\r\n {product.CurrencyValue}\r\n \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderDateTimeCell(product: AttributeValue): JSX.Element | null {\r\n if (product.DateTimeOffsetValue !== null && product.DateTimeOffsetValue !== undefined && product.DateTimeOffsetValue.toUTCString) {\r\n return {product.DateTimeOffsetValue.toUTCString()};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderIntegerCell(product: AttributeValue): JSX.Element | null {\r\n if (product.IntegerValue !== null && product.IntegerValue !== undefined) {\r\n return {product.IntegerValue};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderDecimalCell(product: AttributeValue): JSX.Element | null {\r\n if (product.FloatValue !== null && product.FloatValue !== undefined) {\r\n return {product.FloatValue};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderTextCell(product: AttributeValue): JSX.Element | null {\r\n if (product.TextValue !== null && product.TextValue !== undefined) {\r\n // tslint:disable-next-line\r\n return ;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderTrueFalseCell(product: AttributeValue): JSX.Element | null {\r\n // TODO 20369885 setting to default value is needed to work around a platform bug where\r\n // config string value does not get its default value.\r\n if (product.BooleanValue) {\r\n return {this.props.resources.trueValueText ? this.props.resources.trueValueText : 'Yes'};\r\n } else {\r\n return {this.props.resources.falseValueText ? this.props.resources.falseValueText : 'No'};\r\n }\r\n }\r\n}\r\n\r\nexport default ProductSpecification;\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/* tslint:disable: no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IProductSpecificationViewProps } from './liquid-upc';\r\n\r\nconst ProductSpecificationView: React.FC = props => {\r\n const { ProductSpecification, ProductSpecificationTableProps, ProductSpecificationTableBodyProps, productSpecificationResult, buttontext, buttonlink } = props;\r\n\r\n \r\n return (\r\n \r\n
\r\n\r\n \r\n {props.title}\r\n \r\n \r\n
\r\n
\r\n {productSpecificationResult && productSpecificationResult.map((row) => {\r\n return row;\r\n })}\r\n
\r\n
\r\n
{props.onlinetitle}
\r\n
\r\n {buttontext}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ProductSpecificationView;\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/* tslint:disable: no-duplicate-imports this is a change */\r\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport classnames from 'classnames';\r\nimport { reaction } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { getAttributesForSelectedVariant } from '@msdyn365-commerce-modules/product-specification';\r\nimport { AttributesForSelectedVariantInput } from '@msdyn365-commerce-modules/product-specification';\r\n\r\n\r\n//import { ProductSpecificationTableRow } from './components/obrien-prop65-table-stucture';\r\nimport { IObrienProp65Data } from './obrien-prop65.data';\r\nimport { IObrienProp65Props } from './obrien-prop65.props.autogenerated';\r\n\r\nexport interface IProductSpecificationViewProps extends IObrienProp65Props<{}> {\r\n ProductSpecification: IModuleProps;\r\n ProductSpecificationTableProps: INodeProps;\r\n ProductSpecificationTableBodyProps: INodeProps;\r\n productSpecificationResult?: (JSX.Element | null)[];\r\n title?: React.ReactNode;\r\n onlinetitle?: React.ReactNode;\r\n \r\n\r\n}\r\n\r\n/**\r\n *\r\n * ProductSpecification component\r\n * @extends {React.Component>}\r\n */\r\n@observer\r\nclass ProductSpecification extends React.Component> {\r\n public async componentDidMount(): Promise {\r\n const { context, data, telemetry } = this.props;\r\n\r\n // @ts-ignore: Compiler not reconizing condition check for function params\r\n reaction(\r\n () => (data.product.result ? data.product.result.RecordId : null),\r\n () => {\r\n if (context && data.product.result) {\r\n //@ts-ignore\r\n const actionInput = new AttributesForSelectedVariantInput(\r\n data.product.result.RecordId,\r\n // @ts-ignore\r\n +context.actionContext.requestContext.apiSettings.channelId,\r\n data.product.result\r\n );\r\n //@ts-ignore\r\n getAttributesForSelectedVariant(actionInput, this.props.context.actionContext).catch(error => {\r\n telemetry.warning(error);\r\n telemetry.debug('Unable to update attributes for Product');\r\n telemetry.error(error);\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n // tslint:disable-next-line:max-func-body-length\r\n public render(): JSX.Element | null {\r\n let data: IObrienProp65Data;\r\n\r\n try {\r\n data = this.props.data;\r\n } catch (e) {\r\n this.props.telemetry.error(`Something went wrong ------${e}`);\r\n //@ts-ignore\r\n return
{e}
;\r\n }\r\n\r\n if (!data.productSpecificationData.result || data.productSpecificationData.result.length <= 0) {\r\n this.props.telemetry.error('Product specification content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n const { className } = this.props.config;\r\n\r\n \r\n\r\n \r\n const { productSpecificationData } = this.props.data;\r\n\r\n const viewProps = {\r\n ...this.props,\r\n \r\n\r\n ProductSpecification: {\r\n moduleProps: this.props,\r\n className: classnames('locally', className)\r\n },\r\n ProductSpecificationTableProps: {\r\n className: classnames('nick-test'),\r\n tag: 'span'\r\n },\r\n ProductSpecificationTableBodyProps: {\r\n className: '',\r\n tag: 'div'\r\n },\r\n //@ts-ignore\r\n productSpecificationResult: productSpecificationData && this._createTableBody(data)\r\n } as IProductSpecificationViewProps;\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n \r\n private _createTableBody(content: IObrienProp65Data): (JSX.Element | null)[] {\r\n return content.productSpecificationData.result!.map((product, index) => {\r\n const cellData: JSX.Element | null = this._renderProductCell(product);\r\n\r\n if (!cellData) {\r\n return null;\r\n }\r\n \r\n if (product.TextValue === \"Diisononyl Phthalate\") {\r\n\r\n const warningOne = `

Prop 65 Warning: Diisononyl Phthalate (DINP)

\r\n
\r\n
Why am I being warned about potential exposure to DINP?
\r\n
\r\n
    \r\n
  • DINP is on the Proposition 65 list because it can cause cancer.
  • \r\n
  • Exposure to DINP may increase the risk of cancer.
  • \r\n
  • Proposition 65 requires businesses to determine if they must provide a warning about exposures to listed chemicals.
  • \r\n
\r\n
\r\n
\r\n
\r\n `;\r\n\r\n return (\r\n \r\n
\r\n\r\n );\r\n }\r\n if (product.TextValue === \"DI-N-HEXYL PHTHALATE\") {\r\n\r\n const warningTwo = `

Prop 65 Warning: Di-n-hexyl Phthalate (DnHP)

\r\n
\r\n
Why am I being warned about potential exposure to DnHP?
\r\n
\r\n
    \r\n
  • DnHP is on the Proposition 65 list because it can cause birth defects or other reproductive harm. 
  • \r\n
  • Exposure to DnHP may harm the male and female reproductive systems. 
  • \r\n
  • Proposition 65 requires businesses to determine if they must provide a warning about exposure to listed chemicals.
  • \r\n
\r\n
\r\n
\r\n
\r\n `;\r\n\r\n return (\r\n \r\n
\r\n\r\n );\r\n }\r\n\r\n\r\n return (\r\n null\r\n );\r\n });\r\n }\r\n\r\n private _renderProductCell(product: AttributeValue): JSX.Element | null {\r\n switch (product.DataTypeValue) {\r\n case 0: // none\r\n // Return span here instead of null so the row still shows\r\n return ;\r\n case 1: // Currency\r\n return this._renderCurrencyCell(product);\r\n case 2: // DateTime\r\n return this._renderDateTimeCell(product);\r\n case 3: // Decimal\r\n return this._renderDecimalCell(product);\r\n case 4: // Integer\r\n return this._renderIntegerCell(product);\r\n case 5: // Text\r\n return this._renderTextCell(product);\r\n case 6: // TrueFalse\r\n return this._renderTrueFalseCell(product);\r\n case 40: // Video\r\n this.props.telemetry.warning('Got video specification type, not supported yet so skipping line');\r\n return null;\r\n case 41: // Image\r\n this.props.telemetry.warning('Got image specification type, not supported yet so skipping line');\r\n return null;\r\n default:\r\n this.props.telemetry.warning(`Got unknown specification type ${product.DataTypeValue} so skipping line`);\r\n return null;\r\n }\r\n }\r\n\r\n private _renderCurrencyCell(product: AttributeValue): JSX.Element | null {\r\n if (product.CurrencyValue !== null && product.CurrencyValue !== undefined) {\r\n return (\r\n \r\n {product.CurrencyCode}\r\n {product.CurrencyValue}\r\n \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderDateTimeCell(product: AttributeValue): JSX.Element | null {\r\n if (product.DateTimeOffsetValue !== null && product.DateTimeOffsetValue !== undefined && product.DateTimeOffsetValue.toUTCString) {\r\n return {product.DateTimeOffsetValue.toUTCString()};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderIntegerCell(product: AttributeValue): JSX.Element | null {\r\n if (product.IntegerValue !== null && product.IntegerValue !== undefined) {\r\n return {product.IntegerValue};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderDecimalCell(product: AttributeValue): JSX.Element | null {\r\n if (product.FloatValue !== null && product.FloatValue !== undefined) {\r\n return {product.FloatValue};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderTextCell(product: AttributeValue): JSX.Element | null {\r\n if (product.TextValue !== null && product.TextValue !== undefined) {\r\n // tslint:disable-next-line\r\n return ;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderTrueFalseCell(product: AttributeValue): JSX.Element | null {\r\n // TODO 20369885 setting to default value is needed to work around a platform bug where\r\n // config string value does not get its default value.\r\n if (product.BooleanValue) {\r\n return {this.props.resources.trueValueText ? this.props.resources.trueValueText : 'Yes'};\r\n } else {\r\n return {this.props.resources.falseValueText ? this.props.resources.falseValueText : 'No'};\r\n }\r\n }\r\n}\r\n\r\nexport default ProductSpecification;\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/* tslint:disable: no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IProductSpecificationViewProps } from './obrien-prop65';\r\n\r\nconst ProductSpecificationView: React.FC = props => {\r\n const { ProductSpecification, ProductSpecificationTableProps, ProductSpecificationTableBodyProps, productSpecificationResult } = props;\r\n\r\n \r\n return (\r\n \r\n
\r\n\r\n \r\n {props.title}\r\n \r\n \r\n
\r\n {productSpecificationResult && productSpecificationResult.map((row) => {\r\n return row;\r\n })}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ProductSpecificationView;\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/* tslint:disable: no-duplicate-imports this is a change */\r\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport classnames from 'classnames';\r\nimport { reaction } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { getAttributesForSelectedVariant } from '@msdyn365-commerce-modules/product-specification';\r\nimport { AttributesForSelectedVariantInput } from '@msdyn365-commerce-modules/product-specification';\r\n\r\n\r\n//import { ProductSpecificationTableRow } from './components/obrien-upc-table-stucture';\r\nimport { IObrienUpcData } from './obrien-upc.data';\r\nimport { IObrienUpcProps } from './obrien-upc.props.autogenerated';\r\n\r\nexport interface IProductSpecificationViewProps extends IObrienUpcProps<{}> {\r\n ProductSpecification: IModuleProps;\r\n ProductSpecificationTableProps: INodeProps;\r\n ProductSpecificationTableBodyProps: INodeProps;\r\n productSpecificationResult?: (JSX.Element | null)[];\r\n title?: React.ReactNode;\r\n onlinetitle?: React.ReactNode;\r\n buttontext: string;\r\n buttonlink: string;\r\n\r\n}\r\n\r\n/**\r\n *\r\n * ProductSpecification component\r\n * @extends {React.Component>}\r\n */\r\n@observer\r\nclass ProductSpecification extends React.Component> {\r\n public async componentDidMount(): Promise {\r\n const { context, data, telemetry } = this.props;\r\n\r\n // @ts-ignore: Compiler not reconizing condition check for function params\r\n reaction(\r\n () => (data.product.result ? data.product.result.RecordId : null),\r\n () => {\r\n if (context && data.product.result) {\r\n //@ts-ignore\r\n const actionInput = new AttributesForSelectedVariantInput(\r\n data.product.result.RecordId,\r\n // @ts-ignore\r\n +context.actionContext.requestContext.apiSettings.channelId,\r\n data.product.result\r\n );\r\n //@ts-ignore\r\n getAttributesForSelectedVariant(actionInput, this.props.context.actionContext).catch(error => {\r\n telemetry.warning(error);\r\n telemetry.debug('Unable to update attributes for Product');\r\n telemetry.error(error);\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n // tslint:disable-next-line:max-func-body-length\r\n public render(): JSX.Element | null {\r\n let data: IObrienUpcData;\r\n\r\n try {\r\n data = this.props.data;\r\n } catch (e) {\r\n this.props.telemetry.error(`Something went wrong ------${e}`);\r\n return
{e}
;\r\n }\r\n\r\n if (!data.productSpecificationData.result || data.productSpecificationData.result.length <= 0) {\r\n this.props.telemetry.error('Product specification content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n const { heading, className, onlineheading, buttontext, buttonlink } = this.props.config;\r\n\r\n const ButtonText = buttontext ? buttontext : 'No Text';\r\n const ButtonLink = buttonlink ? buttonlink : 'No Link';\r\n\r\n \r\n const { productSpecificationData } = this.props.data;\r\n\r\n const viewProps = {\r\n ...this.props,\r\n buttontext: ButtonText,\r\n buttonlink: ButtonLink,\r\n\r\n ProductSpecification: {\r\n moduleProps: this.props,\r\n className: classnames('locally', className)\r\n },\r\n ProductSpecificationTableProps: {\r\n className: classnames('nick-test'),\r\n tag: 'span'\r\n },\r\n ProductSpecificationTableBodyProps: {\r\n className: '',\r\n tag: 'div'\r\n },\r\n title: heading && heading.text && (\r\n ),\r\n onlinetitle: onlineheading && onlineheading.text && (\r\n ),\r\n \r\n productSpecificationResult: productSpecificationData && this._createTableBody(data)\r\n } as IProductSpecificationViewProps;\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.heading!.text = event.target.value;\r\n public handleOnlineHeadingChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.onlineheading!.text = event.target.value;\r\n private _createTableBody(content: IObrienUpcData): (JSX.Element | null)[] {\r\n return content.productSpecificationData.result!.map((product, index) => {\r\n const cellData: JSX.Element | null = this._renderProductCell(product);\r\n\r\n if (!cellData) {\r\n return null;\r\n }\r\n\r\n if (product.Name === \"UPC\") {\r\n\r\n const scriptHtml = ` \r\n \r\n \r\n `;\r\n\r\n\r\n\r\n return (\r\n \r\n
\r\n\r\n );\r\n }\r\n\r\n return (\r\n null\r\n );\r\n });\r\n }\r\n\r\n private _renderProductCell(product: AttributeValue): JSX.Element | null {\r\n switch (product.DataTypeValue) {\r\n case 0: // none\r\n // Return span here instead of null so the row still shows\r\n return ;\r\n case 1: // Currency\r\n return this._renderCurrencyCell(product);\r\n case 2: // DateTime\r\n return this._renderDateTimeCell(product);\r\n case 3: // Decimal\r\n return this._renderDecimalCell(product);\r\n case 4: // Integer\r\n return this._renderIntegerCell(product);\r\n case 5: // Text\r\n return this._renderTextCell(product);\r\n case 6: // TrueFalse\r\n return this._renderTrueFalseCell(product);\r\n case 40: // Video\r\n this.props.telemetry.warning('Got video specification type, not supported yet so skipping line');\r\n return null;\r\n case 41: // Image\r\n this.props.telemetry.warning('Got image specification type, not supported yet so skipping line');\r\n return null;\r\n default:\r\n this.props.telemetry.warning(`Got unknown specification type ${product.DataTypeValue} so skipping line`);\r\n return null;\r\n }\r\n }\r\n\r\n private _renderCurrencyCell(product: AttributeValue): JSX.Element | null {\r\n if (product.CurrencyValue !== null && product.CurrencyValue !== undefined) {\r\n return (\r\n \r\n {product.CurrencyCode}\r\n {product.CurrencyValue}\r\n \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderDateTimeCell(product: AttributeValue): JSX.Element | null {\r\n if (product.DateTimeOffsetValue !== null && product.DateTimeOffsetValue !== undefined && product.DateTimeOffsetValue.toUTCString) {\r\n return {product.DateTimeOffsetValue.toUTCString()};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderIntegerCell(product: AttributeValue): JSX.Element | null {\r\n if (product.IntegerValue !== null && product.IntegerValue !== undefined) {\r\n return {product.IntegerValue};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderDecimalCell(product: AttributeValue): JSX.Element | null {\r\n if (product.FloatValue !== null && product.FloatValue !== undefined) {\r\n return {product.FloatValue};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderTextCell(product: AttributeValue): JSX.Element | null {\r\n if (product.TextValue !== null && product.TextValue !== undefined) {\r\n // tslint:disable-next-line\r\n return ;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderTrueFalseCell(product: AttributeValue): JSX.Element | null {\r\n // TODO 20369885 setting to default value is needed to work around a platform bug where\r\n // config string value does not get its default value.\r\n if (product.BooleanValue) {\r\n return {this.props.resources.trueValueText ? this.props.resources.trueValueText : 'Yes'};\r\n } else {\r\n return {this.props.resources.falseValueText ? this.props.resources.falseValueText : 'No'};\r\n }\r\n }\r\n}\r\n\r\nexport default ProductSpecification;\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/* tslint:disable: no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IProductSpecificationViewProps } from './obrien-upc';\r\n\r\nconst ProductSpecificationView: React.FC = props => {\r\n const { ProductSpecification, ProductSpecificationTableProps, ProductSpecificationTableBodyProps, productSpecificationResult, buttontext, buttonlink } = props;\r\n\r\n \r\n return (\r\n \r\n
\r\n\r\n \r\n {props.title}\r\n \r\n \r\n
\r\n
\r\n {productSpecificationResult && productSpecificationResult.map((row) => {\r\n return row;\r\n })}\r\n
\r\n
\r\n
{props.onlinetitle}
\r\n
\r\n {buttontext}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ProductSpecificationView;\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 QRCode from 'qrcode.react';\nimport * as React from 'react';\n\n/**\n * CheckInConfirmation component Properties.\n */\nexport interface ICheckInConfirmationProps {\n /**\n * The confirmation text to show.\n */\n confirmationText: string;\n\n /**\n * Should the order confirmation number shown as QR code or not.\n * If false, the order confirmation number (channel reference ID) will be shown as text.\n */\n shouldShowQrCode: boolean;\n\n /**\n * The label shows for channel reference ID.\n */\n channelReferenceIdLabel: string;\n\n /**\n * The channel reference ID to show. When shouldShowQrCode is true, the ID is shown as QR code, otherwise it is shown as text.\n */\n channelReferenceId?: string;\n}\n\n/**\n * CheckInConfirmation component for showing confirmation information after check-in succeed.\n * @param confirmationProps - The confirmation properties.\n * @param confirmationProps.confirmationText - The confirmation text.\n * @param confirmationProps.shouldShowQrCode - Should the order confirmation number shown as QR code or not.\n * If false, the order confirmation number (channel reference ID) will be shown as text.\n * @param confirmationProps.channelReferenceIdLabel - The label shows for channel reference ID.\n * @param confirmationProps.channelReferenceId - The channel reference ID to show.\n * When shouldShowQrCode is true, the ID is shown as QR code, otherwise it is shown as text.\n * @returns The check-in confirmation component.\n */\nexport const CheckInConfirmationComponent: React.FC = ({\n confirmationText,\n shouldShowQrCode,\n channelReferenceIdLabel,\n channelReferenceId\n}) => {\n return (\n
\n

{confirmationText}

\n {channelReferenceId && (\n

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

\n )}\n {channelReferenceId && shouldShowQrCode && (\n \n \n \n )}\n
\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\n/**\n * Check-in error properties.\n */\nexport interface ICheckInErrorProps {\n errorMessage?: string;\n}\n\n/**\n * Check-in error.\n * @param errorProps - The error properties.\n * @param errorProps.errorMessage - The error message to show.\n * @returns The alert element showing check-in errors.\n */\nexport const CheckInErrorComponent: React.FC = ({ errorMessage }) => {\n if (!errorMessage) {\n return null;\n }\n\n return (\n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IDictionary } from '@msdyn365-commerce/core';\nimport { CommerceProperty, SalesOrdersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\nimport { CheckInConfirmationComponent } from './check-in-confirmation';\nimport { CheckInErrorComponent } from './check-in-error';\nimport { IAdditionalInformationKeysData, ICheckInForPickupConfig, ICheckInForPickupProps } from './check-in-for-pickup.props.autogenerated';\n\n/**\n * The interface representing a piece of additional information data.\n */\ninterface IAdditionalInformation {\n formKey: IAdditionalInformationKeysData;\n value: string;\n}\n\n/**\n * The state for check-in view.\n */\nexport interface ICheckInViewState {\n /**\n * If the module has header error to show.\n */\n isHeaderError: boolean;\n\n /**\n * If the customer has checked in.\n */\n isCheckedIn: boolean;\n\n /**\n * Additional information to capture.\n */\n additionalInformation: IDictionary[];\n}\n\n/**\n * The properties for check-in view.\n */\nexport interface ICheckInViewProps extends ICheckInForPickupProps {\n headerError: React.ReactNode;\n confirmationComponent: React.ReactNode;\n viewState: ICheckInViewState;\n additionalInformationValues: string[];\n checkInForOrderPickup(additionalInformation?: IAdditionalInformation[]): Promise;\n}\n\n/**\n * The state of the CheckInForPickup module.\n */\nexport interface ICheckInForPickupState {\n /**\n * The header error message.\n */\n headerErrorMessage: string;\n\n /**\n * If the customer has checked in successfully.\n */\n isCheckedIn: boolean;\n}\n\n/**\n *\n * CheckIn component.\n * @extends {React.Component, ICheckInForPickupState>}\n */\nclass CheckInForPickup extends React.Component, ICheckInForPickupState> {\n public constructor(props: ICheckInForPickupProps) {\n super(props);\n this.state = {\n headerErrorMessage: '',\n isCheckedIn: false\n };\n }\n\n public render(): JSX.Element | null {\n const isHeaderError: boolean = this.state.headerErrorMessage !== '';\n\n const viewProps = {\n ...this.props,\n headerError: ,\n confirmationComponent: (\n \n ),\n checkInForOrderPickup: this.checkInForOrderPickup,\n additionalInformationValues: this.props.config.additionalInformationKeys\n ? this.props.config.additionalInformationKeys.map(() => {\n return {};\n })\n : undefined,\n viewState: {\n isHeaderError,\n isCheckedIn: this.state.isCheckedIn\n }\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public shouldComponentUpdate(nextProps: ICheckInForPickupProps, nextState: ICheckInForPickupState): boolean {\n if (\n this.props.config.additionalInformationHeading !== nextProps.config.additionalInformationHeading ||\n this.props.config.confirmationText !== nextProps.config.confirmationText\n ) {\n return true;\n }\n if (this.state.headerErrorMessage !== nextState.headerErrorMessage || this.state.isCheckedIn !== nextState.isCheckedIn) {\n return true;\n }\n return false;\n }\n\n public async componentDidMount(): Promise {\n await this._onInit();\n }\n\n /**\n * The async callback for submitting check-in.\n * @param additionalInformationList - The optional additional information captured.\n * @returns The async result.\n */\n public checkInForOrderPickup = async (additionalInformationList?: IAdditionalInformation[]): Promise => {\n const channelId: number = Number.parseInt(this.props.context.request.query!.channelId, 10);\n const channelReferenceId: string = this.props.context.request.query!.channelReferenceId;\n const packingSlipId: string = this.props.context.request.query!.packingSlipId;\n\n const additionalInformationToSubmit: { formKey: string; value: string }[] | undefined = additionalInformationList?.map(\n additionalInformationKeyValuePair => {\n return {\n formKey: additionalInformationKeyValuePair.formKey.resourceId ?? '',\n value: additionalInformationKeyValuePair.value\n };\n }\n );\n const extensionPropertyList: CommerceProperty[] = [];\n if (!ObjectExtensions.isNullOrUndefined(additionalInformationToSubmit)) {\n for (const additionalInformation of additionalInformationToSubmit) {\n extensionPropertyList.push({\n Key: additionalInformation.formKey,\n Value: {\n StringValue: additionalInformation.value\n }\n });\n }\n }\n try {\n await SalesOrdersDataActions.checkInForOrderPickupAsync(\n { callerContext: this.props.context.actionContext, queryResultSettings: {} },\n channelId,\n packingSlipId,\n channelReferenceId,\n extensionPropertyList\n );\n } catch (error) {\n this.state = { headerErrorMessage: this.props.resources.genericErrorMessage, isCheckedIn: false };\n this.props.telemetry.error(error);\n return Promise.resolve();\n }\n this.setState({ headerErrorMessage: '', isCheckedIn: true });\n return Promise.resolve();\n };\n\n /**\n * The action performed on module initialization.\n * @returns The async result.\n */\n private readonly _onInit = async (): Promise => {\n const channelId: number = Number.parseInt(this.props.context.request.query?.channelId ?? '', 10);\n const channelReferenceId: string | undefined = this.props.context.request.query?.channelReferenceId;\n const packingSlipId: string | undefined = this.props.context.request.query?.packingSlipId;\n if (Number.isNaN(channelId) || !channelReferenceId || !packingSlipId) {\n // No error message shown in editor mode.\n if (this.props.context.request.params.isEditor) {\n return Promise.resolve();\n } else if (this.props.context.request.params.isPreview) {\n this.setState({ headerErrorMessage: this.props.resources.requiredParameterMissingErrorMessage });\n } else {\n this.setState({ headerErrorMessage: this.props.resources.genericErrorMessage });\n }\n this.props.context.telemetry.error(\n 'One or more required URL parameters are missing. ' +\n 'Please make sure you have pass in channelId, channelReferenceId and packingSlipId through URL parameter.'\n );\n return Promise.resolve();\n }\n\n const { additionalInformationKeys } = this.props.config;\n\n const hasAdditionalInformation: boolean = ArrayExtensions.hasElements(additionalInformationKeys);\n\n // Call check-in-for-pickup directly if no additional information to capture.\n if (!hasAdditionalInformation) {\n try {\n await SalesOrdersDataActions.checkInForOrderPickupAsync(\n { callerContext: this.props.context.actionContext, queryResultSettings: {} },\n channelId,\n packingSlipId,\n channelReferenceId\n );\n } catch (error) {\n this.setState({ headerErrorMessage: this.props.resources.genericErrorMessage, isCheckedIn: false });\n this.props.telemetry.error(error);\n return Promise.resolve();\n }\n this.setState({ headerErrorMessage: '', isCheckedIn: true });\n }\n return Promise.resolve();\n };\n}\n\nexport default CheckInForPickup;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { FormBuilder } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICheckInViewProps } from './check-in-for-pickup';\n\n/**\n * The check-in view for submitting check-in, capturing additional information, and showing check-in confirmation.\n * @param props - The check-in view properties.\n * @returns The check-in view as a react component.\n */\nconst CheckInViewComponent: React.FC = (props: ICheckInViewProps) => {\n const { headerError, checkInForOrderPickup, confirmationComponent, viewState } = props;\n return (\n <>\n {viewState.isHeaderError && headerError}\n {!viewState.isHeaderError && ArrayExtensions.hasElements(props.config.additionalInformationKeys) && (\n \n )}\n {!viewState.isHeaderError &&\n !ArrayExtensions.hasElements(props.config.additionalInformationKeys) &&\n viewState.isCheckedIn &&\n confirmationComponent}\n \n );\n};\n\nexport default CheckInViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, IPayLoad, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ICookieComplianceAcceptButton {\n acceptCookiesButtonText?: string;\n acceptCookiesButtonAriaLabel?: string;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onClose(): void;\n}\n\nexport const CookieComplianceAcceptButton: React.FC = ({\n acceptCookiesButtonText,\n acceptCookiesButtonAriaLabel,\n telemetryContent,\n onClose\n}) => {\n const payLoad: IPayLoad = getPayloadObject('click', telemetryContent!, 'accept cookies');\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n {acceptCookiesButtonText}\n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IActionLinksData } from '../cookie-compliance.props.autogenerated';\n\nexport interface ICookieComplianceLinks {\n links: IActionLinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * ContentCardLinks component.\n * @extends {React.PureComponent}\n */\nexport class CookieComplianceLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n \n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n \n );\n }\n\n private readonly _mapEditableLinks = (linkdata: IActionLinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n linkdata.forEach((link, index) => {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n };\n}\n\nexport default CookieComplianceLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IAlertProps, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { CookieComplianceAcceptButton, CookieComplianceLinks } from './components';\nimport { ICookieComplianceConfig, ICookieComplianceProps } from './cookie-compliance.props.autogenerated';\n\n/**\n * Alert state interface.\n */\nexport interface IAlertState {\n visible: boolean;\n}\n\n/**\n * Cookie compliance view props interface.\n */\nexport interface ICookieComplianceViewProps extends ICookieComplianceProps<{}> {\n CookieComplianceBanner: IModuleProps;\n AlertProps: IAlertProps;\n Content: INodeProps;\n text?: React.ReactNode;\n links?: React.ReactNode;\n acceptButton?: React.ReactNode;\n className: string;\n onDismiss(): void;\n}\n\n/**\n *\n * CookieCompliance component.\n * @extends {React.PureComponent>}\n */\nclass CookieCompliance extends React.PureComponent, IAlertState> {\n private readonly cookieRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public constructor(props: ICookieComplianceProps) {\n super(props);\n this.state = { visible: false };\n this.cookieRef = React.createRef();\n this._onDismiss = this._onDismiss.bind(this);\n }\n\n public componentDidMount(): void {\n const { context } = this.props;\n\n if (context && context.request && context.request.cookies && !context.request.cookies.isConsentGiven()) {\n this.setState({ visible: true });\n }\n }\n\n public render(): JSX.Element | null {\n const { config, context, resources, telemetry } = this.props;\n const { acceptCookiesButtonText, acceptCookiesAriaLabel } = resources;\n const { visible } = this.state;\n\n const isConsentGiven = context && context.request && context.request.cookies && context.request.cookies.isConsentGiven();\n let moduleConfig: ICookieComplianceConfig;\n\n try {\n moduleConfig = config;\n } catch (error) {\n telemetry.error(`Something went wrong while rendering the alert module ------${error}`);\n return
{error}
;\n }\n\n if (isConsentGiven && !visible) {\n this.props.context.telemetry.error('Cookie Compliance content is empty, module wont render.');\n return null;\n }\n\n if (!MsDyn365.msdyn365Commerce.isBrowser) {\n return <>;\n }\n\n const viewProps = {\n ...this.props,\n onDismiss: this._onDismiss,\n CookieComplianceBanner: {\n moduleProps: this.props,\n className: classnames('ms-cookie-compliance', moduleConfig.className),\n ref: this.cookieRef\n },\n AlertProps: {\n className: 'ms-cookie-compliance__container',\n color: 'white',\n fade: false\n },\n Content: {\n className: 'ms-cookie-compliance__content'\n },\n text: moduleConfig.content && (\n \n ),\n links: ArrayExtensions.hasElements(moduleConfig.actionLinks) && (\n \n ),\n acceptButton: (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles Link content change event.\n * @param linkIndex - Index of link in linkarray.\n * @returns Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: MsDyn365.ContentEditableEvent): void => {\n if (this.props.config.actionLinks?.[linkIndex]) {\n this.props.config.actionLinks[linkIndex].linkText = event.target.value;\n }\n };\n\n /**\n * Handles content change event.\n * @param event - Event.\n */\n public handleContentChange = (event: MsDyn365.ContentEditableEvent): void => {\n this.props.config.content = event.target.value;\n };\n\n private _onDismiss(): void {\n const { context } = this.props;\n\n if (context && context.request && context.request.cookies) {\n context.request.cookies.setConsentCookie();\n location.reload();\n }\n this.setState({ visible: false });\n }\n}\n\nexport default CookieCompliance;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Alert, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICookieComplianceViewProps } from './cookie-compliance';\n\nconst CookieComplianceView: React.FC = props => {\n const { CookieComplianceBanner, AlertProps, Content, acceptButton, text, links } = props;\n\n return (\n \n \n \n {text}\n {links}\n \n {acceptButton}\n \n \n );\n};\nexport default CookieComplianceView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHelp,\n IOrderDetailsViewProps,\n IOrderInformation,\n IOrderSummary,\n IPaymentMethods,\n ISalesLine\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n createdDate,\n count,\n amount,\n channelReferenceId,\n channelName,\n channelAddress\n}) => (\n \n {channelName}\n {channelAddress}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const SalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton, errors }) => (\n \n {salesLine}\n {buyAgainButton}\n {errors}\n \n);\n\nexport const GroupDelivery: React.FC = ({ deliveryProps, heading, count }) => (\n \n {heading}\n {count}\n \n);\n\nexport const Group: React.FC = ({ groupProps, delivery, address, salesLinesProps, salesLines, isCashAndCarryTransaction }) => (\n \n {delivery && }\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n \n {salesLine.data.deliveryType === 'ship' && salesLine.data.shipment ? salesLine.trackingInfo : null}\n \n {!isCashAndCarryTransaction && salesLine.salesStatus}\n \n ))}\n \n )}\n {!delivery.showTimeslot && address}\n {delivery.showTimeslot && (\n \n {address}\n {delivery.pickupDateTimeslot}\n \n )}\n \n \n);\n\nexport const Groups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderSummary: React.FC = ({\n orderSummaryProps,\n heading,\n subtotal,\n shipping,\n tax,\n totalAmount,\n earnedPoints\n}) => (\n \n {heading}\n {subtotal}\n {shipping}\n {tax}\n {totalAmount}\n {earnedPoints}\n \n);\n\nexport const Payment: React.FC = ({ paymentMethodsProps, title, methods }) => (\n \n {title}\n {methods}\n \n);\n\nexport const Help: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\n \n {needHelpLabel}\n {helpLineNumberLabel}\n {contactNumber}\n \n);\n\nconst OrderDetailsView: React.FC = ({\n moduleProps,\n viewModes,\n tableViewActions,\n table,\n heading,\n alert,\n loading,\n orderInfomation,\n orderSummary,\n payment,\n help,\n groups\n}) => {\n return (\n \n {heading}\n {alert}\n {loading}\n {orderInfomation && }\n {tableViewActions}\n {viewModes}\n {table}\n {groups && }\n \n {orderSummary && }\n {payment && }\n \n {help && }\n \n );\n};\n\nexport default OrderDetailsView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IHistogramItemViewProps, IRatingsHistogramViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst RatingsHistogramView: React.FC = props => {\n const { heading, histogramItems, histogramProps, moduleProps } = props;\n return (\n \n {heading}\n \n {histogramItems.map(item => {\n return histogramItem(item);\n })}\n \n \n );\n};\n\nconst histogramItem = (props: IHistogramItemViewProps) => {\n return (\n \n {props.starLabel}\n {props.bar}\n {props.percentage}\n \n );\n};\n\nexport default RatingsHistogramView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Heading, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IHeadingData, IIframeConfig, IIframeProps } from './iframe.props.autogenerated';\n\nexport interface IIframeViewProps extends IIframeProps {\n Heading: React.ReactNode;\n IframeContainer: IModuleProps;\n IFrame: React.ReactNode;\n alert?: React.ReactNode;\n cookieConsentAccepted?: boolean;\n}\n\n/**\n *\n * Iframe component.\n * @extends {React.PureComponent}\n */\nclass Iframe extends React.PureComponent> {\n private readonly iframeRef: React.RefObject;\n\n constructor(props: IIframeProps) {\n super(props);\n this.iframeRef = React.createRef();\n }\n\n public render(): JSX.Element | null {\n const { config, resources } = this.props;\n const isConsentGiven =\n this.props.context.request &&\n this.props.context.request.cookies &&\n this.props.context.request.cookies.isConsentGiven &&\n this.props.context.request.cookies.isConsentGiven();\n\n if (!(config && config.target && config.target.destinationUrl)) {\n return null;\n }\n\n let srcURL;\n try {\n srcURL = new URL(config.target.destinationUrl);\n } catch (error) {\n this.props.telemetry.exception(error);\n return null;\n }\n\n if (srcURL && srcURL.protocol && srcURL.protocol.toLocaleLowerCase() !== 'https:') {\n return null;\n }\n const iframeClassName = classnames('ms-iframe', config.className);\n\n let viewProps: IIframeViewProps = {\n ...(this.props as IIframeProps),\n Heading: this._createHeading(config.heading!),\n IframeContainer: {\n moduleProps: this.props,\n className: iframeClassName\n },\n IFrame: this._createIframe()\n };\n\n if (!isConsentGiven) {\n viewProps = {\n ...viewProps,\n alert: this._renderAlert(resources.cookieConsentRequiredMessage)\n };\n } else {\n viewProps = {\n ...viewProps,\n cookieConsentAccepted: true\n };\n }\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\n if (!heading || !heading.text || heading.text.length === 0) {\n return null;\n }\n\n return ;\n }\n\n private _renderAlert(message: string): React.ReactNode | null {\n return (\n

\n {message}\n

\n );\n }\n\n private _createIframe(): React.ReactNode | null {\n const { config } = this.props;\n const targetURL = config.target.destinationUrl;\n\n return (\n \n );\n }\n}\n\nexport default Iframe;\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 { IIframeViewProps } from './iframe';\n\n/**\n *\n * IFrameView component.\n * @extends {React.PureComponent}\n */\nexport class IFrameView extends React.PureComponent {\n public render(): JSX.Element | null {\n const { Heading, IframeContainer, IFrame, alert, cookieConsentAccepted } = this.props;\n\n return (\n \n {alert}\n {cookieConsentAccepted && cookieConsentAccepted ? (\n <>\n {Heading}\n {IFrame}\n \n ) : null}\n \n );\n }\n}\nexport default IFrameView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ProductSearchResult, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, ObjectExtensions, Random } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps, isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { getCatalogId } from '@msdyn365-commerce/core';\nimport { ProductComparisonItem, ProductComparisonState } from '../product-comparison-state';\nimport { IProductComparisonButtonProps } from './product-comparison-button.props.autogenerated';\n\n/**\n * Represents product comparison view props.\n */\nexport interface IProductComparisonButtonViewProps extends IProductComparisonButtonProps<{}> {\n moduleProps: IModuleProps;\n productComparisonButton?: React.ReactNode;\n productComparisonPreview?: React.ReactNode;\n}\n\n/**\n * Represents the data which is required for the product comparison button to be rendered.\n */\nexport interface IProductComparisonButtonData {}\n\n/**\n * Extended props for the module including info about the product.\n */\nexport interface IProductComparisonButtonFullProps extends IProductComparisonButtonProps {\n product: ProductSearchResult | SimpleProduct;\n catalogId: number;\n}\n\n/**\n * Extended props for the module including info about the product.\n */\nexport interface IProductComparisonButtonState {\n canProductBeAddedToProductComparison: boolean;\n currentProductsCount: number;\n comparisonItemId: string;\n}\n\n/**\n * Represents the component which renders product comparison table.\n */\nexport class ProductComparisonButton extends React.PureComponent {\n private static _productComparisonPreview?: React.ReactNode;\n\n private readonly _className: string;\n\n private readonly _instanceId: string;\n\n private readonly _shouldUsePreview: boolean;\n\n private static _renderProductComparisonPreview(props: IProductComparisonButtonFullProps): React.ReactNode {\n if (!ProductComparisonButton._productComparisonPreview && ArrayExtensions.hasElements(props.slots.productComparisonPreview)) {\n ProductComparisonButton._productComparisonPreview = props.slots.productComparisonPreview[0];\n }\n\n return ProductComparisonButton._productComparisonPreview;\n }\n\n private static _renderProductComparisonButton(\n className: string,\n buttonText: string | undefined,\n title: string,\n onClickHandler?: () => void\n ): React.ReactNode {\n const isDisabled = ObjectExtensions.isNullOrUndefined(onClickHandler);\n let content: React.ReactNode;\n if (buttonText) {\n content = (\n <>\n
\n
{buttonText}
\n \n );\n }\n return (\n \n );\n }\n\n public constructor(props: IProductComparisonButtonFullProps) {\n super(props);\n\n this._className = 'ms-product-comparison-button';\n this._instanceId = `${this._className}-${this.props.id}-${Random.Guid.generateGuid()}`;\n\n this.state = this._getNewState();\n\n this._shouldUsePreview = !ProductComparisonButton._productComparisonPreview;\n ProductComparisonButton._renderProductComparisonPreview(this.props);\n }\n\n public componentDidMount(): void {\n ProductComparisonState.instance(this.props.context.request).listModifiedEvent.subscribe({\n instanceId: this._instanceId,\n\n /**\n * Updates the state in case the state for the particular product was changed.\n */\n handler: () => {\n this.setState(this._getNewState());\n }\n });\n }\n\n public getSnapshotBeforeUpdate(previousProps: Readonly): void {\n if (previousProps.product.RecordId !== this.props.product.RecordId || previousProps.catalogId !== this.props.catalogId) {\n this.setState(this._getNewState());\n }\n }\n\n public componentWillUnmount(): void {\n ProductComparisonState.instance(this.props.context.request).listModifiedEvent.unsubscribe(this._instanceId);\n }\n\n public render(): React.ReactNode | null {\n const isConsentGiven = this.props.context.request.cookies.isConsentGiven();\n if (!isConsentGiven) {\n return null;\n }\n\n const viewProps: IProductComparisonButtonViewProps = {\n ...this.props,\n moduleProps: {\n moduleProps: this.props,\n className: this._className\n }\n };\n\n if (this._shouldUsePreview) {\n viewProps.productComparisonPreview = ProductComparisonButton._productComparisonPreview;\n }\n\n const buttonClassName = this.props.config.shouldDisplayText ? `${this._className}__button` : `${this._className}__icon`;\n\n if (!this.state.canProductBeAddedToProductComparison) {\n const buttonText = this.props.config.shouldDisplayText ? this.props.resources.removeFromComparisonButtonText : undefined;\n viewProps.productComparisonButton = ProductComparisonButton._renderProductComparisonButton(\n classnames(`${buttonClassName}__removing`, buttonClassName),\n buttonText,\n this.props.resources.removeFromComparisonButtonText,\n this._removeFromProductComparison\n );\n return this.props.renderView(viewProps);\n }\n\n const productsLimit = this._getProductsLimit();\n if (!ObjectExtensions.isNullOrUndefined(productsLimit) && productsLimit <= this.state.currentProductsCount) {\n const buttonText = this.props.config.shouldDisplayText ? this.props.resources.addToComparisonLimitReachedButtonText : undefined;\n viewProps.productComparisonButton = ProductComparisonButton._renderProductComparisonButton(\n buttonClassName,\n buttonText,\n this.props.resources.addToComparisonLimitReachedButtonText\n );\n return this.props.renderView(viewProps);\n }\n\n const buttonText = this.props.config.shouldDisplayText ? this.props.resources.addToComparisonButtonText : undefined;\n viewProps.productComparisonButton = ProductComparisonButton._renderProductComparisonButton(\n buttonClassName,\n buttonText,\n this.props.resources.addToComparisonButtonText,\n this._addToProductComparison\n );\n return this.props.renderView(viewProps);\n }\n\n private _getProductsLimit(): number | undefined | null {\n const viewport = isMobile({ variant: VariantType.Browser, context: this.props.context.request });\n if (viewport === 'xs' || viewport === 'sm') {\n return this.props.context.app.config.productComparisonMobileProductsLimit;\n }\n return this.props.context.app.config.productComparisonDesktopProductsLimit;\n }\n\n /**\n * Adds current product to a product comparison list.\n */\n private readonly _addToProductComparison: () => void = () => {\n const item = new ProductComparisonItem(this.props.product.RecordId, this.props.catalogId);\n ProductComparisonState.instance(this.props.context.request).addItem(item);\n };\n\n /**\n * Removes current product from the product comparison list where it was added earlier.\n */\n private readonly _removeFromProductComparison: () => void = () => {\n ProductComparisonState.instance(this.props.context.request).removeItemById(this.state.comparisonItemId);\n };\n\n private _getProdutComparisonDataByCatalogId(): ProductComparisonItem[] {\n const items = ProductComparisonState.instance(this.props.context.request).items;\n const catalogId = getCatalogId(this.props.context.request);\n const productByCatalogId = items?.filter(product => product.catalogId === catalogId) ?? [];\n return productByCatalogId;\n }\n\n /**\n * Retrieves the state of the component based on the comparison data.\n * @returns State object for the component.\n */\n private readonly _getNewState: () => IProductComparisonButtonState = () => {\n const comparisonItemId = ProductComparisonItem.getItemId(this.props.product.RecordId, this.props.catalogId);\n const products = this._getProdutComparisonDataByCatalogId();\n return {\n comparisonItemId,\n canProductBeAddedToProductComparison: !ProductComparisonState.instance(this.props.context.request).hasItemById(\n comparisonItemId\n ),\n currentProductsCount: products.length\n };\n };\n}\n\nexport default ProductComparisonButton;\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 { IProductComparisonButtonViewProps } from './product-comparison-button';\n\n/**\n * Represents product comparison button view.\n * @param props - View props for product comparison button.\n * @returns Functional component of product comparison button.\n */\nexport const ProductComparisonButtonViewFunctionalComponent: React.FC = props => {\n const { productComparisonButton, productComparisonPreview } = props;\n\n return (\n \n {productComparisonButton}\n {productComparisonPreview}\n \n );\n};\n\nexport default ProductComparisonButtonViewFunctionalComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getRichTextHtml } from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\n/**\n * Product specification table row.\n */\nexport interface IProductSpecificationTableRow {\n productName?: string;\n cellData?: React.ReactNode;\n className?: string;\n}\n\n/**\n * Product specification table row component.\n * @param props - For product specification table row.\n * @param props.productName - Product name.\n * @param props.cellData - Cell data.\n * @param props.className - Class name.\n * @returns - Returns JSX element.\n */\nexport const ProductSpecificationTableRow: React.FC = ({ productName, cellData, className }) => (\n \n \n {/* eslint-disable-next-line react/no-danger */}\n \n \n {cellData}\n \n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { Drawer, IModuleProps, INodeProps, Module } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { AttributesForSelectedVariantInput, getAttributesForSelectedVariant } from '../..';\nimport { ProductSpecificationTableRow } from './components/product-specification-table-stucture';\nimport { IProductSpecificationData } from './product-specification.data';\nimport { displayStyle, IProductSpecificationProps } from './product-specification.props.autogenerated';\n\n/**\n * Maintain Drawer State.\n */\nexport interface IProductSpecificationState {\n isDrawerOpen: boolean;\n drawerListId: number | undefined;\n}\n\n/**\n * Product specification view props.\n */\nexport interface IProductSpecificationViewProps extends IProductSpecificationProps<{}> {\n ProductSpecification: IModuleProps;\n ProductSpecificationTableProps: INodeProps;\n ProductSpecificationTableBodyProps: INodeProps;\n productSpecificationResult?: (JSX.Element | null)[];\n title?: React.ReactNode;\n isAccrodion?: boolean;\n handleText?(event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * Check for display style either accordion or table.\n */\nexport interface IProductSpecificationExtentedProps extends IProductSpecificationProps {\n displayStyle?: displayStyle;\n}\n\n/**\n *\n * ProductSpecification component.\n * @extends {React.Component>}\n */\n@observer\nclass ProductSpecification extends React.Component {\n public constructor(props: IProductSpecificationExtentedProps) {\n super(props);\n this.state = {\n isDrawerOpen: false,\n drawerListId: undefined\n };\n }\n\n public async componentDidMount(): Promise {\n const { context, data, telemetry } = this.props;\n const catalogId = Msdyn365.getCatalogId(this.props.context.request);\n reaction(\n () => (data.product.result ? data.product.result.RecordId : null),\n () => {\n if (context && data.product.result) {\n const actionInput = new AttributesForSelectedVariantInput(\n data.product.result.RecordId,\n\n +context.actionContext.requestContext.apiSettings.channelId,\n data.product.result,\n catalogId\n );\n\n getAttributesForSelectedVariant(actionInput, this.props.context.actionContext).catch((error: Error) => {\n telemetry.error(error.message);\n telemetry.debug('Unable to update attributes for Product');\n telemetry.error(error.message);\n });\n }\n }\n );\n }\n\n public shouldComponentUpdate(nextProps: IProductSpecificationExtentedProps, nextState: IProductSpecificationState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n let data: IProductSpecificationData;\n try {\n data = this.props.data;\n } catch (error) {\n this.props.telemetry.error(`Something went wrong ------${error}`);\n return
{error}
;\n }\n\n if (!data.productSpecificationData.result || data.productSpecificationData.result.length <= 0) {\n this.props.telemetry.error('Product specification content is empty, module wont render.');\n return null;\n }\n\n const { heading, className } = this.props.config;\n const { productSpecificationData } = this.props.data;\n const isAccrodion = this.props.config.displayStyle === displayStyle.accordion;\n const viewProps = {\n ...this.props,\n handleText: this.handleHeadingChange,\n ProductSpecification: {\n moduleProps: this.props,\n className: classnames('ms-product-specification', className)\n },\n ProductSpecificationTableProps: isAccrodion\n ? {\n moduleProps: this.props,\n className: classnames('ms-product-specification__accordion', className)\n }\n : {\n className: classnames('ms-product-specification__table table-striped table-bordered'),\n tag: 'table'\n },\n isAccrodion,\n ProductSpecificationTableBodyProps: isAccrodion\n ? {}\n : {\n className: '',\n tag: 'tbody'\n },\n title: heading?.text && (\n \n ),\n\n productSpecificationResult: isAccrodion\n ? productSpecificationData && this._createDrawerBody(data)\n : productSpecificationData && this._createTableBody(data)\n } as IProductSpecificationViewProps;\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handle Heading Text Change.\n * @param event - Current event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n private _createTableBody(content: IProductSpecificationData): (JSX.Element | null)[] {\n return content.productSpecificationData.result!.map((product, index) => {\n const cellData: JSX.Element | null = this._renderProductCell(product);\n\n if (!cellData) {\n return null;\n }\n\n return (\n \n );\n });\n }\n\n private _createDrawerBody(content: IProductSpecificationData): (JSX.Element | null)[] {\n const accordionItemContainer: IModuleProps = {\n moduleProps: this.props,\n className: 'ms-product-specification-title'\n };\n return content.productSpecificationData.result!.map(product => {\n const cellData: JSX.Element | null = this._renderProductCell(product);\n if (!cellData) {\n return null;\n }\n return (\n \n \n
{cellData}
\n \n
\n );\n });\n }\n\n private readonly _toggle = (drawerListId: number | undefined) => (): void => {\n if (this.state.drawerListId !== drawerListId) {\n this.setState({ drawerListId, isDrawerOpen: true });\n } else {\n this.setState({ drawerListId: undefined, isDrawerOpen: false });\n }\n };\n\n private _renderProductCell(product: AttributeValue): JSX.Element | null {\n switch (product.DataTypeValue) {\n case 0: // None\n // Return span here instead of null so the row still shows\n return ;\n case 1: // Currency\n return this._renderCurrencyCell(product);\n case 2: // DateTime\n return this._renderDateTimeCell(product);\n case 3: // Decimal\n return this._renderDecimalCell(product);\n case 4: // Integer\n return this._renderIntegerCell(product);\n case 5: // Text\n return this._renderTextCell(product);\n case 6: // TrueFalse\n return this._renderTrueFalseCell(product);\n case 40: // Video\n this.props.telemetry.warning('Got video specification type, not supported yet so skipping line');\n return null;\n case 41: // Image\n this.props.telemetry.warning('Got image specification type, not supported yet so skipping line');\n return null;\n default:\n this.props.telemetry.warning(`Got unknown specification type ${product.DataTypeValue} so skipping line`);\n return null;\n }\n }\n\n private _renderCurrencyCell(product: AttributeValue): JSX.Element | null {\n if (product.CurrencyValue !== null && product.CurrencyValue !== undefined) {\n return (\n \n {product.CurrencyCode}\n {product.CurrencyValue}\n \n );\n }\n\n return null;\n }\n\n private _renderDateTimeCell(product: AttributeValue): JSX.Element | null {\n if (product.DateTimeOffsetValue?.toUTCString) {\n return {product.DateTimeOffsetValue.toUTCString()};\n }\n\n return null;\n }\n\n private _renderIntegerCell(product: AttributeValue): JSX.Element | null {\n if (product.IntegerValue !== null && product.IntegerValue !== undefined) {\n return {product.IntegerValue};\n }\n\n return null;\n }\n\n private _renderDecimalCell(product: AttributeValue): JSX.Element | null {\n if (product.FloatValue !== null && product.FloatValue !== undefined) {\n return {product.FloatValue};\n }\n\n return null;\n }\n\n private _renderTextCell(product: AttributeValue): JSX.Element | null {\n if (product.TextValue !== null && product.TextValue !== undefined) {\n // eslint-disable-next-line react/no-danger\n return ;\n }\n\n return null;\n }\n\n private _renderTrueFalseCell(product: AttributeValue): JSX.Element | null {\n // TODO 20369885 setting to default value is needed to work around a platform bug where\n // config string value does not get its default value.\n if (product.BooleanValue) {\n return {this.props.resources.trueValueText ? this.props.resources.trueValueText : 'Yes'};\n }\n return {this.props.resources.falseValueText ? this.props.resources.falseValueText : 'No'};\n }\n}\n\nexport default ProductSpecification;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IProductSpecificationViewProps } from './product-specification';\n\nconst ProductSpecificationView: React.FC = props => {\n const { ProductSpecification, ProductSpecificationTableProps, ProductSpecificationTableBodyProps, productSpecificationResult } = props;\n const rowdata =\n productSpecificationResult &&\n ArrayExtensions.hasElements(productSpecificationResult) &&\n productSpecificationResult.filter(row => !ObjectExtensions.isNullOrUndefined(row));\n\n return rowdata && ArrayExtensions.hasElements(rowdata) ? (\n \n {props.title}\n \n {rowdata}\n \n \n ) : null;\n};\n\nexport default ProductSpecificationView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync } from '@msdyn365-commerce/core';\nimport { IB2bRequestsStatusViewProps } from '@msdyn365-commerce-modules/account-management';\nimport { Button, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { IB2bRequestsStatusProps, IB2bRequestsStatusResources } from '../definition-extensions/b2b-requests-status.ext.props.autogenerated';\n\n/**\n * B2b Request status View.\n * @param props - The view props.\n * @returns The JSX Element.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\nconst B2bRequestsStatusView: React.FC> = props => {\n const { b2bRequestsStatus, heading, table } = props;\n const { continueShoppingButtonTitle } = props.resources;\n const initialCount = 0;\n\n if (props.data.operationRequests.result?.length === initialCount) {\n return (\n \n {heading}\n \n
\n

{props.resources.headingForEmptyRequestStatus}

\n

{props.resources.textForEmptyRequestStatus}

\n \n \n {continueShoppingButtonTitle}\n \n \n
\n
\n
\n );\n }\n return (\n \n {heading}\n {table}\n \n );\n};\n\nexport default B2bRequestsStatusView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n ICartLineItemViewProps,\n ICartlinesViewProps,\n ICartResources,\n ICartViewProps,\n IOrderSummaryErrors\n} from '@msdyn365-commerce-modules/cart';\nimport { IInvoiceSummaryLines } from '@msdyn365-commerce-modules/invoice-payment-summary';\nimport { IOrderSummaryLines } from '@msdyn365-commerce-modules/order-summary-utilities';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent,\n Node,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICartProps as ICartExtensionProps } from '../definition-extensions/cart.ext.props.autogenerated';\n\n/**\n * Toggle Bopis Function.\n * @param cartLine -CartLine.\n * @param isBopisSelected -Boolean.\n * @returns Toggle Bopis.\n */\nconst toggleBopisHandler = (cartLine: ICartlinesViewProps, isBopisSelected: boolean) => () => {\n cartLine.pickUpInStore?.callbacks.toggleBopis(!isBopisSelected);\n};\n\n/**\n * Change Store Function.\n * @param cartLine -CartLine.\n * @returns Toggle Bopis.\n */\nconst onChangeStoreHandler = (cartLine: ICartlinesViewProps) => () => {\n cartLine.pickUpInStore?.callbacks.toggleBopis(true);\n};\n\n/**\n * Render Bopis block.\n * @param cartLine - The cart line view props.\n * @param resources - Module resource strings.\n * @param storeSelector - Store selector element.\n * @param telemetryContent - The telemetry object.\n * @param emailDeliveryModeCode - The email delivery mode code.\n * @returns JSX Element.\n */\nconst renderBopisBlock = (\n cartLine: ICartlinesViewProps,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent,\n emailDeliveryModeCode?: string\n): JSX.Element | null => {\n // If it is electronic item cart line, then return null for BOPISBlock.\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\n return null;\n }\n\n const {\n shipInsteadDisplayText,\n shipToAddressDisplayText,\n pickItUpDisplayText,\n pickUpAtStoreWithLocationText,\n changeStoreDisplayText\n } = resources;\n\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n
\n {isBopisSelected ? (\n {pickUpAtStoreWithLocationText}\n ) : (\n {shipToAddressDisplayText}\n )}\n
\n {isBopisSelected && (\n
\n {cartLine.pickUpInStore.orgUnitName}\n \n
\n )}\n \n {isBopisSelected ? shipInsteadDisplayText : pickItUpDisplayText}\n \n
\n );\n};\n\n/**\n * Render Bopis block.\n * @param cartLine - The cart line view props.\n * @param resources - Module resource strings.\n * @param storeSelector - Store selector element.\n * @param telemetryContent - The telemetry object.\n * @param emailDeliveryModeCode - The email delivery mode code.\n * @returns JSX Element.\n */\nconst renderGroupBopisBlock = (\n cartLine: ICartlinesViewProps,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent,\n emailDeliveryModeCode?: string\n): JSX.Element | null => {\n // If it is electronic item cart line, then return null for GroupBOPISBlock.\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\n return null;\n }\n\n const { changeStoreDisplayText, shipInsteadDisplayText, pickItUpDisplayText } = resources;\n\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n <>\n {isBopisSelected ? (\n \n ) : null}\n \n {isBopisSelected ? shipInsteadDisplayText : pickItUpDisplayText}\n \n \n );\n};\n\n/**\n * Render Cart Lines.\n * @param cartLine - The cart line view props.\n * @param resources - Module resource strings.\n * @param storeSelector - Store selector element.\n * @param telemetryContent - The telemetry object.\n * @param isMultiplePickUp - FLag to check if there multiple pickups.\n * @param emailDeliveryModeCode - The email delivery mode code.\n * @returns JSX Element.\n */\nconst renderCartLine = (\n cartLine: ICartlinesViewProps,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent,\n isMultiplePickUp?: boolean,\n emailDeliveryModeCode?: string\n): JSX.Element => {\n if (cartLine.error === resources.outOfStockErrorMessage) {\n return (\n \n {cartLine.addToWishlist}\n {cartLine.remove}\n \n );\n }\n\n if (isMultiplePickUp) {\n return (\n \n {renderGroupBopisBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n );\n }\n\n if (cartLine.addToOrderTemplate) {\n return (\n \n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n );\n }\n\n return (\n \n {cartLine.addToWishlist}\n {cartLine.remove}\n \n );\n};\n\n/**\n * Render Cart Lines.\n * @param cartLines - The cart line view props.\n * @param resources - Module resource strings.\n * @param storeSelector - Store selector element.\n * @param telemetryContent - The telemetry object.\n * @param isMultiplePickUp - Flag to check if there multiple pickups.\n * @param emailDeliveryModeCode - The email delivery mode code.\n * @returns JSX Element.\n */\nconst renderCartlinesInternal = (\n cartLines: ICartlinesViewProps[],\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent,\n isMultiplePickUp?: boolean,\n emailDeliveryModeCode?: string\n): JSX.Element[] | JSX.Element => {\n return cartLines.map((cartLine, index) => {\n const itemIndex = index;\n return (\n
\n {cartLine.cartline}\n \n {isMultiplePickUp\n ? null\n : renderBopisBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {renderCartLine(cartLine, resources, storeSelector, telemetryContent, isMultiplePickUp, emailDeliveryModeCode)}\n \n
\n );\n });\n};\n\n/**\n * Render Cart Lines.\n * @param props - The cart line props.\n * @param cartLines - The cart line view props.\n * @param resources - Module resource strings.\n * @param storeSelector - Store selector element.\n * @param waitingComponent - Waiting component element.\n * @param cartLoadingStatus - Cart loading status string.\n * @param isCartDataResult - Flag to check if there is cart data.\n * @param telemetryContent - The telemetry object.\n * @param isMultiplePickUp - Flag to check if there multiple pickups.\n * @param emailDeliveryModeCode - The email delivery mode code.\n * @returns JSX Element.\n */\nconst renderCartlines = (\n props: ICartViewProps & ICartExtensionProps<{}>,\n cartLines: ICartlinesViewProps[] | undefined,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n waitingComponent: React.ReactNode,\n cartLoadingStatus: string,\n isCartDataResult: boolean,\n telemetryContent?: ITelemetryContent,\n isMultiplePickUp?: boolean,\n emailDeliveryModeCode?: string\n): JSX.Element[] | JSX.Element => {\n if (cartLoadingStatus) {\n return <>{cartLoadingStatus};\n }\n\n // Props.CartlinesWrapper is only required on cart lines and when multiple pickup mode is disabled. This is also required to handle the empty cart styling.\n // Else, empty cart multiple pickup mode is disabled falls under the other cart line wrapper which is creating issue with Empty cart scenario.\n if (cartLines) {\n return props.multiplePickUpEnabled ? (\n renderCartlinesInternal(cartLines, resources, storeSelector, telemetryContent, isMultiplePickUp, emailDeliveryModeCode)\n ) : (\n \n {renderCartlinesInternal(cartLines, resources, storeSelector, telemetryContent, isMultiplePickUp, emailDeliveryModeCode)}\n \n );\n }\n\n return isCartDataResult ? (\n
\n
{props.slots.emptyCart}
\n
\n ) : (\n <>{waitingComponent}\n );\n};\n\n/**\n * Render Cart Lines group title.\n * @param cartLine - The cart line view props.\n * @param resources - Module resource strings.\n * @param count - Count of products.\n * @returns JSX Element.\n */\nconst renderCartLinesGroupTitle = (cartLine: ICartlinesViewProps, resources: ICartResources, count: number) => {\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\n const { itemLabel, itemsLabel } = resources;\n const itemCountOne: number = 1;\n const suffix = count > itemCountOne ? itemsLabel : itemLabel;\n const countTitle = `(${count} ${suffix})`;\n return (\n <>\n \n {isBopisSelected ? (\n

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

\n ) : null}\n

{countTitle}

\n
\n \n );\n};\n\n/**\n * Render Cart Lines group title.\n * @param cartLine - The cart line view props.\n * @param resources - Module resource strings.\n * @param count - Count of products.\n * @param emailDeliveryModeCode - The email delivery mode code.\n * @returns JSX Element.\n */\nconst renderCartLinesGroupHeader = (\n cartLine: ICartlinesViewProps,\n resources: ICartResources,\n count: number,\n emailDeliveryModeCode?: string\n) => {\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\n const { pickUpText, shippingText, emailshippingText } = resources;\n let groupTitle: string;\n\n groupTitle = isBopisSelected ? pickUpText : shippingText;\n groupTitle = cartLine.data && cartLine.data.cartline.DeliveryMode === emailDeliveryModeCode ? emailshippingText : groupTitle;\n\n return (\n <>\n
\n

\n

{groupTitle}

\n {renderCartLinesGroupTitle(cartLine, resources, count)}\n
\n \n );\n};\n\n/**\n * Returns count of products.\n * @param cartLine - The cart line view props.\n * @returns Number of products.\n */\nconst countItems = (cartLine: ICartlinesViewProps[]): number => {\n let countItem = 0;\n const defaultItemCount = 0;\n countItem = cartLine.reduce((count, item) => {\n return count + (item.data?.cartline.Quantity ?? defaultItemCount);\n }, defaultItemCount);\n return countItem;\n};\n\n/**\n * Render Cart Lines group.\n * @param props - The cart line view props.\n * @param resources - Module resource strings.\n * @returns JSX Element.\n */\nconst renderCartLinesGroup = (props: ICartViewProps & ICartExtensionProps<{}>, resources: ICartResources): JSX.Element | undefined => {\n if (props.cartLinesGroup && ArrayExtensions.hasElements(props.cartLinesGroup)) {\n return (\n
\n {props.cartLinesGroup.map(cartlines => {\n return (\n
\n {renderCartLinesGroupHeader(\n cartlines[0],\n resources,\n countItems(cartlines),\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n {renderCartlines(\n props,\n cartlines,\n props.resources,\n props.storeSelector,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult,\n props.telemetryContent,\n props.multiplePickUpEnabled,\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n
\n );\n })}\n
\n );\n }\n return props.cartDataResult ? (\n
\n
{props.slots.emptyCart}
\n
\n ) : (\n <>{props.waitingComponent}\n );\n};\n\n/**\n * Render error block.\n * @param errorData - Error component.\n * @returns JSX Element.\n */\nconst renderErrorBlock = (errorData: IOrderSummaryErrors | undefined): JSX.Element | null => {\n if (!errorData || !ArrayExtensions.hasElements(errorData.errors)) {\n return null;\n }\n return (\n \n {errorData.header}\n {errorData.errors}\n \n );\n};\n\n/**\n * Render invoice summary.\n * @param invoiceSummaryLines - Invoice summary component.\n * @param orderSummaryItems - Order summary component.\n * @param props - The module props.\n * @returns JSX Element.\n */\nconst renderInvoiceSummarylines = (\n invoiceSummaryLines: IInvoiceSummaryLines | undefined,\n orderSummaryItems: INodeProps,\n props: ICartViewProps\n): JSX.Element | null => {\n if (!invoiceSummaryLines) {\n props.context.telemetry.error('InvoiceSummary content is empty, module wont render');\n return null;\n }\n return (\n \n {invoiceSummaryLines.invoices}\n {invoiceSummaryLines.giftCard}\n {invoiceSummaryLines.loyalty}\n {invoiceSummaryLines.orderTotal}\n \n );\n};\n\n/**\n * Render order summary.\n * @param orderSummaryLines - Order summary component.\n * @param orderSummaryItems - Order summary items component.\n * @param props - The module props.\n * @returns JSX Element.\n */\nconst renderOrderSummarylines = (\n orderSummaryLines: IOrderSummaryLines | undefined,\n orderSummaryItems: INodeProps,\n props: ICartViewProps\n): JSX.Element | null => {\n if (!orderSummaryLines) {\n props.context.telemetry.error('OrderSummary content is empty, module wont render');\n return null;\n }\n return (\n \n {orderSummaryLines.subtotal}\n {orderSummaryLines.totalDiscounts ? orderSummaryLines.totalDiscounts : null}\n {orderSummaryLines.shipping}\n {orderSummaryLines.otherCharge}\n {orderSummaryLines.tax}\n {orderSummaryLines.orderTotal}\n \n );\n};\n\n/**\n * Render error block.\n * @param promotions - The module view props.\n * @returns JSX Element.\n */\nconst renderPromotions = (promotions: ICartLineItemViewProps): JSX.Element | undefined => {\n return (\n <>\n \n {promotions.promotionMessage}\n {promotions.promotionSeeAllLink}\n {promotions.promotionDialog}\n \n \n );\n};\n\n/**\n * Render order summary checkout.\n * @param props - The module view props.\n * @returns JSX Element.\n */\nconst renderOrderSummaryCheckout = (props: ICartViewProps): JSX.Element | undefined => {\n return (\n \n {props.cart?.hasInvoiceLine ? null : props.promoCode}\n \n {props.checkoutAsSignInUserButton}\n {props.checkoutAsGuestButton}\n {props.expressCheckoutButton && ArrayExtensions.hasElements(props.expressCheckoutButton) ? (\n {props.expressCheckoutButton}\n ) : null}\n \n {props.createTemplateFromCartButton}\n \n );\n};\n\n/**\n * Render order summary checkout button.\n * @param props - The module view props.\n * @returns JSX Element.\n */\nconst renderOrderSummaryCheckoutButton = (props: ICartViewProps): JSX.Element | undefined => {\n return (\n \n {props.checkoutAsSignInUserButton}\n {props.checkoutAsGuestButton}\n \n );\n};\n\n/**\n * Render cart view.\n * @param props - The module view props.\n * @returns JSX Element.\n */\nconst CartView: React.FC> = (props: ICartViewProps & ICartExtensionProps<{}>) => {\n const totalItemCountOne: number = 1;\n const updatedTitle = (\n

\n {props.resources.cartTitle}\n \n {` (${Number(props.cart?.totalItemsInCart)} ${props.cart?.totalItemsInCart !== totalItemCountOne ? 'items' : 'item'})`}\n \n

\n );\n return (\n
\n {updatedTitle}\n
{props.orderSummaryLineitems?.orderTotal}
\n {renderOrderSummaryCheckoutButton(props)}\n {!props.cart?.hasInvoiceLine && props.promotionOptions && renderPromotions(props.promotionOptions)}\n {props.multiplePickUpEnabled\n ? renderCartLinesGroup(props, props.resources)\n : renderCartlines(\n props,\n props.cartlines,\n props.resources,\n props.storeSelector,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult\n )}\n {props.orderSummaryHeading && (\n \n \n {props.orderSummaryHeading}\n {props.cart?.hasInvoiceLine\n ? renderInvoiceSummarylines(props.invoiceSummaryLineitems, props.OrderSummaryItems, props)\n : renderOrderSummarylines(props.orderSummaryLineitems, props.OrderSummaryItems, props)}\n {renderErrorBlock(props.OrderSummaryErrors)}\n \n {renderOrderSummaryCheckout(props)}\n \n )}\n {props.storeSelector}\n
\n );\n};\n\nexport default CartView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n *\n * FooterItemView component.\n * @extends {React.PureComponent}\n */\nexport class FooterItemView extends React.PureComponent {\n public render(): JSX.Element | null {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Cannot change the prop names as props are from business logic.\n const { FooterItem } = this.props;\n return {this._renderElement(this.props)};\n }\n\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Cannot change the prop names as props are from business logic.\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\n if (heading) {\n return (\n \n {' '}\n \n );\n } else if (Link && image) {\n return (\n \n {linkText}\n {image}\n \n );\n } else if (Link) {\n return EditableLink;\n }\n return (\n <>\n {text}\n {image}\n \n );\n }\n}\n\nexport default FooterItemView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHelp,\n IOrderDetailsViewProps,\n IOrderInformation,\n IOrderSummary,\n IPaymentMethods,\n ISalesLine\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n createdDate,\n count,\n amount,\n channelReferenceId,\n channelName,\n channelAddress\n}) => (\n \n {channelName}\n {channelAddress}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const SalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton, errors }) => (\n \n {salesLine}\n {buyAgainButton}\n {errors}\n \n);\n\nexport const GroupDelivery: React.FC = ({ deliveryProps, heading, count }) => (\n \n {heading}\n {count}\n \n);\n\nexport const Group: React.FC = ({ groupProps, delivery, address, salesLinesProps, salesLines, isCashAndCarryTransaction }) => (\n \n {delivery && }\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n \n {salesLine.data.deliveryType === 'ship' && salesLine.data.shipment ? salesLine.trackingInfo : null}\n \n {!isCashAndCarryTransaction && salesLine.salesStatus}\n \n ))}\n \n )}\n {!delivery.showTimeslot && address}\n {delivery.showTimeslot && (\n \n {address}\n {delivery.pickupDateTimeslot}\n \n )}\n \n \n);\n\nexport const Groups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderSummary: React.FC = ({\n orderSummaryProps,\n heading,\n subtotal,\n shipping,\n tax,\n totalAmount,\n earnedPoints\n}) => (\n \n {heading}\n {subtotal}\n {shipping}\n {tax}\n {totalAmount}\n {earnedPoints}\n \n);\n\nexport const Payment: React.FC = ({ paymentMethodsProps, title, methods }) => (\n \n {title}\n {methods}\n \n);\n\nexport const Help: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\n \n {needHelpLabel}\n {helpLineNumberLabel}\n {contactNumber}\n \n);\n\nconst OrderDetailsView: React.FC = ({\n moduleProps,\n viewModes,\n tableViewActions,\n table,\n heading,\n alert,\n loading,\n orderInfomation,\n orderSummary,\n payment,\n help,\n groups\n}) => {\n return (\n \n {heading}\n {alert}\n {loading}\n {orderInfomation && }\n {tableViewActions}\n {viewModes}\n {table}\n {groups && }\n \n {orderSummary && }\n {payment && }\n \n {help && }\n \n );\n};\n\nexport default OrderDetailsView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, getTelemetryObject, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n ISignInItem,\n ISignInLoading,\n ISignInLocalAccount,\n ISignInSocialAccount,\n ISignInSocialItem,\n ISignInB2BAccount,\n ISignInB2BItem,\n ISignInViewProps,\n ISignInButton\n} from '@msdyn365-commerce-modules/account-management';\n\nimport { ISignInProps, ISignInResources } from '../definition-extensions/sign-in.ext.props.autogenerated';\n\nconst LocalAccount: React.FC = ({ localAccount, items, forgetPassword, disclaimer, error, signInButton }) => {\n return (\n \n {items &&\n items.map((item: ISignInItem) => {\n return (\n \n {item.label}\n {item.error}\n {item.input}\n \n );\n })}\n {forgetPassword}\n {disclaimer}\n {error}\n {signInButton}\n \n );\n};\n\nconst SocialAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInSocialItem) => {\n return (\n \n {item.image}\n {item.text}\n \n );\n })}\n \n );\n};\n\nconst B2BAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInB2BItem) => {\n return (\n item && (\n \n {item.text}\n \n )\n );\n })}\n \n );\n};\n\nconst SignInLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\nconst SignInButton: React.FC = ({ id, className, text, ariaLabel, telemetryContent, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n {text}\n \n );\n};\n\nconst signUpButton: React.FC> = (\n props: ISignInViewProps & ISignInProps\n) => {\n const {\n resources,\n telemetry,\n friendlyName,\n context: {\n request: { telemetryPageName }\n }\n } = props;\n const telemetryContent = getTelemetryObject(telemetryPageName!, friendlyName, telemetry);\n const attributes = {\n href: '#'\n };\n\n return (\n \n );\n};\n\nconst SignInView: React.FC> = props => {\n const {\n signIn,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n signInSection,\n signUpSection,\n signInSectionHeading,\n signInLocalAccount,\n signInSocialAccount,\n signUpSectionHeading,\n signInB2BAccount,\n signUpDescription\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n \n {signInSectionHeading}\n {LocalAccount(signInLocalAccount)}\n {SocialAccount(signInSocialAccount)}\n \n \n {signUpSectionHeading}\n {signUpDescription}\n {signUpButton(props)}\n \n
\n
\n or\n
\n {B2BAccount(signInB2BAccount)}\n
\n
\n
\n );\n};\n\nexport default SignInView;\n"],"names":["ProductSpecification","React","async","context","data","telemetry","this","props","reaction","product","result","RecordId","actionInput","AttributesForSelectedVariantInput","actionContext","requestContext","apiSettings","channelId","getAttributesForSelectedVariant","catch","error","warning","debug","render","e","productSpecificationData","length","className","config","viewProps","_objectSpread","moduleProps","classnames","ProductSpecificationTableProps","tag","ProductSpecificationTableBodyProps","productSpecificationResult","_createTableBody","renderView","content","map","index","_renderProductCell","TextValue","child","dangerouslySetInnerHTML","__html","adultSki","adultNylon","adultRapid","infant","DataTypeValue","_renderCurrencyCell","_renderDateTimeCell","_renderDecimalCell","_renderIntegerCell","_renderTextCell","_renderTrueFalseCell","CurrencyValue","undefined","CurrencyCode","DateTimeOffsetValue","toUTCString","IntegerValue","FloatValue","Msdyn365","BooleanValue","resources","trueValueText","falseValueText","__decorate","observer","Module","Object","assign","title","Node","row","AbsoluteMediaContainer","ColumnHeading2","columnHeading2","slots","row2","viewprops","row2categories","Row2List","Row2ListItem","AbsoluteMediaContainerView","row2category","key","warningOne","warningTwo","warningThree","warningFour","warningFive","warningSix","warningSeven","AbsoluteVideoContainer","ColumnHeading1","columnHeading1","row1","row1categories","Row1List","Row1ListItem","AbsoluteVideoContainerView","row1category","LiquidCategoryImage","constructor","handleTextChange","event","heading","text","target","value","categoryImage","headingClass","HeadingClass","Heading","editProps","onEdit","request","imageProps","gridSettings","imageSettings","CategoryImage","LiquidCategoryImageViewProps","imageContainer","detailsContainer","handleHeadingChange","handleOnlineHeadingChange","onlineheading","buttontext","buttonlink","ButtonText","ButtonLink","onlinetitle","Name","scriptHtml","id","href","CheckInConfirmationComponent","_ref","confirmationText","shouldShowQrCode","channelReferenceIdLabel","channelReferenceId","QRCode","size","CheckInErrorComponent","errorMessage","CheckInForPickup","super","checkInForOrderPickup","Number","parseInt","query","packingSlipId","additionalInformationToSubmit","additionalInformationList","additionalInformationKeyValuePair","_additionalInformatio","formKey","resourceId","extensionPropertyList","ObjectExtensions","isNullOrUndefined","additionalInformation","push","Key","Value","StringValue","SalesOrdersDataActions","callerContext","queryResultSettings","state","headerErrorMessage","genericErrorMessage","isCheckedIn","Promise","resolve","setState","_onInit","_this$props$context$r","_this$props$context$r2","_this$props$context$r3","_this$props$context$r4","isNaN","params","isEditor","isPreview","requiredParameterMissingErrorMessage","additionalInformationKeys","ArrayExtensions","hasElements","_this$props$context$r5","isHeaderError","headerError","confirmationComponent","defaultConfirmationText","confirmationIdLabel","additionalInformationValues","viewState","shouldComponentUpdate","nextProps","nextState","additionalInformationHeading","_props$config$additio","FormBuilder","additionalInformationDefaultHeading","submitButtonText","additionalInformationSubmitButtonText","keys","requiredValueMissingErrorMessage","onSubmit","CookieComplianceAcceptButton","acceptCookiesButtonText","acceptCookiesButtonAriaLabel","telemetryContent","onClose","payLoad","getPayloadObject","attributes","getTelemetryAttributes","type","onClick","CookieComplianceLinks","_mapEditableLinks","linkdata","editableLinks","forEach","link","linkText","contentAction","etext","editableLink","ariaLabel","linkUrl","destinationUrl","openInNewTab","role","additionalProperties","onTelemetryClick","links","onTextChange","CookieCompliance","getTelemetryObject","telemetryPageName","friendlyName","handleLinkTextChange","linkIndex","_this$props$config$ac","actionLinks","handleContentChange","visible","cookieRef","_onDismiss","bind","componentDidMount","cookies","isConsentGiven","acceptCookiesAriaLabel","moduleConfig","MsDyn365","isBrowser","onDismiss","CookieComplianceBanner","ref","AlertProps","color","fade","Content","acceptButton","setConsentCookie","location","reload","Alert","OrderInfomation","orderInformationProps","salesId","receiptId","createdDate","count","amount","channelName","channelAddress","SalesLine","_ref2","salesLineProps","salesLine","buyAgainButton","errors","GroupDelivery","_ref3","deliveryProps","Group","_ref4","groupProps","delivery","address","salesLinesProps","salesLines","isCashAndCarryTransaction","LineId","deliveryType","shipment","trackingInfo","salesStatus","showTimeslot","pickupProps","pickupDateTimeslot","Groups","_ref5","groupsProps","groups","group","OrderSummary","_ref6","orderSummaryProps","subtotal","shipping","tax","totalAmount","earnedPoints","Payment","_ref7","paymentMethodsProps","methods","Help","_ref8","helpProps","needHelpLabel","helpLineNumberLabel","contactNumber","_ref9","viewModes","tableViewActions","table","alert","loading","orderInfomation","orderSummary","payment","help","histogramItem","buttonProps","starLabel","bar","percentage","histogramItems","histogramProps","item","Iframe","iframeRef","srcURL","URL","exception","protocol","toLocaleLowerCase","iframeClassName","_createHeading","IframeContainer","IFrame","_createIframe","cookieConsentAccepted","_renderAlert","cookieConsentRequiredMessage","message","targetURL","src","height","iframeAriaLabel","IFrameView","ProductComparisonButton","_addToProductComparison","ProductComparisonItem","catalogId","ProductComparisonState","instance","addItem","_removeFromProductComparison","removeItemById","comparisonItemId","_getNewState","getItemId","products","_getProdutComparisonDataByCatalogId","canProductBeAddedToProductComparison","hasItemById","currentProductsCount","_className","_instanceId","Random","Guid","generateGuid","_shouldUsePreview","_productComparisonPreview","_renderProductComparisonPreview","static","productComparisonPreview","buttonText","onClickHandler","isDisabled","Button","disabled","listModifiedEvent","subscribe","instanceId","handler","getSnapshotBeforeUpdate","previousProps","componentWillUnmount","unsubscribe","buttonClassName","shouldDisplayText","removeFromComparisonButtonText","productComparisonButton","_renderProductComparisonButton","productsLimit","_getProductsLimit","addToComparisonLimitReachedButtonText","addToComparisonButtonText","viewport","isMobile","variant","VariantType","Browser","app","productComparisonMobileProductsLimit","productComparisonDesktopProductsLimit","_items$filter","items","getCatalogId","filter","ProductComparisonButtonViewFunctionalComponent","ProductSpecificationTableRow","productName","cellData","scope","getRichTextHtml","_toggle","drawerListId","isDrawerOpen","_heading$tag","isAccrodion","displayStyle","handleText","_createDrawerBody","accordionItemContainer","_product$Name","Drawer","collapseProps","timeout","isOpen","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","onToggle","_product$DateTimeOffs","rowdata","_props$data$operation","b2bRequestsStatus","continueShoppingButtonTitle","operationRequests","headingForEmptyRequestStatus","textForEmptyRequestStatus","getUrlSync","toggleBopisHandler","cartLine","isBopisSelected","_cartLine$pickUpInSto","pickUpInStore","callbacks","toggleBopis","onChangeStoreHandler","_cartLine$pickUpInSto2","renderCartLine","storeSelector","isMultiplePickUp","emailDeliveryModeCode","outOfStockErrorMessage","addToWishlist","remove","renderGroupBopisBlock","_cartLine$data2","cartline","DeliveryMode","changeStoreDisplayText","shipInsteadDisplayText","pickItUpDisplayText","TelemetryConstant","PickupInStore","puckUpinStoreAttribute","addToOrderTemplate","renderCartlinesInternal","cartLines","itemIndex","renderBopisBlock","_cartLine$data","shipToAddressDisplayText","pickUpAtStoreWithLocationText","ContainerProps","orgUnitName","renderCartlines","waitingComponent","cartLoadingStatus","isCartDataResult","multiplePickUpEnabled","CartlinesWrapper","emptyCart","renderCartLinesGroupHeader","_cartLine$pickUpInSto6","pickUpText","shippingText","emailshippingText","groupTitle","toLowerCase","replace","renderCartLinesGroupTitle","_cartLine$pickUpInSto3","_cartLine$pickUpInSto4","_cartLine$pickUpInSto5","itemLabel","itemsLabel","countTitle","deliveryOption","_props$cart2","_props$cart3","_props$orderSummaryLi","_props$cart4","_props$cart5","updatedTitle","cartTitle","cart","totalItemsInCart","renderModuleAttributes","orderSummaryLineitems","orderTotal","checkoutAsSignInUserButton","checkoutAsGuestButton","renderOrderSummaryCheckoutButton","hasInvoiceLine","promotionOptions","promotions","promotionMessageWrapper","promotionMessage","promotionSeeAllLink","promotionDialog","renderCartLinesGroup","cartLinesGroup","cartlines","_props$context$action","_props$context$action2","cartlineId","countItem","reduce","_item$data$cartline$Q","_item$data","Quantity","countItems","channel","EmailDeliveryModeCode","cartDataResult","orderSummaryHeading","OrderSummaryWrapper","renderInvoiceSummarylines","invoiceSummaryLines","orderSummaryItems","invoices","giftCard","loyalty","invoiceSummaryLineitems","OrderSummaryItems","renderOrderSummarylines","orderSummaryLines","totalDiscounts","otherCharge","errorData","OrderSummaryErrors","Wrapper","header","_props$cart","promoCode","expressCheckoutButton","ExpressCheckoutSectionWrapper","createTemplateFromCartButton","renderOrderSummaryCheckout","FooterItemView","FooterItem","_renderElement","HeadingContainer","Link","image","EditableLink","SignInLoading","modal","modalBody","icon","SignInButton","signIn","defaultAADConainer","aadConainer","signInSection","signUpSection","signInSectionHeading","signInLocalAccount","signInSocialAccount","signUpSectionHeading","signInB2BAccount","signUpDescription","isShowLoading","localAccount","forgetPassword","disclaimer","signInButton","wrapper","label","input","LocalAccount","socialAccounts","button","SocialAccount","b2bSignUpButtonAriaLabel","b2bSignUpButtonText","signUpButton","B2BAccount"],"sourceRoot":""}