{"version":3,"file":"static/js/0ad7034173926021f963.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/themes/moekwrsitetheme/views/product-specification.view.tsx?37e7","webpack://Msdyn365.Commerce.Online/./src/themes/moenzcsitetheme/views/product-specification.view.tsx?580a","webpack://Msdyn365.Commerce.Online/./src/themes/moetwksitetheme/views/product-specification.view.tsx?0ae2","webpack://Msdyn365.Commerce.Online/./lib/product-specification/module-registration.js?26aa","webpack://Msdyn365.Commerce.Online/./src/dataActions/get-attributes-for-selected-variant.ts?e4b6","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/external var \"React\"?0d3b","webpack://Msdyn365.Commerce.Online/external var \"ReactDOM\"?853b"],"sourcesContent":["/*--------------------------------------------------------------\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 * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React, { useState } from 'react';\r\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy';\r\n\r\nimport { IProductSpecificationViewProps } from '@msdyn365-commerce-modules/product-specification/src/modules/product-specification/./product-specification';\r\nimport { IProductSpecificationProps } from '../definition-extensions/product-specification.ext.props.autogenerated';\r\n// import { IoCloseSharp } from 'react-icons/io5';\r\n\r\nconst ProductSpecificationView: React.FC> = props => {\r\n const { ProductSpecification, ProductSpecificationTableProps, ProductSpecificationTableBodyProps, productSpecificationResult } = props;\r\n const rowdata =\r\n productSpecificationResult &&\r\n ArrayExtensions.hasElements(productSpecificationResult) &&\r\n productSpecificationResult.filter(row => !ObjectExtensions.isNullOrUndefined(row));\r\n let renderAsTag = props.config.renderAsTag;\r\n\r\n const [isTagEnabled, setIsTagEnabled] = useState(false);\r\n console.log(isTagEnabled);\r\n\r\n return rowdata && ArrayExtensions.hasElements(rowdata) ? (\r\n renderAsTag ? (\r\n
\r\n \r\n
\r\n
\r\n {props.title}\r\n \r\n
    {_renderAsTag(props)}
\r\n
\r\n
\r\n
\r\n ) : (\r\n \r\n {props.title}\r\n \r\n {rowdata}\r\n \r\n \r\n )\r\n ) : null;\r\n};\r\n\r\nconst _renderAsTag = (props: any): (JSX.Element | null)[] => {\r\n return props.data.productSpecificationData.result!.map((product: AttributeValue, index: any): any => {\r\n const cellData: JSX.Element | null = _renderProductCell(product, props);\r\n let isRefinable: boolean | undefined = false;\r\n // let isRetrievable: boolean | undefined = false;\r\n\r\n product?.ExtensionProperties?.forEach(item => {\r\n if (item.Key === 'IsRefinable') {\r\n isRefinable = item.Value?.BooleanValue;\r\n }\r\n // if (item.Key === 'IsRetrievable') {\r\n // isRetrievable = item.Value?.BooleanValue;\r\n // }\r\n });\r\n\r\n if (isRefinable) {\r\n if (product.TextValue) {\r\n return (\r\n
  • \r\n {product.Name}\r\n {cellData}\r\n
  • \r\n );\r\n }\r\n }\r\n });\r\n};\r\n\r\nconst _renderProductCell = (product: AttributeValue, props: IProductSpecificationViewProps): 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 _renderCurrencyCell(product);\r\n case 2: // DateTime\r\n return _renderDateTimeCell(product);\r\n case 3: // Decimal\r\n return _renderDecimalCell(product);\r\n case 4: // Integer\r\n return _renderIntegerCell(product);\r\n case 5: // Text\r\n return _renderTextCell(product);\r\n case 6: // TrueFalse\r\n return _renderTrueFalseCell(product, props);\r\n default:\r\n //props.telemetry.warning(`Got unknown specification type ${product.DataTypeValue} so skipping line`);\r\n return null;\r\n }\r\n};\r\n\r\nconst _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\nconst _renderDateTimeCell = (product: AttributeValue): JSX.Element | null => {\r\n if (product.DateTimeOffsetValue?.toUTCString) {\r\n return {product.DateTimeOffsetValue.toUTCString()};\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst _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\nconst _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\nconst _renderTextCell = (product: AttributeValue): JSX.Element | null => {\r\n if (product.TextValue !== null && product.TextValue !== undefined) {\r\n const span = product.TextValue.split(';').map((item: string, idx: number) => {\r\n if (item) {\r\n return ;\r\n } else {\r\n return <>;\r\n }\r\n });\r\n return <>{span};\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst _renderTrueFalseCell = (product: AttributeValue, props: IProductSpecificationViewProps): 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 {props.resources.trueValueText ? props.resources.trueValueText : 'Yes'};\r\n }\r\n return {props.resources.falseValueText ? props.resources.falseValueText : 'No'};\r\n};\r\n\r\nexport default ProductSpecificationView;\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 * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React, { useState } from 'react';\r\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy';\r\n\r\nimport { IProductSpecificationViewProps } from '@msdyn365-commerce-modules/product-specification/src/modules/product-specification/./product-specification';\r\nimport { IProductSpecificationProps } from '../definition-extensions/product-specification.ext.props.autogenerated';\r\n// import { IoCloseSharp } from 'react-icons/io5';\r\n\r\nconst ProductSpecificationView: React.FC> = props => {\r\n const { ProductSpecification, ProductSpecificationTableProps, ProductSpecificationTableBodyProps, productSpecificationResult } = props;\r\n const rowdata =\r\n productSpecificationResult &&\r\n ArrayExtensions.hasElements(productSpecificationResult) &&\r\n productSpecificationResult.filter(row => !ObjectExtensions.isNullOrUndefined(row));\r\n let renderAsTag = props.config.renderAsTag;\r\n\r\n const [isTagEnabled, setIsTagEnabled] = useState(false);\r\n console.log(isTagEnabled);\r\n\r\n return rowdata && ArrayExtensions.hasElements(rowdata) ? (\r\n renderAsTag ? (\r\n
    \r\n \r\n
    \r\n
    \r\n {props.title}\r\n \r\n
      {_renderAsTag(props)}
    \r\n
    \r\n
    \r\n
    \r\n ) : (\r\n \r\n {props.title}\r\n \r\n {rowdata}\r\n \r\n \r\n )\r\n ) : null;\r\n};\r\n\r\nconst _renderAsTag = (props: any): (JSX.Element | null)[] => {\r\n return props.data.productSpecificationData.result!.map((product: AttributeValue, index: any): any => {\r\n const cellData: JSX.Element | null = _renderProductCell(product, props);\r\n let isRefinable: boolean | undefined = false;\r\n // let isRetrievable: boolean | undefined = false;\r\n\r\n product?.ExtensionProperties?.forEach(item => {\r\n if (item.Key === 'IsRefinable') {\r\n isRefinable = item.Value?.BooleanValue;\r\n }\r\n // if (item.Key === 'IsRetrievable') {\r\n // isRetrievable = item.Value?.BooleanValue;\r\n // }\r\n });\r\n\r\n if (isRefinable) {\r\n if (product.TextValue) {\r\n return (\r\n
  • \r\n {product.Name}\r\n {cellData}\r\n
  • \r\n );\r\n }\r\n }\r\n });\r\n};\r\n\r\nconst _renderProductCell = (product: AttributeValue, props: IProductSpecificationViewProps): 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 _renderCurrencyCell(product);\r\n case 2: // DateTime\r\n return _renderDateTimeCell(product);\r\n case 3: // Decimal\r\n return _renderDecimalCell(product);\r\n case 4: // Integer\r\n return _renderIntegerCell(product);\r\n case 5: // Text\r\n return _renderTextCell(product);\r\n case 6: // TrueFalse\r\n return _renderTrueFalseCell(product, props);\r\n default:\r\n //props.telemetry.warning(`Got unknown specification type ${product.DataTypeValue} so skipping line`);\r\n return null;\r\n }\r\n};\r\n\r\nconst _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\nconst _renderDateTimeCell = (product: AttributeValue): JSX.Element | null => {\r\n if (product.DateTimeOffsetValue?.toUTCString) {\r\n return {product.DateTimeOffsetValue.toUTCString()};\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst _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\nconst _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\nconst _renderTextCell = (product: AttributeValue): JSX.Element | null => {\r\n if (product.TextValue !== null && product.TextValue !== undefined) {\r\n const span = product.TextValue.split(';').map((item: string, idx: number) => {\r\n if (item) {\r\n return ;\r\n } else {\r\n return <>;\r\n }\r\n });\r\n return <>{span};\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst _renderTrueFalseCell = (product: AttributeValue, props: IProductSpecificationViewProps): 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 {props.resources.trueValueText ? props.resources.trueValueText : 'Yes'};\r\n }\r\n return {props.resources.falseValueText ? props.resources.falseValueText : 'No'};\r\n};\r\n\r\nexport default ProductSpecificationView;\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 * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React, { useState } from 'react';\r\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy';\r\n\r\nimport { IProductSpecificationViewProps } from '@msdyn365-commerce-modules/product-specification/src/modules/product-specification/./product-specification';\r\nimport { IProductSpecificationProps } from '../definition-extensions/product-specification.ext.props.autogenerated';\r\n// import { IoCloseSharp } from 'react-icons/io5';\r\n\r\nconst ProductSpecificationView: React.FC> = props => {\r\n const { ProductSpecification, ProductSpecificationTableProps, ProductSpecificationTableBodyProps, productSpecificationResult } = props;\r\n const rowdata =\r\n productSpecificationResult &&\r\n ArrayExtensions.hasElements(productSpecificationResult) &&\r\n productSpecificationResult.filter(row => !ObjectExtensions.isNullOrUndefined(row));\r\n let renderAsTag = props.config.renderAsTag;\r\n\r\n const [isTagEnabled, setIsTagEnabled] = useState(false);\r\n console.log(isTagEnabled);\r\n\r\n return rowdata && ArrayExtensions.hasElements(rowdata) ? (\r\n renderAsTag ? (\r\n
    \r\n \r\n
    \r\n
    \r\n {props.title}\r\n \r\n
      {_renderAsTag(props)}
    \r\n
    \r\n
    \r\n
    \r\n ) : (\r\n \r\n {props.title}\r\n \r\n {rowdata}\r\n \r\n \r\n )\r\n ) : null;\r\n};\r\n\r\nconst _renderAsTag = (props: any): (JSX.Element | null)[] => {\r\n return props.data.productSpecificationData.result!.map((product: AttributeValue, index: any): any => {\r\n const cellData: JSX.Element | null = _renderProductCell(product, props);\r\n let isRefinable: boolean | undefined = false;\r\n // let isRetrievable: boolean | undefined = false;\r\n\r\n product?.ExtensionProperties?.forEach(item => {\r\n if (item.Key === 'IsRefinable') {\r\n isRefinable = item.Value?.BooleanValue;\r\n }\r\n // if (item.Key === 'IsRetrievable') {\r\n // isRetrievable = item.Value?.BooleanValue;\r\n // }\r\n });\r\n\r\n if (isRefinable) {\r\n if (product.TextValue) {\r\n return (\r\n
  • \r\n {product.Name}\r\n {cellData}\r\n
  • \r\n );\r\n }\r\n }\r\n });\r\n};\r\n\r\nconst _renderProductCell = (product: AttributeValue, props: IProductSpecificationViewProps): 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 _renderCurrencyCell(product);\r\n case 2: // DateTime\r\n return _renderDateTimeCell(product);\r\n case 3: // Decimal\r\n return _renderDecimalCell(product);\r\n case 4: // Integer\r\n return _renderIntegerCell(product);\r\n case 5: // Text\r\n return _renderTextCell(product);\r\n case 6: // TrueFalse\r\n return _renderTrueFalseCell(product, props);\r\n default:\r\n //props.telemetry.warning(`Got unknown specification type ${product.DataTypeValue} so skipping line`);\r\n return null;\r\n }\r\n};\r\n\r\nconst _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\nconst _renderDateTimeCell = (product: AttributeValue): JSX.Element | null => {\r\n if (product.DateTimeOffsetValue?.toUTCString) {\r\n return {product.DateTimeOffsetValue.toUTCString()};\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst _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\nconst _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\nconst _renderTextCell = (product: AttributeValue): JSX.Element | null => {\r\n if (product.TextValue !== null && product.TextValue !== undefined) {\r\n const span = product.TextValue.split(';').map((item: string, idx: number) => {\r\n if (item) {\r\n return ;\r\n } else {\r\n return <>;\r\n }\r\n });\r\n return <>{span};\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst _renderTrueFalseCell = (product: AttributeValue, props: IProductSpecificationViewProps): 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 {props.resources.trueValueText ? props.resources.trueValueText : 'Yes'};\r\n }\r\n return {props.resources.falseValueText ? props.resources.falseValueText : 'No'};\r\n};\r\n\r\nexport default ProductSpecificationView;\r\n","const binding = { modules: {}, dataActions: {} };\n\n const registerActionId = (actionPath) => {\n if (binding.dataActions[actionPath] &&\n binding.dataActions[actionPath].default &&\n binding.dataActions[actionPath].default.prototype &&\n binding.dataActions[actionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[actionPath].default.prototype.id] = binding.dataActions[actionPath];\n } else {\n Object.keys(binding.dataActions[actionPath] || {}).forEach(exportName => {\n if (binding.dataActions[actionPath][exportName] &&\n binding.dataActions[actionPath][exportName].prototype &&\n binding.dataActions[actionPath][exportName].prototype.Action) {\n binding.dataActions[binding.dataActions[actionPath][exportName].prototype.id] = binding.dataActions[actionPath][exportName];\n }\n })\n }\n };\n\n const registerSanitizedActionPath = (sanitizedActionPath, dataAction) => {\n if (process.env.NODE_ENV === 'development') {\n if (!dataAction.default) {\n throw new Error('Data action path does not have a default export');\n }\n if (!(dataAction.default.prototype.id && binding.dataActions[dataAction.default.prototype.id]) || !binding.dataActions[sanitizedActionPath]) {\n binding.dataActions[sanitizedActionPath] = dataAction;\n }\n } else {\n binding.dataActions[sanitizedActionPath] = dataAction;\n if (!binding.dataActions[sanitizedActionPath].default) {\n throw new Error('Data action path ' + sanitizedActionPath + ' does not have a default export');\n }\n binding.dataActions[sanitizedActionPath].default.prototype.RegistrationId = sanitizedActionPath;\n if (binding.dataActions[sanitizedActionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[sanitizedActionPath].default.prototype.id] = sanitizedActionPath;\n }\n }\n };\n \n\n (binding.modules['product-specification'] = {\n c: () => require('@msdyn365-commerce-modules/product-specification/dist/lib/modules/product-specification/product-specification'),\n $type: 'contentModule',\n da: [{name:'product', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant', runOn: 0},{name:'productSpecificationData', path:'@msdyn365-commerce-modules/product-specification/dist/lib/dataActions/get-attributes-for-selected-variant', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'product-specification',\n p: 'product-specification',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/product-specification/dist/lib/modules/product-specification'\n });\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/product-specification/dist/lib/dataActions/get-attributes-for-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/product-specification/dist/lib/dataActions/get-attributes-for-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n \n window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.dataActions = {\n ...window.__bindings__.dataActions || {},\n ...binding.dataActions\n };\n export const viewDictionary = {};\n viewDictionary['__local__|__local__|themes|moekwrsitetheme|views|product-specification'] = {\n c: () => require('partner/themes/moekwrsitetheme/views/product-specification.view.tsx'),\n cn: '__local__-__local__-product-specification'\n };\nviewDictionary['__local__|__local__|themes|moenzcsitetheme|views|product-specification'] = {\n c: () => require('partner/themes/moenzcsitetheme/views/product-specification.view.tsx'),\n cn: '__local__-__local__-product-specification'\n };\nviewDictionary['__local__|__local__|themes|moetwksitetheme|views|product-specification'] = {\n c: () => require('partner/themes/moetwksitetheme/views/product-specification.view.tsx'),\n cn: '__local__-__local__-product-specification'\n };\nviewDictionary['@msdyn365-commerce-modules|product-specification|modules|product-specification|product-specification'] = {\n c: () => require('@msdyn365-commerce-modules/product-specification/dist/lib/modules/product-specification/product-specification.view.js'),\n cn: '@msdyn365-commerce-modules-product-specification-product-specification'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n getCatalogId,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { AttributeValue, ProductsDataActions, SimpleProduct, StoreOperationsDataActions } from '@msdyn365-commerce/retail-proxy';\nimport {\n getAttributeValuesByConfiguration,\n getSelectedProductIdFromActionInput,\n getSelectedVariant,\n QueryResultSettingsProxy,\n SelectedVariantInput\n} from '@msdyn365-commerce-modules/retail-actions';\n\n/**\n * Chains getting the SelectedVariant with GetActivePrice.\n */\nexport class AttributesForSelectedVariantInput implements IActionInput {\n public productId: number;\n\n public channelId: number;\n\n public catalogId: number;\n\n public selectedProduct: SimpleProduct | undefined;\n\n constructor(productId: number, channelId: number, selectedProduct?: SimpleProduct, catalogId?: number) {\n this.productId = productId;\n this.channelId = channelId;\n this.selectedProduct = selectedProduct;\n this.catalogId = catalogId || 0;\n }\n\n public getCacheKey = () => 'AttributesForSelectedVariant';\n\n public getCacheObjectType = () => 'ProductAttributeValue';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\nexport const createAttributesForSelectedVariantInput = (\n inputData: ICreateActionContext>\n): AttributesForSelectedVariantInput => {\n const productId = getSelectedProductIdFromActionInput(inputData);\n const catalogId = getCatalogId(inputData.requestContext);\n\n if (productId) {\n return new AttributesForSelectedVariantInput(+productId, +inputData.requestContext.apiSettings.channelId, undefined, catalogId);\n }\n throw new Error('Unable to create PriceForSelectedVariantInput, no productId found on module config or query');\n};\n\n/**\n * Calls the Retail API a get a list of dimension values for a given product.\n * @param input - The input.\n * @param context - The context.\n * @returns The attribute values.\n */\nexport async function getAttributesForSelectedVariantAction(\n input: AttributesForSelectedVariantInput,\n context: IActionContext\n): Promise {\n return Promise.resolve()\n .then(() => {\n const activeProduct: SimpleProduct | undefined = input.selectedProduct;\n\n if (!activeProduct) {\n const selectedVariantInput = new SelectedVariantInput(\n input.productId,\n input.channelId,\n undefined,\n undefined,\n context.requestContext\n );\n\n return getSelectedVariant(selectedVariantInput, context);\n }\n\n return activeProduct;\n })\n .then((productResult: SimpleProduct | null) => {\n const activeProduct: SimpleProduct | undefined = productResult;\n\n if (activeProduct) {\n return ProductsDataActions.getAttributeValuesAsync(\n {\n callerContext: context,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context)\n },\n activeProduct.RecordId,\n input.channelId,\n input.catalogId\n );\n }\n\n return null;\n })\n .then(async (attributeValues: AttributeValue[] | null) => {\n const channelInventoryConfiguration = await StoreOperationsDataActions.getInventoryConfigurationAsync({\n callerContext: context\n });\n\n return { attributeValues, channelInventoryConfiguration };\n })\n .then(result => {\n return getAttributeValuesByConfiguration(result.attributeValues, result.channelInventoryConfiguration);\n })\n .catch((error: Error) => {\n context.trace(error.message);\n throw new Error('[getPriceForSelectedVariantAction]Error executing action');\n });\n}\n\nexport default createObservableDataAction({\n id: '@msdyn365-commerce-modules/product-info/get-attributes-for-selected-variant',\n action: >getAttributesForSelectedVariantAction,\n input: createAttributesForSelectedVariantInput\n});\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","module.exports = React;","module.exports = ReactDOM;"],"names":["_renderAsTag","props","data","productSpecificationData","result","map","product","index","_product$ExtensionPro","cellData","_renderProductCell","isRefinable","ExtensionProperties","forEach","item","_item$Value","Key","Value","BooleanValue","TextValue","React","className","Name","DataTypeValue","_renderCurrencyCell","_renderDateTimeCell","_renderDecimalCell","_renderIntegerCell","_renderTextCell","_renderTrueFalseCell","CurrencyValue","undefined","CurrencyCode","_product$DateTimeOffs","DateTimeOffsetValue","toUTCString","IntegerValue","FloatValue","span","split","idx","key","dangerouslySetInnerHTML","Msdyn365","resources","trueValueText","falseValueText","ProductSpecification","ProductSpecificationTableProps","ProductSpecificationTableBodyProps","productSpecificationResult","rowdata","ArrayExtensions","hasElements","filter","row","ObjectExtensions","isNullOrUndefined","renderAsTag","config","isTagEnabled","setIsTagEnabled","useState","console","log","onClick","title","Module","Object","assign","Node","binding","modules","dataActions","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","Error","prototype","RegistrationId","id","c","require","$type","da","name","path","runOn","iNM","ns","n","p","pdp","md","window","__bindings__","_objectSpread","viewDictionary","cn","AttributesForSelectedVariantInput","constructor","productId","channelId","selectedProduct","catalogId","getCacheKey","getCacheObjectType","dataCacheType","this","createAttributesForSelectedVariantInput","inputData","getSelectedProductIdFromActionInput","getCatalogId","requestContext","apiSettings","async","getAttributesForSelectedVariantAction","input","context","Promise","resolve","then","activeProduct","selectedVariantInput","SelectedVariantInput","getSelectedVariant","productResult","ProductsDataActions","callerContext","queryResultSettings","QueryResultSettingsProxy","getPagingFromInputDataOrDefaultValue","RecordId","attributeValues","channelInventoryConfiguration","StoreOperationsDataActions","getAttributeValuesByConfiguration","catch","error","trace","message","createObservableDataAction","action","ProductSpecificationTableRow","_ref","productName","scope","getRichTextHtml","super","handleHeadingChange","event","heading","text","target","value","_toggle","drawerListId","state","setState","isDrawerOpen","telemetry","request","reaction","actionInput","actionContext","getAttributesForSelectedVariant","debug","shouldComponentUpdate","nextProps","nextState","render","_heading$tag","length","isAccrodion","displayStyle","viewProps","handleText","moduleProps","classnames","tag","editProps","onEdit","_createDrawerBody","_createTableBody","renderView","content","accordionItemContainer","_product$Name","Drawer","collapseProps","timeout","isOpen","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","onToggle","warning","__decorate","observer","module","exports","ReactDOM"],"sourceRoot":""}