{"version":3,"file":"static/js/21.e8b1c05df1332597730a.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/quotation-list/components/quotation-list.tsx?af62","webpack://Msdyn365.Commerce.Online/./src/modules/quotation-list/components/orderTemplateList-status-message.tsx?1e05","webpack://Msdyn365.Commerce.Online/./src/modules/quotation-list/components/create-order-template.tsx?665c","webpack://Msdyn365.Commerce.Online/./src/modules/quotation-list/quotation-list.props.autogenerated.ts?8de7","webpack://Msdyn365.Commerce.Online/./src/modules/quotation-list/quotation-list.tsx?a75e","webpack://Msdyn365.Commerce.Online/./src/modules/quotation-list/quotation-list.view.tsx?cc45","webpack://Msdyn365.Commerce.Online/./src/modules/quotation/components/add-order-template-to-cart.component.tsx?9a91","webpack://Msdyn365.Commerce.Online/./src/modules/quotation/components/bulk-actions.tsx?fd67","webpack://Msdyn365.Commerce.Online/./src/modules/quotation/components/common/item-added-to-cart-dialog.component.tsx?d169","webpack://Msdyn365.Commerce.Online/./src/modules/quotation/components/add-line/spinner.tsx?9c11","webpack://Msdyn365.Commerce.Online/./src/modules/quotation/components/add-line/add-line.tsx?e326","webpack://Msdyn365.Commerce.Online/./src/modules/quotation/components/add-line/dropdown.tsx?5620","webpack://Msdyn365.Commerce.Online/./src/modules/quotation/components/add-line/not-found.tsx?cbbf","webpack://Msdyn365.Commerce.Online/./src/modules/quotation/components/common/quotation-quantity.tsx?8980","webpack://Msdyn365.Commerce.Online/./src/modules/quotation/components/add-line/product-configuration.tsx?7a76","webpack://Msdyn365.Commerce.Online/./src/modules/quotation/components/add-line/product-list.tsx?ce9a","webpack://Msdyn365.Commerce.Online/./src/modules/quotation/components/quotation-actions.tsx?956b","webpack://Msdyn365.Commerce.Online/./src/modules/quotation/components/quotation-lines.tsx?e9f8","webpack://Msdyn365.Commerce.Online/./src/modules/quotation/components/quotation-lines-status-message.tsx?ac7f","webpack://Msdyn365.Commerce.Online/./src/modules/quotation/components/quotation-table-heading.tsx?9da4","webpack://Msdyn365.Commerce.Online/./src/modules/quotation/quotation.tsx?1bd1","webpack://Msdyn365.Commerce.Online/./src/modules/quotation/quotation.view.tsx?2130","webpack://Msdyn365.Commerce.Online/./src/modules/product-comparison-preview/product-comparison-preview.tsx?39f6","webpack://Msdyn365.Commerce.Online/./src/modules/product-comparison-preview/product-comparison-preview.view.tsx?28cb","webpack://Msdyn365.Commerce.Online/./src/modules/product-comparison/base/product-specification.tsx?75ed","webpack://Msdyn365.Commerce.Online/./src/modules/product-comparison/base/remove-from-comparison-button.tsx?1d8c","webpack://Msdyn365.Commerce.Online/./src/modules/product-comparison/product-comparison.tsx?4f74","webpack://Msdyn365.Commerce.Online/./src/modules/product-comparison/product-comparison.view.tsx?a0a9","webpack://Msdyn365.Commerce.Online/./src/search-state.ts?dd10","webpack://Msdyn365.Commerce.Online/./src/modules/search/actions/get-auto-suggest-suggestions.ts?4735","webpack://Msdyn365.Commerce.Online/./src/modules/search/components/search.categorysuggest.tsx?c65d","webpack://Msdyn365.Commerce.Online/./src/modules/search/components/search.form.tsx?25a5","webpack://Msdyn365.Commerce.Online/./src/modules/search/components/search.keywordsuggest.tsx?297c","webpack://Msdyn365.Commerce.Online/./src/modules/search/components/search.label.tsx?0c17","webpack://Msdyn365.Commerce.Online/./src/modules/search/components/search.productsuggest.tsx?2af9","webpack://Msdyn365.Commerce.Online/./src/modules/search/search.tsx?72fb","webpack://Msdyn365.Commerce.Online/./src/modules/search/search.view.tsx?1505","webpack://Msdyn365.Commerce.Online/./src/modules/wishlist-items/components/wishlist-items-dimensions.tsx?15c5","webpack://Msdyn365.Commerce.Online/./src/modules/wishlist-items/components/wishlist-item.tsx?d2da","webpack://Msdyn365.Commerce.Online/./src/modules/wishlist-items/components/wishlist-items-status-message.tsx?cdb3","webpack://Msdyn365.Commerce.Online/./src/modules/wishlist-items/wishlist-items.tsx?df8b","webpack://Msdyn365.Commerce.Online/./src/modules/wishlist-items/wishlist-items.view.tsx?4d80"],"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\n/* eslint-disable no-duplicate-imports */\r\nimport { ILinesAddedToCartDialogResources } from '@msdyn365-commerce/components';\r\nimport { AddOrderTemplateToCartComponent } from '../../quotation/components';\r\nimport { getUrlSync, ICoreContext, IImageSettings, ITelemetry } from '@msdyn365-commerce/core'; //Image\r\nimport { ProductList } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { OrderTemplate, OrderTemplateLine } from '@msdyn365-commerce-modules/retail-actions'; //getFallbackImageUrl, getProductUrlSync,\r\nimport { Alert, Button, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IOrderTemplateActionMessageState } from '../quotation-list';\r\n\r\nexport interface ISingleOrderTemplateProps extends ProductList {\r\n orderTemplateState: IOrderTemplateActionMessageState;\r\n name?: string;\r\n orderTemplate: OrderTemplate;\r\n context: ICoreContext;\r\n imageSettings?: IImageSettings;\r\n enableImageProductLink?: boolean;\r\n removeFromOrderTemplateListText: string;\r\n addToBagText: string;\r\n index: number;\r\n itemKey: string;\r\n telemetry: ITelemetry;\r\n moduleId: string;\r\n moduleTypeName: string;\r\n handlers: {\r\n onRemoveOrderTemplate(id: string): void | undefined;\r\n onDismiss(): void;\r\n };\r\n resources: {\r\n closeWindowButtonText: string;\r\n addToCartFailureMessage: string;\r\n addToCartSuccessMessage: string;\r\n addToCartProcessMessage: string;\r\n linesAddedToCartDialogResources: ILinesAddedToCartDialogResources;\r\n };\r\n telemetryContent?: ITelemetryContent;\r\n}\r\n\r\nexport interface ISingleOrderTemplateViewProps {\r\n key: string;\r\n orderTemplateImage: React.ReactNode;\r\n addToCartButton?: React.ReactNode;\r\n removeButton?: React.ReactNode;\r\n orderTemplateStatusMessage?: React.ReactNode;\r\n orderTemplateName?: React.ReactNode;\r\n orderTemplateAriaLabel?: string;\r\n orderTemplateHeaderDivider?: React.ReactNode;\r\n}\r\n\r\nconst _removeItemFromOrderTemplateList = (props: ISingleOrderTemplateProps): void => {\r\n const { onRemoveOrderTemplate } = props.handlers;\r\n const { itemKey } = props;\r\n\r\n onRemoveOrderTemplate && itemKey && onRemoveOrderTemplate(itemKey);\r\n};\r\n\r\nconst OrderTemplateActions = {\r\n removeOrderTemplate: _removeItemFromOrderTemplateList\r\n};\r\n\r\n/**\r\n * Remove order template action.\r\n * @param input -Single order template props.\r\n * @returns Set remove order template.\r\n */\r\nconst removeOrderTemplateActionHandler = (input: ISingleOrderTemplateProps) => () => {\r\n OrderTemplateActions.removeOrderTemplate(input);\r\n};\r\n\r\nexport const OrderTemplateRender = (input: ISingleOrderTemplateProps): ISingleOrderTemplateViewProps | null => {\r\n const {\r\n Id,\r\n orderTemplate,\r\n removeFromOrderTemplateListText,\r\n orderTemplateState,\r\n handlers,\r\n name,\r\n imageSettings,\r\n context,\r\n telemetryContent,\r\n enableImageProductLink\r\n } = input;\r\n\r\n if (!Id) {\r\n return null;\r\n }\r\n\r\n const _getOrderTemplatePageUrl = (): string => {\r\n const url = getUrlSync('ordertemplate', context.actionContext) ?? '';\r\n const separator = url.includes('?') ? '&' : '?';\r\n if (Id) {\r\n return `${url}${separator}id=${Id}`;\r\n }\r\n return '';\r\n };\r\n\r\n const { onDismiss } = handlers;\r\n\r\n return {\r\n key: `${Id}-template`,\r\n orderTemplateImage: _renderOrderTemplateImages(context, orderTemplate.orderTemplateLines, imageSettings, enableImageProductLink),\r\n orderTemplateAriaLabel: _renderAriaLabel(input),\r\n orderTemplateName: (\r\n
\r\n
\r\n \r\n {name}\r\n \r\n
\r\n
{orderTemplate.totalLines} line items
\r\n
\r\n
\r\n ),\r\n addToCartButton: (\r\n
\r\n \r\n
\r\n ),\r\n removeButton: (\r\n \r\n ),\r\n orderTemplateStatusMessage: orderTemplateState && orderTemplateState.isOpen && orderTemplateState.userMessage && (\r\n
\r\n \r\n {orderTemplateState.userMessage}\r\n \r\n
\r\n )\r\n };\r\n};\r\n\r\n/**\r\n * On image click handler.\r\n * @param productUrl -Product url value.\r\n * @returns Assign window location.\r\n */\r\n// const onClickHandler = (productUrl: string) => () => {\r\n// window.location.assign(productUrl);\r\n// };\r\n\r\nconst _renderOrderTemplateImages = (\r\n context: ICoreContext,\r\n orderTemplateLines?: OrderTemplateLine[],\r\n imageSettings?: IImageSettings,\r\n enableImageProductLink?: boolean\r\n): JSX.Element | null => {\r\n // const defaultImageSettings: IImageSettings = {\r\n // viewports: {\r\n // xs: { q: 'w=140&h=140&m=6', w: 0, h: 0 },\r\n // lg: { q: 'w=140&h=140&m=6', w: 0, h: 0 },\r\n // xl: { q: 'w=140&h=140&m=6', w: 0, h: 0 }\r\n // },\r\n // lazyload: true\r\n // };\r\n\r\n if (orderTemplateLines) {\r\n const count = orderTemplateLines.length < 4 ? orderTemplateLines.length : 4;\r\n\r\n return (\r\n
\r\n {orderTemplateLines?.slice(0, count).map(line => {\r\n // const productUrl = line.fullProduct\r\n // ? getProductUrlSync(line.fullProduct.ProductDetails, context.actionContext, undefined)\r\n // : '';\r\n\r\n return (\r\n <>\r\n // \r\n );\r\n })}\r\n
\r\n );\r\n }\r\n return
;\r\n};\r\n\r\nconst _renderAriaLabel = (props: ISingleOrderTemplateProps): string => {\r\n const { name } = props;\r\n return `${name}`;\r\n};\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\n/* eslint-disable no-duplicate-imports */\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { orderTemplateListStatus } from '../quotation-list';\r\n\r\nexport interface IOrderTemplateListStatusMessageProps {\r\n className?: string;\r\n errorType: orderTemplateListStatus;\r\n text?: string;\r\n}\r\n\r\nexport const OrderTemplateListStatusMessage: React.FC = ({ className, errorType, text }) => {\r\n switch (errorType) {\r\n case 'EMPTY':\r\n return

{text}

;\r\n case 'FAILED':\r\n return

{text}

;\r\n case 'LOADING':\r\n default:\r\n return

{text}

;\r\n }\r\n};\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\n/* eslint-disable no-duplicate-imports */\r\nimport { IOrderTemplateNameDialogResources, OrderTemplateNameDialog } from '@msdyn365-commerce/components';\r\nimport { IComponentProps } from '@msdyn365-commerce/core';\r\nimport React, { useState } from 'react';\r\n\r\nconst modalCloseButtonReference: React.RefObject = React.createRef();\r\n\r\n/**\r\n * The Create Order Template Button Props.\r\n */\r\nexport interface ICreateOrderTemplateButtonProps extends IComponentProps {\r\n /**\r\n * The label for create order template.\r\n */\r\n createOrderTemplateText: string;\r\n\r\n /**\r\n * The create order template dialog resources.\r\n */\r\n createOrderTemplateDialogResources: IOrderTemplateNameDialogResources;\r\n\r\n /**\r\n * The delegate to fire when dialog captured any user entry.\r\n */\r\n onOrderTemplateCreated(): Promise;\r\n}\r\n\r\nconst CreateOrderTemplateButton: React.FC = props => {\r\n const onCancelHandler = React.useCallback(() => {\r\n return;\r\n }, []);\r\n const [isCreateOrderTemplateDialogOpen, setOrderTemplateNameDialogOpen] = useState(false);\r\n const onCreateButtonClick = React.useCallback(() => {\r\n setOrderTemplateNameDialogOpen(true);\r\n }, []);\r\n\r\n return (\r\n <>\r\n \r\n {props.createOrderTemplateText}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CreateOrderTemplateButton;\r\n","/**\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. See License.txt in the project root for license information.\r\n * IQuotationList contentModule Interface Properties\r\n * THIS FILE IS AUTO-GENERATED - MANUAL MODIFICATIONS WILL BE LOST\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport interface IQuotationListConfig extends Msdyn365.IModuleConfig {\r\n heading?: IHeadingData;\r\n imageSettings?: Msdyn365.IImageSettings;\r\n enableImageProductLink?: boolean;\r\n className?: string;\r\n clientRender?: boolean;\r\n}\r\n\r\nexport interface IQuotationListResources {\r\n emptyOrderTemplateText: string;\r\n unableToGetOrderTemplateList: string;\r\n removeButtonText: string;\r\n addToBagButtonText: string;\r\n createNewTemplateButtonText: string;\r\n orderTemplateCreatedSuccessText: string;\r\n orderTemplateListTitle: string;\r\n orderTemplateCreationFailedText: string;\r\n deleteOrderTemplateFailedText: string;\r\n closeWindowButtonText: string;\r\n addToCartFailureMessage: string;\r\n addToCartSuccessMessage: string;\r\n addToCartProcessMessage: string;\r\n viewCartButtonText: string;\r\n orderTemplateCloseButtonText: string;\r\n linesAddedToCartHeaderItemsOneText: string;\r\n linesAddedToCartHeaderLinesOneText: string;\r\n linesAddedToCartHeaderLinesFormatText: string;\r\n linesAddedToCartHeaderMessageText: string;\r\n createOrderTemplateHeader: string;\r\n orderTemplateTitle: string;\r\n orderTemplateNameAriaLabel: string;\r\n createOrderTemplateDescription: string;\r\n createOrderTemplateButtonText: string;\r\n cancelNewOrderTemplateCreationButtonText: string;\r\n defaultOrderTemplateName: string;\r\n addToOrderTemplateDialogWarningV2: string;\r\n}\r\n\r\nexport const enum HeadingTag {\r\n h1 = 'h1',\r\n h2 = 'h2',\r\n h3 = 'h3',\r\n h4 = 'h4',\r\n h5 = 'h5',\r\n h6 = 'h6'\r\n}\r\n\r\nexport interface IHeadingData {\r\n text: string;\r\n tag?: HeadingTag;\r\n}\r\n\r\nexport interface IQuotationListProps extends Msdyn365.IModule {\r\n resources: IQuotationListResources;\r\n config: IQuotationListConfig;\r\n}\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\n/* eslint-disable no-duplicate-imports */\r\nimport { IOrderTemplateNameDialogResources } from '@msdyn365-commerce/components';\r\nimport { deleteAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductListsDataActions.g';\r\nimport { OrderTemplate } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Alert, Heading, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n ISingleOrderTemplateProps,\r\n ISingleOrderTemplateViewProps,\r\n OrderTemplateListStatusMessage,\r\n OrderTemplateRender\r\n} from './components';\r\nimport CreateNewTemplateButtonComponent from './components/create-order-template';\r\nimport { IQuotationListData } from './quotation-list.data';\r\nimport { HeadingTag, IQuotationListProps, IQuotationListResources } from './quotation-list.props.autogenerated';\r\n\r\nexport interface IOrderTemplateActionMessageState {\r\n itemKey: string;\r\n userMessage: string;\r\n statusCssString: string;\r\n messageGlyph: string;\r\n isOpen: boolean;\r\n headerStatusMessage: string;\r\n}\r\n\r\nexport type orderTemplateListStatus = 'LOADING' | 'SUCCESS' | 'FAILED' | 'EMPTY';\r\n\r\nexport interface IOrderTemplateListViewProps extends IQuotationListProps {\r\n OrderTemplateList: IModuleProps;\r\n status?: orderTemplateListStatus;\r\n statusMessage?: React.ReactNode;\r\n heading?: React.ReactNode;\r\n OrderTemplates?: INodeProps;\r\n OrderTemplate?: INodeProps;\r\n orderTemplates?: ISingleOrderTemplateViewProps[];\r\n createOrderTemplateButton?: React.ReactNode;\r\n templateHeaderStatusMessage?: React.ReactNode;\r\n}\r\n\r\n/**\r\n *\r\n * OrderTemplateList component.\r\n * @extends {React.PureComponent, IOrderTemplateListActionMessageState>}\r\n */\r\n@observer\r\nclass OrderTemplateList extends React.Component, IOrderTemplateActionMessageState> {\r\n constructor(props: IQuotationListProps) {\r\n super(props);\r\n this.state = {\r\n itemKey: '',\r\n userMessage: '',\r\n headerStatusMessage: '',\r\n statusCssString: 'success',\r\n messageGlyph: 'fas fa-check',\r\n isOpen: false\r\n };\r\n }\r\n\r\n public async componentDidMount(): Promise {\r\n this.setState({});\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: IQuotationListProps, nextState: IOrderTemplateActionMessageState): boolean {\r\n if (this.state === nextState && this.props.data === nextProps.data) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { className, heading } = this.props.config;\r\n const { emptyOrderTemplateText, createNewTemplateButtonText } = this.props.resources;\r\n const { orderTemplates } = this.props.data;\r\n const orderTemplatesData = orderTemplates && orderTemplates.result;\r\n const orderTemplateListHeading = heading?.text ?? this.props.resources.orderTemplateListTitle;\r\n\r\n if (orderTemplates.status === 'LOADING') {\r\n const errorProps: IOrderTemplateListViewProps = {\r\n ...(this.props as IQuotationListProps),\r\n OrderTemplateList: {\r\n moduleProps: this.props,\r\n className: classnames('ms-order-template', className)\r\n },\r\n status: 'LOADING',\r\n statusMessage: ,\r\n heading: (\r\n \r\n )\r\n };\r\n return this.props.renderView(errorProps);\r\n }\r\n\r\n if (orderTemplatesData && orderTemplatesData.length === 0) {\r\n // When no order templates are found for customer\r\n const emptyViewProps: IOrderTemplateListViewProps = {\r\n ...(this.props as IQuotationListProps),\r\n OrderTemplateList: {\r\n moduleProps: this.props,\r\n className: classnames('ms-order-template', className)\r\n },\r\n status: 'EMPTY',\r\n statusMessage: ,\r\n heading: (\r\n \r\n )\r\n };\r\n\r\n return this.props.renderView(emptyViewProps);\r\n }\r\n\r\n const viewProps: IOrderTemplateListViewProps = {\r\n ...(this.props as IQuotationListProps),\r\n OrderTemplateList: {\r\n moduleProps: this.props,\r\n className: classnames('ms-order-template', className)\r\n },\r\n status: 'SUCCESS',\r\n heading: ,\r\n createOrderTemplateButton: (\r\n \r\n ),\r\n templateHeaderStatusMessage: this.state.isOpen && this.state.headerStatusMessage && (\r\n
\r\n \r\n {this.state.headerStatusMessage}\r\n \r\n
\r\n ),\r\n OrderTemplates: {\r\n className: 'ms-order-template__list-item',\r\n tag: 'ul'\r\n },\r\n OrderTemplate: {\r\n className: 'ms-order-template__tile',\r\n tag: 'li'\r\n },\r\n orderTemplates: orderTemplatesData && this._renderOrderTemplateList(orderTemplatesData)\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private _generateOrderTemplateNameDialogResources(resources: IQuotationListResources): IOrderTemplateNameDialogResources {\r\n return {\r\n orderTemplateHeaderLabel: resources.createOrderTemplateHeader,\r\n orderTemplateTitleLabel: resources.orderTemplateTitle,\r\n orderTemplateNameAriaLabel: resources.orderTemplateNameAriaLabel,\r\n orderTemplateDescription: resources.createOrderTemplateDescription,\r\n\r\n defaultOrderTemplateName: resources.defaultOrderTemplateName,\r\n\r\n orderTemplateButtonLabel: resources.createOrderTemplateButtonText,\r\n orderTemplateCancelButtonLabel: resources.cancelNewOrderTemplateCreationButtonText\r\n };\r\n }\r\n\r\n private _renderOrderTemplateList(orderTemplates: OrderTemplate[]): ISingleOrderTemplateViewProps[] {\r\n const { context, telemetry } = this.props;\r\n const { imageSettings, enableImageProductLink } = this.props.config;\r\n return orderTemplates.map((orderTemplate: OrderTemplate, index) => {\r\n const currentTemplateProps: ISingleOrderTemplateProps = {\r\n orderTemplateState: this.state,\r\n Id: orderTemplate.productList.Id,\r\n name: orderTemplate.productList.Name,\r\n orderTemplate,\r\n context,\r\n imageSettings,\r\n enableImageProductLink,\r\n removeFromOrderTemplateListText: 'remove',\r\n addToBagText: this.props.resources.addToBagButtonText,\r\n index,\r\n itemKey: orderTemplate.productList.Id,\r\n telemetry,\r\n moduleId: this.props.id,\r\n moduleTypeName: this.props.typeName,\r\n handlers: {\r\n onRemoveOrderTemplate: this._onRemoveFromOrderTemplateList,\r\n onDismiss: this._onDismiss\r\n },\r\n resources: {\r\n closeWindowButtonText: this.props.resources.closeWindowButtonText,\r\n addToCartFailureMessage: this.props.resources.addToCartFailureMessage,\r\n addToCartSuccessMessage: this.props.resources.addToCartSuccessMessage,\r\n addToCartProcessMessage: this.props.resources.addToCartProcessMessage,\r\n linesAddedToCartDialogResources: {\r\n viewCartButtonText: this.props.resources.viewCartButtonText,\r\n orderTemplateCloseButtonText: this.props.resources.orderTemplateCloseButtonText,\r\n linesAddedToCartHeaderItemsOneText: this.props.resources.linesAddedToCartHeaderItemsOneText,\r\n linesAddedToCartHeaderLinesOneText: this.props.resources.linesAddedToCartHeaderLinesOneText,\r\n linesAddedToCartHeaderLinesFormatText: this.props.resources.linesAddedToCartHeaderLinesFormatText,\r\n linesAddedToCartHeaderMessageText: this.props.resources.linesAddedToCartHeaderMessageText\r\n }\r\n }\r\n };\r\n\r\n return OrderTemplateRender(currentTemplateProps)!;\r\n });\r\n }\r\n\r\n private readonly _onDismiss = () => {\r\n this.setState({\r\n isOpen: false\r\n });\r\n };\r\n\r\n private readonly _reloadPage = async () => {\r\n window.location.reload();\r\n };\r\n\r\n private readonly _onRemoveFromOrderTemplateList = (productListId: string): void | undefined => {\r\n const { context, data, telemetry, resources } = this.props;\r\n const { orderTemplates } = data;\r\n\r\n if (context && context.actionContext) {\r\n const userToken = context.request.user.isAuthenticated && context.request.user.token;\r\n if (userToken && orderTemplates.result && orderTemplates.result[0] && productListId) {\r\n const orderTemplate = orderTemplates.result.find(p => p.productList.Id === productListId);\r\n if (orderTemplate) {\r\n deleteAsync({ callerContext: context.actionContext }, orderTemplate.productList)\r\n .then()\r\n .catch((error: string) => {\r\n telemetry.warning('[order-template-list] Unable to delete order template.');\r\n telemetry.error(error);\r\n this.setState({\r\n itemKey: productListId,\r\n headerStatusMessage: resources.deleteOrderTemplateFailedText,\r\n statusCssString: 'danger',\r\n messageGlyph: 'fas fa-exclamation-triangle',\r\n isOpen: true\r\n });\r\n })\r\n .then(this._reloadPage);\r\n } else {\r\n telemetry.warning('[order-template-list] Failed to delete order template. Order template was not found');\r\n }\r\n } else {\r\n telemetry.warning('[order-template-list] Failed to delete order template.');\r\n }\r\n }\r\n };\r\n}\r\n\r\nexport default OrderTemplateList;\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\n/* eslint-disable no-duplicate-imports */\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ISingleOrderTemplateViewProps } from './components';\r\nimport { IOrderTemplateListViewProps } from './quotation-list';\r\n\r\nexport const OrderTemplateListView: React.FC = props => {\r\n const {\r\n OrderTemplateList,\r\n status,\r\n statusMessage,\r\n heading,\r\n OrderTemplates,\r\n orderTemplates,\r\n OrderTemplate,\r\n createOrderTemplateButton,\r\n templateHeaderStatusMessage\r\n } = props;\r\n\r\n return (\r\n \r\n {heading}\r\n {status !== 'SUCCESS' && statusMessage}\r\n \r\n {createOrderTemplateButton}\r\n {templateHeaderStatusMessage}\r\n \r\n {OrderTemplates && orderTemplates && orderTemplates.length > 0 && (\r\n \r\n {orderTemplates &&\r\n orderTemplates.map(orderTemplate => {\r\n return _renderOrderTemplate(orderTemplate, OrderTemplate);\r\n })}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst _renderOrderTemplate = (orderTemplate: ISingleOrderTemplateViewProps, OrderTemplate?: INodeProps): JSX.Element | null => {\r\n const { key, addToCartButton, orderTemplateImage, orderTemplateStatusMessage, removeButton, orderTemplateName } = orderTemplate;\r\n return (\r\n \r\n {orderTemplateName}\r\n {orderTemplateImage}\r\n {addToCartButton}\r\n {removeButton}\r\n {orderTemplateStatusMessage}\r\n \r\n );\r\n};\r\n\r\nexport default OrderTemplateListView;\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 { FullProduct } from '@msdyn365-commerce/commerce-entities';\r\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { addOrderTemplateToCartAction, AddOrderTemplateToCartInput, OrderTemplate } from '@msdyn365-commerce-modules/retail-actions';\r\nimport {\r\n Button,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n IPopupProductsProps,\r\n ITelemetryContent,\r\n PopupProducts,\r\n TelemetryConstant,\r\n Modal,\r\n ModalBody,\r\n ModalFooter,\r\n ModalHeader\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport React, { useState } from 'react';\r\n\r\nimport { ILinesAddedToCartDialogResources, LinesAddedToCartDialog } from '@msdyn365-commerce/components'; //' ../lines-added-to-cart-dialog/lines-added-to-cart-dialog.component';\r\nimport { AttributeValue, SimpleProduct } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nexport interface IAddOrderTemplateToCartComponentData {\r\n orderTemplate: OrderTemplate;\r\n}\r\n\r\nexport interface IAddOrderTemplateToCartComponentProps extends IComponentProps {\r\n className?: string;\r\n parentElementRef?: React.RefObject{' '}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport interface IModalWarningPropsFromLineAction {\r\n buttonLabel: string;\r\n className: string;\r\n applicationNode: string;\r\n isOpen: boolean;\r\n onWarningSubmit(product: SimpleProduct, quantity: number, itemKey: string, productSpecification: AttributeValue[]): void;\r\n warningClose(): void;\r\n productFromLineAction: SimpleProduct;\r\n quantityFromLineAction: number;\r\n itemKeyFromLineAction: string;\r\n productSpecificationFromLineAction: AttributeValue[];\r\n modalWarningResources?: IModalWarningResources;\r\n}\r\n\r\nexport class ModalWarningFromLineAction extends React.PureComponent {\r\n public modalWarningBtn: React.RefObject;\r\n\r\n constructor(props: IModalWarningPropsFromLineAction) {\r\n super(props);\r\n this.state = {\r\n warningAccepted: false\r\n };\r\n\r\n this.toggle = this.toggle.bind(this);\r\n this.accept = this.accept.bind(this);\r\n this.onWarningChecked = this.onWarningChecked.bind(this);\r\n this.modalWarningBtn = React.createRef();\r\n }\r\n\r\n public toggle(): void {\r\n this.setState({\r\n warningAccepted: false\r\n });\r\n this.props.warningClose();\r\n }\r\n\r\n public accept(): void {\r\n this.setState({\r\n warningAccepted: false\r\n });\r\n this.props.warningClose();\r\n this.props.onWarningSubmit(\r\n this.props.productFromLineAction,\r\n this.props.quantityFromLineAction,\r\n this.props.itemKeyFromLineAction,\r\n this.props.productSpecificationFromLineAction\r\n );\r\n }\r\n\r\n public onWarningChecked(): void {\r\n this.setState({\r\n warningAccepted: !this.state.warningAccepted\r\n });\r\n }\r\n\r\n public render(): JSX.Element {\r\n return (\r\n \r\n \r\n

{this.props.modalWarningResources?.modalWarningHeader ?? 'Quotation process warning'}

\r\n
\r\n \r\n
\r\n {this.props.modalWarningResources?.modalWarningMessage ??\r\n 'To ensure that your quote contains only selected items, please empty your basket before converting list to bag.'}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {' '}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst AddOrderTemplate: React.FC = (props: IAddOrderTemplateToCartComponentProps) => {\r\n const [uploadStatus, setUploadStatus] = useState('WAITING');\r\n const [modalOpen, setModalOpen] = useState(false);\r\n const [addedLinesCount, setAddedLinesCount] = useState(0);\r\n const [linesAddedToCartDialogOpen, setLinesAddedToCartDialogOpen] = useState(false);\r\n const [modalWarningOpen, setModalWarningOpen] = useState(false);\r\n\r\n const onClickHandler = async (event: React.MouseEvent) => {\r\n buttonEventReference = event.target as HTMLButtonElement;\r\n await AddToCartComponentActions.onClick(\r\n event,\r\n props,\r\n setUploadStatus,\r\n setModalOpen,\r\n setLinesAddedToCartDialogOpen,\r\n setAddedLinesCount\r\n );\r\n };\r\n\r\n const warningHandler = () => {\r\n //debugger;\r\n setModalWarningOpen(true);\r\n };\r\n\r\n const warningClose = () => {\r\n setModalWarningOpen(false);\r\n };\r\n\r\n const closeLinesAddedToCartDialog = () => {\r\n setLinesAddedToCartDialogOpen(false);\r\n buttonEventReference?.focus();\r\n };\r\n\r\n const modalText = _getModalText(uploadStatus, props);\r\n const processStatusClass = uploadStatus.toLowerCase();\r\n const dialogStrings = { closeWindowButtonText: props.dialogStrings.closeWindowButtonText };\r\n const payLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.AddOrderTemplateToCart);\r\n const addOrderTemplateAttribute = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n\r\n const popupProps: IPopupProductsProps = {\r\n dialogStrings,\r\n className: 'msc-add-order-template-to-cart',\r\n processStatusClass,\r\n text: modalText,\r\n modalOpen,\r\n setModalOpen\r\n };\r\n\r\n const renderModalPopup = ;\r\n\r\n const products = props.data.orderTemplate.orderTemplateLines\r\n .map(line => line.fullProduct)\r\n .filter(fullProduct => fullProduct) as FullProduct[];\r\n\r\n return (\r\n <>\r\n {renderModalPopup}\r\n \r\n {props.addToCartText}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport const AddOrderTemplateToCartComponent: React.FunctionComponent =\r\n // @ts-expect-error -- As per design, custom component\r\n msdyn365Commerce.createComponent('AddOrderTemplate', {\r\n component: AddOrderTemplate,\r\n ...AddToCartComponentActions\r\n });\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\n/* eslint-disable no-duplicate-imports */\r\n//import { Button } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IOrderTemplateLineViewModel } from '../quotation';\r\nimport { IQuotationData } from '../quotation.data';\r\nimport { IQuotationProps } from '../quotation.props.autogenerated';\r\nimport { AddLineToTemplate } from '.';\r\n\r\ninterface IOrderTemplateBulkActionsProps extends IQuotationProps {\r\n orderTemplateId: string;\r\n selectedLines: IOrderTemplateLineViewModel[];\r\n isMinifiedView: boolean;\r\n onAddSelectionToBag(): void;\r\n onRemoveSelection(): void;\r\n}\r\n\r\ninterface IOrderTemplateBulkActionsState {\r\n isAddDisabled: boolean;\r\n isRemoveDisabled: boolean;\r\n}\r\n\r\n/**\r\n * Bulk Order Template line actions.\r\n */\r\nexport class OrderTemplateBulkActions extends React.PureComponent {\r\n public state: IOrderTemplateBulkActionsState = {\r\n isAddDisabled: true,\r\n isRemoveDisabled: true\r\n };\r\n\r\n public static getDerivedStateFromProps(\r\n props: IOrderTemplateBulkActionsProps,\r\n state: IOrderTemplateBulkActionsState\r\n ): IOrderTemplateBulkActionsState {\r\n const selectedLines = props.selectedLines.length;\r\n let nextState = { ...state };\r\n nextState = {\r\n isAddDisabled: selectedLines === 0,\r\n isRemoveDisabled: selectedLines === 0\r\n };\r\n return nextState;\r\n }\r\n\r\n public render(): JSX.Element {\r\n const {\r\n addLineModalLinkText,\r\n searchButtonAriaLabel,\r\n searchInputAriaLabel,\r\n searchModalPlaceholderText,\r\n selectProductButtonText,\r\n addItemToTemplateText,\r\n addLineProductUnitPricePrefix,\r\n backButtonText,\r\n decrementButtonAriaLabel,\r\n incrementButtonAriaLabel,\r\n quantitySelectLabel,\r\n addLineProductUnitOfMeasurePrefix,\r\n notFoundSearchErrorNotice,\r\n notFoundSearchErrorRedediation,\r\n searchErrorMessage,\r\n productDimensionTypeColor,\r\n productDimensionTypeConfiguration,\r\n productDimensionTypeSize,\r\n productDimensionTypeStyle,\r\n //addSelectedToBagButtonText,\r\n //removeSelectedToBagButtonText,\r\n searchResultsCountVerbage,\r\n searchResultsCountSubject,\r\n addToTemplateConfirmation,\r\n totalPriceLabel,\r\n progressNotificationText,\r\n addToTemplateDuplicateError,\r\n addToTemplateGenericError,\r\n dimensionMissingError\r\n } = this.props.resources;\r\n const addLineProps = {\r\n context: this.props.context,\r\n resources: {\r\n addLineModalLinkText,\r\n searchButtonAriaLabel,\r\n searchInputAriaLabel,\r\n searchModalPlaceholderText,\r\n selectProductButtonText,\r\n addItemToTemplateText,\r\n addLineProductUnitPricePrefix,\r\n backButtonText,\r\n decrementButtonAriaLabel,\r\n incrementButtonAriaLabel,\r\n quantitySelectLabel,\r\n addLineProductUnitOfMeasurePrefix,\r\n notFoundSearchErrorNotice,\r\n notFoundSearchErrorRedediation,\r\n searchErrorMessage,\r\n productDimensionTypeColor,\r\n productDimensionTypeConfiguration,\r\n productDimensionTypeSize,\r\n productDimensionTypeStyle,\r\n searchResultsCountVerbage,\r\n searchResultsCountSubject,\r\n addToTemplateConfirmation,\r\n totalPriceLabel,\r\n progressNotificationText,\r\n addToTemplateDuplicateError,\r\n addToTemplateGenericError,\r\n dimensionMissingError\r\n },\r\n imageSettings: this.props.config.imageSettings,\r\n orderTemplateId: this.props.orderTemplateId\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {/* \r\n \r\n {!this.props.isMinifiedView && addSelectedToBagButtonText}\r\n \r\n \r\n \r\n {!this.props.isMinifiedView && removeSelectedToBagButtonText}\r\n */}\r\n \r\n );\r\n }\r\n\r\n // private readonly addHandler = (event: React.MouseEvent) => {\r\n // this.setState({\r\n // isAddDisabled: true\r\n // });\r\n\r\n // this.props.onAddSelectionToBag();\r\n\r\n // this.setState({\r\n // isAddDisabled: false\r\n // });\r\n // };\r\n\r\n // private readonly removeHandler = (event: React.MouseEvent) => {\r\n // this.setState({\r\n // isRemoveDisabled: true\r\n // });\r\n\r\n // this.props.onRemoveSelection();\r\n // };\r\n}\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 { getUrlSync, IComponentProps, ICoreContext, IImageSettings } from '@msdyn365-commerce/core'; //Image\r\nimport { AttributeValue, SimpleProduct } from '@msdyn365-commerce/retail-proxy'; //ProductPrice\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions'; //getFallbackImageUrl\r\nimport { Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { PriceComponent } from '@msdyn365-commerce/components'; //'../../price/price.components';\r\nimport { IItemWithAttributeAddedToCartDialogData } from '../../quotation';\r\n\r\nexport interface IItemAddedToCartDialogResources {\r\n viewCartButtonText: string;\r\n orderTemplateCloseButtonText: string;\r\n itemAddedToCartHeaderItemOneText: string;\r\n itemAddedToCartHeaderItemFormatText: string;\r\n itemAddedToCartHeaderMessageText: string;\r\n\r\n freePriceText: string;\r\n originalPriceText: string;\r\n currentPriceText: string;\r\n}\r\n\r\n// export interface IItemAddedToCartDialogData {\r\n// product: SimpleProduct;\r\n// productPrice: ProductPrice;\r\n// quantity: number;\r\n// }\r\n\r\nexport interface IItemAddedToCartDialogProps extends IComponentProps {\r\n className: string;\r\n\r\n dialogStrings: IItemAddedToCartDialogResources;\r\n\r\n modalOpen: boolean | undefined;\r\n onClose(): void;\r\n}\r\n\r\nconst renderImage = (context: ICoreContext, className: string, product: SimpleProduct, imageSettings?: IImageSettings) => {\r\n // const fallbackImageUrl = getFallbackImageUrl(product.ItemId, context.actionContext.requestContext.apiSettings);\r\n // const defaultImageSettings: IImageSettings = {\r\n // viewports: {\r\n // xs: { q: 'w=140&h=140&m=6', w: 0, h: 0 },\r\n // lg: { q: 'w=140&h=140&m=6', w: 0, h: 0 },\r\n // xl: { q: 'w=140&h=140&m=6', w: 0, h: 0 }\r\n // },\r\n // lazyload: true\r\n // };\r\n return (\r\n <>\r\n // \r\n );\r\n};\r\n\r\nconst _getErpSizeDescription = (attributeValues: AttributeValue[]): string => {\r\n if (!attributeValues || !ArrayExtensions.hasElements(attributeValues)) {\r\n return '';\r\n }\r\n const externalItemIdAttribute = attributeValues.find(\r\n attribute =>\r\n //attribute.Name === 'ERP_Sizes' || attribute.KeyName === 'ERPSizes'\r\n attribute.Name === 'Description'\r\n );\r\n if (externalItemIdAttribute) {\r\n return externalItemIdAttribute.TextValue ?? '';\r\n }\r\n return '';\r\n};\r\n\r\nexport const ItemWithAttributeAddedToCartDialog = (dialogProps: IItemAddedToCartDialogProps) => {\r\n const {\r\n dialogStrings,\r\n className,\r\n context,\r\n modalOpen,\r\n data: { product, productPrice, quantity, producSpecification }\r\n } = dialogProps;\r\n\r\n const getCartPageUrl = (): string => {\r\n return getUrlSync('cart', context.actionContext) || '';\r\n };\r\n\r\n const close: () => void = () => {\r\n dialogProps.onClose();\r\n };\r\n\r\n const itemsString =\r\n quantity === 1\r\n ? dialogStrings.itemAddedToCartHeaderItemOneText\r\n : dialogStrings.itemAddedToCartHeaderItemFormatText.replace('{0}', quantity.toString());\r\n\r\n return (\r\n \r\n \r\n {itemsString}\r\n {dialogStrings.itemAddedToCartHeaderMessageText}\r\n \r\n \r\n
\r\n {renderImage(context, `${className}__dialog`, product)}\r\n
\r\n
{product.Name}
\r\n
\r\n {productPrice && (\r\n \r\n )}\r\n
\r\n {// product.Dimensions &&\r\n //
\r\n // {product.Dimensions.map(dimension => dimension.DimensionValue?.Value).filter(value => value).join(', ')}\r\n //
\r\n _getErpSizeDescription(producSpecification)}\r\n
\r\n
\r\n
\r\n \r\n \r\n {dialogStrings.viewCartButtonText}\r\n \r\n \r\n {dialogStrings.orderTemplateCloseButtonText}\r\n \r\n \r\n
\r\n );\r\n};\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\n/* eslint-disable no-duplicate-imports */\r\nimport * as React from 'react';\r\n\r\nexport default (props: { className: string; msg?: string }) => (\r\n <>\r\n
\r\n {props?.msg &&
{props?.msg}
}\r\n \r\n);\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\n/* eslint-disable no-duplicate-imports */\r\nimport { ProductDimensionFull } from '@msdyn365-commerce/commerce-entities';\r\nimport { getCatalogId, ICoreContext, IImageSettings } from '@msdyn365-commerce/core';\r\nimport { ProductListLine, ProductSearchCriteria, ProductSearchResult } from '@msdyn365-commerce/retail-proxy';\r\nimport { searchByCriteriaAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport {\r\n addItemToOrderTemplate,\r\n AddItemToOrderTemplateInput,\r\n getDimensionsForSelectedVariant,\r\n GetDimensionsForSelectedVariantInput,\r\n getSelectedVariant,\r\n SelectedVariantInput\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Modal, ModalBody, ModalHeader } from '@msdyn365-commerce-modules/utilities';\r\nimport { get } from 'lodash';\r\nimport { computed } from 'mobx';\r\nimport React from 'react';\r\n\r\nimport { IProductConfigurationState, NotFoundComponent, ProductConfiguration, ProductList } from '.';\r\nimport Spinner from './spinner';\r\n\r\nexport interface IAddLineToTemplateProps {\r\n context: ICoreContext;\r\n resources: IAddLineToTemplateResources;\r\n orderTemplateId: string;\r\n imageSettings?: IImageSettings;\r\n}\r\n\r\nexport interface IAddLineToTemplateResources {\r\n addLineModalLinkText: string;\r\n searchButtonAriaLabel: string;\r\n searchInputAriaLabel: string;\r\n searchModalPlaceholderText: string;\r\n selectProductButtonText: string;\r\n addItemToTemplateText: string;\r\n addLineProductUnitPricePrefix: string;\r\n backButtonText: string;\r\n decrementButtonAriaLabel: string;\r\n incrementButtonAriaLabel: string;\r\n quantitySelectLabel: string;\r\n addLineProductUnitOfMeasurePrefix: string;\r\n notFoundSearchErrorNotice: string;\r\n notFoundSearchErrorRedediation: string;\r\n searchErrorMessage: string;\r\n productDimensionTypeColor: string;\r\n productDimensionTypeConfiguration: string;\r\n productDimensionTypeSize: string;\r\n productDimensionTypeStyle: string;\r\n searchResultsCountVerbage: string;\r\n searchResultsCountSubject: string;\r\n addToTemplateConfirmation: string;\r\n totalPriceLabel: string;\r\n progressNotificationText: string;\r\n addToTemplateDuplicateError: string;\r\n addToTemplateGenericError: string;\r\n dimensionMissingError: string;\r\n backToResultsText?: string;\r\n}\r\n\r\nenum CONTENT {\r\n Search,\r\n ProductList,\r\n ProductConfiguration,\r\n NotFound,\r\n Error,\r\n Loading\r\n}\r\n\r\ninterface IAddLineToTemplateState {\r\n isOpen: boolean;\r\n query: string;\r\n products: ProductSearchResult[];\r\n content: number;\r\n selectedProduct: SimpleProduct | null;\r\n selectedProductDimensions?: ProductDimensionFull[];\r\n selectedQuantity?: number;\r\n reloadPage?: boolean;\r\n}\r\n\r\n/**\r\n * Add Lines to order template.\r\n */\r\nexport class AddLineToTemplate extends React.Component {\r\n public state: IAddLineToTemplateState = {\r\n isOpen: false,\r\n query: '',\r\n products: [],\r\n content: CONTENT.Search,\r\n selectedProduct: null\r\n };\r\n\r\n public defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=64&h=64&m=6', w: 0, h: 0 },\r\n lg: { q: 'w=64&h=64&m=6', w: 0, h: 0 },\r\n xl: { q: 'w=64&h=64&m=6', w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n\r\n public searchTextInput: React.RefObject = React.createRef(); // @TODO public/private\r\n\r\n private readonly addLineButtonRef: React.RefObject = React.createRef();\r\n\r\n constructor(props: IAddLineToTemplateProps) {\r\n super(props);\r\n }\r\n\r\n public onComponentDidMount(): void {\r\n this.searchTextInput.current?.focus();\r\n }\r\n\r\n public onComponentDidUpdate(): void {\r\n this.searchTextInput.current?.focus();\r\n }\r\n\r\n @computed get showBackArrow(): boolean {\r\n return this.state.content === CONTENT.ProductConfiguration;\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: IAddLineToTemplateProps, nextState: IAddLineToTemplateState): boolean {\r\n if (this.state === nextState && this.props === nextProps) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public render(): JSX.Element {\r\n const {\r\n resources: { addLineModalLinkText, backToResultsText }\r\n } = this.props;\r\n\r\n const modalProps = {\r\n ...this.props,\r\n className: 'msc-add-line-to-template',\r\n toggle: this._toggleModalHandler,\r\n isOpen: this.state.isOpen,\r\n ariaLabel: addLineModalLinkText\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n {this.showBackArrow && (\r\n \r\n )}\r\n {addLineModalLinkText}\r\n \r\n {this._renderContent()}\r\n \r\n \r\n \r\n {addLineModalLinkText}\r\n \r\n \r\n );\r\n }\r\n\r\n private readonly _renderSearchForm = () => {\r\n const {\r\n resources: { searchButtonAriaLabel, searchModalPlaceholderText }\r\n } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n private _onIncrementalChange(amount: number): void {\r\n const updatedQuantity = this.state.currentInput + amount;\r\n\r\n if (updatedQuantity >= 1 && updatedQuantity <= this.props.max) {\r\n this.props.onChange && this.props.onChange(updatedQuantity);\r\n }\r\n }\r\n\r\n private _handleChange(e: React.ChangeEvent): void {\r\n const currentValue = Number.parseInt(e.target.value, 10);\r\n const minValue = this.props.min === undefined ? 1 : this.props.min;\r\n const inputElement =\r\n this.inputRef && this.inputRef.current && this.inputRef.current instanceof HTMLInputElement && this.inputRef.current;\r\n\r\n if (currentValue > this.props.max) {\r\n this.setState({ currentInput: this.props.max });\r\n } else {\r\n this.setState({ currentInput: currentValue }, () => {\r\n debounce(() => {\r\n if (!isNaN(this.state.currentInput) && !(this.state.currentInput < minValue) && inputElement) {\r\n inputElement.setAttribute('aria-valuenow', currentValue.toString());\r\n inputElement.setAttribute('value', currentValue.toString());\r\n }\r\n }, 200)();\r\n });\r\n }\r\n }\r\n\r\n private readonly _validateMin = (): void => {\r\n const minValue = this.props.min === undefined ? 1 : this.props.min;\r\n\r\n if (isNaN(this.state.currentInput) || this.state.currentInput < minValue) {\r\n this.props.onChange && this.props.onChange(minValue);\r\n } else {\r\n this.props.onChange && this.props.onChange(this.state.currentInput);\r\n }\r\n };\r\n}\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\n/* eslint-disable no-duplicate-imports */\r\nimport { ProductDimensionFull } from '@msdyn365-commerce/commerce-entities';\r\nimport { IImageSettings } from '@msdyn365-commerce/core'; //Image\r\nimport { ProductDimensionValue, ProductListLine } from '@msdyn365-commerce/retail-proxy';\r\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport {\r\n getDimensionsForSelectedVariant,\r\n GetDimensionsForSelectedVariantInput,\r\n //getFallbackImageUrl,\r\n getPriceForSelectedVariant,\r\n getProductAvailabilitiesForSelectedVariant,\r\n getSelectedVariant,\r\n IProductInventoryInformation,\r\n PriceForSelectedVariantInput,\r\n ProductAvailabilitiesForSelectedVariantInput,\r\n SelectedVariantInput\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Alert, Button, ITelemetryContent, ModalBody, ModalFooter } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport React from 'react';\r\n\r\nimport OrderTemplateQuantity from '../common/quotation-quantity';\r\nimport { Dropdown, IAddLineToTemplateProps, IAddLineToTemplateResources, IDropdownItemProps, IDropdownOnSelection } from '.';\r\n\r\nexport interface IProductCnnfigurationProps extends IAddLineToTemplateProps {\r\n product: SimpleProduct;\r\n dimensions: ProductDimensionFull[];\r\n imageSettings: IImageSettings;\r\n telemetryContent?: ITelemetryContent;\r\n searchForm: React.ReactNode;\r\n addToTemplateHandler(params: IProductConfigurationState): Promise;\r\n highlightSearchTerm(name: string): React.ReactNode;\r\n}\r\n\r\nexport interface IProductConfigurationState {\r\n quantity: number;\r\n unitPrice: number;\r\n totalPrice: number;\r\n product: SimpleProduct;\r\n dimensions: ProductDimensionFull[];\r\n selectedDimensions: {};\r\n productAvailableQuantity?: IProductInventoryInformation;\r\n buttonDisabled: boolean;\r\n showAddConfirmation: boolean;\r\n errorMessage?: string;\r\n isBusy: boolean;\r\n errors: { dimension?: string[]; add?: string };\r\n}\r\n\r\n/**\r\n * Configure selected product for addition to order template.\r\n */\r\nexport class ProductConfiguration extends React.Component {\r\n private selectedDimensions: {} = {};\r\n\r\n constructor(props: IProductCnnfigurationProps) {\r\n super(props);\r\n\r\n this.state = {\r\n quantity: 1,\r\n unitPrice: props.product.Price,\r\n totalPrice: props.product.Price,\r\n product: props.product,\r\n dimensions: props.dimensions.sort((a, b) => a.DimensionTypeValue - b.DimensionTypeValue),\r\n selectedDimensions: {},\r\n buttonDisabled: false,\r\n showAddConfirmation: false\r\n } as IProductConfigurationState;\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: IProductCnnfigurationProps, nextState: IProductConfigurationState): boolean {\r\n if (this.state === nextState && this.props === nextProps) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public render(): JSX.Element {\r\n const {\r\n // context: {\r\n // actionContext: {\r\n // requestContext: { apiSettings }\r\n // },\r\n // request: { gridSettings }\r\n // },\r\n resources: {\r\n addItemToTemplateText,\r\n addLineProductUnitPricePrefix,\r\n decrementButtonAriaLabel,\r\n incrementButtonAriaLabel,\r\n quantitySelectLabel,\r\n addLineProductUnitOfMeasurePrefix,\r\n totalPriceLabel\r\n },\r\n //imageSettings,\r\n highlightSearchTerm\r\n } = this.props;\r\n const { buttonDisabled, product, quantity, unitPrice, totalPrice, showAddConfirmation, errors } = this.state;\r\n\r\n return (\r\n <>\r\n \r\n {this.props.searchForm}\r\n
\r\n
\r\n
\r\n {/* */}\r\n
\r\n
{product?.ItemId}
\r\n {highlightSearchTerm(product?.Name ?? '')}\r\n
\r\n {addLineProductUnitPricePrefix} {this._formatPrice(unitPrice)}\r\n
\r\n
\r\n {addLineProductUnitOfMeasurePrefix} {product?.DefaultUnitOfMeasure}\r\n
\r\n
\r\n
\r\n
{this._getDimensionsNodes()}
\r\n
\r\n
\r\n
{quantitySelectLabel}
\r\n \r\n
\r\n
\r\n
\r\n {totalPriceLabel} {this._formatPrice(totalPrice)}\r\n
\r\n
\r\n \r\n {showAddConfirmation && (\r\n \r\n
\r\n )}\r\n {errors?.add && (\r\n
\r\n
\r\n )}\r\n \r\n {addItemToTemplateText}\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private _getConfirmationMessage(): string {\r\n const selectedDimensionNames = this.state.dimensions\r\n .map(dimension => {\r\n let variant = dimension.DimensionValues?.find(\r\n value => value.RecordId === this.selectedDimensions[dimension.DimensionTypeValue]\r\n )?.Value;\r\n if (dimension.DimensionTypeValue === 3) {\r\n variant = `size ${variant}`;\r\n }\r\n return variant;\r\n })\r\n .filter(value => value);\r\n\r\n return this.props.resources.addToTemplateConfirmation\r\n .replace('{count}', this.state.quantity.toString())\r\n .replace('{productAndDimensions}', `${this.state.product.Name}, ${Object.values(selectedDimensionNames).join(', ')}`);\r\n }\r\n\r\n private _getDimensionsNodes(): React.ReactElement[] {\r\n const { dimensions } = this.state;\r\n const { resources } = this.props;\r\n\r\n return dimensions?.map((dimension: ProductDimensionFull) => {\r\n const { DimensionValues, DimensionTypeValue } = dimension;\r\n const mapDimensions = (value: ProductDimensionValue): IDropdownItemProps => ({\r\n id: value.RecordId,\r\n value: value.Value || ''\r\n });\r\n const dimensionName = this._getDropdownName(DimensionTypeValue, resources);\r\n const dropdownList: IDropdownItemProps[] = DimensionValues ? DimensionValues.map(mapDimensions) : [];\r\n dropdownList.unshift({ id: 0, value: `Choose a ${dimensionName}` });\r\n\r\n return (\r\n
\r\n
{dimensionName}
\r\n {this.state.errors?.dimension?.includes(DimensionTypeValue.toString()) && (\r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n );\r\n });\r\n }\r\n\r\n private readonly _getDimensionsError = (dimensionName: string) =>\r\n this.props.resources.dimensionMissingError.replace(/{dimensionName}/g, dimensionName);\r\n\r\n private readonly _addToTemplateHandler = async (event: React.MouseEvent) => {\r\n // Hide confirmation of previous addition when adding multiple items\r\n this.setState({\r\n isBusy: true,\r\n showAddConfirmation: false,\r\n errors: { ...this.state.errors, add: undefined }\r\n });\r\n\r\n const missingDimensions = this.state.dimensions\r\n .map(dimension => dimension.DimensionTypeValue.toString())\r\n .filter(type => !this.selectedDimensions[type]);\r\n\r\n this.setState({\r\n errors: { dimension: missingDimensions }\r\n });\r\n if (missingDimensions.length > 0) {\r\n this.setState({\r\n isBusy: false\r\n });\r\n return;\r\n }\r\n\r\n this.props\r\n .addToTemplateHandler({ ...this.state })\r\n .then(status => {\r\n // Validate against the existance of a ProductListId\r\n if (status.ProductListId) {\r\n this.setState({\r\n isBusy: false,\r\n showAddConfirmation: true\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n const { addToTemplateDuplicateError, addToTemplateGenericError } = this.props.resources;\r\n let errorMessage;\r\n\r\n if (error.error.name === 'Microsoft_Dynamics_Commerce_Runtime_DuplicateObject') {\r\n errorMessage = addToTemplateDuplicateError;\r\n } else {\r\n errorMessage = addToTemplateGenericError;\r\n }\r\n\r\n this.setState({\r\n isBusy: false,\r\n errors: { ...this.state.errors, add: errorMessage }\r\n });\r\n this.props.context.telemetry.error('Error adding item to order template');\r\n });\r\n };\r\n\r\n private readonly _onQuantityChange = (newValue: number) => {\r\n this.setState({\r\n quantity: newValue,\r\n totalPrice: newValue * this.props.product.Price\r\n });\r\n };\r\n\r\n private readonly _updateDimensionValue = (\r\n productDimensionFull: ProductDimensionFull,\r\n newValueId: string | undefined\r\n ): ProductDimensionValue | undefined => {\r\n if (newValueId && productDimensionFull.DimensionValues) {\r\n return productDimensionFull.DimensionValues.find(dimension => dimension.RecordId === +newValueId);\r\n }\r\n\r\n return undefined;\r\n };\r\n\r\n // Rehydrate the selected variants price, available dimensions & sizes\r\n private readonly _onDimensionChanged = async (selection: IDropdownOnSelection): Promise => {\r\n const { product, dimensions, context } = this.props;\r\n const {\r\n actionContext,\r\n request: {\r\n apiSettings: { channelId }\r\n }\r\n } = context;\r\n\r\n // Remaining error notifications for missing dimensions\r\n const remainingDimensionsErrors = this.state.errors?.dimension?.filter(id => id !== selection.dropdownId.toString());\r\n\r\n this.setState({\r\n isBusy: false,\r\n showAddConfirmation: false,\r\n buttonDisabled: true,\r\n errors: { add: undefined, dimension: remainingDimensionsErrors }\r\n });\r\n\r\n // Update currently selected dimensions\r\n this.selectedDimensions[selection.dropdownId] = +selection.selectId;\r\n\r\n const mappedDimensions = dimensions\r\n ?.map(dimension => {\r\n return {\r\n DimensionTypeValue: dimension.DimensionTypeValue,\r\n DimensionValue:\r\n this._updateDimensionValue(dimension, this.selectedDimensions[dimension.DimensionTypeValue]) ||\r\n dimension.DimensionValue,\r\n ExtensionProperties: dimension.ExtensionProperties\r\n };\r\n })\r\n .filter(dimension => {\r\n return dimension && dimension.DimensionValue;\r\n });\r\n\r\n const variantProduct = await getSelectedVariant(\r\n new SelectedVariantInput(\r\n product.MasterProductId ? product.MasterProductId : product.RecordId,\r\n channelId,\r\n mappedDimensions,\r\n undefined,\r\n this.props.context.request\r\n ),\r\n actionContext\r\n );\r\n\r\n if (!variantProduct) {\r\n this.props.context.telemetry.error(\r\n `Error retrieving variant product for product ${product.MasterProductId ? product.MasterProductId : product.RecordId}`\r\n );\r\n return;\r\n }\r\n\r\n const dimensionInput = new GetDimensionsForSelectedVariantInput(\r\n variantProduct.RecordId,\r\n channelId,\r\n mappedDimensions,\r\n this.props.context.request\r\n );\r\n const variantDimensions = await getDimensionsForSelectedVariant(dimensionInput, actionContext);\r\n\r\n if (!variantDimensions) {\r\n this.props.context.telemetry.error('Error retrieving dimensions for reconfigured product variant');\r\n this.setState({\r\n buttonDisabled: false\r\n });\r\n return;\r\n }\r\n\r\n const availabilityInput = new ProductAvailabilitiesForSelectedVariantInput(\r\n product.MasterProductId ? product.MasterProductId : product.RecordId,\r\n channelId\r\n );\r\n\r\n // @TODO sync UX quantity w/ actual availability\r\n const newAvailableQuantity = await getProductAvailabilitiesForSelectedVariant(availabilityInput, actionContext);\r\n const priceInput = new PriceForSelectedVariantInput(product.RecordId, channelId);\r\n const productPrice = await getPriceForSelectedVariant(priceInput, actionContext);\r\n\r\n if (!productPrice) {\r\n this.props.context.telemetry.error('Error retrieving price for reconfigured product variant');\r\n this.setState({\r\n buttonDisabled: false\r\n });\r\n return;\r\n }\r\n\r\n this.setState({\r\n buttonDisabled: false,\r\n productAvailableQuantity: (newAvailableQuantity && newAvailableQuantity[0]) || undefined,\r\n unitPrice: +(productPrice.BasePrice || product.Price),\r\n dimensions: variantDimensions.sort((a, b) => a.DimensionTypeValue - b.DimensionTypeValue),\r\n product: variantProduct\r\n });\r\n };\r\n\r\n private readonly _getDropdownName = (dimensionType: number, resources: IAddLineToTemplateResources): string => {\r\n switch (dimensionType) {\r\n case 1: // Color\r\n return resources.productDimensionTypeColor;\r\n case 2: // Configuration\r\n return resources.productDimensionTypeConfiguration;\r\n case 3: // Size\r\n return resources.productDimensionTypeSize;\r\n case 4: // Style\r\n return resources.productDimensionTypeStyle;\r\n default:\r\n return '';\r\n }\r\n };\r\n\r\n private _formatPrice(price: number): string {\r\n const {\r\n context: {\r\n cultureFormatter: {\r\n formatCurrency,\r\n\r\n // @ts-expect-error\r\n currencyCode\r\n }\r\n }\r\n } = this.props;\r\n\r\n return formatCurrency(price.toFixed(2), currencyCode);\r\n }\r\n}\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\n/* eslint-disable no-duplicate-imports */\r\nimport { ProductDimensionFull } from '@msdyn365-commerce/commerce-entities';\r\nimport { IImageSettings } from '@msdyn365-commerce/core'; //Image\r\nimport { ProductSearchResult } from '@msdyn365-commerce/retail-proxy';\r\n//import { getFallbackImageUrl } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Button } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport React, { useState } from 'react';\r\n\r\nimport { IAddLineToTemplateProps } from '.';\r\n\r\nexport interface IProductListProps extends IAddLineToTemplateProps {\r\n products: ProductSearchResult[];\r\n imageSettings: IImageSettings;\r\n searchForm: React.ReactNode;\r\n clickHandler(product: ProductSearchResult): Promise;\r\n highlightSearchTerm(name: string): React.ReactNode;\r\n renderResultCountText(): string;\r\n}\r\n\r\nexport const ProductList = (props: IProductListProps) => {\r\n const {\r\n products,\r\n context: {\r\n // actionContext: {\r\n // requestContext: { apiSettings }\r\n // },\r\n //request: { gridSettings },\r\n cultureFormatter: {\r\n formatCurrency,\r\n\r\n // @ts-expect-error\r\n currencyCode\r\n }\r\n },\r\n clickHandler,\r\n highlightSearchTerm,\r\n renderResultCountText,\r\n resources: { selectProductButtonText }\r\n //imageSettings\r\n } = props;\r\n\r\n return (\r\n <>\r\n

\r\n {renderResultCountText()}\r\n

\r\n {props.searchForm}\r\n
\r\n {products.map((product: ProductSearchResult, index: number) => {\r\n const { Price, ItemId, Name } = product; //PrimaryImageUrl\r\n const price = formatCurrency(Price.toFixed(2), currencyCode);\r\n //const fallBackImg = getFallbackImageUrl(ItemId, apiSettings) ?? '';\r\n\r\n return (\r\n
\r\n
\r\n {/* */}\r\n
\r\n
{ItemId}
\r\n {highlightSearchTerm(Name ?? '')}\r\n
\r\n
\r\n
\r\n {price}\r\n \r\n
\r\n
\r\n );\r\n })}\r\n
\r\n \r\n );\r\n};\r\n\r\ninterface IProductSelectButton {\r\n product: ProductSearchResult;\r\n buttonText: string;\r\n clickHandler(product: ProductSearchResult): Promise;\r\n}\r\n\r\nconst ProductSelectButton = (props: IProductSelectButton) => {\r\n const [isBusy, setBusy] = useState(false);\r\n const { product, buttonText, clickHandler } = props;\r\n const getClickHandler = React.useCallback(async () => {\r\n setBusy(!isBusy);\r\n await clickHandler(product);\r\n setBusy(!isBusy);\r\n }, [clickHandler, isBusy, product]);\r\n\r\n return (\r\n \r\n {buttonText}\r\n \r\n );\r\n};\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\n/* eslint-disable no-duplicate-imports */\r\nimport {\r\n ILinesAddedToCartDialogResources,\r\n IOrderTemplateNameDialogResources,\r\n RenameOrderTemplateComponent\r\n} from '@msdyn365-commerce/components';\r\nimport { AddOrderTemplateToCartComponent } from './';\r\nimport { IComponentProps, ICoreContext } from '@msdyn365-commerce/core';\r\nimport { ProductList } from '@msdyn365-commerce/retail-proxy';\r\nimport { OrderTemplate } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Button, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface IOrderTemplateActionsData {\r\n orderTemplate: OrderTemplate;\r\n}\r\n\r\nexport interface IOrderTemplateActionsProps extends IComponentProps {\r\n context: ICoreContext;\r\n telemetryContent?: ITelemetryContent;\r\n handlers: {\r\n onRemoveTemplate(orderTemplateId: string): void;\r\n onRenameTemplate(orderTemplate: ProductList): Promise;\r\n };\r\n renameOrderTemplateDialogStrings: IOrderTemplateNameDialogResources;\r\n resources: {\r\n addTemplateToBagButtonText: string;\r\n renameTemplateButtonText: string;\r\n deleteTemplateButtonText: string;\r\n closeWindowButtonText: string;\r\n addToCartFailureMessage: string;\r\n addToCartSuccessMessage: string;\r\n addToCartProcessMessage: string;\r\n linesAddedToCartDialogResources: ILinesAddedToCartDialogResources;\r\n };\r\n}\r\n\r\nexport interface IOrderTemplateActionsViewProps {\r\n addTemplateToBag: React.ReactNode;\r\n renameTemplate?: React.ReactNode;\r\n removeTemplate?: React.ReactNode;\r\n}\r\n\r\n/**\r\n * Remove Order Action.\r\n * @param props -Order template action props.\r\n * @returns Remove order template.\r\n */\r\nconst removeOrderActionHandler = (props: IOrderTemplateActionsProps) => () => {\r\n _removeOrderTemplate(props);\r\n};\r\n\r\nexport const OrderTemplateActionsView = (props: IOrderTemplateActionsProps): IOrderTemplateActionsViewProps => {\r\n const { resources } = props;\r\n const { deleteTemplateButtonText } = resources;\r\n\r\n return {\r\n addTemplateToBag: _getOrderTemplateAddToCartDialog(props),\r\n renameTemplate: _getOrderTemplateRenameControl(props),\r\n removeTemplate: (\r\n \r\n )\r\n };\r\n};\r\n\r\nconst _removeOrderTemplate = (props: IOrderTemplateActionsProps): void => {\r\n const {\r\n data: { orderTemplate },\r\n handlers\r\n } = props;\r\n const { onRemoveTemplate } = handlers;\r\n\r\n if (onRemoveTemplate) {\r\n onRemoveTemplate(orderTemplate.productList.Id);\r\n }\r\n};\r\n\r\nconst _getOrderTemplateAddToCartDialog = (props: IOrderTemplateActionsProps): React.ReactNode => {\r\n const {\r\n data: { orderTemplate },\r\n typeName,\r\n id,\r\n context,\r\n telemetryContent,\r\n resources\r\n } = props;\r\n const {\r\n addTemplateToBagButtonText,\r\n closeWindowButtonText,\r\n addToCartFailureMessage,\r\n addToCartSuccessMessage,\r\n addToCartProcessMessage,\r\n linesAddedToCartDialogResources\r\n } = resources;\r\n\r\n const dialogStrings = {\r\n closeWindowButtonText,\r\n addToCartFailureMessage,\r\n addToCartSuccessMessage,\r\n addToCartProcessMessage,\r\n linesAddedToCartDialogResources\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst _getOrderTemplateRenameControl = (props: IOrderTemplateActionsProps): React.ReactNode => {\r\n const { renameOrderTemplateDialogStrings, resources, context, handlers } = props;\r\n return (\r\n \r\n );\r\n};\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\n/* eslint-disable no-duplicate-imports */\r\nimport { PriceComponent } from '@msdyn365-commerce/components';\r\nimport { ICoreContext, IImageSettings, ITelemetry } from '@msdyn365-commerce/core'; //Image\r\nimport { ProductListLine } from '@msdyn365-commerce/retail-proxy';\r\nimport { AttributeValue, ProductPrice, SimpleProduct } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { getFallbackImageUrl, ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Button, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport React, { useState } from 'react';\r\n\r\nimport { IOrderTemplateLineViewModel } from '../quotation';\r\nimport OrderTemplateQuantity from './common/quotation-quantity';\r\n\r\nexport interface IOrderTemplateLineProps extends ProductListLine {\r\n orderTemplateLine: IOrderTemplateLineViewModel;\r\n productListLine: ProductListLine;\r\n price?: ProductPrice;\r\n context: ICoreContext;\r\n productUrl: string;\r\n imageSettings?: IImageSettings;\r\n telemetry: ITelemetry;\r\n moduleId: string;\r\n moduleTypeName: string;\r\n quantity: number;\r\n isQuantityDisabledForUpdate?: boolean;\r\n handlers: {\r\n onAddToBag(product: SimpleProduct, quantity: number, itemKey: string, producSpecification: AttributeValue[]): void;\r\n onRemoveItem(line: IOrderTemplateLineViewModel): void | undefined;\r\n onChangeQuantity(orderTemplateLineId: string, quantity: number, props?: IOrderTemplateLineProps): void;\r\n onSelect(line: IOrderTemplateLineViewModel, isChecked: boolean): void;\r\n };\r\n resources: {\r\n selectOneRowText?: string;\r\n moreButtonText?: string;\r\n viewProductDetailsText?: string;\r\n productDimensionTypeColor: string;\r\n productDimensionTypeSize: string;\r\n productDimensionTypeStyle: string;\r\n originalPriceText: string;\r\n currentPriceText: string;\r\n freePriceText: string;\r\n inputQuantityAriaLabel: string;\r\n removeFromOrderTemplateLinesText: string;\r\n addToBagButtonText: string;\r\n deleteButtonText: string;\r\n incrementButtonAriaLabel?: string;\r\n decrementButtonAriaLabel?: string;\r\n editOrderTemplateLineQuantityError?: string;\r\n };\r\n index: number;\r\n isMobile: boolean;\r\n productQuantityView?: React.ReactNode;\r\n addToBagButton?: React.ReactNode;\r\n removeButton?: React.ReactNode;\r\n toggleDetailsDisplayed(props: IOrderTemplateLineProps): void;\r\n}\r\n\r\nexport interface IOrderTemplateLineViewProps {\r\n key?: string;\r\n productImage: React.ReactNode;\r\n productPrice?: React.ReactNode;\r\n addToBagButton?: React.ReactNode;\r\n removeButton?: React.ReactNode;\r\n productName?: string;\r\n productNumber?: React.ReactNode;\r\n productInfo?: React.ReactNode;\r\n productLabel?: React.ReactNode;\r\n productUnitOfMeasure?: React.ReactNode;\r\n productQuantity?: number;\r\n productQuantityView?: React.ReactNode;\r\n productListId?: string;\r\n selectLine?: React.ReactNode;\r\n popUp?: JSX.Element;\r\n isMobile?: boolean;\r\n externalItemId: string;\r\n}\r\n\r\ninterface IEventHandlerFactory {\r\n getAddToBag(): (event: React.MouseEvent) => void;\r\n getRemoveItem(): (event: React.MouseEvent) => void;\r\n}\r\n\r\nconst OrderTemplateLineActions = (props: IOrderTemplateLineProps): IEventHandlerFactory => {\r\n const { orderTemplateLine, productListLine, quantity, handlers } = props;\r\n const { LineId } = productListLine;\r\n const { onAddToBag, onRemoveItem } = handlers;\r\n\r\n return {\r\n getAddToBag: () => (event: React.MouseEvent) => {\r\n LineId &&\r\n orderTemplateLine.fullProduct &&\r\n onAddToBag(orderTemplateLine.fullProduct.ProductDetails, quantity, LineId, orderTemplateLine.productSpecificationData);\r\n },\r\n getRemoveItem: () => (event: React.MouseEvent) => LineId && onRemoveItem(props.orderTemplateLine)\r\n };\r\n};\r\n\r\ninterface IPopupProps extends IOrderTemplateLineProps {\r\n addButtonClassName: string;\r\n removeButtonClassName: string;\r\n}\r\n\r\nconst PopUp = (props: IPopupProps): JSX.Element | null => {\r\n const { addToBagButtonText, removeFromOrderTemplateLinesText, moreButtonText, viewProductDetailsText } = props.resources;\r\n const [showMobile, setShowMobile] = useState(false);\r\n const componentClassName = 'ms-table';\r\n\r\n const getViewHandler = () => (event: React.MouseEvent) => {\r\n props.toggleDetailsDisplayed(props);\r\n };\r\n\r\n const toggle = React.useCallback(() => {\r\n setShowMobile(!showMobile);\r\n }, [showMobile]);\r\n\r\n return (\r\n
\r\n \r\n {showMobile && (\r\n
\r\n \r\n View\r\n \r\n {getActionButton(\r\n props.isMobile,\r\n props.removeButtonClassName,\r\n removeFromOrderTemplateLinesText,\r\n OrderTemplateLineActions(props).getRemoveItem()\r\n )}\r\n {getActionButton(\r\n props.isMobile,\r\n props.addButtonClassName,\r\n addToBagButtonText,\r\n OrderTemplateLineActions(props).getAddToBag()\r\n )}\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nconst getActionButton = (\r\n isMobile: boolean,\r\n className: string,\r\n buttonText: string,\r\n clickHandler: (event: React.MouseEvent) => void\r\n): React.ReactNode => (\r\n \r\n);\r\n\r\n/**\r\n * On Select line function.\r\n * @param orderTemplateLine -Order template line.\r\n * @param input -Order template line props.\r\n * @returns Set on select order template.\r\n */\r\nconst onSelectLineHandler = (orderTemplateLine: IOrderTemplateLineViewModel, input: IOrderTemplateLineProps) => (\r\n event: React.ChangeEvent\r\n) => {\r\n orderTemplateLine.isChecked = !orderTemplateLine.isChecked;\r\n\r\n input.handlers.onSelect(orderTemplateLine, event.target.checked);\r\n};\r\n\r\nexport const OrderTemplateLineView = (input: IOrderTemplateLineProps): IOrderTemplateLineViewProps | null => {\r\n const { orderTemplateLine, productListLine, price, context, imageSettings, quantity, resources, isMobile } = input;\r\n const product = orderTemplateLine.fullProduct;\r\n const { LineId, UnitOfMeasure } = productListLine;\r\n const { removeFromOrderTemplateLinesText, addToBagButtonText, selectOneRowText } = resources;\r\n if (!product) {\r\n return null;\r\n }\r\n\r\n const { ItemId, Name, PrimaryImageUrl } = product.ProductDetails;\r\n const fallbackImage = getFallbackImageUrl(ItemId, context.actionContext.requestContext.apiSettings);\r\n const addButtonClassName = input.isMobile ? 'ms-table__row-links-add' : 'ms-order-template-table-line__product-add-button';\r\n const removeButtonClassName = input.isMobile ? 'ms-table__row-links-delete' : 'ms-order-template-table-line__product-remove-button';\r\n\r\n return {\r\n isMobile,\r\n selectLine: (\r\n \r\n ),\r\n key: LineId!,\r\n productImage:\r\n PrimaryImageUrl &&\r\n Name &&\r\n _renderProductImage(\r\n 'ms-order-template-table-line__product-image',\r\n context,\r\n product.ProductDetails.Name!,\r\n PrimaryImageUrl,\r\n fallbackImage,\r\n imageSettings\r\n ),\r\n productInfo: renderProductInfo(input),\r\n productPrice: price && _renderPrice(input),\r\n productNumber: product &&
{ItemId}
,\r\n productUnitOfMeasure: price ? (\r\n
{UnitOfMeasure || price.UnitOfMeasure}
\r\n ) : (\r\n undefined\r\n ),\r\n productListId: LineId!,\r\n removeButton: getActionButton(\r\n input.isMobile,\r\n removeButtonClassName,\r\n removeFromOrderTemplateLinesText,\r\n OrderTemplateLineActions(input).getRemoveItem()\r\n ),\r\n productQuantityView:
{_generateQuantity(input, LineId!)}
,\r\n productQuantity: quantity,\r\n addToBagButton: getActionButton(\r\n input.isMobile,\r\n addButtonClassName,\r\n addToBagButtonText,\r\n OrderTemplateLineActions(input).getAddToBag()\r\n ),\r\n popUp: ,\r\n externalItemId: _getExternalItemId(orderTemplateLine)\r\n };\r\n};\r\n\r\nexport const OrderTemplateMobileLineView = (input: IOrderTemplateLineProps): IOrderTemplateLineViewProps | undefined => {\r\n const { orderTemplateLine, productListLine, price, context, imageSettings } = input;\r\n const product = orderTemplateLine.fullProduct;\r\n const { LineId, UnitOfMeasure } = productListLine;\r\n if (!product) {\r\n return;\r\n }\r\n const { ItemId, Name, PrimaryImageUrl } = product.ProductDetails;\r\n const fallbackImage = getFallbackImageUrl(ItemId, context.actionContext.requestContext.apiSettings);\r\n\r\n return {\r\n productImage:\r\n PrimaryImageUrl &&\r\n Name &&\r\n _renderProductImage('thumbnail', context, product.ProductDetails.Name!, PrimaryImageUrl, fallbackImage, imageSettings),\r\n productInfo: renderProductInfo(input),\r\n productPrice: price && _renderPrice(input),\r\n productNumber: ItemId,\r\n productUnitOfMeasure: UnitOfMeasure || price?.UnitOfMeasure,\r\n productQuantityView: _generateQuantity(input, LineId!),\r\n externalItemId: _getExternalItemId(orderTemplateLine)\r\n };\r\n};\r\n\r\nexport interface IOrderTemplateProductQuantityViewProps {\r\n ContainerProps: INodeProps;\r\n input: React.ReactNode;\r\n}\r\n\r\nconst _getExternalItemId = (orderTemplateLine: IOrderTemplateLineViewModel): string => {\r\n const attributeValues = orderTemplateLine.productSpecificationData;\r\n\r\n if (!attributeValues || !ArrayExtensions.hasElements(attributeValues)) {\r\n return '';\r\n }\r\n const externalItemIdAttribute = attributeValues.find(\r\n attribute =>\r\n //attribute.Name === 'External Item Id' || attribute.Name === 'ERP_ExternalItemID' || attribute.KeyName === 'ERPExternalItemID'\r\n attribute.Name === 'Catalog Number'\r\n );\r\n if (externalItemIdAttribute) {\r\n return externalItemIdAttribute.TextValue ?? '';\r\n }\r\n return '';\r\n};\r\n\r\nconst _getErpSizeDescription = (orderTemplateLine: IOrderTemplateLineViewModel): string => {\r\n const attributeValues = orderTemplateLine.productSpecificationData;\r\n\r\n if (!attributeValues || !ArrayExtensions.hasElements(attributeValues)) {\r\n return '';\r\n }\r\n const externalItemIdAttribute = attributeValues.find(\r\n attribute =>\r\n //attribute.Name === 'ERP_Sizes' || attribute.KeyName === 'ERPSizes'\r\n attribute.Name === 'Description'\r\n );\r\n if (externalItemIdAttribute) {\r\n return externalItemIdAttribute.TextValue ?? '';\r\n }\r\n return '';\r\n};\r\n\r\n/**\r\n * On Change function.\r\n * @param onChangeQuantity -On change quantity function.\r\n * @param itemKey -String.\r\n * @param props -Order template line props.\r\n * @returns Set change quantity.\r\n */\r\nconst onChangeHandler = (\r\n onChangeQuantity: (orderTemplateLineId: string, quantity: number, props?: IOrderTemplateLineProps | undefined) => void,\r\n itemKey: string,\r\n props: IOrderTemplateLineProps\r\n) => (newValue: number) => {\r\n if (onChangeQuantity) {\r\n onChangeQuantity(itemKey, newValue, props);\r\n }\r\n};\r\n\r\nconst _generateQuantity = (props: IOrderTemplateLineProps, itemKey: string): React.ReactNode => {\r\n const { handlers, resources, quantity } = props;\r\n const { onChangeQuantity } = handlers;\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport const _renderProductImage = (\r\n className: string,\r\n context: ICoreContext,\r\n heading: string,\r\n image?: string,\r\n fallbackImage?: string,\r\n imageSettings?: IImageSettings\r\n): JSX.Element | null => {\r\n // const defaultImageSettings: IImageSettings = {\r\n // viewports: {\r\n // xs: { q: 'w=64&h=64&m=6', w: 0, h: 0 },\r\n // lg: { q: 'w=64&h=64&m=6', w: 0, h: 0 },\r\n // xl: { q: 'w=64&h=64&m=6', w: 0, h: 0 }\r\n // },\r\n // lazyload: true\r\n // };\r\n\r\n if (image) {\r\n return (\r\n <>\r\n // \r\n );\r\n }\r\n return null;\r\n};\r\n\r\nconst _renderPrice = (props: IOrderTemplateLineProps): JSX.Element | null => {\r\n const { price, context, moduleId, moduleTypeName, resources } = props;\r\n\r\n if (price) {\r\n return (\r\n \r\n );\r\n }\r\n return null;\r\n};\r\n\r\n// const _renderProductDimensions = (props: IOrderTemplateLineProps): (string | undefined)[] => {\r\n// const { orderTemplateLine } = props;\r\n\r\n// if (!orderTemplateLine.fullProduct || !orderTemplateLine.fullProduct.ProductDetails.Dimensions) {\r\n// return [];\r\n// }\r\n\r\n// return orderTemplateLine.fullProduct.ProductDetails.Dimensions.map(dimension => {\r\n// if (!dimension.DimensionValue || !dimension.DimensionValue.Value) {\r\n// return undefined;\r\n// }\r\n\r\n// return dimension.DimensionValue.Value;\r\n// });\r\n// };\r\n\r\nexport const renderProductInfo = (props: IOrderTemplateLineProps): React.ReactNode | undefined => {\r\n const { orderTemplateLine, productUrl } = props;\r\n const name = orderTemplateLine.fullProduct?.ProductDetails.Name;\r\n\r\n //const dimensions = _renderProductDimensions(props);\r\n if (!orderTemplateLine.fullProduct) {\r\n return [];\r\n }\r\n\r\n const productName = productUrl ? (\r\n \r\n {name}\r\n \r\n ) : (\r\n
{name}
\r\n );\r\n\r\n const dimensionsLine: string = _getErpSizeDescription(props.orderTemplateLine); //dimensions.join(', ');\r\n\r\n return (\r\n
\r\n
{productName}
\r\n
{dimensionsLine}
\r\n
\r\n );\r\n};\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\n/* eslint-disable no-duplicate-imports */\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { orderTemplateLinesStatus } from '../quotation';\r\n\r\nexport interface IOrderTemplateLinesStatusMessageProps {\r\n className?: string;\r\n errorType: orderTemplateLinesStatus;\r\n text?: string;\r\n}\r\n\r\nexport const OrderTemplateLinesStatusMessage: React.FC = ({ className, errorType, text }) => {\r\n switch (errorType) {\r\n case 'EMPTY':\r\n return

{text}

;\r\n case 'FAILED':\r\n return

{text}

;\r\n case 'LOADING':\r\n default:\r\n return

{text}

;\r\n }\r\n};\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\n/* eslint-disable no-duplicate-imports */\r\nimport * as React from 'react';\r\n\r\nimport { IOrderTemplateLineViewModel } from '../quotation';\r\n\r\nexport interface IOrderTemplateTableHeadingProps {\r\n selectAllRowsText?: string;\r\n productNumber: string;\r\n productName: string;\r\n productUnitPrice: string;\r\n productUOM: string;\r\n productQuantity: string;\r\n productActions: string;\r\n lines: IOrderTemplateLineViewModel[];\r\n isMobile: boolean;\r\n clickHandler(isChecked: boolean): void;\r\n}\r\n\r\n/**\r\n * Order Template's table state.\r\n */\r\nexport interface IOrderTemplateTableHeadingState {\r\n isChecked: boolean;\r\n}\r\n\r\nexport interface IOrderTemplateTableShortHeading {\r\n productNumber: string;\r\n productActions: string;\r\n}\r\n\r\n/**\r\n * Order Template's table heading.\r\n */\r\nexport class OrderTemplateTableHeading extends React.PureComponent {\r\n public state: IOrderTemplateTableHeadingState = {\r\n isChecked: false\r\n };\r\n\r\n private readonly componentClassName: string = 'ms-table';\r\n\r\n public static getDerivedStateFromProps(\r\n props: IOrderTemplateTableHeadingProps,\r\n state: IOrderTemplateTableHeadingState\r\n ): IOrderTemplateTableHeadingState {\r\n const checkedLines = props.lines.filter(line => !line.isChecked).length;\r\n let nextState = { ...state };\r\n nextState = { isChecked: checkedLines === 0 };\r\n return nextState;\r\n }\r\n\r\n public getOnChange = () => (event: React.ChangeEvent) => {\r\n this.setState(\r\n {\r\n isChecked: this.state.isChecked\r\n },\r\n () => {\r\n this.props.clickHandler(!this.state.isChecked);\r\n }\r\n );\r\n };\r\n\r\n public render(): JSX.Element {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n  \r\n {this.props.productNumber}\r\n {!this.props.isMobile ? {this.props.productName} : null}\r\n {!this.props.isMobile ? {this.props.productUnitPrice} : null}\r\n {!this.props.isMobile ? {this.props.productUOM} : null}\r\n {!this.props.isMobile ? {this.props.productQuantity} : null}\r\n {!this.props.isMobile ? {this.props.productActions} : }\r\n \r\n \r\n );\r\n }\r\n}\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\n/* eslint-disable no-duplicate-imports */\r\nimport {\r\n //IItemAddedToCartDialogData,\r\n IItemAddedToCartDialogResources,\r\n ILinesAddedToCartDialogResources,\r\n IOrderTemplateNameDialogResources //,\r\n //ItemAddedToCartDialog\r\n} from '@msdyn365-commerce/components';\r\nimport { ItemWithAttributeAddedToCartDialog } from './components/common/item-added-to-cart-dialog.component';\r\nimport MsDyn365, { AsyncResult, getUrlSync, IRequestContext } from '@msdyn365-commerce/core';\r\nimport { ICartActionResult } from '@msdyn365-commerce/global-state';\r\nimport { ProductList, ProductListLine, ProductPrice, AttributeValue } from '@msdyn365-commerce/retail-proxy';\r\nimport {\r\n deleteAsync,\r\n removeProductListLinesAsync,\r\n updateProductListLinesAsync\r\n} from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductListsDataActions.g';\r\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport {\r\n getPriceForSelectedVariant,\r\n getProductUrlSync,\r\n ObjectExtensions,\r\n OrderTemplate,\r\n OrderTemplateLine,\r\n PriceForSelectedVariantInput,\r\n getSelectedVariant,\r\n SelectedVariantInput\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\nimport {\r\n Alert,\r\n getTelemetryObject,\r\n Heading,\r\n IModuleProps,\r\n INodeProps,\r\n ITelemetryContent,\r\n UncontrolledPagination\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport debounce from 'lodash/debounce';\r\nimport { action, computed, observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n IOrderTemplateActionsProps,\r\n IOrderTemplateActionsViewProps,\r\n IOrderTemplateLineProps,\r\n IOrderTemplateLineViewProps,\r\n IOrderTemplateTableHeadingProps,\r\n OrderTemplateActionsView,\r\n OrderTemplateLinesStatusMessage,\r\n OrderTemplateLineView,\r\n OrderTemplateMobileLineView,\r\n OrderTemplateTableHeading,\r\n ModalWarning,\r\n ModalWarningFromLineAction,\r\n IModalWarningResources\r\n} from './components'; //'@msdyn365-commerce-modules/order-template';\r\nimport { ActiveOrderTemplateLinesInput } from './actions/get-quotation';\r\nimport { OrderTemplateBulkActions } from './components/bulk-actions';\r\nimport { IQuotationData } from './quotation.data';\r\nimport { IQuotationProps, IQuotationResources } from './quotation.props.autogenerated';\r\n\r\nimport { AttributesForSelectedVariantInput, getAttributesForSelectedVariant } from '@msdyn365-commerce-modules/product-specification';\r\n\r\nexport interface IItemWithAttributeAddedToCartDialogData {\r\n product: SimpleProduct;\r\n productPrice: ProductPrice;\r\n quantity: number;\r\n producSpecification: AttributeValue[];\r\n}\r\n\r\nexport interface IOrderTemplateLineActionMessageState {\r\n itemKey: string;\r\n userMessage: string;\r\n statusCssString: string;\r\n messageGlyph: string;\r\n isOpen: boolean;\r\n isItemAddedToOrderTemplateOpen: boolean;\r\n isConfirmAddSelectionToBagModalOpen: boolean;\r\n itemAddedToCartDialogData?: IItemWithAttributeAddedToCartDialogData;\r\n productSelection: IOrderTemplateLineViewModel[];\r\n isDetailsDisplayed: boolean;\r\n detailedProductView?: IOrderTemplateLineViewProps;\r\n isQuantityDisabledForUpdate?: boolean;\r\n modalWarningOpen: boolean;\r\n modalWarningFromLineActionOpen: boolean;\r\n productFromLineAction: SimpleProduct;\r\n quantityFromLineAction: number;\r\n itemKeyFromLineAction: string;\r\n productSpecificationFromLineAction: AttributeValue[];\r\n}\r\n\r\nexport type orderTemplateLinesStatus = 'LOADING' | 'SUCCESS' | 'FAILED' | 'EMPTY';\r\ntype GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\r\n\r\nexport interface IOrderTemplateViewProps extends IQuotationProps {\r\n OrderTemplateLines: IModuleProps;\r\n callbacks?: IOrderTemplateLinesCallbacks;\r\n status?: orderTemplateLinesStatus;\r\n statusMessage?: React.ReactNode;\r\n heading?: React.ReactNode;\r\n OrderTemplateActions?: INodeProps;\r\n ProductsTable?: INodeProps;\r\n ProductsTableRow?: INodeProps;\r\n ProductsTableHeading?: React.ReactNode;\r\n ProductDetails?: INodeProps;\r\n orderLines?: IOrderTemplateLineViewProps[];\r\n productListLines?: ProductListLine[];\r\n productsStatusMessage?: React.ReactNode;\r\n orderActions?: IOrderTemplateActionsViewProps | null;\r\n resources: IQuotationResources;\r\n pagination?: React.ReactNode;\r\n itemAddedToCartDialog?: React.ReactNode;\r\n bulkOrderLineActions?: React.ReactNode;\r\n isDetailsDisplayed?: boolean;\r\n detailedProduct?: IOrderTemplateLineProps;\r\n detailedProductView?: IOrderTemplateLineViewProps;\r\n productQuantityView?: React.ReactNode;\r\n addButton?: React.ReactNode;\r\n isMobile?: boolean;\r\n toggleDetailsDisplayed?(props: IOrderTemplateLineProps | undefined): void;\r\n modalWarning?: React.ReactNode;\r\n modalWarningFromLineAction?: React.ReactNode;\r\n}\r\n\r\nexport interface IOrderTemplateLinesCallbacks {\r\n updateQuantity(itemKey: string, quantity: number): void;\r\n}\r\n\r\nexport interface IOrderTemplateLineViewModel extends OrderTemplateLine {\r\n isChecked: boolean;\r\n productQuantityView: React.ReactNode;\r\n productSpecificationData: AttributeValue[];\r\n}\r\n\r\n/**\r\n *\r\n * OrderTemplateLines component.\r\n * @extends {React.PureComponent, IOrderTemplateLineActionMessageState>}\r\n */\r\n@observer\r\nclass OrderTemplateLines extends React.Component, IOrderTemplateLineActionMessageState> {\r\n private readonly className: string;\r\n\r\n private readonly telemetryContent?: ITelemetryContent;\r\n\r\n @observable\r\n private _viewport: GridSize;\r\n\r\n @computed get isMobile(): boolean {\r\n return this._viewport === 'xs' || this._viewport === 'sm';\r\n }\r\n\r\n public async _getProductSpecifications(orderTemplate: OrderTemplate | undefined): Promise {\r\n let orderTemplateWithAttributes: IOrderTemplateLineViewModel[] = [];\r\n\r\n const orderLength = orderTemplate?.orderTemplateLines.length ?? 0;\r\n for (let i = 0; i < orderLength; i++) {\r\n let line = orderTemplate?.orderTemplateLines[i];\r\n\r\n const productInput = new SelectedVariantInput(\r\n line?.fullProduct?.ProductDetails.RecordId ?? 0, //MasterProductId\r\n +this.props.context.actionContext.requestContext.apiSettings.channelId\r\n );\r\n const simpleProduct = await getSelectedVariant(productInput, this.props.context.actionContext);\r\n\r\n const attributeInput = new AttributesForSelectedVariantInput(\r\n line?.fullProduct?.ProductDetails.RecordId ?? 0, //MasterProductId\r\n +this.props.context.actionContext.requestContext.apiSettings.channelId,\r\n simpleProduct ?? undefined //this.props.data.product.result\r\n );\r\n const productSpecification = await getAttributesForSelectedVariant(attributeInput, this.props.context.actionContext);\r\n\r\n orderTemplateWithAttributes.push({\r\n ...(orderTemplate?.orderTemplateLines[i] as IOrderTemplateLineViewModel),\r\n productSpecificationData: productSpecification\r\n });\r\n }\r\n\r\n return orderTemplateWithAttributes;\r\n }\r\n\r\n constructor(props: IQuotationProps, state: IOrderTemplateLineActionMessageState) {\r\n super(props);\r\n //debugger;\r\n this.className = 'ms-order-template';\r\n this._viewport =\r\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\r\n this._updateViewport = this._updateViewport.bind(this);\r\n\r\n this.state = {\r\n itemKey: '',\r\n userMessage: '',\r\n statusCssString: 'success',\r\n messageGlyph: 'fas fa-check',\r\n isOpen: false,\r\n isItemAddedToOrderTemplateOpen: false,\r\n isConfirmAddSelectionToBagModalOpen: false,\r\n productSelection: [],\r\n isDetailsDisplayed: false,\r\n isQuantityDisabledForUpdate: false,\r\n modalWarningOpen: false,\r\n modalWarningFromLineActionOpen: false,\r\n productFromLineAction: Object(),\r\n quantityFromLineAction: 0,\r\n itemKeyFromLineAction: '',\r\n productSpecificationFromLineAction: []\r\n };\r\n this.telemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n this._updateViewport();\r\n\r\n if (MsDyn365.isBrowser && !this.props.context.request.user.isAuthenticated) {\r\n window.location.assign(this.props.context.request.user.signInUrl || '/');\r\n }\r\n }\r\n\r\n @action\r\n public async componentDidMount(): Promise {\r\n //debugger;\r\n this.setState({});\r\n const orderTemplate = await this.props.data.orderTemplate;\r\n this.props.config.heading!.text = orderTemplate?.productList.Name || '';\r\n\r\n const orderTemplateLinesWithAttributes = await this._getProductSpecifications(orderTemplate);\r\n\r\n this.setState({\r\n //productSelection: orderTemplate?.orderTemplateLines as IOrderTemplateLineViewModel[]\r\n productSelection: orderTemplateLinesWithAttributes as IOrderTemplateLineViewModel[]\r\n });\r\n\r\n if (MsDyn365.isBrowser) {\r\n window.addEventListener('resize', this._updateViewport);\r\n this._updateViewport();\r\n }\r\n }\r\n\r\n public warningOpen = () => {\r\n this.setState({\r\n modalWarningOpen: true\r\n });\r\n };\r\n\r\n public warningClose = () => {\r\n this.setState({\r\n modalWarningOpen: false\r\n });\r\n };\r\n\r\n public warningFromLineActionOpen = (\r\n product: SimpleProduct,\r\n quantity: number,\r\n itemKey: string,\r\n productSpecification: AttributeValue[]\r\n ) => {\r\n this.setState({\r\n modalWarningFromLineActionOpen: true,\r\n productFromLineAction: product,\r\n quantityFromLineAction: quantity,\r\n itemKeyFromLineAction: itemKey,\r\n productSpecificationFromLineAction: productSpecification\r\n });\r\n };\r\n\r\n public warningFromLineActionClose = () => {\r\n this.setState({\r\n modalWarningFromLineActionOpen: false\r\n });\r\n };\r\n\r\n public componentWillUnmount(): void {\r\n if (MsDyn365.isBrowser) {\r\n window.removeEventListener('resize', this._updateViewport);\r\n }\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: IQuotationProps, nextState: IOrderTemplateLineActionMessageState): boolean {\r\n if (this.state === nextState && this.props === nextProps) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { heading, className } = this.props.config;\r\n const { emptyOrderTemplateLinesText, errorGettingOrderTemplateLines } = this.props.resources;\r\n const { orderTemplate, cart } = this.props.data;\r\n\r\n if (cart.status === 'LOADING' || ObjectExtensions.isNullOrUndefined(orderTemplate) || orderTemplate.status === 'LOADING') {\r\n const errorProps: IOrderTemplateViewProps = {\r\n ...(this.props as IQuotationProps),\r\n OrderTemplateLines: {\r\n moduleProps: this.props,\r\n className: classnames(this.className, className)\r\n },\r\n status: 'LOADING',\r\n statusMessage: ,\r\n heading: heading && ,\r\n resources: this.props.resources\r\n };\r\n return this.props.renderView(errorProps);\r\n }\r\n\r\n if (cart.status === 'FAILED' || orderTemplate.status === 'FAILED') {\r\n const errorProps: IOrderTemplateViewProps = {\r\n ...(this.props as IQuotationProps),\r\n OrderTemplateLines: {\r\n moduleProps: this.props,\r\n className: classnames(`${this.className}`, className)\r\n },\r\n status: 'FAILED',\r\n statusMessage: ,\r\n heading: heading && ,\r\n resources: this.props.resources\r\n };\r\n\r\n return this.props.renderView(errorProps);\r\n }\r\n\r\n const orderTemplateResult = orderTemplate && orderTemplate.result;\r\n const orderTemplateLines = orderTemplateResult && orderTemplateResult.orderTemplateLines;\r\n\r\n if (!orderTemplateResult || !orderTemplateLines || orderTemplateLines.length === 0) {\r\n if (orderTemplateResult && !this._isFirstPage() && MsDyn365.isBrowser) {\r\n window.location.href = this._getOrderTemplatePageUrl();\r\n return null;\r\n }\r\n\r\n const emptyViewProps: IOrderTemplateViewProps = {\r\n ...(this.props as IQuotationProps),\r\n OrderTemplateLines: {\r\n moduleProps: this.props,\r\n className: classnames(`${this.className}`, className)\r\n },\r\n status: 'EMPTY',\r\n statusMessage: ,\r\n heading: heading && ,\r\n resources: this.props.resources\r\n };\r\n\r\n return this.props.renderView(emptyViewProps);\r\n }\r\n\r\n const viewProps: IOrderTemplateViewProps = {\r\n ...(this.props as IQuotationProps),\r\n OrderTemplateLines: {\r\n moduleProps: this.props,\r\n className: classnames(`${this.className}`, className)\r\n },\r\n status: 'SUCCESS',\r\n productsStatusMessage: this.state.isOpen && (\r\n
\r\n \r\n {this.state.userMessage}\r\n \r\n
\r\n ),\r\n heading: heading && ,\r\n OrderTemplateActions: {\r\n className: `${this.className}-action-bar`,\r\n tag: 'div'\r\n },\r\n ProductsTable: {\r\n className: `${this.className}__table`,\r\n tag: 'table',\r\n role: 'grid'\r\n },\r\n ProductsTableRow: {\r\n className: `${this.className}-table-line`,\r\n tag: 'tr'\r\n },\r\n ProductsTableHeading: this._renderProductListHeader(this.props.resources),\r\n ProductDetails: {\r\n className: `${this.className}-table-line__link`,\r\n tag: 'a'\r\n },\r\n orderLines: this._renderProductList(),\r\n callbacks: { updateQuantity: debounce(this._changeQuantity, 2000) },\r\n orderActions: this._renderOrderTemplateActions(orderTemplateResult),\r\n pagination: this._renderPagination(),\r\n itemAddedToCartDialog: this._renderItemAddedToCartDialog(),\r\n bulkOrderLineActions: this._getOrderTemplateLineActions(orderTemplateResult.productList.Id),\r\n isDetailsDisplayed: this.state.isDetailsDisplayed,\r\n toggleDetailsDisplayed: this._toggleDetailsDisplayed,\r\n detailedProductView: this.state.detailedProductView,\r\n isMobile: this.isMobile,\r\n modalWarning: this._renderModalWarning(),\r\n modalWarningFromLineAction: this._renderModalWarningFromLineAction()\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n public onSelect(line: IOrderTemplateLineViewModel, isChecked: boolean): void {\r\n line.isChecked = isChecked;\r\n\r\n const updated =\r\n this.state.productSelection.map(product => {\r\n if (product.fullProduct?.ProductDetails.ItemId === line.fullProduct?.ProductDetails.ItemId) {\r\n line.isChecked = isChecked;\r\n }\r\n return product;\r\n }) || [];\r\n\r\n this.setState({\r\n productSelection: updated\r\n });\r\n }\r\n\r\n public onSelectAll(isChecked: boolean): void {\r\n const updated =\r\n this.state.productSelection.map(line => {\r\n line.isChecked = isChecked;\r\n return line;\r\n }) || [];\r\n\r\n this.setState({\r\n productSelection: updated\r\n });\r\n }\r\n\r\n private _renderProductListHeader(resources: IQuotationResources): React.ReactNode {\r\n const {\r\n productNumberText,\r\n productText,\r\n productUnitPriceText,\r\n productUOMText,\r\n productQuantityText,\r\n productActionsText,\r\n selectAllRowsText\r\n } = resources;\r\n const headers: IOrderTemplateTableHeadingProps = {\r\n productNumber: productNumberText,\r\n productName: productText,\r\n productUnitPrice: productUnitPriceText,\r\n productUOM: productUOMText,\r\n productQuantity: productQuantityText,\r\n productActions: productActionsText,\r\n selectAllRowsText,\r\n lines: this.state.productSelection,\r\n isMobile: this.isMobile,\r\n clickHandler: (isChecked: boolean) => {\r\n this.onSelectAll(isChecked);\r\n }\r\n };\r\n\r\n return ;\r\n }\r\n\r\n private _getOrderTemplateLineActions(orderTemplateId: string): React.ReactNode {\r\n return (\r\n line.isChecked)}\r\n onAddSelectionToBag={this.warningOpen} //{this._onAddSelectionToBag}\r\n onRemoveSelection={this._onRemoveSelection}\r\n isMinifiedView={this.isMobile}\r\n />\r\n );\r\n }\r\n\r\n private _generateLinesAddedToCartDialogResources(): ILinesAddedToCartDialogResources {\r\n return {\r\n viewCartButtonText: this.props.resources.viewCartButtonText,\r\n orderTemplateCloseButtonText: this.props.resources.orderTemplateCloseButtonText,\r\n linesAddedToCartHeaderItemsOneText: this.props.resources.linesAddedToCartHeaderItemsOneText,\r\n linesAddedToCartHeaderLinesOneText: this.props.resources.linesAddedToCartHeaderLinesOneText,\r\n linesAddedToCartHeaderLinesFormatText: this.props.resources.linesAddedToCartHeaderLinesFormatText,\r\n linesAddedToCartHeaderMessageText: this.props.resources.linesAddedToCartHeaderMessageText\r\n };\r\n }\r\n\r\n private _generateItemAddedToCartDialogResources(): IItemAddedToCartDialogResources {\r\n return {\r\n viewCartButtonText: this.props.resources.viewCartButtonText,\r\n orderTemplateCloseButtonText: this.props.resources.orderTemplateCloseButtonText,\r\n itemAddedToCartHeaderItemOneText: this.props.resources.itemAddedToCartHeaderItemOneText,\r\n itemAddedToCartHeaderItemFormatText: this.props.resources.itemAddedToCartHeaderItemFormatText,\r\n itemAddedToCartHeaderMessageText: this.props.resources.itemAddedToCartHeaderMessageText,\r\n freePriceText: this.props.resources.freePriceText,\r\n originalPriceText: this.props.resources.originalPriceText,\r\n currentPriceText: this.props.resources.currentPriceText\r\n };\r\n }\r\n\r\n private readonly _onRemoveSelection = (): void => {\r\n const { context, resources } = this.props;\r\n const { telemetry } = context;\r\n const { removeSelectedFailureMessage, removeSelectedSuccessMessage } = resources;\r\n const lines = this.state.productSelection;\r\n const productListLines = lines && lines.length && lines.filter(line => line.isChecked).map(line => line.productListLine);\r\n\r\n if (productListLines && productListLines.length > 0) {\r\n const productListId = productListLines[0].ProductListId;\r\n\r\n const maxWaitTimeInMilliSeconds: number = 1000;\r\n removeProductListLinesAsync({ callerContext: context.actionContext }, productListId!, productListLines)\r\n .then(async () => {\r\n this.setState({\r\n userMessage: removeSelectedSuccessMessage,\r\n statusCssString: 'success',\r\n messageGlyph: 'fas fa-check',\r\n isOpen: true\r\n });\r\n // eslint-disable-next-line no-promise-executor-return -- fix\r\n await new Promise(resolve => setTimeout(resolve, maxWaitTimeInMilliSeconds));\r\n window.location.reload();\r\n })\r\n .catch(error => {\r\n telemetry.warning('[order-template-lines] Unable remove items from the order template lines');\r\n telemetry.error(error);\r\n this.setState({\r\n userMessage: removeSelectedFailureMessage,\r\n statusCssString: 'success',\r\n messageGlyph: 'fas fa-check',\r\n isOpen: true\r\n });\r\n });\r\n }\r\n };\r\n\r\n private readonly _getOrderTemplatePageUrl = (): string => {\r\n let url = getUrlSync('ordertemplate', this.props.context.actionContext) || '';\r\n url = url.includes('?') ? url.substr(0, url.indexOf('?')) : url;\r\n if (this.props.data.orderTemplate?.result?.productList.Id) {\r\n return `${url}?id=${this.props.data.orderTemplate.result.productList.Id}`;\r\n }\r\n return '';\r\n };\r\n\r\n private readonly _onAddSelectionToBag = async (): Promise => {\r\n const lines = this.state.productSelection;\r\n const selectedLines = lines.filter(line => line.isChecked);\r\n if (selectedLines.length > 0) {\r\n for (const productLine of selectedLines) {\r\n const itemKey = productLine.fullProduct?.ProductDetails.ItemId ?? '';\r\n const product = productLine.fullProduct?.ProductDetails ?? {\r\n RecordId: 0,\r\n ProductTypeValue: 0,\r\n BasePrice: 0,\r\n Price: 0,\r\n AdjustedPrice: 0\r\n };\r\n const productSpecification = productLine.productSpecificationData;\r\n const quantity = productLine.productListLine.Quantity ?? 0;\r\n this._addItemToBag(product, quantity, itemKey, productSpecification);\r\n }\r\n }\r\n return Promise.resolve(void 0);\r\n };\r\n\r\n private _renderOrderTemplateActions(orderTemplate: OrderTemplate): IOrderTemplateActionsViewProps {\r\n const { id, typeName, context, resources } = this.props;\r\n const {\r\n addTemplateToBagButtonText,\r\n renameTemplateButtonText,\r\n deleteTemplateButtonText,\r\n closeWindowButtonText,\r\n addToCartFailureMessage,\r\n addToCartSuccessMessage,\r\n addToCartProcessMessage\r\n } = resources;\r\n\r\n const orderTemplateActions: IOrderTemplateActionsProps = {\r\n data: { orderTemplate },\r\n id,\r\n typeName,\r\n context,\r\n telemetryContent: this.telemetryContent,\r\n handlers: {\r\n onRenameTemplate: this._renameTemplate,\r\n onRemoveTemplate: this._removeTemplate\r\n },\r\n renameOrderTemplateDialogStrings: this._generateOrderTemplateNameDialogResources(resources),\r\n resources: {\r\n addTemplateToBagButtonText,\r\n renameTemplateButtonText,\r\n deleteTemplateButtonText,\r\n addToCartFailureMessage,\r\n addToCartSuccessMessage,\r\n addToCartProcessMessage,\r\n closeWindowButtonText,\r\n linesAddedToCartDialogResources: this._generateLinesAddedToCartDialogResources()\r\n }\r\n };\r\n\r\n return OrderTemplateActionsView(orderTemplateActions);\r\n }\r\n\r\n private _generateOrderTemplateNameDialogResources(resources: IQuotationResources): IOrderTemplateNameDialogResources {\r\n return {\r\n orderTemplateHeaderLabel: resources.renameOrderTemplateTitleText,\r\n orderTemplateTitleLabel: resources.orderTemplateTitle,\r\n orderTemplateNameAriaLabel: resources.orderTemplateTitle,\r\n orderTemplateDescription: '',\r\n defaultOrderTemplateName: resources.defaultOrderTemplateName,\r\n orderTemplateButtonLabel: resources.renameOrderTemplateButtonText,\r\n orderTemplateCancelButtonLabel: resources.cancelBtnLabel\r\n };\r\n }\r\n\r\n private readonly _getCurrentUrl = (reqContext: IRequestContext): URL => {\r\n if (MsDyn365.isBrowser) {\r\n return new URL(window.location.href);\r\n }\r\n return new URL(reqContext.url.requestUrl.href);\r\n };\r\n\r\n /**\r\n * On close handler.\r\n */\r\n private readonly onCloseHandler = () => {\r\n this.setState({\r\n itemKey: this.state.itemKey,\r\n userMessage: this.state.userMessage,\r\n statusCssString: this.state.statusCssString,\r\n messageGlyph: this.state.messageGlyph,\r\n isOpen: this.state.isOpen,\r\n isItemAddedToOrderTemplateOpen: false\r\n });\r\n };\r\n\r\n private readonly _renderItemAddedToCartDialog = (): React.ReactNode | null => {\r\n if (!this.state.itemAddedToCartDialogData) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n };\r\n\r\n private _isFirstPage(): boolean {\r\n return this._getCurrentPageNumber() === 0;\r\n }\r\n\r\n private _getCurrentPageNumber(): number {\r\n const itemsPerPage = this.props.config.itemsPerPage || 50;\r\n return (this.props.context.request.query && +this.props.context.request.query.skip / itemsPerPage) || 0;\r\n }\r\n\r\n private readonly _renderPagination = (): React.ReactNode | null => {\r\n const { config, context, data, resources } = this.props;\r\n const orderTemplate = data && data.orderTemplate && data.orderTemplate.result;\r\n if (!orderTemplate) {\r\n return null;\r\n }\r\n\r\n const fullUrl = this._getCurrentUrl(context.request);\r\n const itemsPerPage = config.itemsPerPage || 50;\r\n const currentPageNumber = this._getCurrentPageNumber();\r\n const skipCount = currentPageNumber * itemsPerPage;\r\n const totalItems = orderTemplate && orderTemplate.totalLines;\r\n const previousText = resources.flipperPrevious;\r\n const nextText = resources.flipperNext;\r\n\r\n if (totalItems <= itemsPerPage) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n };\r\n\r\n private _renderProductList(): IOrderTemplateLineViewProps[] {\r\n const {\r\n selectOneRowText,\r\n moreButtonText,\r\n viewProductDetailsText,\r\n priceFree,\r\n originalPriceText,\r\n currentPriceText,\r\n addOrderTemplateItemToBagButtonText,\r\n removeItemFromOrderTemplateButtonText,\r\n productDimensionTypeColor,\r\n productDimensionTypeSize,\r\n productDimensionTypeStyle,\r\n inputQuantityAriaLabel,\r\n deleteButtonText,\r\n incrementButtonAriaLabel,\r\n decrementButtonAriaLabel\r\n } = this.props.resources;\r\n\r\n const { context, telemetry } = this.props;\r\n const { imageSettings } = this.props.config;\r\n\r\n return this.state.productSelection.map((line, index) => {\r\n const currentProductProps: IOrderTemplateLineProps = {\r\n orderTemplateLine: line,\r\n productListLine: line.productListLine,\r\n price: line.fullProduct?.ProductPrice,\r\n context,\r\n isQuantityDisabledForUpdate: this.state.isQuantityDisabledForUpdate,\r\n productUrl: line.fullProduct ? getProductUrlSync(line.fullProduct.ProductDetails, context.actionContext, undefined) : '',\r\n imageSettings,\r\n telemetry,\r\n moduleId: this.props.id,\r\n moduleTypeName: this.props.typeName,\r\n quantity: line.productListLine.Quantity!,\r\n handlers: {\r\n onAddToBag: this.warningFromLineActionOpen,\r\n onRemoveItem: this._removeItemFromOrderTemplateLines,\r\n onChangeQuantity: this._changeQuantity,\r\n onSelect: this.onSelect.bind(this)\r\n },\r\n resources: {\r\n selectOneRowText,\r\n moreButtonText,\r\n viewProductDetailsText,\r\n productDimensionTypeColor,\r\n productDimensionTypeSize,\r\n productDimensionTypeStyle,\r\n freePriceText: priceFree,\r\n originalPriceText,\r\n currentPriceText,\r\n inputQuantityAriaLabel,\r\n removeFromOrderTemplateLinesText: removeItemFromOrderTemplateButtonText,\r\n addToBagButtonText: addOrderTemplateItemToBagButtonText,\r\n deleteButtonText,\r\n incrementButtonAriaLabel,\r\n decrementButtonAriaLabel\r\n },\r\n index,\r\n isMobile: this.isMobile,\r\n toggleDetailsDisplayed: this._toggleDetailsDisplayed\r\n };\r\n\r\n return OrderTemplateLineView(currentProductProps)!;\r\n });\r\n }\r\n\r\n private readonly _toggleDetailsDisplayed = (props: IOrderTemplateLineProps): void => {\r\n let state = {\r\n isDetailsDisplayed: !this.state.isDetailsDisplayed\r\n };\r\n if (props) {\r\n state = {\r\n ...state,\r\n ...{\r\n detailedProductView: OrderTemplateMobileLineView(props)\r\n }\r\n };\r\n }\r\n this.setState(state);\r\n };\r\n\r\n // Dismiss alert when addingToCart/removeItem\r\n private readonly _onDismiss = () => {\r\n this.setState({\r\n isOpen: false\r\n });\r\n };\r\n\r\n private readonly _changeQuantity = (itemKey: string, quantity: number, props?: IOrderTemplateLineProps) => {\r\n const { context, data, telemetry, config, resources } = this.props;\r\n const { orderTemplate } = data;\r\n\r\n if (context) {\r\n if (orderTemplate?.result) {\r\n const orderTemplateLinesData = orderTemplate.result.orderTemplateLines;\r\n if (orderTemplateLinesData) {\r\n const orderLineIndex = orderTemplateLinesData.findIndex(\r\n (lines: OrderTemplateLine) => lines.productListLine.LineId === itemKey\r\n );\r\n const newProductListLine = { ...orderTemplateLinesData[orderLineIndex] };\r\n if (orderTemplateLinesData[orderLineIndex].productListLine.Quantity === quantity) {\r\n return;\r\n }\r\n const prevQuantity = newProductListLine.productListLine.Quantity;\r\n newProductListLine.productListLine.Quantity = quantity;\r\n const { fullProduct, ...line } = newProductListLine;\r\n\r\n // Update mobile modal\r\n if (props) {\r\n props.quantity = quantity;\r\n this.setState({\r\n detailedProductView: OrderTemplateMobileLineView(props)\r\n });\r\n }\r\n\r\n this.setState({\r\n isQuantityDisabledForUpdate: true\r\n });\r\n\r\n updateProductListLinesAsync({ callerContext: context.actionContext }, orderTemplate.result.productList.Id, [\r\n line.productListLine\r\n ])\r\n .then(list => {\r\n this.setState({\r\n itemKey,\r\n userMessage: '',\r\n statusCssString: 'success',\r\n messageGlyph: 'fas fa-check',\r\n isQuantityDisabledForUpdate: false,\r\n isOpen: false\r\n });\r\n if (list) {\r\n const newLine = list.find(lines => lines.LineId === itemKey);\r\n orderTemplateLinesData[orderLineIndex].productListLine = newLine!;\r\n const updatedLines = [...orderTemplateLinesData];\r\n updatedLines[orderLineIndex] = { fullProduct, productListLine: newLine! };\r\n const updatedOrderTemplate = { ...orderTemplate.result, ProductListLines: updatedLines };\r\n context.actionContext.update(\r\n new ActiveOrderTemplateLinesInput(context.actionContext.requestContext, config),\r\n updatedOrderTemplate\r\n );\r\n }\r\n })\r\n .catch(error => {\r\n telemetry.warning('[order-template-lines] Unable to update product quantity.');\r\n telemetry.error(error);\r\n const userMessage = resources.editOrderTemplateLineQuantityError;\r\n if (props) {\r\n props && (props.productListLine.Quantity = prevQuantity);\r\n this.setState({\r\n itemKey,\r\n userMessage,\r\n statusCssString: 'danger',\r\n messageGlyph: 'fas fa-exclamation-triangle',\r\n isQuantityDisabledForUpdate: false,\r\n isOpen: true,\r\n detailedProductView: OrderTemplateMobileLineView(props)\r\n });\r\n } else {\r\n newProductListLine.productListLine.Quantity = prevQuantity;\r\n this.setState({\r\n itemKey,\r\n userMessage,\r\n statusCssString: 'danger',\r\n messageGlyph: 'fas fa-exclamation-triangle',\r\n isQuantityDisabledForUpdate: false,\r\n isOpen: true\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n };\r\n\r\n private readonly _addItemToBag = (\r\n product: SimpleProduct,\r\n quantity: number,\r\n itemKey: string,\r\n producSpecification: AttributeValue[]\r\n ): void => {\r\n const { context, data, resources, telemetry } = this.props;\r\n const { cart } = data;\r\n const { maxQuantityLimitText, addedToCartFailureMessage } = resources;\r\n\r\n if (context) {\r\n if (cart.result) {\r\n const addProductToCartInput = {\r\n product,\r\n count: quantity\r\n };\r\n\r\n cart.result\r\n .addProductToCart(addProductToCartInput)\r\n .then((result: ICartActionResult) => {\r\n if (result.status === 'SUCCESS') {\r\n return getPriceForSelectedVariant(\r\n new PriceForSelectedVariantInput(\r\n product.RecordId,\r\n this.props.context.actionContext.requestContext.apiSettings.channelId,\r\n product\r\n ),\r\n this.props.context.actionContext\r\n ).then(priceResult => {\r\n if (!priceResult) {\r\n return AsyncResult.reject('Failed to retrieve product price');\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- read config file.\r\n const isMiniCart = context.app.config.addToCartBehavior === 'showMiniCart';\r\n this.setState({\r\n itemKey,\r\n userMessage: '',\r\n statusCssString: 'success',\r\n messageGlyph: 'fas fa-check',\r\n isOpen: false,\r\n isItemAddedToOrderTemplateOpen: !isMiniCart,\r\n itemAddedToCartDialogData: {\r\n product,\r\n productPrice: priceResult,\r\n quantity,\r\n producSpecification\r\n },\r\n isDetailsDisplayed: false\r\n });\r\n return AsyncResult.resolve();\r\n });\r\n } else if (result.substatus === 'MAXQUANTITY') {\r\n this.setState({\r\n itemKey,\r\n userMessage:\r\n maxQuantityLimitText\r\n .replace('{curQuantity}', quantity.toString())\r\n .replace('{maxQuantity}', context.app.config.maxQuantityForProductListLineItem.toString()) ||\r\n `You can only add ${context.app.config.maxQuantityForProductListLineItem} of this item to your shopping bag`,\r\n statusCssString: 'danger',\r\n messageGlyph: 'fas fa-exclamation-triangle',\r\n isOpen: true\r\n });\r\n return AsyncResult.resolve();\r\n }\r\n telemetry.debug('[order-template-lines] Unable to Update Cart Line from the order template lines');\r\n this.setState({\r\n itemKey,\r\n userMessage: addedToCartFailureMessage,\r\n statusCssString: 'danger',\r\n messageGlyph: 'fas fa-exclamation-triangle',\r\n isOpen: true\r\n });\r\n return AsyncResult.resolve();\r\n })\r\n .catch((error: Error) => {\r\n telemetry.warning(error.message);\r\n telemetry.debug('[order-template-lines] Error trying to Update Cart Line from the order template lines');\r\n this.setState({\r\n itemKey,\r\n userMessage: addedToCartFailureMessage,\r\n statusCssString: 'danger',\r\n messageGlyph: 'fas fa-exclamation-triangle',\r\n isOpen: true\r\n });\r\n });\r\n }\r\n }\r\n };\r\n\r\n private readonly _removeItemFromOrderTemplateLines = (line: IOrderTemplateLineViewModel): void | undefined => {\r\n const { context, data, telemetry } = this.props;\r\n const { orderTemplate } = data;\r\n\r\n if (context && context.actionContext) {\r\n const maxWaitTimeInMilliSeconds: number = 1000;\r\n const userToken = context.request.user.isAuthenticated && context.request.user.token;\r\n if (userToken && orderTemplate?.result && line) {\r\n removeProductListLinesAsync({ callerContext: context.actionContext }, line.productListLine.ProductListId!, [\r\n line.productListLine\r\n ])\r\n .then(async () => {\r\n // eslint-disable-next-line no-promise-executor-return -- fix\r\n await new Promise(resolve => setTimeout(resolve, maxWaitTimeInMilliSeconds));\r\n window.location.reload();\r\n })\r\n .catch(error => {\r\n telemetry.warning('[order-template-lines] Unable remove items from the order template lines');\r\n telemetry.error(error);\r\n });\r\n } else {\r\n telemetry.warning(\r\n '[order-template-lines] Unable remove items from the order template lines user token or lineItemID was not found'\r\n );\r\n }\r\n }\r\n };\r\n\r\n private readonly _renameTemplate = async (_template: ProductList): Promise => {\r\n window.location.reload();\r\n return Promise.resolve();\r\n };\r\n\r\n private readonly _removeTemplate = () => {\r\n const { context, data, telemetry, resources } = this.props;\r\n const { orderTemplate } = data;\r\n\r\n if (context && context.actionContext) {\r\n const userToken = context.request.user.isAuthenticated && context.request.user.token;\r\n if (userToken && orderTemplate && orderTemplate.result) {\r\n deleteAsync({ callerContext: context.actionContext }, orderTemplate.result.productList)\r\n .then()\r\n .catch((error: string) => {\r\n telemetry.warning('[order-template] Unable to delete order template.');\r\n telemetry.error(error);\r\n this.setState({\r\n itemKey: orderTemplate.result?.productList.Id || '',\r\n userMessage: resources.deleteOrderTemplateFailedText,\r\n statusCssString: 'danger',\r\n messageGlyph: 'fas fa-exclamation-triangle',\r\n isOpen: true\r\n });\r\n });\r\n const newLink = getUrlSync('ordertemplatelist', this.props.context.actionContext);\r\n if (newLink) {\r\n window.location.assign(newLink);\r\n }\r\n } else {\r\n telemetry.warning('[order-template] Failed to delete order template. Order template was not found');\r\n }\r\n } else {\r\n telemetry.warning('[order-template] Failed to delete order template.');\r\n }\r\n };\r\n\r\n private _updateViewport(): void {\r\n this._viewport = this._getViewport();\r\n }\r\n\r\n private readonly _getViewport = (): GridSize => {\r\n const { context } = this.props;\r\n\r\n // Always render in mobile viewport on a mobile device\r\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\r\n return 'xs';\r\n }\r\n\r\n if (MsDyn365.isBrowser && window.innerWidth) {\r\n const gridSettings = context.request.gridSettings;\r\n if (gridSettings) {\r\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\r\n return 'xs';\r\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\r\n return 'sm';\r\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\r\n return 'md';\r\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\r\n return 'lg';\r\n }\r\n return 'xl';\r\n }\r\n }\r\n\r\n return 'xs';\r\n };\r\n\r\n /**\r\n * Renders a Pagination previous text.\r\n * @param paginationPreviousText - Pagination previous text from resources.\r\n * @returns Previous text and flipper icon.\r\n */\r\n private readonly _renderPrev = (paginationPreviousText: string) => {\r\n return (\r\n
\r\n
\r\n );\r\n };\r\n\r\n /**\r\n * Renders a Pagination next text.\r\n * @param paginationNextText - Pagination next text from resources.\r\n * @returns Next text and flipper icon.\r\n */\r\n private readonly _renderNext = (paginationNextText: string) => {\r\n return (\r\n
\r\n {paginationNextText}\r\n
\r\n );\r\n };\r\n\r\n private _renderModalWarning = () => {\r\n const modalWarningResources: IModalWarningResources = {\r\n modalWarningMessage: this.props.resources.addToOrderTemplateDialogWarningV2\r\n };\r\n\r\n return (\r\n \r\n );\r\n };\r\n\r\n private _renderModalWarningFromLineAction = () => {\r\n return (\r\n \r\n );\r\n };\r\n}\r\n\r\nexport default OrderTemplateLines;\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\n/* eslint-disable no-duplicate-imports */\r\nimport { Button, INodeProps, Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IOrderTemplateLineViewProps } from './components';\r\nimport { IOrderTemplateViewProps } from './quotation';\r\n\r\nconst OrderTemplateLinesView: React.FC = (props: IOrderTemplateViewProps) => {\r\n const {\r\n OrderTemplateLines,\r\n status,\r\n statusMessage,\r\n heading,\r\n ProductsTable,\r\n ProductsTableHeading,\r\n orderLines,\r\n ProductsTableRow,\r\n productsStatusMessage,\r\n OrderTemplateActions,\r\n orderActions,\r\n pagination,\r\n itemAddedToCartDialog,\r\n bulkOrderLineActions,\r\n isDetailsDisplayed,\r\n detailedProductView,\r\n toggleDetailsDisplayed,\r\n modalWarning,\r\n modalWarningFromLineAction,\r\n resources: { cancelBtnLabel, productNumberText, productText, productUnitPriceText, productUOMText, productQuantityText }\r\n } = props;\r\n\r\n const toggleDetails = React.useCallback(() => {\r\n toggleDetailsDisplayed && toggleDetailsDisplayed(undefined);\r\n }, [toggleDetailsDisplayed]);\r\n\r\n return (\r\n \r\n {heading}\r\n {OrderTemplateActions && (\r\n \r\n {orderActions?.addTemplateToBag}\r\n {orderActions?.renameTemplate}\r\n {orderActions?.removeTemplate}\r\n {!isDetailsDisplayed && productsStatusMessage}\r\n \r\n )}\r\n {bulkOrderLineActions}\r\n {status !== 'SUCCESS' && statusMessage}\r\n {ProductsTable && orderLines && orderLines.length > 0 && (\r\n \r\n \r\n {ProductsTableHeading}\r\n \r\n {orderLines &&\r\n orderLines.map(product => {\r\n return _renderItem(product, productQuantityText, ProductsTableRow);\r\n })}\r\n \r\n \r\n {pagination}\r\n \r\n )}\r\n {itemAddedToCartDialog}\r\n \r\n Product Details\r\n \r\n
    \r\n
  • {detailedProductView?.productImage}
  • \r\n
  • \r\n {productText}:\r\n {detailedProductView?.productInfo}\r\n
  • \r\n
  • \r\n {productNumberText}:\r\n {detailedProductView?.productNumber}\r\n
  • \r\n
  • \r\n {productUnitPriceText}: {detailedProductView?.productPrice}\r\n
  • \r\n
  • \r\n {productUOMText}: {detailedProductView?.productUnitOfMeasure}\r\n
  • \r\n
  • \r\n {productQuantityText}:\r\n {detailedProductView?.productQuantityView}\r\n
  • \r\n {productsStatusMessage &&
  • {productsStatusMessage}
  • }\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {modalWarning}\r\n {modalWarningFromLineAction}\r\n
\r\n );\r\n};\r\n\r\nconst _renderItem = (product: IOrderTemplateLineViewProps, quantityLabel: string, ProductsTableRow?: INodeProps): JSX.Element | null => {\r\n if (!product) {\r\n return null;\r\n }\r\n\r\n const {\r\n key,\r\n selectLine,\r\n productImage,\r\n productPrice,\r\n //productNumber,\r\n addToBagButton,\r\n removeButton,\r\n productInfo,\r\n productUnitOfMeasure,\r\n productQuantityView,\r\n productQuantity,\r\n popUp,\r\n isMobile,\r\n externalItemId\r\n } = product;\r\n\r\n return (\r\n \r\n {selectLine}\r\n {productImage}\r\n {isMobile ? (\r\n \r\n
{externalItemId}
\r\n
\r\n {quantityLabel}: {productQuantity}\r\n
\r\n \r\n ) : (\r\n {externalItemId}\r\n )}\r\n {!isMobile && {productInfo}}\r\n {!isMobile && {productPrice}}\r\n {!isMobile && {productUnitOfMeasure}}\r\n {!isMobile && {productQuantityView}}\r\n {isMobile && {popUp}}\r\n {!isMobile && (\r\n \r\n {addToBagButton}\r\n {removeButton}\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default OrderTemplateLinesView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport msdyn365Commerce, { getCatalogId, getUrlSync, IImageSettings, Image, isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport {\n ArrayExtensions,\n convertProductDimensionTypeToDimensionTypes,\n getFallbackImageUrl,\n getProductUrlSync,\n ObjectExtensions,\n Random,\n StringExtensions,\n validateCatalogId\n} from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps, isMobile, VariantType, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { RemoveFromComparisonButtonComponent } from '../product-comparison';\nimport { ProductComparisonState } from '../product-comparison-state';\nimport {\n getProductsInPreviewProductComparisonAction,\n GetProductsInPreviewProductComparisonInput,\n IProductComparisonProductData\n} from './actions';\nimport { IProductComparisonPreviewData } from './product-comparison-preview.data';\nimport { IProductComparisonPreviewProps } from './product-comparison-preview.props.autogenerated';\n\n/**\n * Represents product comparison view props for main product info.\n */\nexport interface IProductComparisonPreviewProductMainInfo {\n productData: IProductComparisonProductData;\n productNameLink?: string;\n\n removeFromComparisonButton: React.ReactNode;\n productImage: React.ReactNode;\n productLink: React.ReactNode;\n}\n\n/**\n * Represents product comparison view props.\n */\nexport interface IProductComparisonPreviewViewProps extends IProductComparisonPreviewProps<{}> {\n moduleProps: IModuleProps;\n collapseButton: INodeProps;\n isMainContentReady: boolean;\n\n hasUserInteractedWithComparison?: boolean;\n isExpanded?: boolean;\n subheaderText?: string;\n productsMainInfo?: IProductComparisonPreviewProductMainInfo[];\n previewGreyPlaceHolders?: React.ReactNode;\n\n productComparisonLink?: string;\n goToComparisonButton?: React.ReactNode;\n clearAllButton?: React.ReactNode;\n\n handleCollapseClick?(): void;\n clearAllProductsFromTheComparison?(): void;\n removeProductFromList?(itemId: string): void;\n}\n\n/**\n * Extended props for the module including info about the product.\n */\nexport interface IProductComparisonPreviewState {\n isExpanded?: boolean;\n productsData?: IProductComparisonProductData[];\n greyPlaceHoldersCount?: number;\n}\n\n/**\n * Extended props for the module including info about the product.\n */\nexport interface IProductComparisonPreviewFullProps extends IProductComparisonPreviewProps {}\n\n/**\n * Represents the component which renders product comparison table.\n */\nexport class ProductComparisonPreview extends React.PureComponent {\n public static readonly className = 'ms-product-comparison-preview';\n\n public static readonly containerClassName = `${ProductComparisonPreview.className}__container`;\n\n public static readonly mainContainerClassName = `${ProductComparisonPreview.containerClassName}__main-container`;\n\n public static readonly headerClassName = `${ProductComparisonPreview.mainContainerClassName}__header`;\n\n public static readonly headerLabelClassName = `${ProductComparisonPreview.headerClassName}__label`;\n\n public static readonly tableClassName = `${ProductComparisonPreview.mainContainerClassName}__table`;\n\n public static readonly tableRowClassName = `${ProductComparisonPreview.tableClassName}__product-row`;\n\n public static readonly footerClassName = `${ProductComparisonPreview.mainContainerClassName}__footer`;\n\n public static readonly collapseButtonClassName = `${ProductComparisonPreview.headerClassName}__collapse`;\n\n public static _displayedInstanceId?: string;\n\n private readonly _instanceId: string;\n\n private _hasUserInteractedWithComparison: boolean;\n\n public constructor(props: IProductComparisonPreviewFullProps) {\n super(props);\n\n this.state = {};\n\n this._instanceId = `${ProductComparisonPreview.className}-${this.props.id}-${Random.Guid.generateGuid()}`;\n ProductComparisonPreview._displayedInstanceId = this._instanceId;\n\n this._hasUserInteractedWithComparison = false;\n }\n\n public componentDidMount(): void {\n if (this._instanceId !== ProductComparisonPreview._displayedInstanceId) {\n return;\n }\n\n this._loadProducts();\n ProductComparisonState.instance(this.props.context.request, this.props.data.accountInformation?.result).listModifiedEvent.subscribe(\n {\n instanceId: this._instanceId,\n\n /**\n * Updates the state in case the state for the particular product was changed.\n */\n handler: () => {\n this._hasUserInteractedWithComparison = true;\n // eslint-disable-next-line @typescript-eslint/no-floating-promises -- Initialize data downloading.\n this._loadProducts();\n }\n }\n );\n }\n\n public componentWillUnmount(): void {\n ProductComparisonState.instance(\n this.props.context.request,\n this.props.data.accountInformation?.result\n ).listModifiedEvent.unsubscribe(this._instanceId);\n }\n\n public render(): React.ReactNode {\n if (this._instanceId !== ProductComparisonPreview._displayedInstanceId) {\n return null;\n }\n\n const viewProps: IProductComparisonPreviewViewProps = {\n ...this.props,\n moduleProps: {\n moduleProps: this.props,\n className: ProductComparisonPreview.className,\n id: this._instanceId\n },\n collapseButton: this._renderCollapseButton(),\n isMainContentReady: false,\n hasUserInteractedWithComparison: this._hasUserInteractedWithComparison\n };\n\n const productData = this._getProdutComparisonDataByCatalogId(this.state.productsData ?? this.props.data.productsData?.result);\n\n if (!ArrayExtensions.hasElements(productData)) {\n return this.props.renderView(viewProps);\n }\n\n viewProps.isMainContentReady = true;\n\n const productsLimit = this._getProductsLimit();\n if (!ObjectExtensions.isNullOrUndefined(productsLimit)) {\n viewProps.subheaderText = this.props.resources.productComparisonPreviewHeaderTextWithLimit\n .replace('{0}', productData.length.toString())\n .replace('{1}', productsLimit.toString());\n }\n\n viewProps.isExpanded = this.state.isExpanded;\n viewProps.handleCollapseClick = this._handleCollapseClick;\n viewProps.productsMainInfo = this._getProductsMainInfo(productData);\n viewProps.previewGreyPlaceHolders = this._renderGreyPlaceHolders(productData);\n viewProps.productComparisonLink = getUrlSync('product-comparison', this.props.context.actionContext);\n viewProps.clearAllProductsFromTheComparison = this._clearAllProductsFromTheComparison;\n viewProps.removeProductFromList = this._removeProductFromList;\n viewProps.goToComparisonButton = this._renderGoToComparisonButton(viewProps.productComparisonLink);\n viewProps.clearAllButton = this._renderClearAllButton();\n\n return this.props.renderView(viewProps);\n }\n private _getProdutComparisonDataByCatalogId(productData: IProductComparisonProductData[] | undefined): IProductComparisonProductData[] {\n const catalogId = getCatalogId(this.props.context.request);\n validateCatalogId(catalogId);\n const productByCatalogId = productData?.filter(product => product.catalogId === catalogId) ?? [];\n return productByCatalogId;\n }\n private async _loadProducts(): Promise {\n const items = ProductComparisonState.instance(this.props.context.request, this.props.data.accountInformation?.result).items;\n const input = new GetProductsInPreviewProductComparisonInput(items);\n const productData = await getProductsInPreviewProductComparisonAction(input, this.props.context.actionContext);\n const productDataByCatalogId = this._getProdutComparisonDataByCatalogId(productData);\n this.setState({ productsData: productDataByCatalogId });\n this._getGreyPlaceHoldersCount(productDataByCatalogId);\n }\n\n private _getGreyPlaceHoldersCount(productData: IProductComparisonProductData[]): number | undefined {\n if (productData && ArrayExtensions.hasElements(productData)) {\n const limit = this._getProductsLimit();\n if (limit && this.props.context.app.config.displayGreyPlaceHolders) {\n const placeHolder = limit - productData.length;\n this.setState({ greyPlaceHoldersCount: placeHolder });\n return placeHolder;\n }\n }\n return;\n }\n\n private _getProductsMainInfo(products: IProductComparisonProductData[]): IProductComparisonPreviewProductMainInfo[] {\n const productImageContainerClassName = `${ProductComparisonPreview.tableRowClassName}__product-image-container`;\n const productImageClassName = `${productImageContainerClassName}__product-image`;\n const productNameClassName = `${ProductComparisonPreview.tableRowClassName}__product-name`;\n\n return products.map(productData => {\n const product = productData.product;\n\n let productNameLink: string | undefined;\n if (msdyn365Commerce.isBrowser) {\n const productUrl = getProductUrlSync(product, this.props.context.actionContext);\n const fullUrl = new URL(productUrl, window.location.href);\n if (isChannelTypeB2B(this.props.context.actionContext.requestContext)) {\n fullUrl.searchParams.set('catalogid', `${productData.catalogId}`);\n }\n product.Dimensions?.map(dimension => {\n const dimensionValue = dimension.DimensionValue?.Value;\n if (!StringExtensions.isNullOrWhitespace(dimensionValue)) {\n const dimensionName = convertProductDimensionTypeToDimensionTypes(dimension.DimensionTypeValue);\n fullUrl.searchParams.set(dimensionName, dimensionValue!);\n }\n });\n productNameLink = fullUrl.href;\n }\n\n return {\n productNameLink,\n productData,\n removeFromComparisonButton: (\n \n ),\n productImage: (\n \n {this._renderProductImage(productImageClassName, productData.product)}\n \n ),\n productLink: (\n \n {productData.product.Name}\n \n )\n };\n });\n }\n\n /**\n * Represents product comparison preview view.\n * @returns Elements.\n */\n private _renderGreyPlaceHolders = (productData: IProductComparisonProductData[]): React.ReactNode[] | undefined => {\n const counts = this.state.greyPlaceHoldersCount;\n if (this.props.context.app.config.displayGreyPlaceHolders && counts! > 0) {\n const elements = [];\n for (let index = 0; index < counts!; index++) {\n elements.push(\n \n
\n \n );\n }\n return elements;\n }\n return;\n };\n\n /**\n * Removes the product from a list.\n * @param itemId - The id of a product to remove.\n */\n private readonly _removeProductFromList = (itemId: string): void => {\n ProductComparisonState.instance(this.props.context.request, this.props.data.accountInformation?.result).removeItemById(itemId);\n this.setState(previousState => {\n return {\n productsData: previousState.productsData?.filter(item => item.itemId !== itemId)\n };\n });\n };\n\n /**\n * Toggle collapsing.\n */\n private readonly _handleCollapseClick: () => void = () => {\n this.setState(previousState => {\n return {\n isExpanded: !(previousState.isExpanded ?? this._hasUserInteractedWithComparison)\n };\n });\n };\n\n /**\n * Removes all products from the comparison.\n */\n private readonly _clearAllProductsFromTheComparison = () => {\n ProductComparisonState.instance(this.props.context.request, this.props.data.accountInformation?.result).clearAll();\n this.setState({ productsData: [] });\n };\n\n private _getProductsLimit(): number | undefined {\n const viewport = isMobile({ variant: VariantType.Browser, context: this.props.context.request });\n if (viewport === 'xs' || viewport === 'sm') {\n return this.props.context.app.config.productComparisonMobileProductsLimit;\n }\n return this.props.context.app.config.productComparisonDesktopProductsLimit;\n }\n\n /**\n * Retrieves product image react node.\n * @param className - Class name to use.\n * @param product - Product info.\n * @returns React node.\n */\n private _renderProductImage(className: string, product?: SimpleProduct): React.ReactNode | undefined {\n if (ObjectExtensions.isNullOrUndefined(product)) {\n return undefined;\n }\n\n const defaultImageSettingQ = 'w=140&h=140&m=6';\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: defaultImageSettingQ, w: 0, h: 0 },\n lg: { q: defaultImageSettingQ, w: 0, h: 0 },\n xl: { q: defaultImageSettingQ, w: 0, h: 0 }\n },\n lazyload: true\n };\n\n return (\n \n );\n }\n\n private _renderCollapseButton(): INodeProps {\n const shouldBeExpanded = this.state.isExpanded ?? this._hasUserInteractedWithComparison;\n const headerContainerClassName = `${ProductComparisonPreview.mainContainerClassName}__header_button`;\n let collapseClassName = `${ProductComparisonPreview.collapseButtonClassName}__expanded`;\n if (!shouldBeExpanded) {\n collapseClassName = `${ProductComparisonPreview.collapseButtonClassName}__collapsed`;\n }\n\n return {\n className: classnames(headerContainerClassName, ProductComparisonPreview.collapseButtonClassName, collapseClassName),\n onClick: this._handleCollapseClick,\n role: 'button',\n tabIndex: 0\n };\n }\n\n private _renderGoToComparisonButton(productComparisonLink: string | undefined): React.ReactNode {\n return (\n \n {this.props.resources.productComparisonCompareProductsButtonText}\n \n );\n }\n\n private _renderClearAllButton(): React.ReactNode {\n return (\n \n {this.props.resources.productComparisonClearAllProductsButtonText}\n \n );\n }\n}\n\nexport default ProductComparisonPreview;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport msdyn365Commerce from '@msdyn365-commerce/core';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IProductComparisonPreviewViewProps, ProductComparisonPreview } from './product-comparison-preview';\n\n/**\n * Represents product comparison preview view.\n * @param props - View props for product comparison preview.\n * @returns Functional component of product comparison preview.\n */\nexport const ProductComparisonPreviewViewFunctionalComponent: React.FC = props => {\n if (!props.isMainContentReady) {\n return null;\n }\n\n const shouldBeExpanded = props.isExpanded ?? props.hasUserInteractedWithComparison;\n\n const containerClassName = classnames(\n ProductComparisonPreview.mainContainerClassName,\n shouldBeExpanded ? '' : `${ProductComparisonPreview.mainContainerClassName}__collapsed`\n );\n\n return (\n \n \n \n \n \n \n \n \n \n {props.resources.productComparisonPreviewHeaderText}\n \n \n {props.subheaderText}\n \n \n \n \n \n \n \n {props.productsMainInfo?.map(info => {\n return (\n \n {info.removeFromComparisonButton}\n {info.productImage}\n \n );\n })}\n {props.previewGreyPlaceHolders}\n \n \n {props.productsMainInfo?.map(info => {\n return (\n \n {msdyn365Commerce.isBrowser ? info.productLink : undefined}\n \n );\n })}\n \n \n \n \n \n {props.clearAllButton}\n {props.goToComparisonButton}\n \n \n \n \n );\n};\n\nexport default ProductComparisonPreviewViewFunctionalComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getRichTextHtml, ICoreContext, ITelemetry } from '@msdyn365-commerce/core';\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy';\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport React from 'react';\n\n/**\n * Represents resources for the component.\n */\nexport interface IProductSpecificationResources {\n productComparisonProductItemSpecificationTrue: string;\n productComparisonProductItemSpecificationFalse: string;\n}\n\n/**\n * Represent configuration of the component.\n */\nexport interface IProductSpecificationProps {\n telemetry: ITelemetry;\n specification?: AttributeValue;\n context: ICoreContext;\n\n resources: IProductSpecificationResources;\n}\n\n/**\n * Represents the product specification values that comes from the server.\n */\nexport enum SpecificationDataTypeValues {\n none = 0,\n currency = 1,\n dateTime = 2,\n decimal = 3,\n integer = 4,\n text = 5,\n boolean = 6,\n video = 40,\n image = 41\n}\n\n/**\n * Represents the component which renders product comparison table.\n */\nexport class ProductSpecification extends React.PureComponent {\n private static _renderCurrencyCell(product: AttributeValue): React.ReactNode | null {\n if (ObjectExtensions.isNullOrUndefined(product.CurrencyValue)) {\n return null;\n }\n\n return (\n \n {product.CurrencyCode}\n {product.CurrencyValue}\n \n );\n }\n\n private static _renderDateTimeCell(product: AttributeValue): React.ReactNode | null {\n if (ObjectExtensions.isFunction(product.DateTimeOffsetValue?.toUTCString)) {\n return null;\n }\n\n return {product.DateTimeOffsetValue!.toUTCString()};\n }\n\n private static _renderIntegerCell(product: AttributeValue): React.ReactNode | null {\n if (ObjectExtensions.isNullOrUndefined(product.IntegerValue)) {\n return null;\n }\n\n return {product.IntegerValue};\n }\n\n private static _renderDecimalCell(product: AttributeValue): React.ReactNode | null {\n if (ObjectExtensions.isNullOrUndefined(product.FloatValue)) {\n return null;\n }\n\n return {product.FloatValue};\n }\n\n private static _renderTextCell(product: AttributeValue): React.ReactNode | null {\n if (ObjectExtensions.isNullOrUndefined(product.TextValue)) {\n return null;\n }\n\n // eslint-disable-next-line react/no-danger -- Implementation is a copy.\n return ;\n }\n\n public constructor(props: IProductSpecificationProps) {\n super(props);\n }\n\n public render(): React.ReactNode | null {\n const specification = this.props.specification;\n if (ObjectExtensions.isNullOrUndefined(specification)) {\n return null;\n }\n\n switch (specification.DataTypeValue) {\n case SpecificationDataTypeValues.none:\n // Return span here instead of null so the row still shows\n return ;\n case SpecificationDataTypeValues.currency:\n return ProductSpecification._renderCurrencyCell(specification);\n case SpecificationDataTypeValues.dateTime:\n return ProductSpecification._renderDateTimeCell(specification);\n case SpecificationDataTypeValues.decimal:\n return ProductSpecification._renderDecimalCell(specification);\n case SpecificationDataTypeValues.integer:\n return ProductSpecification._renderIntegerCell(specification);\n case SpecificationDataTypeValues.text:\n return ProductSpecification._renderTextCell(specification);\n case SpecificationDataTypeValues.boolean:\n return this._renderTrueFalseCell(specification);\n case SpecificationDataTypeValues.video:\n this.props.telemetry.warning('Got video specification type, not supported yet so skipping line');\n return null;\n case SpecificationDataTypeValues.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 ${specification.DataTypeValue ?? 'null'} so skipping line`);\n return null;\n }\n }\n\n private _renderTrueFalseCell(product: AttributeValue): React.ReactNode | null {\n if (product.BooleanValue) {\n return {this.props.resources.productComparisonProductItemSpecificationTrue};\n }\n return {this.props.resources.productComparisonProductItemSpecificationFalse};\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps } from '@msdyn365-commerce/core';\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport React, { useCallback } from 'react';\n\n/**\n * Resources for the remove from comparison button component.\n */\nexport interface IRemoveFromComparisonButtonResources {\n productComparisonRemoveProductFromListAriaLabel: string;\n}\n\n/**\n * The configuration of the remove from comparison button component.\n */\nexport interface IRemoveFromComparisonButtonComponentProps extends IComponentProps {\n className: string;\n itemId: string;\n\n resources: IRemoveFromComparisonButtonResources;\n\n onClickHandler(itemId: string): void;\n}\n\n/**\n * Represents a button which handles adding to product comparison.\n * @param props - Configuration of the component.\n * @returns React functional component.\n */\nconst RemoveFromComparisonButtonFunctionalComponent: React.FC = (\n props: IRemoveFromComparisonButtonComponentProps\n) => {\n const onClick = useCallback(() => {\n props.onClickHandler(props.itemId);\n }, [props]);\n\n const { className } = props;\n\n return \n );\n }\n\n private readonly _goBack = (): void => {\n const backToShoppingUrl = getUrlSync('home', this.props.context.actionContext) || '';\n if (document.referrer === '') {\n window.location.href = backToShoppingUrl;\n } else {\n window.history.back();\n }\n };\n\n /**\n * Retrieves localized text for dimension.\n * @param dimensionId - Dimension id.\n * @returns Localized text.\n */\n private _getDimensionName(dimensionId: number): string | undefined {\n if (dimensionId === ProductDimensionType.Color) {\n return this.props.resources.productComparisonProductItemColorDimension;\n }\n if (dimensionId === ProductDimensionType.Size) {\n return this.props.resources.productComparisonProductItemSizeDimension;\n }\n\n if (dimensionId === ProductDimensionType.Style) {\n return this.props.resources.productComparisonProductItemStyleDimension;\n }\n return undefined;\n }\n\n private getUpdatedDimensionsProps(dimensionId: number, products: IProductComparisonProductMainInfo[]) {\n const dimensionClassName = `${ProductComparison.dimensionsRowClassName}__dimension-${dimensionId}`;\n const dimensionDescription = this._getDimensionName(dimensionId);\n const dimensionName = convertProductDimensionTypeToDimensionTypes(dimensionId);\n let dimensionSelectionType = SelectionType.text;\n\n const dimensionsAsSwatchConfiguration: DimensionTypes[] | undefined = this.props.context.app.config.dimensionsAsSwatchType;\n if (\n ArrayExtensions.hasElements(dimensionsAsSwatchConfiguration) &&\n !dimensionsAsSwatchConfiguration?.includes(DimensionTypes.none) &&\n dimensionsAsSwatchConfiguration?.includes(dimensionName)\n ) {\n dimensionSelectionType = SelectionType.swatch;\n }\n\n const productDimensionValues = products.map(productMainInfo => {\n let dimension: IDimensionResult[] = [];\n let textValue: string = '';\n let renderSwatch: JSX.Element | undefined;\n this.props.data.productsData?.result?.map(productsDimension => {\n if (productsDimension.productInfo.RecordId === productMainInfo.product.productInfo.RecordId) {\n dimension = productsDimension.dimensions?.dimensions ?? [];\n }\n return dimension;\n });\n\n if (dimensionSelectionType === SelectionType.swatch) {\n renderSwatch = (\n
\n {dimension.map(dimensionItems => {\n return (\n \n {dimensionItems.result.map(dimensionItem => {\n let currentDimensionId: number | undefined;\n const swatches =\n dimensionItem.map(swatchItem => {\n let isDefaultDimension: boolean = false;\n const selectedDimensions = productMainInfo.product.productInfo.Dimensions?.filter(\n item => item.DimensionTypeValue === swatchItem.DimensionTypeValue\n );\n selectedDimensions?.map(selectedDimension => {\n if (\n selectedDimension.DimensionValue !== undefined &&\n selectedDimension.DimensionValue.DimensionId ===\n swatchItem.DimensionValue?.DimensionId\n ) {\n isDefaultDimension = true;\n }\n return isDefaultDimension;\n });\n\n if (swatchItem.DimensionTypeValue === dimensionId) {\n currentDimensionId = swatchItem.DimensionTypeValue;\n }\n const dimensionType = dimensionName;\n return {\n itemId: `${swatchItem.DimensionValue?.RecordId ?? ''}-${swatchItem.DimensionValue\n ?.Value ?? ''}`,\n value: swatchItem.DimensionValue?.Value ?? '',\n dimensionType,\n colorHexCode: swatchItem.DimensionValue?.ColorHexCode,\n imageUrl: swatchItem.DimensionValue?.ImageUrl,\n isDefault: isDefaultDimension\n };\n }) ?? [];\n if (currentDimensionId && currentDimensionId === dimensionId) {\n return (\n \n );\n }\n return null;\n })}\n
\n );\n })}\n
\n );\n }\n\n if (dimensionSelectionType === SelectionType.text) {\n dimension.map(item => {\n return item.result.map(items => {\n return items.map(dimensionItem => {\n if (dimensionItem.DimensionTypeValue === dimensionId) {\n const productDimensionSeperatorValue =\n textValue !== ''\n ? this.props.resources.productDimensionSeparator\n : this.props.resources.productDimensionSeparator.replace('/', '');\n textValue = textValue + format(productDimensionSeperatorValue, dimensionItem.DimensionValue?.Value ?? '');\n }\n return textValue;\n });\n });\n });\n }\n\n const dimensionProps = {\n RecordId: productMainInfo.product.productInfo.RecordId,\n Value: textValue,\n DimensionId: dimensionId,\n ImageUrl: productMainInfo.product.productInfo.PrimaryImageUrl\n };\n\n return {\n dimensionProps,\n productMainInfo,\n node: (\n
\n {dimensionSelectionType === SelectionType.swatch ? renderSwatch : dimensionProps.Value}\n
\n )\n };\n });\n return {\n dimensionId,\n dimensionName: dimensionDescription,\n dimensionClassName,\n productDimensionValues\n };\n }\n private _getSpecificationProps(specifications: AttributeValue[], products: IProductComparisonProductMainInfo[]) {\n return specifications.map(specification => {\n const specificationClassName = `${ProductComparison.specificationsRowClassName}__specification-${specification.Name!}`;\n\n const specificationValues = products.map(productMainInfo => {\n const productSpecification = productMainInfo.product.specifications?.specificationsList.find(\n productSpecifications => productSpecifications.Name === specification.Name\n );\n\n return {\n productSpecification,\n productMainInfo,\n node: (\n
\n \n
\n )\n };\n });\n\n return {\n specification,\n specificationClassName,\n specificationValues\n };\n });\n }\n\n private _renderHeading(): React.ReactNode {\n return ;\n }\n\n private _renderLoading(): React.ReactNode {\n return
{this.props.resources.productComparisonLoadingText}
;\n }\n\n private _renderClearAllButton(): React.ReactNode {\n return (\n \n {this.props.resources.productComparisonClearAllButtonText}\n \n );\n }\n\n /**\n * Retrieves unique dimension ids of product.\n * @param products - Product.\n * @returns Unique dimension ids.\n */\n private getProductsDimensionsIds(products: IProductComparisonItemData[]): number[] {\n const dimensions = products.map(product => product.productInfo.Dimensions);\n const allDimensions: ProductDimension[] = ArrayExtensions.flatten(dimensions);\n\n const dimensionIds = ArrayExtensions.validValues(allDimensions.map(dimension => dimension.DimensionTypeValue));\n const uniqueDimensionIds = ArrayExtensions.unique(dimensionIds);\n\n return uniqueDimensionIds;\n }\n\n private _renderPreviousClicker(): React.ReactNode {\n return (\n \n