{"version":3,"file":"static/js/14.7e29daf28ff79267bb57.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/business-partners/components/search-bar.tsx?63c1","webpack://Msdyn365.Commerce.Online/./src/modules/business-partners/components/data-grid.tsx?ddec","webpack://Msdyn365.Commerce.Online/./src/modules/business-partners/components/business-partner-users-table.tsx?c677","webpack://Msdyn365.Commerce.Online/./src/modules/business-partners/components/business-partners-table.tsx?8b1d","webpack://Msdyn365.Commerce.Online/./src/modules/business-partners/business-partners.tsx?57a6","webpack://Msdyn365.Commerce.Online/./src/modules/business-partners/business-partners.view.tsx?b34e","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/common/waiting.tsx?8095","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-express-payment-container/checkout-express-payment-container.tsx?1d63","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-express-payment-container/checkout-express-payment-container.view.tsx?4299","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/order-details.view.tsx?1ce1","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-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/cart.view.tsx?3909","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/order-details.view.tsx?027b"],"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 React from 'react';\nimport { KeyCodes } from '@msdyn365-commerce-modules/utilities';\n\nexport interface ISearchBarProps {\n className: string;\n searchPlaceholderLabel: string;\n onSearch(searchText: string): void;\n}\n\nexport interface ISearchBarState {\n searchText: string;\n}\n\nexport class SearchBar extends React.Component {\n constructor(props: ISearchBarProps) {\n super(props);\n this.state = {\n searchText: ''\n };\n }\n\n public render(): JSX.Element {\n const { className, searchPlaceholderLabel } = this.props;\n return (\n
\n \n
\n );\n }\n\n private readonly onSearchTextChange = (ev: React.ChangeEvent): void => {\n this.setState({\n searchText: ev.target.value\n });\n };\n\n private readonly onSearch = (): void => {\n this.props.onSearch(this.state.searchText);\n };\n\n private readonly handleKeyUp = (event: React.KeyboardEvent): void => {\n if (event.keyCode === KeyCodes.Enter) {\n this.onSearch();\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 { IComponentProps } from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport React from 'react';\n\nimport { moduleClassName } from '../business-partners';\nimport { IBusinessPartnersResources } from '../business-partners.props.autogenerated';\nimport { SearchBar } from './search-bar';\n\n/**\n * Props of DataGrid component.\n */\nexport interface IDataGridProps extends IComponentProps {\n className: string;\n pageSize?: number;\n searchPlaceholderLabel: string;\n defaultSorting?: ISortingInfo;\n resources: IBusinessPartnersResources;\n columns: IDataGridColumn[];\n loadData(): Promise;\n}\n\n/**\n * State of DataGrid component.\n */\nexport interface IDataGridState {\n data: Tdata[];\n paging: IPagingInfo;\n filter: IFilterInfo;\n sorting?: ISortingInfo;\n isLoading: boolean;\n hasError: boolean;\n}\n\nexport interface IPagingInfo {\n index: number;\n}\n\nexport interface IFilterInfo {\n searchText: string;\n}\n\nexport interface ISortingInfo {\n fieldName: string;\n ascending: boolean;\n}\n\n/**\n * Column definition of DataGrid component.\n */\nexport interface IDataGridColumn {\n /**\n * A unique key for identifying the column.\n */\n reactKey: string;\n\n /**\n * Name to render on the column header.\n */\n name: string;\n\n /**\n * Class name added to table cell.\n */\n className?: string;\n\n /**\n * The field to pull the text value from for the column.Can be unset if a custom `onRender` method is provided.\n */\n fieldName?: string;\n\n /**\n * Whether the user can search this column by text.\n */\n isSearchable?: boolean;\n\n /**\n * Custom renderer for cell content, instead of the default text rendering.\n */\n onRender?(item: Tdata): JSX.Element;\n}\n\nconst defaultPageSize = 10;\n\n/**\n * DataGrid component encapsulates common table functionalities.\n */\nexport class DataGrid extends React.Component, IDataGridState> {\n constructor(props: IDataGridProps) {\n super(props);\n this.state = {\n data: [],\n sorting: props.defaultSorting,\n paging: { index: 0 },\n filter: { searchText: '' },\n isLoading: true,\n hasError: false\n };\n }\n\n public componentDidMount(): void {\n this.loadDataInternal();\n }\n\n public shouldComponentUpdate(nextProps: Readonly>, nextState: Readonly>): boolean {\n return (\n this.props.id !== nextProps.id ||\n this.props.columns !== nextProps.columns ||\n this.state.data !== nextState.data ||\n this.state.paging !== nextState.paging ||\n this.state.filter !== nextState.filter ||\n this.state.isLoading !== nextState.isLoading ||\n this.state.hasError !== nextState.hasError\n );\n }\n\n public render(): JSX.Element | null {\n const data = this.getDataToDisplay();\n const hasMore = this.hasMore();\n if (this.state.hasError) {\n return {this.props.resources.genericErrorMessage};\n }\n if (this.state.isLoading) {\n return {this.props.resources.loadingLabel};\n }\n if (!ArrayExtensions.hasElements(data)) {\n return (\n <>\n \n

{this.props.resources.noDataMessage}

\n \n );\n }\n return (\n <>\n \n \n {this.renderGridHeader()}\n {data.map((item, index) => this.renderGridRow(item, index))}\n
\n {hasMore && (\n \n )}\n \n );\n }\n\n /**\n * Renders the TH header in the table.\n * @returns - Header react node.\n */\n private readonly renderGridHeader = () => {\n const className = `${this.props.className}__header`;\n const rowClassName = `${className}__row`;\n return (\n \n \n {this.props.columns.map(column => (\n \n {column.name}\n \n ))}\n \n \n );\n };\n\n /**\n * Renders table row.\n * @param item - Data item for this row.\n * @param index - Index of the row.\n * @returns - Row react node.\n */\n private readonly renderGridRow = (item: Tdata, index: number) => {\n const rowClassName = `${this.props.className}__row`;\n return (\n \n {this.props.columns.map(column => {\n if (column.fieldName) {\n return (\n \n {((item as unknown) as { [key: string]: string })[column.fieldName]}\n \n );\n }\n return {column.onRender?.(item)};\n })}\n \n );\n };\n\n /**\n * Load data for the table.\n * @returns Promise.\n */\n private readonly loadDataInternal = async () => {\n if (!this.props.context.actionContext.requestContext.user.isAuthenticated) {\n this.setState({\n isLoading: false\n });\n return;\n }\n try {\n const result = await this.props.loadData();\n this.setState({\n isLoading: false,\n data: result\n });\n } catch {\n this.setState({\n isLoading: false,\n hasError: true\n });\n }\n };\n\n private readonly onSearch = (searchText: string): void => {\n this.setState({\n paging: { index: 0 },\n filter: { searchText }\n });\n };\n\n private readonly loadMore = (): void => {\n this.setState({\n paging: { index: this.state.paging.index + 1 }\n });\n };\n\n private readonly sortData = (): Tdata[] => {\n const sorting = this.state.sorting;\n if (!sorting) {\n return this.state.data;\n }\n const { fieldName, ascending } = sorting;\n return this.state.data.sort((item1: Tdata, item2: Tdata) => {\n let value1 = ((item1 as unknown) as { [key: string]: string })[fieldName];\n let value2 = ((item2 as unknown) as { [key: string]: string })[fieldName];\n if (typeof value1 === 'string' && typeof value2 === 'string') {\n value1 = value1.toLowerCase();\n value2 = value2.toLowerCase();\n }\n const compareResult = value1 > value2 ? 1 : value1 < value2 ? -1 : 0;\n return ascending ? compareResult : compareResult * -1;\n });\n };\n\n private readonly filterData = (): Tdata[] => {\n const column = this.props.columns.find(c => c.isSearchable);\n const searchText = this.state.filter.searchText;\n return this.sortData().filter(item => {\n if (!column?.fieldName || !searchText) {\n return true;\n }\n const columnValue = ((item as unknown) as { [key: string]: string })[column.fieldName];\n return columnValue && columnValue.toLowerCase().indexOf(searchText.trim().toLowerCase()) >= 0;\n });\n };\n\n private readonly getDataToDisplay = (): Tdata[] => {\n const itemsCount = (this.props.pageSize || defaultPageSize) * (this.state.paging.index + 1);\n const filteredItems = this.filterData();\n return filteredItems.slice(0, itemsCount);\n };\n\n private readonly hasMore = (): boolean => {\n const itemsCount = (this.props.pageSize || defaultPageSize) * (this.state.paging.index + 1);\n const filteredItems = this.filterData();\n return filteredItems.length > itemsCount;\n };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps } from '@msdyn365-commerce/core';\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { BusinessPartner, BusinessPartnerUser, BusinessPartnersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { IBusinessPartnersResources } from '../business-partners.props.autogenerated';\nimport { DataGrid, IDataGridColumn } from './data-grid';\n\n/**\n * View model of business partner user, used to display.\n */\nexport interface IBusinessPartnerUserViewModel extends BusinessPartnerUser {\n name: string;\n spendingLimitStr: string;\n}\n\n/**\n * Props of BusinessPartnerUsersTable.\n */\nexport interface IBusinessPartnerUsersTableProps extends IComponentProps {\n className: string;\n pageSize?: number;\n businessPartner: BusinessPartner;\n resources: IBusinessPartnersResources;\n onSelect(businessPartnerUser: BusinessPartnerUser): void;\n}\n\n/**\n * BusinessPartnerUsersTable component.\n */\nexport class BusinessPartnerUsersTable extends React.Component {\n public shouldComponentUpdate(nextProps: Readonly): boolean {\n return this.props.id !== nextProps.id;\n }\n\n public render(): JSX.Element {\n return (\n \n );\n }\n\n /**\n * Get column definition of the table.\n * @returns - Columns.\n */\n private readonly getColumns = (): IDataGridColumn[] => {\n return [\n {\n reactKey: 'name',\n name: this.props.resources.businessUserTableNameHeadingText,\n fieldName: 'name',\n isSearchable: true\n },\n {\n reactKey: 'email',\n name: this.props.resources.businessUserTableEmailHeadingText,\n fieldName: 'Email'\n },\n {\n reactKey: 'spendingLimit',\n name: this.props.resources.businessUserTableSpendingLimitHeadingText,\n className: `${this.props.className}__row__column-with-number`,\n fieldName: 'spendingLimitStr'\n },\n {\n reactKey: 'select-button',\n name: '',\n onRender: this.renderSelectButton,\n className: `${this.props.className}__row__column-select-button`\n }\n ];\n };\n\n /**\n * Renders the button to select a business partner user.\n * @param businessPartnerUser - The business partner user to select.\n * @returns - Button component.\n */\n private readonly renderSelectButton = (businessPartnerUser: IBusinessPartnerUserViewModel) => {\n return (\n {\n this.props.onSelect(businessPartnerUser);\n }}\n title={this.props.resources.select}\n aria-label={this.props.resources.select}\n />\n );\n };\n\n /**\n * Call retail proxy to get business partner users.\n * @returns - Business partner users view model.\n */\n private readonly getBusinessPartnerUsers = async (): Promise => {\n const businessPartners = await BusinessPartnersDataActions.getUsersAsync(\n {\n callerContext: this.props.context.actionContext,\n bypassCache: 'get',\n queryResultSettings: {}\n },\n this.props.businessPartner.BusinessPartnerId\n );\n return businessPartners\n .filter(user => user.StatusValue === 1)\n .map(user => ({\n ...user,\n name: `${user.FirstName} ${user.LastName}`,\n spendingLimitStr: !ObjectExtensions.isNullOrUndefined(user.SpendingLimit)\n ? this.props.context.cultureFormatter.formatCurrency(user.SpendingLimit.toString())\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 { IComponentProps } from '@msdyn365-commerce/core';\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { BusinessPartner, BusinessPartnersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { IBusinessPartnersResources } from '../business-partners.props.autogenerated';\nimport { DataGrid, IDataGridColumn } from './data-grid';\n\n/**\n * Props of IBusinessPartnersTable.\n */\nexport interface IBusinessPartnersTableProps extends IComponentProps {\n className: string;\n pageSize?: number;\n resources: IBusinessPartnersResources;\n onSelect(businessPartner: BusinessPartner): void;\n}\n\n/**\n * BusinessPartnersTable component.\n */\nexport class BusinessPartnersTable extends React.Component {\n public shouldComponentUpdate(nextProps: Readonly): boolean {\n return this.props.id !== nextProps.id;\n }\n\n public render(): JSX.Element {\n return (\n \n );\n }\n\n /**\n * Get column definition of the table.\n * @returns - Columns.\n */\n private readonly getColumns = (): IDataGridColumn[] => {\n return [\n {\n reactKey: 'name',\n name: this.props.resources.businessPartnerName,\n fieldName: 'Name',\n isSearchable: true\n },\n {\n reactKey: 'select-button',\n name: '',\n onRender: this.renderSelectButton,\n className: `${this.props.className}__row__column-select-button`\n }\n ];\n };\n\n /**\n * Renders the button to select a business partner.\n * @param businessPartner - The business partner to select.\n * @returns - Button component.\n */\n private readonly renderSelectButton = (businessPartner: BusinessPartner) => {\n return (\n {\n this.props.onSelect(businessPartner);\n }}\n title={this.props.resources.select}\n aria-label={this.props.resources.select}\n />\n );\n };\n\n /**\n * Call retail proxy to get business partners.\n * @returns - Business partners.\n */\n private readonly getBusinessPartners = async () => {\n const businessPartners = await BusinessPartnersDataActions.getManagedBusinessPartnersAsync({\n callerContext: this.props.context.actionContext,\n bypassCache: 'get',\n queryResultSettings: {}\n });\n return businessPartners;\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 { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport * as React from 'react';\n\nimport { BusinessPartner, BusinessPartnerUser } from '@msdyn365-commerce/retail-proxy';\nimport { IBusinessPartnersData } from './business-partners.data';\nimport { IBusinessPartnersProps } from './business-partners.props.autogenerated';\nimport { BusinessPartnerUsersTable } from './components/business-partner-users-table';\nimport { BusinessPartnersTable } from './components/business-partners-table';\n\n/**\n * Props for the module view.\n */\nexport interface IBusinessPartnersViewProps extends IBusinessPartnersProps {\n businessPartnersProps: IModuleProps;\n businessPartnersHeading?: React.ReactNode;\n businessPartnersTable?: React.ReactNode;\n businessPartnerUsersTable?: React.ReactNode;\n backToBusinessPartnersLink?: React.ReactNode;\n}\n\n/**\n * State of BusinessPartners component.\n */\nexport interface IBusinessPartnersState {\n selectedBusinessPartner?: BusinessPartner;\n}\n\n/**\n * The class name root for the module.\n */\nexport const moduleClassName: string = 'ms-business-partners';\n\n/**\n * BusinessPartners component.\n */\nclass BusinessPartners extends React.Component, IBusinessPartnersState> {\n constructor(props: IBusinessPartnersProps) {\n super(props);\n this.state = {};\n }\n\n public componentDidMount() {\n this.props.context.request.cookies.removeAccountSelectionCookie();\n }\n\n public shouldComponentUpdate(nextProps: IBusinessPartnersProps, nextState: IBusinessPartnersState): 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 const {\n config: { className, pageSize, businessPartnersHeading }\n } = this.props;\n const viewProps: IBusinessPartnersViewProps = {\n ...this.props,\n businessPartnersProps: {\n moduleProps: this.props,\n className: classname(moduleClassName, className)\n },\n businessPartnersHeading: businessPartnersHeading && businessPartnersHeading.text && (\n \n ),\n businessPartnersTable: !this.state.selectedBusinessPartner ? (\n \n ) : (\n undefined\n ),\n businessPartnerUsersTable: this.state.selectedBusinessPartner ? (\n \n ) : (\n undefined\n ),\n backToBusinessPartnersLink: this.state.selectedBusinessPartner ? (\n {\n this.onSelectBusinessPartner();\n }}\n >\n {this.props.resources.backToBusinessPartnersLink}\n \n ) : (\n undefined\n )\n };\n return this.props.renderView(viewProps);\n }\n\n /**\n * Event handler of business partner selection.\n * @param businessPartner - Selected business partner.\n */\n private readonly onSelectBusinessPartner = (businessPartner?: BusinessPartner) => {\n this.setState({\n selectedBusinessPartner: businessPartner\n });\n };\n\n /**\n * Event handler of business partner user selection.\n * @param businessPartnerUser - Selected business partner user.\n */\n private readonly onSelectBusinessPartnerUser = (businessPartnerUser: BusinessPartnerUser) => {\n if (businessPartnerUser.AccountNumber) {\n this.props.context.request.cookies.setAccountSelectionCookie(true, businessPartnerUser.AccountNumber);\n const homeUrl = Msdyn365.getUrlSync('home', this.props.context.actionContext);\n if (homeUrl && Msdyn365.msdyn365Commerce.isBrowser) {\n window.location.href = homeUrl;\n }\n }\n };\n}\n\nexport default BusinessPartners;\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 { IBusinessPartnersViewProps } from './business-partners';\n\n/**\n * View layout of business partner module.\n * @param props - React props of the component.\n * @returns Functional component.\n */\nconst businessPartnersView: React.FC = props => {\n return (\n \n {props.backToBusinessPartnersLink}\n {props.businessPartnersHeading}\n {props.businessPartnersTable}\n {props.businessPartnerUsersTable}\n \n );\n};\n\nexport default businessPartnersView;\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 { Waiting } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * Payment waiting props.\n */\nexport interface IPaymentWaitingProps {\n message: string;\n className?: string;\n}\n\n/**\n * Payment waiting.\n * @param param0 - First in param.\n * @param param0.message - Message.\n * @param param0.className - ClassName.\n * @returns React node.\n */\nexport const WaitingComponent: React.FC = ({ message, className = 'ms-checkout-payment-instrument' }) => (\n
\n \n {message}\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 { IModuleStateProps } from '@msdyn365-commerce-modules/checkout-utilities';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\nimport classname from 'classnames';\n\nimport { reaction } from 'mobx';\nimport { ICheckoutExpressPaymentContainerData } from './checkout-express-payment-container.data';\nimport {\n ICheckoutExpressPaymentContainerProps,\n ICheckoutExpressPaymentContainerHeadingData\n} from './checkout-express-payment-container.props.autogenerated';\nimport { WaitingComponent } from '../../common/waiting';\n\n/**\n * ICheckoutExpressPaymentContainerModuleProps interface.\n */\nexport interface ICheckoutExpressPaymentContainerModuleProps\n extends ICheckoutExpressPaymentContainerProps,\n IModuleStateProps {}\n\nexport interface ICheckoutExpressPaymentContainerViewProps\n extends ICheckoutExpressPaymentContainerProps<{}>,\n ICheckoutExpressPaymentContainerState {\n checkoutPlainContainerProps: IModuleProps;\n items: React.ReactNode[];\n isReady?: boolean;\n waiting?: React.ReactNode;\n title?: React.ReactNode;\n headerProps: INodeProps;\n}\n\n/**\n * Checkout Express Payment Container State.\n */\nexport interface ICheckoutExpressPaymentContainerState {\n isReady?: boolean;\n shouldHideExpressPaymentContainer?: boolean;\n}\n\n/**\n *\n * CheckoutExpressPaymentContainer component\n * @extends {React.PureComponent>}\n */\n@observer\nexport class CheckoutExpressPaymentContainer extends React.PureComponent<\n ICheckoutExpressPaymentContainerProps,\n ICheckoutExpressPaymentContainerState\n> {\n private readonly moduleClassName: string = 'ms-checkout-express-section-container';\n\n public constructor(props: ICheckoutExpressPaymentContainerModuleProps) {\n super(props);\n this.state = {\n isReady: false,\n shouldHideExpressPaymentContainer: this.props.data.checkout.result?.shippingAddressFromExpressCheckout ? true : false\n };\n }\n\n public componentDidMount(): void {\n reaction(\n () => this.props.data.checkout.result?.isExpressPaymentModulesReady,\n () => {\n const items = this._getItems();\n if (items.length === 0) {\n this.props.context.telemetry.error('Checkout express payment container content is empty, module wont render');\n }\n let isReady = true;\n\n for (const item of items) {\n // @ts-ignore\n if (item.key.includes('checkout-express')) {\n // @ts-ignore\n const extensionPropertyKey = `is${item.props.config.paymentTenderType}ExpressModuleReady`;\n\n const isModuleReady =\n this.props.data.checkout.result?.isExpressPaymentModulesReady?.find(\n property => property.Key === extensionPropertyKey\n )?.Value?.BooleanValue ?? false;\n isReady = isReady && isModuleReady;\n }\n }\n this.setState({ isReady });\n }\n );\n\n reaction(\n () => this.props.data.checkout.result?.isExpressCheckoutApplied,\n isExpressCheckoutApplied => {\n this.setState({ shouldHideExpressPaymentContainer: isExpressCheckoutApplied });\n }\n );\n }\n\n public render(): JSX.Element | null {\n const {\n config: { checkoutExpressPaymentContainerHeading },\n resources: { checkoutExpressPaymentSectionLoadingMessage }\n } = this.props;\n\n const items = this._getItems();\n if (items.length === 0) {\n this.props.context.telemetry.error('Checkout express payment container content is empty, module wont render');\n return null;\n }\n\n const shouldHideExpressPaymentContainerClassName: string = this.state.shouldHideExpressPaymentContainer ? 'hide' : '';\n\n const moduleClassName = classname(\n 'ms-checkout-express-payment-container',\n this.props.config.className,\n shouldHideExpressPaymentContainerClassName\n );\n\n const viewProps: ICheckoutExpressPaymentContainerViewProps = {\n ...this.props,\n\n checkoutPlainContainerProps: {\n moduleProps: this.props,\n className: moduleClassName\n },\n items: items,\n isReady: this.state.isReady,\n waiting: ,\n title: checkoutExpressPaymentContainerHeading && this._renderMsdyn365Text(checkoutExpressPaymentContainerHeading),\n headerProps: { className: 'ms-checkout-express-payment-container__head' }\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private readonly _getItems = (): React.ReactNode[] => {\n const { slots } = this.props;\n return (slots && slots.primary && slots.primary.length && slots.primary) || [];\n };\n\n /**\n * Renders heading.\n * @param checkoutExpressPaymentContainerHeading - The checkout express container heading.\n * @returns React node.\n */\n private _renderMsdyn365Text(checkoutExpressPaymentContainerHeading: ICheckoutExpressPaymentContainerHeadingData): React.ReactNode {\n return (\n \n );\n }\n\n /**\n * Event handler for heading change event.\n * @param event - The content change event in heading element.\n * @returns The new heading value.\n */\n private _handleCheckoutExpressContainerHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.checkoutExpressPaymentContainerHeading!.text = event.target.value);\n}\n\nexport default CheckoutExpressPaymentContainer;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICheckoutExpressPaymentContainerViewProps } from './checkout-express-payment-container';\n\ninterface IContainerItemsComponent {\n isLoadingClassName: string;\n items: React.ReactNode[];\n}\n\nconst ContainerItemsComponent: React.FC = ({ isLoadingClassName, items }) => (\n
{items}
\n);\n\nconst CheckoutExpressPaymentContainerView: React.FC = ({\n checkoutPlainContainerProps,\n items,\n isReady,\n waiting,\n title,\n headerProps\n}) => {\n const isLoadingClassName: string = isReady ? 'showContainer' : 'notShowContainer';\n return (\n \n {title}\n {!isReady && waiting}\n \n \n );\n};\n\nexport default CheckoutExpressPaymentContainerView;\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 { 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 { 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 {\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 \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 {\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"],"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","SearchBar","super","onSearchTextChange","ev","setState","searchText","onSearch","state","handleKeyUp","keyCode","KeyCodes","searchPlaceholderLabel","type","placeholder","onChange","onKeyUp","onClick","DataGrid","renderGridHeader","rowClassName","columns","column","reactKey","name","renderGridRow","item","_column$onRender","fieldName","onRender","call","loadDataInternal","user","isAuthenticated","loadData","isLoading","_unused","hasError","paging","filter","loadMore","sortData","sorting","ascending","sort","item1","item2","value1","value2","toLowerCase","compareResult","filterData","find","c","isSearchable","columnValue","indexOf","trim","getDataToDisplay","itemsCount","pageSize","slice","hasMore","defaultSorting","componentDidMount","shouldComponentUpdate","nextProps","nextState","moduleClassName","genericErrorMessage","loadingLabel","ArrayExtensions","role","businessPartnerLoadMore","noDataMessage","BusinessPartnerUsersTable","getColumns","businessUserTableNameHeadingText","businessUserTableEmailHeadingText","businessUserTableSpendingLimitHeadingText","renderSelectButton","businessPartnerUser","Button","onSelect","select","getBusinessPartnerUsers","BusinessPartnersDataActions","callerContext","bypassCache","queryResultSettings","businessPartner","BusinessPartnerId","StatusValue","FirstName","LastName","spendingLimitStr","ObjectExtensions","SpendingLimit","cultureFormatter","formatCurrency","toString","businessPartnerSearchCustomer","BusinessPartnersTable","businessPartnerName","getBusinessPartners","businessPartnerSearchCompany","BusinessPartners","onSelectBusinessPartner","selectedBusinessPartner","onSelectBusinessPartnerUser","AccountNumber","cookies","setAccountSelectionCookie","homeUrl","window","location","removeAccountSelectionCookie","businessPartnersHeading","businessPartnersProps","classname","businessPartnersTable","businessPartnerUsersTable","backToBusinessPartnersLink","CheckInConfirmationComponent","_ref","confirmationText","shouldShowQrCode","channelReferenceIdLabel","channelReferenceId","QRCode","size","CheckInErrorComponent","errorMessage","CheckInForPickup","checkInForOrderPickup","Number","parseInt","query","packingSlipId","additionalInformationToSubmit","additionalInformationList","additionalInformationKeyValuePair","_additionalInformatio","formKey","resourceId","extensionPropertyList","additionalInformation","push","Key","Value","StringValue","SalesOrdersDataActions","headerErrorMessage","isCheckedIn","Promise","resolve","_onInit","_this$props$context$r","_this$props$context$r2","_this$props$context$r3","_this$props$context$r4","isNaN","params","isEditor","isPreview","requiredParameterMissingErrorMessage","additionalInformationKeys","_this$props$context$r5","isHeaderError","headerError","confirmationComponent","defaultConfirmationText","confirmationIdLabel","additionalInformationValues","viewState","additionalInformationHeading","_props$config$additio","FormBuilder","additionalInformationDefaultHeading","submitButtonText","additionalInformationSubmitButtonText","keys","requiredValueMissingErrorMessage","onSubmit","WaitingComponent","message","Waiting","CheckoutExpressPaymentContainer","_this$props$data$chec","_getItems","primary","_handleCheckoutExpressContainerHeadingChange","checkoutExpressPaymentContainerHeading","isReady","shouldHideExpressPaymentContainer","checkout","shippingAddressFromExpressCheckout","_this$props$data$chec2","isExpressPaymentModulesReady","items","includes","_this$props$data$chec3","_this$props$data$chec4","_this$props$data$chec5","_this$props$data$chec6","_this$props$data$chec7","extensionPropertyKey","paymentTenderType","isModuleReady","property","_this$props$data$chec8","isExpressCheckoutApplied","checkoutExpressPaymentSectionLoadingMessage","shouldHideExpressPaymentContainerClassName","checkoutPlainContainerProps","waiting","_renderMsdyn365Text","headerProps","ContainerItemsComponent","isLoadingClassName","_ref2","OrderInfomation","orderInformationProps","salesId","receiptId","createdDate","count","amount","channelName","channelAddress","SalesLine","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","Iframe","iframeRef","isConsentGiven","destinationUrl","srcURL","URL","exception","protocol","toLocaleLowerCase","iframeClassName","_createHeading","IframeContainer","IFrame","_createIframe","cookieConsentAccepted","_renderAlert","cookieConsentRequiredMessage","targetURL","src","height","iframeAriaLabel","ref","IFrameView","ProductSpecificationTableRow","productName","cellData","scope","getRichTextHtml","_toggle","drawerListId","isDrawerOpen","catalogId","_heading$tag","isAccrodion","displayStyle","handleText","_createDrawerBody","accordionItemContainer","_product$Name","Drawer","collapseProps","timeout","isOpen","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","onToggle","_product$DateTimeOffs","rowdata","toggleBopisHandler","cartLine","isBopisSelected","_cartLine$pickUpInSto","pickUpInStore","callbacks","toggleBopis","onChangeStoreHandler","_cartLine$pickUpInSto2","renderCartLine","storeSelector","telemetryContent","isMultiplePickUp","emailDeliveryModeCode","outOfStockErrorMessage","addToWishlist","remove","renderGroupBopisBlock","_cartLine$data2","cartline","DeliveryMode","changeStoreDisplayText","shipInsteadDisplayText","pickItUpDisplayText","payLoad","getPayloadObject","TelemetryConstant","puckUpinStoreAttribute","getTelemetryAttributes","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","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","createTemplateFromCartButton","renderOrderSummaryCheckout"],"sourceRoot":""}