{"version":3,"file":"static/js/16.e590b7b0754039ed8c19.chunk.js","mappings":"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","sources":["webpack://Citta2.0/./src/modules/product-specification/product-specification.view.tsx?7490","webpack://Citta2.0/./src/modules/default-container/default-container.tsx?01c3","webpack://Citta2.0/./src/modules/default-container-2-slots/default-container-2-slots.tsx?8065","webpack://Citta2.0/./src/modules/default-container-3-slots/default-container-3-slots.tsx?ac77","webpack://Citta2.0/./src/modules/product-specification/components/product-specification-table-stucture.tsx?c1c4","webpack://Citta2.0/./src/modules/product-specification/product-specification.tsx?6583","webpack://Citta2.0/./src/modules/citta-b2b-account-welcome-tile/citta-b2b-account-welcome-tile.tsx?46ed","webpack://Citta2.0/./src/modules/citta-product-sku/citta-product-sku.tsx?546d","webpack://Citta2.0/./src/modules/citta-b2b-account-welcome-tile/citta-b2b-account-welcome-tile.view.tsx?f855","webpack://Citta2.0/./src/modules/citta-product-sku/citta-product-sku.view.tsx?f3df","webpack://Citta2.0/./src/themes/citta/views/password-reset-verification.view.tsx?766e","webpack://Citta2.0/./src/themes/citta/views/search.view.tsx?baf5","webpack://Citta2.0/./src/components/container-background-image/container-background-image-helper.ts?ce2e","webpack://Citta2.0/./src/components/container-background-image/container-backgroud-image.tsx?e863","webpack://Citta2.0/./src/components/base-components.tsx?daec","webpack://Citta2.0/./src/utils/classnames.ts?a0ff"],"sourcesContent":["/*!\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 { ContentEditableEvent } from '@msdyn365-commerce/core';\nimport { LogLevel } from '@msdyn365-commerce/telemetry-internal';\nimport * as React from 'react';\nimport { Container, HeadingComponent, IHeadingComponentProps } from '../../components/base-components';\nimport { colWidths } from '../../utils/classnames';\nimport { IDefaultContainerData } from './default-container.data';\nimport { childrenWidth as childrenWidthEnum, IDefaultContainerProps, layout as layoutEnum } from './default-container.props.autogenerated';\n\n/**\n *\n * CoreComponent component\n * @extends {React.PureComponent>}\n */\nclass DefaultContainer extends React.PureComponent> {\n constructor(props: IDefaultContainerProps) {\n super(props);\n }\n\n public render(): JSX.Element {\n const { slots, telemetry, config, data } = this.props;\n telemetry.log(LogLevel.Debug, \"Default Container rendering for '{id}/{typeName}'\", {\n values: [this.props.id, this.props.typeName]\n });\n\n const heading = config.heading || data.heading;\n const headingProps: IHeadingComponentProps = {\n ...heading,\n handleTextChange: this.handleTextChange,\n requestContext: this.props.context.request\n };\n\n return (\n \n {heading && }\n {slots &&\n slots.content &&\n slots.content.map((children: React.ReactNode, index: number) => {\n return (\n
\n {children}\n
\n );\n })}\n \n );\n }\n\n public handleTextChange = (event: ContentEditableEvent) => (this.props.config.heading!.headingText = event.target.value);\n\n private _getChildColClassName(): string {\n const {\n config: { layout, childrenWidth }\n } = this.props;\n switch (layout) {\n case layoutEnum.flow:\n return childrenWidth === childrenWidthEnum.auto ? 'col-12 col-md' : this._getWidthClass(childrenWidth);\n case layoutEnum.stacked:\n default:\n return 'col-12';\n }\n }\n\n private _getWidthClass(s?: childrenWidthEnum): string {\n return colWidths.get(s || childrenWidthEnum.four) || 'col-12';\n }\n}\n\nexport default DefaultContainer;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ContentEditableEvent } from '@msdyn365-commerce/core';\nimport { LogLevel } from '@msdyn365-commerce/telemetry-internal';\nimport React, { ReactNode } from 'react';\nimport { Container, HeadingComponent, IHeadingComponentProps } from '../../components/base-components';\nimport { getColClassArray, showErrors } from '../../utils/classnames';\nimport { IDefaultContainer2SlotsData } from './default-container-2-slots.data';\nimport { IDefaultContainer2SlotsProps } from './default-container-2-slots.props.autogenerated';\n\ninterface IColSizes {\n left: string[];\n right: string[];\n}\n\n/**\n * Default container that displays 2 modules\n * CoreComponent component\n * @extends {React.PureComponent>}\n */\nclass Default2SlotContainer extends React.PureComponent> {\n constructor(props: IDefaultContainer2SlotsProps) {\n super(props);\n }\n\n public render(): JSX.Element {\n const { slots, telemetry, context, config, data } = this.props;\n telemetry.log(LogLevel.Debug, \"Default 2 Slot Container rendering for '{id}/{typeName}'\", {\n values: [this.props.id, this.props.typeName]\n });\n\n const content = slots && slots.content;\n const slotsClassNames = this._getColClassName();\n if (content && content.length > 2) {\n telemetry.log(LogLevel.Warning, 'Default 2 Slot Container passed more than 2 slots');\n }\n const heading = config.heading || data.heading;\n const headingProps: IHeadingComponentProps = {\n ...heading,\n handleTextChange: this.handleTextChange,\n requestContext: this.props.context.request\n };\n return (\n \n {heading && }\n {content && content[0] &&
{content[0]}
}\n {content && content[1] &&
{content[1]}
}\n <>\n {showErrors(context) &&\n content &&\n content.slice(2, content.length - 1).map((slot: ReactNode, index: number) => {\n return (\n
\n
\n
\n Slot exceeded maximum number of slots supported by container. (2)\n
\n
\n
\n );\n })}\n \n \n );\n }\n\n public handleTextChange = (event: ContentEditableEvent) => (this.props.config.heading!.headingText = event.target.value);\n /**\n * Captures left and right column classnames from this.props.config. Returns col if no options specified.\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _getColClassName = (): IColSizes => {\n const { config } = this.props;\n\n const classNames = getColClassArray(config);\n\n if (!classNames.length) {\n return {\n left: ['col'],\n right: ['col']\n };\n }\n\n return classNames.reduce(\n (memo: IColSizes, [left, right]: string[]) => {\n memo.left.push(left);\n memo.right.push(right);\n return memo;\n },\n { left: [], right: [] }\n );\n };\n}\n\nexport default Default2SlotContainer;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ContentEditableEvent } from '@msdyn365-commerce/core';\nimport { LogLevel } from '@msdyn365-commerce/telemetry-internal';\nimport React, { ReactNode } from 'react';\nimport { Container, HeadingComponent, IHeadingComponentProps } from '../../components/base-components';\nimport { getColClassArray, showErrors } from '../../utils/classnames';\nimport { IDefaultContainer3SlotsData } from './default-container-3-slots.data';\nimport { IDefaultContainer3SlotsProps } from './default-container-3-slots.props.autogenerated';\n\ninterface IColSizes {\n left: string[];\n center: string[];\n right: string[];\n}\n\n/**\n *\n * CoreComponent component\n * @extends {React.PureComponent>}\n */\nclass Default3SlotContainer extends React.PureComponent> {\n constructor(props: IDefaultContainer3SlotsProps) {\n super(props);\n }\n\n public render(): JSX.Element {\n const { slots, telemetry, context, config, data } = this.props;\n\n const slotsClassNames = this._getColClassName();\n const content = slots && slots.content;\n\n telemetry.log(LogLevel.Debug, \"Default 3 Slot Container rendering for '{id}/{typeName}'\", {\n values: [this.props.id, this.props.typeName]\n });\n if (content && content.length > 3) {\n telemetry.log(LogLevel.Warning, 'Default 3 Slot Container passed more than 3 slots');\n }\n const heading = config.heading || data.heading;\n const headingProps: IHeadingComponentProps = {\n ...heading,\n handleTextChange: this.handleTextChange,\n requestContext: this.props.context.request\n };\n return (\n \n {heading && }\n {content && content[0] &&
{content[0]}
}\n {content && content[1] &&
{content[1]}
}\n {content && content[2] &&
{content[2]}
}\n <>\n {showErrors(context) &&\n content &&\n content.slice(2, content.length - 1).map((slot: ReactNode, index: number) => {\n return (\n
\n
\n
\n Slot exceeded maximum number of slots supported by container. (3)\n
\n
\n
\n );\n })}\n \n \n );\n }\n\n public handleTextChange = (event: ContentEditableEvent) => (this.props.config.heading!.headingText = event.target.value);\n /**\n * Captures left and right column classnames from this.props.config. Returns col if no options specified.\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _getColClassName = (): IColSizes => {\n const { config } = this.props;\n\n const classNames = getColClassArray(config);\n\n if (!classNames.length) {\n return {\n left: ['col'],\n center: ['col'],\n right: ['col']\n };\n }\n\n return classNames.reduce(\n (memo: IColSizes, [left, center, right]: string[]) => {\n memo.left.push(left);\n memo.center.push(center);\n memo.right.push(right);\n return memo;\n },\n { left: [], center: [], right: [] }\n );\n };\n}\n\nexport default Default3SlotContainer;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 { validateCatalogId } from '@msdyn365-commerce-modules/retail-actions';\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 isAdditionalMediaDrawerOpen: 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\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 isAdditionalMediaDrawerOpen: 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 validateCatalogId(catalogId);\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 productSpecificationResult:\n productSpecificationData.result && (isAccrodion ? this._createDrawerBody(data) : 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 const tableRows = 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\n if (this.props.context.request.app?.config?.OmniChannelMedia && this.props.data.additionalMediaLocations.result?.length) {\n tableRows.push(this._createAdditionalMediaDrawer());\n }\n\n return tableRows;\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\n const drawers = 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 if (this.props.context.request.app?.config?.OmniChannelMedia && this.props.data.additionalMediaLocations.result?.length) {\n drawers.push(this._createAdditionalMediaDrawer());\n }\n\n return drawers;\n }\n private _createAdditionalMediaDrawer(): JSX.Element {\n const accordionItemContainer: IModuleProps = {\n moduleProps: this.props,\n className: 'ms-product-specification-title'\n };\n\n return (\n \n {\n this.setState(prevState => ({\n ...prevState,\n isAdditionalMediaDrawerOpen: !prevState.isAdditionalMediaDrawerOpen\n }));\n }}\n >\n
\n \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","/*!\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\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { ICittaB2bAccountWelcomeTileData } from './citta-b2b-account-welcome-tile.data';\r\nimport { ICittaB2bAccountWelcomeTileProps } from './citta-b2b-account-welcome-tile.props.autogenerated';\r\n\r\nexport interface IAccountWelcomeTileViewProps extends ICittaB2bAccountWelcomeTileProps {\r\n AccountWelcomeTile: IModuleProps;\r\n className: string;\r\n heading?: React.ReactNode;\r\n}\r\n\r\n/**\r\n *\r\n * AccountWelcome component.\r\n * @extends {React.PureComponent>}\r\n */\r\nclass AccountWelcomeTile extends React.PureComponent> {\r\n public render(): JSX.Element {\r\n const { config, data } = this.props;\r\n const { className } = config;\r\n\r\n const accountInfo = data.accountInformation.result;\r\n const heading = {\r\n ...config.heading,\r\n ...{\r\n text: `${config.heading.text ? config.heading.text : ''} ${\r\n accountInfo && accountInfo.Name ? accountInfo.Name : ''\r\n }`\r\n }\r\n };\r\n\r\n const viewProps = {\r\n ...this.props,\r\n className,\r\n AccountWelcomeTile: {\r\n moduleProps: this.props,\r\n className: classnames('ms-account-welcome-tile', config.className)\r\n },\r\n heading: heading && heading.text && (\r\n \r\n )\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\r\n}\r\n\r\nexport default AccountWelcomeTile;\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 { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport classname from 'classnames';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nimport { ICittaProductSkuData } from './citta-product-sku.data';\r\nimport { ICittaProductSkuProps } from './citta-product-sku.props.autogenerated';\r\n\r\nexport interface ICittaProductSkuViewProps extends ICittaProductSkuProps {\r\n ProductSkuContainer: IModuleProps;\r\n SkuTitleTextNode: INodeProps;\r\n ProductSkuNode: INodeProps;\r\n}\r\n\r\n/**\r\n *\r\n * CittaProductSku component\r\n * @extends {React.PureComponent>}\r\n */\r\n@observer\r\nclass CittaProductSku extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n let content: ICittaProductSkuData;\r\n\r\n try {\r\n content = this.props.data;\r\n } catch(e) {\r\n this.props.telemetry.error(`Something went wrong -----${e}`);\r\n return null;\r\n }\r\n\r\n const productSku = content && content.product && content.product.result && content.product.result.ItemId;\r\n const skuTitleText = this.props.config && this.props.config.skuTitleText ? this.props.config.skuTitleText : 'SKU:';\r\n const className = this.props.config && this.props.config.className ? this.props.config.className : '';\r\n if (productSku) {\r\n const productSkuViewProps: ICittaProductSkuViewProps = {\r\n ...(this.props as ICittaProductSkuProps),\r\n ProductSkuContainer: {\r\n moduleProps: this.props,\r\n className: classname('product-sku', className),\r\n },\r\n SkuTitleTextNode: {\r\n className: 'product-sku-title',\r\n children: skuTitleText\r\n },\r\n ProductSkuNode: {\r\n className: 'product-sku-id',\r\n children: productSku\r\n }\r\n };\r\n return this.props.renderView(productSkuViewProps) as React.ReactElement;\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport default CittaProductSku;\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\n/* eslint-disable no-duplicate-imports */\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAccountWelcomeTileViewProps } from './citta-b2b-account-welcome-tile';\r\n\r\nconst AccountWelcomeTileView: React.FC = props => {\r\n const { AccountWelcomeTile, heading } = props;\r\n\r\n return {heading};\r\n};\r\n\r\nexport default AccountWelcomeTileView;\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { ICittaProductSkuViewProps } from './citta-product-sku';\r\n\r\n/**\r\n *\r\n * ICittaProductSkuView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class ICittaProductSkuView extends React.PureComponent {\r\n\r\n public render(): JSX.Element | null {\r\n const { ProductSkuContainer, ProductSkuNode, SkuTitleTextNode } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\nexport default ICittaProductSkuView;","/*!\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n IPasswordResetVerificationItem,\r\n IPasswordResetVerificationLoading,\r\n IPasswordResetVerificationLocalAccount,\r\n IPasswordResetVerificationViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/password-reset-verification/./password-reset-verification';\r\n\r\nconst PasswordResetVerificationItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\r\n return (\r\n \r\n {label}\r\n {errorMessage}\r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n verificationControlWrapper,\r\n items,\r\n successMessage,\r\n errorMessage,\r\n verificationButtonsWrapper,\r\n verificationButtons,\r\n buttonsWrapper,\r\n buttons,\r\n verificationSuccessModal,\r\n verificationSuccessModalMessage\r\n}) => {\r\n return (\r\n \r\n \r\n {successMessage &&\r\n successMessage.map((message: React.ReactNode, index: number) => {\r\n return {message};\r\n })}\r\n {items &&\r\n items.map((item: IPasswordResetVerificationItem) => {\r\n // eslint-disable-next-line react/jsx-key\r\n return ;\r\n })}\r\n {errorMessage &&\r\n errorMessage.map((error: React.ReactNode, index: number) => {\r\n return {error};\r\n })}\r\n \r\n {verificationButtons &&\r\n verificationButtons.map((button: React.ReactNode, index: number) => {\r\n return {button};\r\n })}\r\n \r\n\r\n \r\n {buttons &&\r\n buttons.map((button: React.ReactNode, index: number) => {\r\n return {button};\r\n })}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst PasswordResetVerificationLoading: React.FC = ({ modal, modalBody, icon, message }) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst PasswordResetVerificationView: React.FC = props => {\r\n const {\r\n passwordResetVerification,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n heading,\r\n passwordResetVerificationLocalAccount\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n {!viewState.isShowLoading && \r\n {heading}\r\n {LocalAccount(passwordResetVerificationLocalAccount)}\r\n }\r\n \r\n );\r\n};\r\n\r\nexport default PasswordResetVerificationView;\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 { ISearchCategoryViewProps, ISearchFormViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search';\r\nimport { INodeProps, Module, Node, UncontrolledTooltip } from '@msdyn365-commerce-modules/utilities';\r\nimport MsDyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n const isSearchFormShow: boolean = SearchForm.className && SearchForm.className.indexOf('bx-show') !== -1 || false;\r\n if (MsDyn365.isBrowser) {\r\n // window.document && window.document.body.classList.toggle('menu-open', isSearchFormShow);\r\n window.document && window.document.body.classList.toggle('search-open', isSearchFormShow);\r\n }\r\n return (\r\n \r\n {label}\r\n { /* @ts-ignore */ }\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper, props)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps, props: ISearchViewProps) => {\r\n const { cancelBtnAriaLabel, submitBtnAriaLabel } = props.resources;\r\n return (\r\n \r\n \r\n {form.input}\r\n \r\n {form.cancelBtn}\r\n \r\n {{cancelBtnAriaLabel}}\r\n \r\n {form.submitBtn}\r\n \r\n {{submitBtnAriaLabel}}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.text}\r\n {item.price}\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport msdyn365Commerce, {\n constructViewportInformationForImage,\n getImageResizeUrl,\n getLargestGridSettingViewportName,\n getMinMaxWidth,\n IAny,\n IGeneric,\n IViewPort,\n Viewport\n} from '@msdyn365-commerce/core-internal';\nimport { cloneDeep as _cloneDeep } from 'lodash';\nimport {\n BackgroundImageRepeat,\n BackgroundImageSize,\n IBackgroundImageAttributes,\n IBackgroundImageLazyloadAttributes,\n IBackgroundImageProps,\n IBackgroundImageStyle\n} from './container-background-image-interfaces';\n\nconst getBackgroundRepeatProperty = (size: string | undefined, repeat: string | undefined): BackgroundImageRepeat => {\n if (!size || size === 'cover') {\n return 'no-repeat';\n }\n switch (repeat) {\n case 'noRepeat':\n return 'no-repeat';\n case 'repeat':\n return 'repeat';\n default:\n return 'no-repeat';\n }\n};\n\nconst getBackgroundSizeProperty = (size: string | undefined): BackgroundImageSize => {\n switch (size) {\n case 'cover':\n return 'cover';\n case 'contain':\n return 'contain';\n case 'default':\n default:\n return undefined;\n }\n};\n\nconst getDefaultViewports = (): IViewPort => {\n return {\n xs: {\n w: 800,\n h: 600\n },\n sm: {\n w: 1200,\n h: 900\n },\n md: {\n w: 1600,\n h: 900\n },\n lg: {\n w: 1600,\n h: 700\n },\n xl: {\n w: 1600,\n h: 700\n }\n };\n};\n\nconst getAuthoringViewport = (moduleName: string | undefined, layout: string | undefined): IViewPort | undefined => {\n if (!msdyn365Commerce.isBrowser) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const authoringHelper = (window as any)._msdyn365.authoringHelper;\n if (!authoringHelper) {\n return;\n }\n\n // if authoring helper is setup, component is rendering from site builder. Build viewport based on layout selected.\n return constructViewportInformationForImage(moduleName, layout, 'backgroundImage', authoringHelper?.themeSettings) as IViewPort;\n};\n\nexport const buildBackgroundImageStylesByViewport = (props: IBackgroundImageProps): IGeneric => {\n const { containerType, image, request, configs } = props;\n\n const gridSettings = request.gridSettings ?? {};\n const imageSettings = image.imageSettings;\n\n const styles: IGeneric = {};\n\n const largestGridSettingViewportName = getLargestGridSettingViewportName(gridSettings);\n if (largestGridSettingViewportName && imageSettings) {\n // in site builder the layout may change, so use authoring viewports.\n const authoringViewPorts = getAuthoringViewport(containerType, configs?.layout);\n const imgSettings = {\n ...imageSettings,\n viewports: { ..._cloneDeep(authoringViewPorts || imageSettings.viewports || getDefaultViewports()) }\n };\n\n // Skip resizing width and height for background images.\n const skipWidthAndHeightSettings = true;\n Object.keys(imgSettings.viewports).map(vp => {\n const viewport = vp as Viewport;\n const minMaxWidth = getMinMaxWidth(gridSettings, imgSettings, viewport, largestGridSettingViewportName);\n const urlSrc = getImageResizeUrl(\n image.src,\n // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\n imgSettings.viewports[viewport],\n imgSettings,\n skipWidthAndHeightSettings,\n image?.externalProvider,\n request?.apiSettings\n );\n // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\n styles[viewport] = {\n maxWidth: minMaxWidth.max,\n minWidth: minMaxWidth.min,\n // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\n minHeight: imgSettings.viewports[viewport]?.h,\n backgroundImage: urlSrc,\n backgroundRepeat: getBackgroundRepeatProperty(configs?.size, configs?.repeat),\n backgroundSize: getBackgroundSizeProperty(configs?.size),\n backgroundPosition: 'center center'\n };\n });\n }\n\n return styles;\n};\n\nexport const setStyleAttribute = (currentStyle: IBackgroundImageStyle): IGeneric => {\n let style: IGeneric = {};\n if (currentStyle) {\n style = { ...currentStyle };\n style['minWidth'] = undefined;\n style['width'] = '100%';\n if (currentStyle.backgroundImage) {\n style['backgroundImage'] = `url('${currentStyle.backgroundImage}')`;\n }\n }\n return style;\n};\n\nexport const getBackgroundImageLazyloadAttributes = (\n className: string,\n currentStyle: IBackgroundImageStyle | undefined,\n styles: IGeneric\n): IBackgroundImageLazyloadAttributes => {\n const attributes = {\n role: 'img',\n className: `${className} lazyload`,\n 'data-bgset': getDataBgSetAttribute(styles)\n };\n\n if (currentStyle) {\n attributes['style'] = setStyleAttribute(currentStyle);\n // On lazyload, lazysizes plugin should pick which background image to use based on data-bgset attribute.\n attributes['style']['backgroundImage'] = undefined;\n }\n return attributes;\n};\n\nexport const getBackgroundImageAttributes = (\n className: string,\n currentStyle: IBackgroundImageStyle | undefined\n): IBackgroundImageAttributes => {\n const attributes = {\n role: 'img',\n className\n };\n\n if (currentStyle) {\n attributes['style'] = setStyleAttribute(currentStyle);\n }\n return attributes;\n};\n\nexport const getBgSetMinMaxWidthAttribute = (style: IBackgroundImageStyle): string => {\n if (style.maxWidth) {\n return `[(max-width: ${style.maxWidth}px)]`;\n }\n return '';\n};\n\nexport const getDataBgSetAttribute = (styles: IGeneric): string => {\n const dataBgSetAttributes: string[] = [];\n Object.keys(styles).map(vp => {\n // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\n if (styles[vp].backgroundImage) {\n // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\n dataBgSetAttributes.push(`${styles[vp].backgroundImage} ${getBgSetMinMaxWidthAttribute(styles[vp])}`);\n }\n });\n\n return dataBgSetAttributes.join(' | ');\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport msdyn365Commerce, { getLargestGridSettingViewportName, IGeneric, isAuthoringEditEnabled } from '@msdyn365-commerce/core-internal';\nimport * as React from 'react';\nimport { isEqual as _isEqual } from 'lodash';\nimport {\n buildBackgroundImageStylesByViewport,\n getBackgroundImageAttributes,\n getBackgroundImageLazyloadAttributes\n} from './container-background-image-helper';\nimport {\n IBackgroundImageAttributes,\n IBackgroundImageProps,\n IBackgroundImageState,\n IBackgroundImageStyle\n} from './container-background-image-interfaces';\n\nconst BACKGROUND_IMAGE_CLASS_NAME = 'ms-container-background-image';\n\n/**\n * BackgroundImage component\n * @extends {React.PureComponent}\n */\nexport class BackgroundImage extends React.PureComponent {\n private stylesByViewport: IGeneric;\n private currentStyle: IBackgroundImageStyle | undefined;\n private mounted: boolean;\n\n constructor(props: IBackgroundImageProps, state: IBackgroundImageState) {\n super(props);\n this.stylesByViewport = buildBackgroundImageStylesByViewport(this.props);\n this._onChangeHandler = this._onChangeHandler.bind(this);\n this.currentStyle = this._getCurrentStyle();\n this.mounted = false;\n this._componentResize = this._componentResize.bind(this);\n this._getCurrentStyle = this._getCurrentStyle.bind(this);\n this.state = { updateAttributes: false };\n }\n\n public componentDidMount(): void {\n if (msdyn365Commerce.isBrowser) {\n window.addEventListener('resize', this._componentResize);\n this.mounted = true;\n this._componentResize();\n }\n }\n\n public componentWillUnmount(): void {\n if (msdyn365Commerce.isBrowser) {\n window.removeEventListener('resize', this._componentResize);\n this.mounted = false;\n }\n }\n\n public shouldComponentUpdate(nextProps: IBackgroundImageProps, nextState: { updateAttributes: boolean }): boolean {\n if (\n this.state !== nextState ||\n this.props.request?.gridSettings !== nextProps.request?.gridSettings ||\n this.props.configs.repeat !== nextProps.configs.repeat ||\n this.props.configs.size !== nextProps.configs.size ||\n this.props.configs.layout !== nextProps.configs.layout ||\n this.props.image?.imageSettings !== nextProps.image?.imageSettings ||\n this.props.image?.src !== nextProps.image?.src\n ) {\n return true;\n }\n return false;\n }\n\n public render(): JSX.Element | null {\n const { children } = this.props;\n\n try {\n this.stylesByViewport = buildBackgroundImageStylesByViewport(this.props);\n this.currentStyle = this._getCurrentStyle();\n\n if (this.currentStyle) {\n const backgroundImageClassName = isAuthoringEditEnabled(this.props.request)\n ? `${BACKGROUND_IMAGE_CLASS_NAME} ms-editable-field enabled`\n : BACKGROUND_IMAGE_CLASS_NAME;\n const processedAtributes = this._processAttributes(\n backgroundImageClassName,\n this.currentStyle,\n this.stylesByViewport,\n this._isLazyload()\n );\n const attributes = this._getAttributes(processedAtributes);\n const eventHandlers = isAuthoringEditEnabled(this.props.request) ? { onDoubleClick: this._onChangeHandler } : {};\n\n if (this.state.updateAttributes) {\n // Update component with the latest attributes.\n return (\n
\n {children}\n
\n );\n } else if (this._isLazyload()) {\n // On lazyload, only include the class name on the first render.\n return (\n
\n {children}\n
\n );\n } else {\n // On lazyload disabled, render the default attributes from server side.\n return (\n
\n {children}\n
\n );\n }\n } else {\n // in no style is found, return the container content.\n return <>{children};\n }\n } catch {\n // in case of any failure, return the container content.\n return <>{children};\n }\n }\n\n private _processAttributes(\n className: string,\n currentStyle: IBackgroundImageStyle,\n stylesByViewport: IGeneric,\n lazyLoad: boolean\n ) {\n if (lazyLoad) {\n return getBackgroundImageLazyloadAttributes(className, currentStyle, stylesByViewport);\n } else {\n return getBackgroundImageAttributes(className, currentStyle);\n }\n }\n\n private _getAttributes(processedAtributes: IBackgroundImageAttributes) {\n return { ...processedAtributes, style: { ...processedAtributes?.style } };\n }\n\n private _onChangeHandler(event: React.SyntheticEvent | { target: { value: string } }): void {\n if (event.target === (event as React.SyntheticEvent).currentTarget) {\n const binding: any = this.props.image;\n const eventTarget: any = event.target;\n binding.$type = eventTarget.value;\n }\n }\n\n private _componentResize(): void {\n if (msdyn365Commerce.isBrowser) {\n const selectedStyle = this._getCurrentStyle();\n\n if (this.mounted || (selectedStyle && !_isEqual(this.currentStyle, selectedStyle))) {\n this.setState({ updateAttributes: true });\n }\n }\n }\n\n private _getCurrentStyle(): IBackgroundImageStyle | undefined {\n if (msdyn365Commerce.isBrowser) {\n const winInnerWidth: number = window.innerWidth;\n let selectedStyle: IBackgroundImageStyle | undefined;\n Object.keys(this.stylesByViewport).map(vp => {\n if (\n // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\n (this.stylesByViewport[vp]?.minWidth || this.stylesByViewport[vp]?.maxWidth) &&\n // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\n (this.stylesByViewport[vp]?.minWidth || 0) <= winInnerWidth &&\n // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\n winInnerWidth <= (this.stylesByViewport[vp]?.maxWidth || Number.MAX_SAFE_INTEGER)\n ) {\n // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\n selectedStyle = this.stylesByViewport[vp];\n }\n });\n return selectedStyle;\n } else {\n return this._getDefaultStyle();\n }\n }\n\n private _isLazyload(): boolean {\n // Lazyload by default if nothing is specified\n return !this.props.image?.imageSettings?.disableLazyLoad;\n }\n\n private _getDefaultStyle(): IBackgroundImageStyle | undefined {\n const { request } = this.props;\n const largestGridSettingViewportName = getLargestGridSettingViewportName(request.gridSettings ?? {});\n // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\n return this.stylesByViewport[largestGridSettingViewportName];\n }\n\n private _getDefaultAttributes(): IBackgroundImageAttributes {\n const style = this._getDefaultStyle();\n const processedAtributes = style\n ? this._processAttributes(BACKGROUND_IMAGE_CLASS_NAME, style, this.stylesByViewport, this._isLazyload())\n : {};\n return this._getAttributes(processedAtributes);\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ContentEditableEvent, IImageData, IRequestContext, Text } from '@msdyn365-commerce/core';\nimport * as React from 'react';\nimport { BackgroundImage } from './container-background-image/container-backgroud-image';\n\n/**\n * Heading options\n */\nexport interface IHeadingComponentProps {\n /**\n * Heading text\n */\n headingText?: string;\n /**\n * Heading tag (h1, h2, h3, h4, h5, h6)\n */\n tag?: HeadingTag;\n /**\n * Heading text size (sm, md, lg, xl)\n */\n textSize?: TextSize;\n\n requestContext: IRequestContext;\n\n handleTextChange(event: ContentEditableEvent): string;\n}\n\nexport type HeadingTag = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\nexport type TextSize = 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n * Container class options\n */\nexport interface IContainerProps {\n /**\n * CSS class name\n */\n className?: string;\n /**\n * Bootstrap supported container types\n */\n containerType?: string;\n /**\n * type name\n */\n typeName?: string;\n /**\n * id of container\n */\n id?: string;\n /**\n * React children\n */\n children: React.ReactNode;\n /**\n * Request context\n */\n request?: IRequestContext;\n /**\n * background image\n */\n backgroundImage?: IImageData;\n /**\n * background image repeat property\n */\n backgroundImageRepeat?: string;\n /**\n * background image size property\n */\n backgroundImageSize?: string;\n /**\n * module layout property\n */\n moduleLayout?: string;\n /**\n * background color\n */\n backgroundColor?: string;\n}\n\nconst getContainerType = (containerType: string | undefined) => {\n switch (containerType) {\n case 'container':\n return 'container';\n case 'fluid':\n default:\n return 'fluid';\n }\n};\n\n/**\n * HOC to create bootstrap container div. If no container type is specified children are rendered.\n * @param options IContainerClasses\n */\nexport const Container: React.SFC = (props: IContainerProps): JSX.Element => {\n const {\n containerType,\n className,\n typeName,\n id,\n children,\n backgroundImage,\n request,\n backgroundImageRepeat,\n backgroundImageSize,\n moduleLayout,\n backgroundColor\n } = props;\n const customClassName = className ? ` ${className}` : '';\n\n let containerContent = children;\n if (containerType) {\n containerContent =
{containerContent}
;\n }\n\n if (backgroundImage && backgroundImage.src && backgroundImage.imageSettings && request) {\n containerContent = (\n \n {containerContent}\n \n );\n }\n\n const containerStyle: React.CSSProperties | undefined = backgroundColor ? { backgroundColor } : undefined;\n\n return containerType ? (\n
\n {containerContent}\n
\n ) : (\n
\n {containerContent}\n
\n );\n};\n\nexport const HeadingComponent = (props: IHeadingComponentProps & { className: string }): JSX.Element | null => {\n const { tag, headingText, textSize, className } = props;\n const Tag = tag || 'h2';\n const classNameWithHeading = textSize ? `heading ${textSize} ${className}` : `heading ${className}`;\n return (\n (headingText && (\n \n )) ||\n null\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ICoreContext } from '@msdyn365-commerce/core';\nimport * as twoSlots from '../modules/default-container-2-slots/default-container-2-slots.props.autogenerated';\nimport * as threeSlots from '../modules/default-container-3-slots/default-container-3-slots.props.autogenerated';\n\n// eslint-disable-next-line security/detect-unsafe-regex\nconst sizePattern = /col(_(\\d|auto){1,2}){2,}/;\n\nexport interface IShowErrorOptions {\n isDebug?: boolean;\n isEditor?: boolean;\n}\n\nexport interface IViewPortOptions {\n xsmall?: threeSlots.xsmall | twoSlots.xsmall;\n small?: threeSlots.small | twoSlots.small;\n medium?: threeSlots.medium | twoSlots.medium;\n large?: threeSlots.large | twoSlots.large;\n}\n\nconst translatePrefix = (prefix: `large` | `medium` | `small` | `xsmall` | undefined) => {\n switch (prefix && prefix.toLowerCase()) {\n case 'large':\n return 'lg';\n case 'medium':\n return 'md';\n case 'small':\n return 'sm';\n case 'xsmall':\n default:\n return '';\n }\n};\n\n/**\n * converts config option and size to bootstrap col class name\n * If size is auto or config option is invalid col-auto will be returned\n * If size is xsmall or size is invalid col-{config} will be returned\n * @param config configuration option e.g. col_12_12\n * @param size bootstrap gridsize\n */\nexport const getColumnSizes = (config: string, size?: `large` | `medium` | `small` | `xsmall`): string[] | boolean => {\n if (!sizePattern.exec(config)) {\n return false;\n }\n const cols = config.split('_').slice(1);\n const translatedSize = translatePrefix(size);\n const sizePrefix = (translatedSize && `-${translatedSize}`) || '';\n return cols.map((colWidth: string) => `col${sizePrefix}-${colWidth}`);\n};\n\nexport const showErrors = (context?: ICoreContext): Boolean => {\n const { isDebug, isEditor }: IShowErrorOptions = (context && context.request && context.request.params) || {};\n return !!isDebug || !!isEditor;\n};\n\n/**\n * Converts viewport configuration into a two dimensional array of class names\n */\nexport const getColClassArray = (options: IViewPortOptions): string[][] =>\n (\n [\n options.xsmall && getColumnSizes(options.xsmall),\n options.small && getColumnSizes(options.small, 'small'),\n options.medium && getColumnSizes(options.medium, 'medium'),\n options.large && getColumnSizes(options.large, 'large')\n ].filter(Boolean)\n );\n\nexport const colWidths = new Map([\n ['one', 'col-md-1'],\n ['two', 'col-md-2'],\n ['three', 'col-md-3'],\n ['four', 'col-md-4'],\n ['six', 'col-md-6'],\n ['twelve', 'col-md-12']\n]);\n"],"names":["props","ProductSpecification","ProductSpecificationTableProps","ProductSpecificationTableBodyProps","productSpecificationResult","rowdata","ArrayExtensions","hasElements","filter","row","ObjectExtensions","isNullOrUndefined","React","Module","Object","assign","title","Node","DefaultContainer","constructor","super","handleTextChange","event","this","config","heading","headingText","target","value","render","slots","telemetry","data","log","LogLevel","Debug","values","id","typeName","headingProps","_objectSpread","requestContext","context","request","Container","containerType","className","backgroundImage","backgroundImageRepeat","backgroundImageSize","moduleLayout","msdyn365__moduleLayout","backgroundColor","HeadingComponent","content","map","children","index","_getChildColClassName","key","layout","childrenWidth","_getWidthClass","s","colWidths","get","Default2SlotContainer","_getColClassName","classNames","getColClassArray","length","reduce","memo","_ref","left","right","push","slotsClassNames","Warning","join","showErrors","slice","slot","Default3SlotContainer","center","ProductSpecificationTableRow","productName","cellData","scope","dangerouslySetInnerHTML","getRichTextHtml","handleHeadingChange","text","_toggle","drawerListId","state","setState","isDrawerOpen","undefined","isAdditionalMediaDrawerOpen","async","catalogId","Msdyn365","validateCatalogId","reaction","product","result","RecordId","actionInput","AttributesForSelectedVariantInput","actionContext","apiSettings","channelId","getAttributesForSelectedVariant","catch","error","message","debug","shouldComponentUpdate","nextProps","nextState","_heading$tag","productSpecificationData","isAccrodion","displayStyle","viewProps","handleText","moduleProps","classnames","tag","editProps","onEdit","_createDrawerBody","_createTableBody","renderView","_this$props$context$r","_this$props$data$addi","tableRows","_renderProductCell","Name","app","OmniChannelMedia","additionalMediaLocations","_createAdditionalMediaDrawer","_this$props$context$r2","_this$props$data$addi2","accordionItemContainer","drawers","_product$Name","Drawer","collapseProps","timeout","isOpen","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","onToggle","resources","additionalDownloadsText","prevState","mediaLocation","Uri","href","download","AltText","DataTypeValue","_renderCurrencyCell","_renderDateTimeCell","_renderDecimalCell","_renderIntegerCell","_renderTextCell","_renderTrueFalseCell","warning","CurrencyValue","CurrencyCode","_product$DateTimeOffs","DateTimeOffsetValue","toUTCString","IntegerValue","FloatValue","TextValue","BooleanValue","trueValueText","falseValueText","__decorate","observer","AccountWelcomeTile","accountInfo","accountInformation","CittaProductSku","e","productSku","ItemId","skuTitleText","productSkuViewProps","ProductSkuContainer","classname","SkuTitleTextNode","ProductSkuNode","ICittaProductSkuView","PasswordResetVerificationItem","wrapper","label","errorMessage","input","PasswordResetVerificationLoading","_ref3","modal","modalBody","icon","passwordResetVerification","viewState","loading","defaultAADConainer","aadConainer","passwordResetVerificationLocalAccount","isShowLoading","_ref2","localAccount","verificationControlWrapper","items","successMessage","verificationButtonsWrapper","verificationButtons","buttonsWrapper","buttons","verificationSuccessModal","verificationSuccessModalMessage","item","button","LocalAccount","_renderForm","form","SearchForm","FormWrapper","cancelBtnAriaLabel","submitBtnAriaLabel","cancelBtn","UncontrolledTooltip","placement","trigger","submitBtn","_renderProductSuggestions","ProductSuggest","UlProduct","productSuggestions","LiProduct","tabIndex","AProduct","price","_renderCategorySuggestions","CategorySuggest","UlCategory","categorySuggestions","Search","AutoSuggestAriaLabel","AutoSuggestAriaLabelText","searchText","AutoSuggest","autosuggestCategory","autosuggestProduct","isSearchFormShow","indexOf","MsDyn365","isBrowser","window","document","body","classList","toggle","getBackgroundRepeatProperty","size","repeat","getBackgroundSizeProperty","buildBackgroundImageStylesByViewport","_request$gridSettings","image","configs","gridSettings","imageSettings","styles","largestGridSettingViewportName","getLargestGridSettingViewportName","authoringViewPorts","getAuthoringViewport","moduleName","msdyn365Commerce","authoringHelper","_msdyn365","constructViewportInformationForImage","themeSettings","imgSettings","viewports","_cloneDeep2","xs","w","h","sm","md","lg","xl","skipWidthAndHeightSettings","keys","vp","_imgSettings$viewport","viewport","minMaxWidth","getMinMaxWidth","urlSrc","getImageResizeUrl","src","externalProvider","maxWidth","max","minWidth","min","minHeight","backgroundRepeat","backgroundSize","backgroundPosition","setStyleAttribute","currentStyle","style","getDataBgSetAttribute","dataBgSetAttributes","BACKGROUND_IMAGE_CLASS_NAME","BackgroundImage","stylesByViewport","_onChangeHandler","bind","_getCurrentStyle","mounted","_componentResize","updateAttributes","componentDidMount","addEventListener","componentWillUnmount","removeEventListener","_this$props$request","_nextProps$request","_this$props$image","_nextProps$image","_this$props$image2","_nextProps$image2","backgroundImageClassName","isAuthoringEditEnabled","processedAtributes","_processAttributes","_isLazyload","attributes","_getAttributes","eventHandlers","onDoubleClick","_getDefaultAttributes","_unused","lazyLoad","getBackgroundImageLazyloadAttributes","role","getBackgroundImageAttributes","currentTarget","binding","eventTarget","$type","selectedStyle","_isEqual2","winInnerWidth","innerWidth","_this$stylesByViewpor","_this$stylesByViewpor2","_this$stylesByViewpor3","_this$stylesByViewpor4","Number","MAX_SAFE_INTEGER","_getDefaultStyle","_this$props$image3","disableLazyLoad","getContainerType","customClassName","containerContent","containerStyle","textSize","Tag","classNameWithHeading","Text","sizePattern","getColumnSizes","exec","cols","split","translatedSize","prefix","toLowerCase","translatePrefix","sizePrefix","colWidth","isDebug","isEditor","params","options","xsmall","small","medium","large","Boolean","Map"],"sourceRoot":""}