{"version":3,"file":"static/js/9199124372c5875cead8.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/utilities/src/incremental-quantity/IncrementalQuantity.tsx?99d6","webpack://Msdyn365.Commerce.Online/./src/utilities/src/cuts-field/CutsField.tsx?3f2a","webpack://Msdyn365.Commerce.Online/./src/modules/bremworth-order-details/utils/get-delivery-date.tsx?d5af","webpack://Msdyn365.Commerce.Online/./src/themes/bremworth-fabrikam/views/components/cartlineitem.component.tsx?6606","webpack://Msdyn365.Commerce.Online/./src/modules/bremworth-cart/components/project-details-box.component.tsx?956f"],"sourcesContent":["/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { IRequestContext } from '@msdyn365-commerce/core';\r\nimport { debounce } from 'lodash';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n IPayLoad,\r\n TelemetryConstant,\r\n isMobile,\r\n VariantType\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport { IIncrementalQuantityProps } from './IncrementalQuantity.props';\r\n\r\n/**\r\n * IIncrementalQuantityState interface.\r\n */\r\ninterface IIncrementalQuantityState {\r\n currentInput: number;\r\n isUpdating: boolean;\r\n}\r\n\r\n/**\r\n * Quantity Component - This component is used to add or remove quantity.\r\n */\r\n@observer\r\nexport default class IncrementalQuantity extends React.PureComponent {\r\n public static defaultProps: Partial = {\r\n min: 1,\r\n decrementGlyphClass: 'fas fa-minus',\r\n incrementGlyphClass: 'fas fa-plus'\r\n };\r\n\r\n private readonly _minValue: number;\r\n\r\n private readonly inputRef: React.RefObject = React.createRef();\r\n\r\n private readonly payLoad: IPayLoad;\r\n\r\n public static getDerivedStateFromProps(\r\n props: Readonly,\r\n state: IIncrementalQuantityState\r\n ): IIncrementalQuantityState {\r\n const nextState = { ...state };\r\n\r\n if (props.disabled && !state.isUpdating) {\r\n nextState.isUpdating = true;\r\n }\r\n\r\n if (!props.disabled && state.isUpdating) {\r\n nextState.currentInput = props.currentCount ?? 1;\r\n nextState.isUpdating = false;\r\n }\r\n return nextState;\r\n }\r\n\r\n constructor(props: IIncrementalQuantityProps) {\r\n super(props);\r\n this.state = { currentInput: props.currentCount ?? 1, isUpdating: false };\r\n this._onIncrement = this._onIncrement.bind(this);\r\n this._onDecrement = this._onDecrement.bind(this);\r\n this._handleChange = this._handleChange.bind(this);\r\n this.payLoad = getPayloadObject('click', this.props.telemetryContent!, '');\r\n this._minValue = this.props.min ?? IncrementalQuantity.defaultProps.min!;\r\n }\r\n public async componentDidMount(): Promise {}\r\n\r\n public render(): JSX.Element {\r\n const { min, max, unitOfMeasureText, hiddenCurrentCount } = this.props;\r\n\r\n const glyphMinusClassName: string = `${this.props.decrementGlyphClass!} quantity__controls-glyph`;\r\n const glyphPlusClassName: string = `${this.props.incrementGlyphClass!} quantity__controls-glyph`;\r\n const decrementDisabled = (hiddenCurrentCount && hiddenCurrentCount <= (min ?? 1)) || this.props.isGiftCard;\r\n const incrementDisabled = (hiddenCurrentCount && hiddenCurrentCount >= max) || this.props.isGiftCard;\r\n const currentValue = hiddenCurrentCount ? hiddenCurrentCount : this.state.currentInput;\r\n this.payLoad.contentAction.etext = TelemetryConstant.DecrementQuantity;\r\n const decrementAttributes = getTelemetryAttributes(this.props.telemetryContent!, this.payLoad);\r\n this.payLoad.contentAction.etext = TelemetryConstant.IncrementQuantity;\r\n const incrementAttributes = getTelemetryAttributes(this.props.telemetryContent!, this.payLoad);\r\n const ariaLablelText = `${this.props.inputQuantityAriaLabel ?? ''} ${this.state.currentInput}`;\r\n\r\n let extraClassDecrement = '';\r\n if (decrementDisabled) {\r\n // The quantity has reached its boundaries (max or min)\r\n extraClassDecrement = 'disabled';\r\n } else if (this.props.disabled) {\r\n // This.props.disabled shows if the state is not succeded yet\r\n extraClassDecrement = 'transition';\r\n }\r\n let extraClassIncrement = '';\r\n if (incrementDisabled) {\r\n // The quantity has reached its boundaries (max or min)\r\n extraClassIncrement = 'disabled';\r\n } else if (this.props.disabled) {\r\n // This.props.disabled shows if the state is not succeded yet\r\n extraClassIncrement = 'transition';\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {unitOfMeasureText && ` ${unitOfMeasureText}`}\r\n
\r\n \r\n );\r\n }\r\n\r\n /**\r\n * It checks if its in mobile view or not.\r\n * @returns Boolean.\r\n */\r\n private readonly isMobileView = (): boolean => {\r\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- Added gridsetting values.\r\n const context = {\r\n gridSettings: {\r\n xs: { w: 767 },\r\n sm: { w: 991 },\r\n md: { w: 1199 },\r\n lg: { w: 1599 },\r\n xl: { w: 1600 }\r\n }\r\n } as IRequestContext;\r\n\r\n const isMobileCheck = isMobile({ variant: VariantType.Browser, context });\r\n return isMobileCheck === 'xs' || isMobileCheck === 'sm';\r\n };\r\n\r\n private _onIncrement(): void {\r\n let invokeCallback = false;\r\n const currQuantity = this.inputRef.current ? +this.inputRef.current?.value : 1;\r\n let updatedQuantity: number;\r\n\r\n if (currQuantity < this.props.max) {\r\n invokeCallback = true;\r\n updatedQuantity = currQuantity + 1;\r\n } else {\r\n invokeCallback = false;\r\n updatedQuantity = this.props.max;\r\n }\r\n\r\n if (invokeCallback && this.props.onChange) {\r\n if (this.props.onChange(updatedQuantity)) {\r\n this.setState({ currentInput: updatedQuantity });\r\n }\r\n }\r\n }\r\n\r\n private _onDecrement(): void {\r\n let invokeCallback = false;\r\n const currQuantity = this.inputRef.current ? +this.inputRef.current?.value : 1;\r\n let updatedQuantity: number;\r\n\r\n if (currQuantity >= this._minValue) {\r\n invokeCallback = true;\r\n updatedQuantity = currQuantity - 1;\r\n } else {\r\n invokeCallback = false;\r\n updatedQuantity = this._minValue;\r\n }\r\n\r\n if (invokeCallback && this.props.onChange) {\r\n if (this.props.onChange(updatedQuantity)) {\r\n this.setState({ currentInput: updatedQuantity });\r\n }\r\n }\r\n }\r\n\r\n private _handleChange(e: React.ChangeEvent): void {\r\n let currentValue = Number.parseFloat(e.target.value);\r\n if (Number.isNaN(currentValue)) {\r\n this.setState({ currentInput: currentValue });\r\n return;\r\n }\r\n currentValue = Math.min(this.props.max, Math.max(this._minValue, currentValue));\r\n this.setState({ currentInput: currentValue });\r\n debounce(() => {\r\n // Due of usage debouncer, we may ignore onChange return value\r\n this.props.onChange && this.props.onChange(this.state.currentInput);\r\n\r\n const inputElement =\r\n this.inputRef && this.inputRef.current && this.inputRef.current instanceof HTMLInputElement && this.inputRef.current;\r\n if (inputElement) {\r\n inputElement.setAttribute('aria-valuenow', this.state.currentInput.toString());\r\n inputElement.setAttribute('value', this.state.currentInput.toString());\r\n }\r\n }, 500)();\r\n }\r\n\r\n /**\r\n * Validates min and updates.\r\n */\r\n private readonly _validateMin = (): void => {\r\n if (Number.isNaN(this.state.currentInput)) {\r\n this.setState({ currentInput: this._minValue });\r\n } else {\r\n const currentValue = Math.min(this.props.max, Math.max(this._minValue, this.state.currentInput));\r\n if (currentValue !== this.state.currentInput) {\r\n this.setState({ currentInput: currentValue });\r\n }\r\n }\r\n };\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n// import { debounce } from 'lodash';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nimport { ICutsFieldProps } from './CutsField.props';\r\n\r\n/**\r\n * ICutsFieldState interface.\r\n */\r\ninterface ICutsFieldState {\r\n currentInput: string;\r\n hasError: boolean;\r\n isUpdating: boolean;\r\n}\r\n\r\n/**\r\n * Quantity Component - This component is used to add or remove quantity.\r\n */\r\n@observer\r\nexport default class CutsField extends React.PureComponent {\r\n private readonly inputRef: React.RefObject = React.createRef();\r\n public static getDerivedStateFromProps(props: Readonly, state: ICutsFieldState): ICutsFieldState {\r\n const nextState = { ...state };\r\n\r\n if (props.disabled && !state.isUpdating) {\r\n nextState.isUpdating = true;\r\n }\r\n\r\n if (!props.disabled && state.isUpdating) {\r\n nextState.currentInput = props.currentCuts ?? '';\r\n nextState.isUpdating = false;\r\n }\r\n return nextState;\r\n }\r\n\r\n constructor(props: ICutsFieldProps) {\r\n super(props);\r\n this.state = { currentInput: props.currentCuts ?? '', hasError: false, isUpdating: false };\r\n this._handleChange = this._handleChange.bind(this);\r\n this._handleBlur = this._handleBlur.bind(this);\r\n this._isValid = this._isValid.bind(this);\r\n }\r\n public async componentDidMount(): Promise {}\r\n\r\n public render(): JSX.Element {\r\n const { hiddenCurrentCuts, disabled } = this.props;\r\n const currentValue = hiddenCurrentCuts ? hiddenCurrentCuts : this.state.currentInput;\r\n\r\n return (\r\n \r\n \r\n {this.state.hasError &&

{'Invalid data.'}

}\r\n
\r\n );\r\n }\r\n\r\n private _handleChange(e: React.ChangeEvent): void {\r\n const currentValue = e.target.value;\r\n this.setState({ currentInput: currentValue });\r\n }\r\n\r\n private _isValid(currentValue: string): boolean {\r\n const splitted: string[] = currentValue.split(',');\r\n if (!splitted) {\r\n return true;\r\n }\r\n const isNumber =\r\n splitted &&\r\n // @ts-ignore\r\n splitted.every(element => {\r\n return !isNaN(+element);\r\n });\r\n return isNumber;\r\n }\r\n\r\n private _handleBlur(e: React.ChangeEvent): void {\r\n const currentValue = e.target.value;\r\n if (!this._isValid(currentValue)) {\r\n this.setState({ currentInput: currentValue, hasError: true });\r\n return;\r\n }\r\n this.setState({ currentInput: currentValue, hasError: false });\r\n\r\n if (this.props.currentCuts !== this.state.currentInput) {\r\n this.props.onChange && this.props.onChange(this.state.currentInput);\r\n }\r\n }\r\n}\r\n","import React, { useState } from 'react';\r\nimport { DatePicker, defaultDatePickerStrings } from '@fluentui/react';\r\n\r\ninterface DatePickerExampleProps {\r\n initialDate: Date; // Type for the initial date\r\n itemId: string;\r\n onChange: (date: Date | undefined, itemId: string | undefined) => void; // Type for the onChange prop\r\n}\r\nexport const onFormatDate = (date?: Date): string => {\r\n try {\r\n if (!date) {\r\n return '';\r\n }\r\n const day = `0${date.getDate()}`.slice(-2);\r\n const month = `0${date.getMonth() + 1}`.slice(-2);\r\n const year = date.getFullYear();\r\n return `${day}/${month}/${year}`;\r\n } catch (error) {\r\n console.error('Error in onFormatDate:', error);\r\n return '';\r\n }\r\n};\r\nconst DispatchDatePicker: React.FC = ({ initialDate, itemId, onChange }) => {\r\n const [selectedDate, setSelectedDate] = useState(initialDate);\r\n\r\n const handleDateChange = (date: Date | null | undefined) => {\r\n setSelectedDate(date ?? undefined); // Ensure we only set Date or null\r\n if (onChange) {\r\n onChange(date ?? undefined, itemId ?? undefined); // Call the onChange prop with Date or null\r\n }\r\n };\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default DispatchDatePicker;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { CartLinePriceEditor, ICartLinePriceEditorResources, PriceComponent } from '@msdyn365-commerce/components';\r\nimport MsDyn365, { IComponentProps, IGridSettings, IImageSettings, Image } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { ChannelDeliveryOptionConfiguration, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\nimport { CartLine, ProductCatalog, SalesLine,ProductDimensionAvailabilitySearchCriteria, ProductDimensionValueInventoryAvailability } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { ArrayExtensions, getFallbackImageUrl, validateCatalogId } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classNames from 'classnames';\r\nimport * as React from 'react';\r\nimport { IncrementalQuantity } from '../../../../utilities/src/incremental-quantity';\r\nimport { CutsField } from '../../../../utilities/src/cuts-field';\r\nimport {\r\n ProductsDataActions,\r\n\r\n} from '@msdyn365-commerce/retail-proxy';\r\nimport { useState } from 'react';\r\nimport {onFormatDate} from '../../../../modules/bremworth-complaints-form/components/form-date-picker'\r\nimport DispatchDatePicker from '../../../../modules/bremworth-order-details/utils/get-delivery-date';\r\nimport { handleDateChange } from '../../../../modules/bremworth-order-details/bremworth-order-details';\r\n//import { createInventoryAvailabilitySearchCriteria ,DeliveryMode} from '@msdyn365-commerce-modules/retail-actions' //'/../../../utilities/src/product-inventory-utils';\r\n/**\r\n * ICartlineResourceString: Interface for specifying the\r\n * resource strings that the component needs.\r\n */\r\nexport interface ICartlineResourceString {\r\n /**\r\n * Display string for discount label\r\n */\r\n discountStringText: string;\r\n\r\n /**\r\n * String for size key\r\n */\r\n sizeString: string;\r\n\r\n /**\r\n * String for color key\r\n */\r\n colorString: string;\r\n\r\n /**\r\n * String associated with the configuration product dimension\r\n */\r\n configString: string;\r\n\r\n /**\r\n * String for style key\r\n */\r\n styleString: string;\r\n\r\n /**\r\n * String for amount key\r\n */\r\n amountString?: string;\r\n\r\n /**\r\n * Display string for quantity label\r\n */\r\n quantityDisplayString: string;\r\n\r\n /**\r\n * Display string for quantity label\r\n */\r\n inputQuantityAriaLabel: string;\r\n\r\n /**\r\n * Aria label for the decrement button in quantity component\r\n */\r\n decrementButtonAriaLabel: string;\r\n\r\n /**\r\n * Aria label for the increment button in quantity component\r\n */\r\n incrementButtonAriaLabel: string;\r\n\r\n /**\r\n * Original text screenreader\r\n */\r\n originalPriceText: string;\r\n\r\n /**\r\n * Current text screenreader\r\n */\r\n currentPriceText: string;\r\n\r\n /**\r\n * Shipping Charges Text\r\n */\r\n shippingChargesText: string;\r\n\r\n priceEditorResources?: ICartLinePriceEditorResources;\r\n salesAgreementPricePrompt?: string;\r\n}\r\n\r\ninterface ICartLineData {\r\n cartLine: CartLine | SalesLine;\r\n cartState?: ICartState;\r\n product?: SimpleProduct;\r\n catalogs?: ProductCatalog[];\r\n}\r\n\r\n/**\r\n * ICartLineProps: The props required to render cartLineitem.\r\n */\r\nexport interface ICartLineProps extends IComponentProps {\r\n /**\r\n * The flag to change the quantity component from intractable to static.\r\n */\r\n disableQuantityInteractivity?: boolean;\r\n\r\n /**\r\n * The primary image url.\r\n */\r\n primaryImageUrl?: string;\r\n\r\n /**\r\n * The product url.\r\n */\r\n productUrl?: string;\r\n\r\n /**\r\n * GridSettings for the product image in cartLine.\r\n */\r\n gridSettings: IGridSettings;\r\n\r\n /**\r\n * ImageSettings for the product image in cartLine.\r\n */\r\n imageSettings: IImageSettings;\r\n\r\n /**\r\n * Boolean flag to indicate if the item is out of stock.\r\n */\r\n isOutOfStock?: boolean;\r\n\r\n /**\r\n * Flag to make quantity section editable.\r\n */\r\n isQuantityEditable?: boolean;\r\n\r\n /**\r\n * Max quantity for line item.\r\n */\r\n maxQuantity?: number;\r\n\r\n /**\r\n * Current quantity for line item.\r\n */\r\n currentQuantity?: number;\r\n\r\n /**\r\n * Resource string for the component.\r\n */\r\n resources: ICartlineResourceString;\r\n\r\n /**\r\n * SalesLine flag.\r\n */\r\n isSalesLine?: boolean;\r\n\r\n /**\r\n * Error message to show in place of quantity.\r\n */\r\n errorMessage?: string;\r\n\r\n /**\r\n * Inventory information label.\r\n */\r\n inventoryInformationLabel?: string;\r\n\r\n /**\r\n * Inventory information class name.\r\n */\r\n inventoryLabelClassName?: string;\r\n\r\n /**\r\n * Flag to show/hide shipping charges for line items.\r\n */\r\n showShippingChargesForLineItems?: boolean;\r\n\r\n /**\r\n * Boolean flag to indicate if cart state status is ready.\r\n */\r\n isCartStateReady?: boolean;\r\n\r\n /**\r\n * Chanel Delivery Option configuration is from api.\r\n */\r\n channelDeliveryOptionConfig?: ChannelDeliveryOptionConfiguration;\r\n\r\n /**\r\n * The telemetry content.\r\n */\r\n telemetryContent?: ITelemetryContent;\r\n\r\n /**\r\n * The cart line index.\r\n */\r\n lineIndex?: number;\r\n\r\n /**\r\n * Quantity onChange callback.\r\n */\r\n quantityOnChange?(cartLine: CartLine, newQuantity: number, lineIndex?: number): boolean;\r\n cutsOnChange?(cartLine: CartLine, newQuantity: string, lineIndex?: number): boolean;\r\n}\r\n\r\ninterface IDimensionStrings {\r\n /**\r\n * String for size key.\r\n */\r\n sizeString: string;\r\n\r\n /**\r\n * String for color key.\r\n */\r\n colorString: string;\r\n\r\n /**\r\n * String associated with the configuration product dimension.\r\n */\r\n configString: string;\r\n\r\n /**\r\n * String for style key.\r\n */\r\n styleString: string;\r\n\r\n /**\r\n * String for amount key.\r\n */\r\n amountString?: string;\r\n}\r\n\r\n/**\r\n * Renders catalog label for the cart line.\r\n * @param props - Cart line props.\r\n * @returns Catalog label.\r\n */\r\nconst CatalogLabelComponent: React.FC = (props: ICartLineProps) => {\r\n const catalogId = props.data.cartLine.CatalogId;\r\n validateCatalogId(catalogId);\r\n\r\n if (!props.context.request.user.isB2b || !catalogId || !ArrayExtensions.hasElements(props.data.catalogs)) {\r\n return null;\r\n }\r\n\r\n const catalog = props.data.catalogs.find(item => item.RecordId === catalogId);\r\n\r\n if (!catalog || !catalog.Name) {\r\n return null;\r\n }\r\n\r\n return
{catalog.Name}
;\r\n};\r\n\r\nconst CartLineItemFunctions = {\r\n // return change dimension if needs to update\r\n renderProductdimensionValue: (Product: SimpleProduct, dimensionValuesWithEstimatedAvailabilities: ProductDimensionValueInventoryAvailability[] | undefined) => {\r\n if (!Product || !Product.Dimensions) {\r\n return undefined;\r\n }\r\n let dimensionValue: string | undefined = undefined;\r\n Product.Dimensions.map(productDimension => {\r\n if (productDimension.DimensionTypeValue === 1) {\r\n if (dimensionValuesWithEstimatedAvailabilities) {\r\n dimensionValuesWithEstimatedAvailabilities.map(dimensions => {\r\n if (dimensions.DimensionValue?.RecordId === productDimension.DimensionValue?.RecordId) {\r\n if (dimensions.DimensionValue?.ExtensionProperties) {\r\n dimensions.DimensionValue?.ExtensionProperties?.forEach(function (item, index) {\r\n if (item.Key === 'FUS_ChangedColor') {\r\n dimensionValue = item.Value?.StringValue;\r\n }\r\n });\r\n }\r\n }\r\n })\r\n }\r\n }\r\n \r\n });\r\n return dimensionValue;\r\n },\r\n renderProductDimensions: (Product: SimpleProduct, DimensionStrings: IDimensionStrings,dimensionValuesWithEstimatedAvailabilities:ProductDimensionValueInventoryAvailability[] | undefined) => {\r\n if (!Product || !Product.Dimensions) {\r\n return [];\r\n }\r\n return Product.Dimensions.map(productDimension => {\r\n \r\n if (productDimension.DimensionTypeValue === 1) {\r\n let dimensionValue:string |undefined\r\n if(productDimension.DimensionValue){\r\n dimensionValue = productDimension.DimensionValue && productDimension.DimensionValue.Value\r\n }\r\n // set dimesion value if its need to update\r\n if(dimensionValuesWithEstimatedAvailabilities){\r\n dimensionValuesWithEstimatedAvailabilities.map(dimensions=>{\r\n if(dimensions.DimensionValue?.RecordId === productDimension.DimensionValue?.RecordId){\r\n if(dimensions.DimensionValue?.ExtensionProperties){\r\n dimensions.DimensionValue?.ExtensionProperties?.forEach(function(item, index) {\r\n if (item.Key === 'FUS_ChangedColor') {\r\n dimensionValue=item.Value?.StringValue;\r\n }\r\n });\r\n }\r\n }\r\n })\r\n }\r\n return (\r\n
\r\n \r\n {DimensionStrings.colorString}:\r\n {dimensionValue && dimensionValue}\r\n \r\n
\r\n );\r\n }\r\n\r\n if (productDimension.DimensionTypeValue === 2) {\r\n return (\r\n
\r\n \r\n {DimensionStrings.configString}:\r\n {productDimension.DimensionValue && productDimension.DimensionValue.Value}\r\n \r\n
\r\n );\r\n }\r\n\r\n if (productDimension.DimensionTypeValue === 3) {\r\n return (\r\n
\r\n \r\n {DimensionStrings.sizeString}:\r\n {productDimension.DimensionValue && productDimension.DimensionValue.Value}\r\n \r\n
\r\n );\r\n }\r\n\r\n if (productDimension.DimensionTypeValue === 4) {\r\n return (\r\n
\r\n \r\n {Product.IsGiftCard ? DimensionStrings.amountString : DimensionStrings.styleString}:\r\n {productDimension.DimensionValue && productDimension.DimensionValue.Value}\r\n \r\n
\r\n );\r\n }\r\n return null;\r\n });\r\n },\r\n\r\n renderDiscountLines: (props: ICartLineProps) => {\r\n if (!props.data.cartLine.DiscountLines || props.data.cartLine.DiscountLines.length === 0) {\r\n return null;\r\n }\r\n\r\n return props.data.cartLine.DiscountLines.map((discountLine, index) => {\r\n return (\r\n
\r\n \r\n {discountLine.OfferName ? discountLine.OfferName : ''}:{` ${props.resources.discountStringText || 'Discount'} `}\r\n \r\n \r\n \r\n \r\n {` (${discountLine.EffectivePercentage !== undefined ? discountLine.EffectivePercentage : ''}%)`}\r\n
\r\n );\r\n });\r\n },\r\n renderInventoryLabel: (props: ICartLineProps) => {\r\n if (!props.inventoryInformationLabel) {\r\n return null;\r\n }\r\n const inventoryCssName = props.inventoryLabelClassName\r\n ? `msc-cart-line__product-inventory-label ${props.inventoryLabelClassName}`\r\n : 'msc-cart-line__product-inventory-label';\r\n return {props.inventoryInformationLabel};\r\n },\r\n\r\n /**\r\n * Gets the react node for product unit of measure display.\r\n * @param props - Icartline props.\r\n * @returns The node representing markup for unit of measure component.\r\n */\r\n renderUnitOfMeasure: (props: ICartLineProps) => {\r\n if (props.data.cartLine.IsInvoiceLine) {\r\n return null;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- Do not need type check for appsettings\r\n if (!props.context.app.config.unitOfMeasureDisplayType || props.context.app.config.unitOfMeasureDisplayType === 'none') {\r\n return undefined;\r\n }\r\n\r\n const product = props.data.product;\r\n if (!product || !product.DefaultUnitOfMeasure) {\r\n return undefined;\r\n }\r\n\r\n return (\r\n
\r\n {product.DefaultUnitOfMeasure}\r\n
\r\n );\r\n },\r\n renderShippingLabel: (props: ICartLineProps) => {\r\n const pickupDeliveryModeCode = props.context.request.channel?.PickupDeliveryModeCode;\r\n const channelDeliveryOptionConfig = props.channelDeliveryOptionConfig;\r\n const cartline = props.data.cartLine;\r\n let hasShippingMethod = false;\r\n if (channelDeliveryOptionConfig !== undefined) {\r\n hasShippingMethod = !!(\r\n cartline.DeliveryMode &&\r\n channelDeliveryOptionConfig.PickupDeliveryModeCodes?.some(deliveryMode => deliveryMode !== cartline.DeliveryMode)\r\n );\r\n } else {\r\n hasShippingMethod = !!(cartline.DeliveryMode && cartline.DeliveryMode !== pickupDeliveryModeCode);\r\n }\r\n if (!hasShippingMethod) {\r\n return undefined;\r\n }\r\n\r\n const shippingChargeLines = (cartline.ChargeLines || []).filter(chargeLine => chargeLine.IsShipping);\r\n\r\n if (shippingChargeLines.length === 0) {\r\n return undefined;\r\n }\r\n\r\n const freightFee = shippingChargeLines.reduce((chargeTotal, chargeLine) => {\r\n return chargeTotal + (chargeLine.CalculatedAmount || 0);\r\n }, 0);\r\n\r\n const priceComponent = (\r\n \r\n );\r\n return (\r\n <>\r\n \r\n {priceComponent}\r\n \r\n );\r\n },\r\n renderOtherCharges: (props: ICartLineProps) => {\r\n const cartline = props.data.cartLine;\r\n const otherCharges = cartline.ChargeLines?.filter(chargeline => !chargeline.IsShipping);\r\n\r\n return (\r\n (otherCharges &&\r\n otherCharges.map((otherCharge, key) => {\r\n return otherCharge && otherCharge.CalculatedAmount ? (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n ) : (\r\n ''\r\n );\r\n })) ||\r\n undefined\r\n );\r\n },\r\n\r\n /**\r\n * Render the sales agreement prompt.\r\n * @param props - The ICartLineProps.\r\n * @returns The JSX.Element.\r\n */\r\n renderSalesAgreementPrompt: (props: ICartLineProps): JSX.Element | null => {\r\n if (props.data.cartLine.SalesAgreementLineRecordId === 0) {\r\n return null;\r\n }\r\n return
{props.resources.salesAgreementPricePrompt}
;\r\n }\r\n};\r\n\r\n// eslint-disable-next-line no-redeclare\r\nconst CartLine: React.FC = (props: ICartLineProps) => {\r\n const { isSalesLine, productUrl, resources } = props;\r\n const { product, cartLine } = props.data;\r\n const [productDimensionValueInventoryAvailability ,setProductDimensionValueInventoryAvailabilities]= useState();\r\n const destructDimensionStrings = {\r\n sizeString: resources.sizeString,\r\n colorString: resources.colorString,\r\n styleString: resources.styleString,\r\n configString: resources.configString,\r\n amountString: resources.amountString\r\n };\r\n \r\n //@ts-ignore\r\n const dimensionValuesWithEstimatedAvailabilities = async (product: SimpleProduct): Promise => {\r\n \r\n if(product)\r\n {\r\n const productDimesion = 1;\r\n let shippingSearchCriteria : ProductDimensionAvailabilitySearchCriteria =\r\n {\r\n \r\n RequestedDimensionTypeValue: productDimesion,\r\n MatchingDimensionValues: [],\r\n FilterByChannelFulfillmentGroup: true,\r\n DeliveryModeTypeFilterValue: 1,\r\n CatalogId: props.data.cartLine.CatalogId,\r\n };\r\n await ProductsDataActions.getDimensionValuesWithEstimatedAvailabilitiesAsync(\r\n { callerContext: props.context.actionContext },\r\n product.MasterProductId ? product.MasterProductId :0,\r\n shippingSearchCriteria\r\n ).then(result => {\r\n setProductDimensionValueInventoryAvailabilities(result);\r\n return result;\r\n }) \r\n \r\n }\r\n else{\r\n return undefined;\r\n }\r\n \r\n };\r\n // return dimesion with estimated availabilitie API for updating dimesion\r\n React.useEffect(() => {\r\n if(product){\r\n dimensionValuesWithEstimatedAvailabilities(product);\r\n }\r\n }, [product]);\r\n\r\n \r\n const fallbackImageUrl = product && getFallbackImageUrl(product.ItemId, props.context.actionContext.requestContext.apiSettings);\r\n const productDimensions = product && CartLineItemFunctions.renderProductDimensions(product, destructDimensionStrings,productDimensionValueInventoryAvailability);\r\n const productdimensionValue = product && CartLineItemFunctions.renderProductdimensionValue(product,productDimensionValueInventoryAvailability);\r\n const imageSettings = props.imageSettings;\r\n if (imageSettings) {\r\n imageSettings.cropFocalRegion = true;\r\n }\r\n const renderDisountLines = CartLineItemFunctions.renderDiscountLines(props);\r\n const renderInventoryLabel = CartLineItemFunctions.renderInventoryLabel(props);\r\n const renderUnitOfMeasure = CartLineItemFunctions.renderUnitOfMeasure(props);\r\n const renderShippingLabel = CartLineItemFunctions.renderShippingLabel(props);\r\n const renderOtherCharges = CartLineItemFunctions.renderOtherCharges(props);\r\n const renderSalesAgreementPrompt = CartLineItemFunctions.renderSalesAgreementPrompt(props);\r\n const payLoad = getPayloadObject('click', props.telemetryContent!, '', product?.RecordId.toString());\r\n const productAttribute = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n let productName = product?.Name || cartLine.Description;\r\n if(productdimensionValue && productdimensionValue){\r\n productName = productName?.concat(\" \",productdimensionValue);\r\n }\r\n \r\n \r\n const imgeClassName = props.data.cartLine.IsInvoiceLine ? 'msc-cart-line__invoice-image' : 'msc-cart-line__product-image';\r\n\r\n const onChange = (newValue: number): boolean => {\r\n if (props.quantityOnChange) {\r\n return props.quantityOnChange(props.data.cartLine, newValue, props.lineIndex);\r\n }\r\n return true;\r\n };\r\n\r\n const onChangeCutsField = (newValue: string): boolean => {\r\n if (props.cutsOnChange) {\r\n return props.cutsOnChange(props.data.cartLine, newValue, props.lineIndex);\r\n }\r\n return true;\r\n };\r\n\r\n const _generateErrorMessage = (): JSX.Element | null => {\r\n if (props.errorMessage) {\r\n return (\r\n
\r\n \r\n {props.errorMessage}\r\n
\r\n );\r\n }\r\n\r\n return null;\r\n };\r\n const isValidDateFormat = (dateString: string | undefined): boolean | null => {\r\n\r\n // Specify the expected date format (dd/mm/yyyy)\r\n const dateFormatRegex = /^(0[1-9]|[1-2][0-9]|3[0-1])\\/(0[1-9]|1[0-2])\\/\\d{4}$/;\r\n if (dateString === undefined) {\r\n return false;\r\n }\r\n \r\n\r\n return dateFormatRegex.test(dateString)\r\n };\r\n const isValidDateFormatRegex = (dateString: string | undefined): boolean | null => {\r\n const specificDateTimeFormatRegex = /^1\\/1\\/1900 12:00:00 AM$/;\r\n\r\n if (dateString === undefined) {\r\n return false;\r\n }\r\n return specificDateTimeFormatRegex.test(dateString)\r\n };\r\n const _generateQuantityandPrice = (): JSX.Element[] | null => {\r\n const nodes = [];\r\n if (props.isOutOfStock) {\r\n return null;\r\n }\r\n\r\n // No quantity selector for invoice line\r\n if (!props.data.cartLine.IsInvoiceLine) {\r\n if (props.data.product && props.isQuantityEditable) {\r\n nodes.push(\r\n
\r\n
{resources.quantityDisplayString}
\r\n \r\n
\r\n );\r\n } else {\r\n nodes.push(\r\n
\r\n \r\n {props.data.cartLine.Quantity} {renderUnitOfMeasure}\r\n
\r\n );\r\n }\r\n }\r\n\r\n nodes.push(\r\n
\r\n \r\n {(props.data.cartLine.DiscountAmount && props.data.cartLine.DiscountAmount > 0 && (\r\n <>\r\n \r\n {` ${props.resources.discountStringText || 'Discount'} `}\r\n \r\n \r\n \r\n )) ||\r\n null}\r\n
\r\n );\r\n\r\n return nodes;\r\n };\r\n\r\n \r\n const isWithin7Days = (givenDateString: string) => {\r\n const givenDate = new Date(givenDateString);\r\n const currentDate = new Date();\r\n const diffTime = Math.abs(givenDate.getTime() - currentDate.getTime());\r\n const diffDays = diffTime / (1000 * 60 * 60 * 24);\r\n if (diffDays > 0 && diffDays >= 7) {\r\n return false;\r\n }\r\n return false;\r\n }\r\n \r\n const _generateDeliveryDateAndCuts = (): JSX.Element[] | null => {\r\n //console.log(props.context.request.telemetryPageName!);\r\n const pageName=props.context.request.telemetryPageName!;\r\n // No quantity selector for invoice line\r\n // Get deliveryDate field.\r\n const { ExtensionProperties, AttributeValues} = props.data.cartLine;\r\n let deliveryDate: string | undefined = '';\r\n ExtensionProperties?.forEach(function(item, index) {\r\n if (item.Key === 'deliveryDate') {\r\n deliveryDate = item.Value?.StringValue;\r\n \r\n }\r\n });\r\n const isFormEditable = isWithin7Days(deliveryDate);\r\n //console.log(pageName,isFormEditable)\r\n const nodes = [];\r\n \r\n // Get cuts field.\r\n let cuts: string | undefined = '';\r\n ExtensionProperties?.forEach(function(item, index) {\r\n if (item.Key === 'cuts') {\r\n cuts = item.Value?.StringValue;\r\n }\r\n });\r\n // Get batchID field.\r\n let batchID: string | undefined = '';\r\n ExtensionProperties?.forEach(function(item, index) {\r\n if (item.Key === 'FUS_InventBatchId') {\r\n batchID = item.Value?.StringValue;\r\n }\r\n });\r\n\r\n // Get rollId field.\r\n let rollId: string | undefined = '';\r\n ExtensionProperties?.forEach(function(item, index) {\r\n if (item.Key === 'FUS_InventSerailId') {\r\n rollId = item.Value?.StringValue;\r\n }\r\n });\r\n\r\n // Get rollId field.\r\n let comments: string | undefined = '';\r\n AttributeValues?.forEach(function(item, index) {\r\n if (item.Name === 'FUS_Comment') {\r\n // @ts-ignore\r\n comments = item.TextValue;\r\n }\r\n });\r\n\r\n // // Get orderHold field.\r\n // let orderHold: number | undefined = 0;\r\n // ExtensionProperties?.forEach(function(item, index) {\r\n // if (item.Key === 'isOrderHold') {\r\n // orderHold = item.Value?.IntegerValue;\r\n // }\r\n // });\r\n if (!props.data.cartLine.IsInvoiceLine && batchID) {\r\n if (!(props.data.product && props.isQuantityEditable)) {\r\n nodes.push(\r\n
\r\n \r\n {batchID}\r\n
\r\n );\r\n }\r\n }\r\n if (!props.data.cartLine.IsInvoiceLine && rollId) {\r\n if (!(props.data.product && props.isQuantityEditable)) {\r\n nodes.push(\r\n
\r\n \r\n {rollId}\r\n
\r\n );\r\n }\r\n }\r\n\r\n if (!props.data.cartLine.IsInvoiceLine && comments) {\r\n if (!(props.data.product && props.isQuantityEditable)) {\r\n nodes.push(\r\n
\r\n \r\n {comments}\r\n
\r\n );\r\n }\r\n }\r\n \r\n if (!props.data.cartLine.IsInvoiceLine && deliveryDate) {\r\n // Extension data issue\r\n let checkDateFormat:boolean | null;\r\n let checkDateFormatRegx:boolean | null;\r\n checkDateFormat=isValidDateFormat(deliveryDate);\r\n checkDateFormatRegx=isValidDateFormatRegex(deliveryDate);\r\n if (!(props.data.product && props.isQuantityEditable) && !checkDateFormatRegx && pageName==='Order details' && isFormEditable) {\r\n nodes.push(\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n if (!(props.data.product && props.isQuantityEditable) && !checkDateFormatRegx && !isFormEditable) {\r\n nodes.push(\r\n
\r\n \r\n {!checkDateFormat?onFormatDate(new Date(deliveryDate)) : deliveryDate}\r\n
\r\n );\r\n }\r\n }\r\n // if (!props.data.cartLine.IsInvoiceLine && orderHold && orderHold === 1) {\r\n // if (!(props.data.product && props.isQuantityEditable)) {\r\n // nodes.push(\r\n //
\r\n // \r\n // {orderHold === 1 ? 'Yes' : ''}\r\n //
\r\n // );\r\n // }\r\n // }\r\n nodes.push(\r\n
\r\n \r\n {props.data.product && props.isQuantityEditable ? (\r\n \r\n ) : (\r\n {cuts}\r\n )}\r\n
\r\n );\r\n\r\n if (!props.data.cartLine.IsInvoiceLine && batchID) {\r\n if (!(props.data.product && !props.isQuantityEditable)) {\r\n nodes.push(\r\n
\r\n \r\n {batchID}\r\n
\r\n );\r\n }\r\n }\r\n if (!props.data.cartLine.IsInvoiceLine && rollId) {\r\n if (!(props.data.product && !props.isQuantityEditable)) {\r\n nodes.push(\r\n
\r\n \r\n {rollId}\r\n
\r\n );\r\n }\r\n }\r\n\r\n if (!props.data.cartLine.IsInvoiceLine && comments) {\r\n if (!(props.data.product && !props.isQuantityEditable)) {\r\n nodes.push(\r\n
\r\n \r\n {comments}\r\n
\r\n );\r\n }\r\n }\r\n\r\n return nodes;\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {MsDyn365.isBrowser ? (\r\n \r\n {productName}\r\n \r\n ) : null}\r\n {ArrayExtensions.hasElements(productDimensions) ? (\r\n
{productDimensions}
\r\n ) : (\r\n ''\r\n )}\r\n {renderUnitOfMeasure}\r\n
\r\n \r\n
\r\n {renderDisountLines}\r\n {renderInventoryLabel}\r\n {props.showShippingChargesForLineItems &&
{renderShippingLabel}
}\r\n {renderOtherCharges}\r\n {renderSalesAgreementPrompt}\r\n
\r\n {_generateQuantityandPrice()}\r\n
{_generateDeliveryDateAndCuts()}
\r\n {props.data.cartLine.IsInvoiceLine && props.data.cartState && props.resources.priceEditorResources && (\r\n \r\n )}\r\n
\r\n
\r\n {_generateErrorMessage()}\r\n \r\n );\r\n};\r\n\r\nexport default CartLine;\r\n\r\n\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport {\r\n Button,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n IPayLoad,\r\n ITelemetryContent,\r\n TelemetryConstant\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { AttributeTextValueClass } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as Entities from '@msdyn365-commerce/retail-proxy/src/Entities/CommerceTypes.g';\r\n\r\n/**\r\n * Specifies different layouts for order history.\r\n */\r\nexport enum dataList {\r\n FUS_Name = 'name',\r\n FUS_Email = 'email',\r\n FUS_Phone = 'phone',\r\n FUS_Comment = 'comment'\r\n}\r\n\r\nexport interface IProjectDetailsBoxProps extends IComponentProps<{}> {\r\n cart: ICartState | undefined;\r\n projectDetailsBoxNameText: string;\r\n projectDetailsBoxEmailText: string;\r\n projectDetailsBoxPhoneText: string;\r\n projectDetailsBoxAddressCommentText: string;\r\n appliedProjectDetailsBoxHeadingText: string;\r\n projectDetailsBoxApplyButtonText: string;\r\n collapseTimeOut: number;\r\n\r\n /**\r\n * The telemetry content\r\n */\r\n telemetryContent?: ITelemetryContent;\r\n projectDetailsBoxApplyCallback?(): void;\r\n}\r\n\r\nexport interface IProjectDetailsBoxComponent extends IComponent {}\r\n\r\nconst ProjectDetailsBoxComponentActions = {};\r\n\r\ninterface IProjectDetailsBoxState {\r\n isCollapseOpen: boolean;\r\n projectDetailsBoxNameValue: string;\r\n projectDetailsBoxEmailValue: string;\r\n projectDetailsBoxPhoneValue: string;\r\n projectDetailsBoxCommentValue: string;\r\n error: string;\r\n success: string;\r\n canApply: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * The ProjectDetailsBox component renders the promocode section.\r\n * @extends {React.PureComponent}\r\n */\r\nclass ProjectDetailsBox extends React.Component {\r\n private readonly payLoad: IPayLoad;\r\n\r\n constructor(props: IProjectDetailsBoxProps, state: IProjectDetailsBoxState) {\r\n super(props);\r\n this.payLoad = getPayloadObject('click', this.props.telemetryContent!, TelemetryConstant.ApplyPromoCode);\r\n this.state = {\r\n isCollapseOpen: false,\r\n projectDetailsBoxNameValue: '',\r\n projectDetailsBoxEmailValue: '',\r\n projectDetailsBoxPhoneValue: '',\r\n projectDetailsBoxCommentValue: '',\r\n error: '',\r\n success: '',\r\n canApply: false\r\n };\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: IProjectDetailsBoxProps): boolean {\r\n if (this.props.appliedProjectDetailsBoxHeadingText !== nextProps.appliedProjectDetailsBoxHeadingText) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public render(): JSX.Element {\r\n return (\r\n
\r\n {this._renderForm(this.props.projectDetailsBoxApplyButtonText, this.props.cart)}\r\n

\r\n {this.state.error}\r\n

\r\n

\r\n {this.state.success}\r\n

\r\n
\r\n );\r\n }\r\n\r\n private readonly _onInputChange = (e: React.ChangeEvent) => {\r\n if (e.target.name === dataList.FUS_Name) {\r\n this.setState({\r\n projectDetailsBoxNameValue: e.target.value.trim()\r\n });\r\n }\r\n if (e.target.name === dataList.FUS_Email) {\r\n this.setState({\r\n projectDetailsBoxEmailValue: e.target.value.trim()\r\n });\r\n }\r\n if (e.target.name === dataList.FUS_Phone) {\r\n this.setState({\r\n projectDetailsBoxPhoneValue: e.target.value.trim()\r\n });\r\n }\r\n if (e.target.name === dataList.FUS_Comment) {\r\n this.setState({\r\n projectDetailsBoxCommentValue: e.target.value\r\n });\r\n }\r\n };\r\n\r\n private readonly _apply = (cartState: ICartState | undefined) => {\r\n if (!cartState || !cartState.cart) {\r\n return;\r\n }\r\n const nameAttributeValue = new AttributeTextValueClass();\r\n nameAttributeValue.Name = 'Project Name';\r\n nameAttributeValue.TextValue = this.state.projectDetailsBoxNameValue;\r\n const emailAttributeValue = new AttributeTextValueClass();\r\n emailAttributeValue.Name = 'Project Email';\r\n emailAttributeValue.TextValue = this.state.projectDetailsBoxEmailValue;\r\n const phoneAttributeValue = new AttributeTextValueClass();\r\n phoneAttributeValue.Name = 'Project Phone';\r\n phoneAttributeValue.TextValue = this.state.projectDetailsBoxPhoneValue;\r\n const addressAttributeValue = new AttributeTextValueClass();\r\n addressAttributeValue.Name = 'Project Address /Comments';\r\n addressAttributeValue.TextValue = this.state.projectDetailsBoxCommentValue;\r\n\r\n const updateAttributeValues: Entities.AttributeValueBase[] = [\r\n nameAttributeValue,\r\n emailAttributeValue,\r\n phoneAttributeValue,\r\n addressAttributeValue\r\n ];\r\n cartState\r\n .updateAttributeValues({\r\n newAttributeValues: updateAttributeValues\r\n })\r\n .then(result => {\r\n if (result.status === 'SUCCESS') {\r\n // Show success text\r\n this.setState({\r\n projectDetailsBoxNameValue: '',\r\n projectDetailsBoxEmailValue: '',\r\n projectDetailsBoxPhoneValue: '',\r\n projectDetailsBoxCommentValue: '',\r\n error: '',\r\n canApply: false,\r\n success: 'Data has been sent successfully!'\r\n });\r\n } else if (result.status === 'FAILED') {\r\n this.setState({ error: 'Error occur, please try again!' });\r\n }\r\n })\r\n .catch(error => {\r\n this.setState({ error: 'Error occur, please try again!' });\r\n });\r\n };\r\n\r\n private readonly _renderForm = (projectDetailsBoxApplyButtonText: string, cartState: ICartState | undefined) => {\r\n const _canApply =\r\n this.state.projectDetailsBoxNameValue !== '' &&\r\n this.state.projectDetailsBoxEmailValue !== '' &&\r\n this.state.projectDetailsBoxPhoneValue !== '' &&\r\n this.state.projectDetailsBoxCommentValue !== ''\r\n ? true\r\n : false;\r\n const _onSubmit = (event: React.FormEvent) => {\r\n event.preventDefault();\r\n this._apply(cartState);\r\n };\r\n const _apply = (event: React.MouseEvent) => {\r\n this._apply(cartState);\r\n };\r\n const attributes = getTelemetryAttributes(this.props.telemetryContent!, this.payLoad);\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 \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n {projectDetailsBoxApplyButtonText}\r\n \r\n
\r\n
\r\n );\r\n };\r\n}\r\n\r\n// @ts-ignore\r\nexport const ProjectDetailsBoxComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\r\n // @ts-ignore\r\n IProjectDetailsBoxComponent\r\n>('ProjectDetailsBox', { component: ProjectDetailsBox, ...ProjectDetailsBoxComponentActions });\r\n"],"names":["IncrementalQuantity","IncrementalQuantity_1","React","constructor","props","_props$currentCount","_this$props$min","super","inputRef","isMobileView","isMobileCheck","isMobile","variant","VariantType","Browser","context","gridSettings","xs","w","sm","md","lg","xl","_validateMin","Number","isNaN","this","state","currentInput","setState","_minValue","currentValue","Math","min","max","currentCount","isUpdating","_onIncrement","bind","_onDecrement","_handleChange","payLoad","getPayloadObject","telemetryContent","defaultProps","static","nextState","_objectSpread","_props$currentCount2","disabled","async","render","_this$props$inputQuan","_this$props$inputQuan2","unitOfMeasureText","hiddenCurrentCount","glyphMinusClassName","decrementGlyphClass","glyphPlusClassName","incrementGlyphClass","decrementDisabled","isGiftCard","incrementDisabled","contentAction","etext","TelemetryConstant","DecrementQuantity","decrementAttributes","getTelemetryAttributes","IncrementQuantity","incrementAttributes","ariaLablelText","inputQuantityAriaLabel","extraClassDecrement","extraClassIncrement","className","id","Object","assign","title","decrementButtonAriaLabel","onClick","color","type","value","onChange","onBlur","role","ref","incrementButtonAriaLabel","_this$inputRef$curren","invokeCallback","currQuantity","current","updatedQuantity","_this$inputRef$curren2","e","parseFloat","target","_debounce","inputElement","HTMLInputElement","setAttribute","toString","__decorate","observer","CutsField","_props$currentCuts","currentCuts","hasError","_handleBlur","_isValid","_props$currentCuts2","hiddenCurrentCuts","splitted","split","every","element","onFormatDate","date","day","getDate","slice","month","getMonth","getFullYear","error","console","_ref","initialDate","itemId","selectedDate","setSelectedDate","useState","DatePicker","label","onSelectDate","undefined","strings","defaultDatePickerStrings","formatDate","CatalogLabelComponent","catalogId","data","cartLine","CatalogId","validateCatalogId","request","user","isB2b","ArrayExtensions","hasElements","catalogs","catalog","find","item","RecordId","Name","CartLineItemFunctions","renderProductdimensionValue","Product","dimensionValuesWithEstimatedAvailabilities","Dimensions","dimensionValue","map","productDimension","DimensionTypeValue","dimensions","_dimensions$Dimension","_productDimension$Dim","_dimensions$Dimension2","_dimensions$Dimension3","DimensionValue","ExtensionProperties","forEach","index","_item$Value","Key","Value","StringValue","renderProductDimensions","DimensionStrings","_dimensions$Dimension4","_productDimension$Dim2","_dimensions$Dimension5","_dimensions$Dimension6","_item$Value2","key","colorString","configString","sizeString","IsGiftCard","amountString","styleString","DiscountLines","length","discountLine","OfferId","OfferName","resources","discountStringText","PriceComponent","isSalesLine","price","CustomerContextualPrice","PeriodicDiscount","EffectiveAmount","BasePrice","typeName","EffectivePercentage","inventoryInformationLabel","inventoryCssName","inventoryLabelClassName","IsInvoiceLine","app","config","unitOfMeasureDisplayType","product","DefaultUnitOfMeasure","_props$context$reques","pickupDeliveryModeCode","channel","PickupDeliveryModeCode","channelDeliveryOptionConfig","cartline","hasShippingMethod","_channelDeliveryOptio","DeliveryMode","PickupDeliveryModeCodes","some","deliveryMode","shippingChargeLines","ChargeLines","filter","chargeLine","IsShipping","freightFee","reduce","chargeTotal","CalculatedAmount","priceComponent","freePriceText","shippingChargesText","_cartline$ChargeLines","otherCharges","chargeline","otherCharge","Description","SalesAgreementLineRecordId","salesAgreementPricePrompt","_props$primaryImageUr","productUrl","productDimensionValueInventoryAvailability","setProductDimensionValueInventoryAvailabilities","destructDimensionStrings","shippingSearchCriteria","RequestedDimensionTypeValue","MatchingDimensionValues","FilterByChannelFulfillmentGroup","DeliveryModeTypeFilterValue","ProductsDataActions","callerContext","actionContext","MasterProductId","then","result","fallbackImageUrl","getFallbackImageUrl","ItemId","requestContext","apiSettings","productDimensions","productdimensionValue","imageSettings","cropFocalRegion","renderDisountLines","renderInventoryLabel","renderUnitOfMeasure","renderShippingLabel","renderOtherCharges","renderSalesAgreementPrompt","productAttribute","productName","_productName","concat","imgeClassName","newValue","quantityOnChange","lineIndex","onChangeCutsField","cutsOnChange","Image","src","primaryImageUrl","fallBackSrc","altText","loadFailureBehavior","MsDyn365","isBrowser","href","NetAmountWithAllInclusiveTax","GrossAmount","NetAmountWithoutTax","NetPrice","salesAgreementLineId","showShippingChargesForLineItems","_generateQuantityandPrice","nodes","isOutOfStock","isQuantityEditable","push","quantityDisplayString","LineId","maxQuantity","currentQuantity","isCartStateReady","classNames","Quantity","originalPriceText","currentPriceText","DiscountAmount","_generateDeliveryDateAndCuts","pageName","telemetryPageName","AttributeValues","deliveryDate","_item$Value3","isFormEditable","givenDateString","givenDate","Date","currentDate","abs","getTime","isWithin7Days","cuts","_item$Value4","batchID","_item$Value5","rollId","_item$Value6","comments","TextValue","checkDateFormat","checkDateFormatRegx","_props$data$product$I","_props$data$product","dateString","test","isValidDateFormatRegex","DispatchDatePicker","handleDateChange","cartState","priceEditorResources","CartLinePriceEditor","errorMessage","dataList","ProjectDetailsBox","_onInputChange","name","FUS_Name","projectDetailsBoxNameValue","trim","FUS_Email","projectDetailsBoxEmailValue","FUS_Phone","projectDetailsBoxPhoneValue","FUS_Comment","projectDetailsBoxCommentValue","_apply","cart","nameAttributeValue","AttributeTextValueClass","emailAttributeValue","phoneAttributeValue","addressAttributeValue","updateAttributeValues","newAttributeValues","status","canApply","success","catch","_renderForm","projectDetailsBoxApplyButtonText","_canApply","attributes","onSubmit","event","preventDefault","htmlFor","projectDetailsBoxNameText","projectDetailsBoxEmailText","projectDetailsBoxPhoneText","projectDetailsBoxAddressCommentText","Button","ApplyPromoCode","isCollapseOpen","shouldComponentUpdate","nextProps","appliedProjectDetailsBoxHeadingText","ProjectDetailsBoxComponent","msdyn365Commerce","createComponent","component"],"sourceRoot":""}