{"version":3,"file":"static/js/12.af40e8afc50d5bac28db.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/actions/customProxy/ATP1/DataServiceEntities.g.ts?128a","webpack://Msdyn365.Commerce.Online/./src/actions/customProxy/ATP1/DataActionExtension.g.ts?7656","webpack://Msdyn365.Commerce.Online/./src/modules/krannich-c-search-result-container/components/productCard.component.tsx?3701","webpack://Msdyn365.Commerce.Online/./src/themes/krannich/views/buybox.view.tsx?519c","webpack://Msdyn365.Commerce.Online/./src/themes/krannich/views/checkout-customer-account-payment.view.tsx?5a6b","webpack://Msdyn365.Commerce.Online/./src/themes/krannich/views/checkout-delivery-options.view.tsx?d41b","webpack://Msdyn365.Commerce.Online/./src/themes/krannich/views/components/carticon.component.tsx?80b5","webpack://Msdyn365.Commerce.Online/./src/themes/krannich/views/components/price.component.tsx?7e44","webpack://Msdyn365.Commerce.Online/./src/themes/krannich/views/components/promocode.component.tsx?d4b5","webpack://Msdyn365.Commerce.Online/./src/themes/krannich/views/product-specification.view.tsx?6b78","webpack://Msdyn365.Commerce.Online/./src/actions/customProxy/PDPDownloadAbleLinks/DataServiceEntities.g.ts?914e","webpack://Msdyn365.Commerce.Online/./src/actions/customProxy/PDPDownloadAbleLinks/DataActionExtension.g.ts?8069","webpack://Msdyn365.Commerce.Online/./src/themes/krannich/views/quickview.view.tsx?7bec","webpack://Msdyn365.Commerce.Online/./src/themes/krannich/views/sign-in.view.tsx?49b7","webpack://Msdyn365.Commerce.Online/./src/utils/ATP/atpESD.tsx?4eac","webpack://Msdyn365.Commerce.Online/./src/utils/ATP/atpESDMessage.tsx?7cba","webpack://Msdyn365.Commerce.Online/./src/utils/ATP/atpKitESD.tsx?229a","webpack://Msdyn365.Commerce.Online/./src/utils/Kits/kits.tsx?777d","webpack://Msdyn365.Commerce.Online/./src/utils/atp-utils.tsx?854b","webpack://Msdyn365.Commerce.Online/./src/utils/badges.tsx?5a27","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/organization-users-tile.view.tsx?bac2","webpack://Msdyn365.Commerce.Online/./src/modules/catalog-picker/catalog-picker.tsx?02aa","webpack://Msdyn365.Commerce.Online/./src/modules/catalog-picker/catalog-picker.view.tsx?1e13","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/cart.view.tsx?ac8f","webpack://Msdyn365.Commerce.Online/./src/modules/order-template/order-template.view.tsx?a45e","webpack://Msdyn365.Commerce.Online/./src/modules/social-share/social-share.tsx?899b","webpack://Msdyn365.Commerce.Online/./src/modules/social-share/social-share.view.tsx?dcdf"],"sourcesContent":["// tslint:disable\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\n/**\r\n * KRV_ATPLeadTimePropertiesDate entity interface.\r\n */\r\nexport interface IKRV_ATPLeadTimePropertiesDate {\r\n Id: number;\r\n ATPDate?: string;\r\n Quantity: number;\r\n Message?: string;\r\n PODate?: string;\r\n POQuantity: number;\r\n POMessage?: string;\r\n PurchaseLeadTimeDate?: string;\r\n PurchaseLeadTimeQuantity: number;\r\n PurchaseLeadTimeMessage?: string;\r\n ItemStatusMessage?: string;\r\n StatusCode?: string;\r\n TrafficLight?: string;\r\n ExtensionProperties?: Entities.CommerceProperty[];\r\n}\r\n\r\n/**\r\n * KRV_ATPLeadTimePropertiesQuantityRequestEntity entity interface.\r\n */\r\nexport interface IKRV_ATPLeadTimePropertiesQuantityRequestEntity {\r\n itemID?: string;\r\n Qty: number;\r\n ExtensionProperties?: Entities.CommerceProperty[];\r\n}\r\n\r\nexport interface IKRV_ATPLeadTimeQuantityRequestBody {\r\n itemID: string;\r\n Qty: number;\r\n}\r\n\r\n/**\r\n * KRV_ATPLeadTimePropertiesQuantityResponseEntity entity interface.\r\n */\r\nexport interface IKRV_ATPLeadTimePropertiesQuantityResponseEntity {\r\n ItemId?: string;\r\n ATPDate?: string;\r\n Message?: string;\r\n ExtensionProperties?: Entities.CommerceProperty[];\r\n}\r\n\r\n/**\r\n * KRV_GetATPLeadTimeResponseQuantity entity interface.\r\n */\r\nexport interface IKRV_GetATPLeadTimeResponseQuantity {\r\n ATPLeadTimePropertiesQuantityResponseEntityList?: IKRV_ATPLeadTimePropertiesQuantityResponseEntity[];\r\n HighestDate?: string;\r\n}\r\n\r\n/**\r\n * KRV_ATPLeadTimePropertiesDate entity class.\r\n */\r\nexport class KRV_ATPLeadTimePropertiesDateExtensionClass implements IKRV_ATPLeadTimePropertiesDate {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Id: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ATPDate: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Quantity: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Message: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public PODate: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public POQuantity: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public POMessage: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public PurchaseLeadTimeDate: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public PurchaseLeadTimeQuantity: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public PurchaseLeadTimeMessage: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ItemStatusMessage: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public StatusCode: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public TrafficLight: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ExtensionProperties: Entities.CommerceProperty[];\r\n\r\n // Navigation properties names\r\n\r\n /**\r\n * Construct an object from odata response.\r\n * @param {any} odataObject The odata result object.\r\n */\r\n constructor(odataObject?: any) {\r\n odataObject = odataObject || {};\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Id = odataObject.Id ? parseInt(odataObject.Id, 10) : 0;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ATPDate = odataObject.ATPDate;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Quantity = odataObject.Quantity ? parseFloat(odataObject.Quantity) : 0;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Message = odataObject.Message;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.PODate = odataObject.PODate;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.POQuantity = odataObject.POQuantity ? parseFloat(odataObject.POQuantity) : 0;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.POMessage = odataObject.POMessage;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.PurchaseLeadTimeDate = odataObject.PurchaseLeadTimeDate;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.PurchaseLeadTimeQuantity = odataObject.PurchaseLeadTimeQuantity ? parseFloat(odataObject.PurchaseLeadTimeQuantity) : 0;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.PurchaseLeadTimeMessage = odataObject.PurchaseLeadTimeMessage;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ItemStatusMessage = odataObject.ItemStatusMessage;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.StatusCode = odataObject.StatusCode;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.TrafficLight = odataObject.TrafficLight;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties = undefined;\r\n if (odataObject.ExtensionProperties) {\r\n this.ExtensionProperties = [];\r\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\r\n if (odataObject.ExtensionProperties[Number(i)]) {\r\n if (odataObject.ExtensionProperties[Number(i)]['@odata.type']) {\r\n var className: string = odataObject.ExtensionProperties[Number(i)]['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat('Class');\r\n if (EntityClasses[String(className)]) {\r\n this.ExtensionProperties[Number(i)] = new EntityClasses[String(className)](\r\n odataObject.ExtensionProperties[Number(i)]\r\n );\r\n }\r\n } else {\r\n this.ExtensionProperties[Number(i)] = new EntityClasses.CommercePropertyClass(\r\n odataObject.ExtensionProperties[Number(i)]\r\n );\r\n }\r\n } else {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties[Number(i)] = undefined;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * KRV_ATPLeadTimePropertiesQuantityRequestEntity entity class.\r\n */\r\nexport class KRV_ATPLeadTimePropertiesQuantityRequestEntityExtensionClass implements IKRV_ATPLeadTimePropertiesQuantityRequestEntity {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public itemID: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Qty: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ExtensionProperties: Entities.CommerceProperty[];\r\n\r\n // Navigation properties names\r\n\r\n /**\r\n * Construct an object from odata response.\r\n * @param {any} odataObject The odata result object.\r\n */\r\n constructor(odataObject?: any) {\r\n odataObject = odataObject || {};\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.itemID = odataObject.itemID;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Qty = odataObject.Qty;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties = undefined;\r\n if (odataObject.ExtensionProperties) {\r\n this.ExtensionProperties = [];\r\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\r\n if (odataObject.ExtensionProperties[Number(i)]) {\r\n if (odataObject.ExtensionProperties[Number(i)]['@odata.type']) {\r\n var className: string = odataObject.ExtensionProperties[Number(i)]['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat('Class');\r\n if (EntityClasses[String(className)]) {\r\n this.ExtensionProperties[Number(i)] = new EntityClasses[String(className)](\r\n odataObject.ExtensionProperties[Number(i)]\r\n );\r\n }\r\n } else {\r\n this.ExtensionProperties[Number(i)] = new EntityClasses.CommercePropertyClass(\r\n odataObject.ExtensionProperties[Number(i)]\r\n );\r\n }\r\n } else {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties[Number(i)] = undefined;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * KRV_ATPLeadTimePropertiesQuantityResponseEntity entity class.\r\n */\r\nexport class KRV_ATPLeadTimePropertiesQuantityResponseEntityExtensionClass implements IKRV_ATPLeadTimePropertiesQuantityResponseEntity {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ItemId: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ATPDate: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Message: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ExtensionProperties: Entities.CommerceProperty[];\r\n\r\n // Navigation properties names\r\n\r\n /**\r\n * Construct an object from odata response.\r\n * @param {any} odataObject The odata result object.\r\n */\r\n constructor(odataObject?: any) {\r\n odataObject = odataObject || {};\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ItemId = odataObject.ItemId;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ATPDate = odataObject.ATPDate;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Message = odataObject.Message;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties = undefined;\r\n if (odataObject.ExtensionProperties) {\r\n this.ExtensionProperties = [];\r\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\r\n if (odataObject.ExtensionProperties[Number(i)]) {\r\n if (odataObject.ExtensionProperties[Number(i)]['@odata.type']) {\r\n var className: string = odataObject.ExtensionProperties[Number(i)]['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat('Class');\r\n if (EntityClasses[String(className)]) {\r\n this.ExtensionProperties[Number(i)] = new EntityClasses[String(className)](\r\n odataObject.ExtensionProperties[Number(i)]\r\n );\r\n }\r\n } else {\r\n this.ExtensionProperties[Number(i)] = new EntityClasses.CommercePropertyClass(\r\n odataObject.ExtensionProperties[Number(i)]\r\n );\r\n }\r\n } else {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties[Number(i)] = undefined;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * KRV_GetATPLeadTimeResponseQuantity entity class.\r\n */\r\nexport class KRV_GetATPLeadTimeResponseQuantityExtensionClass implements IKRV_GetATPLeadTimeResponseQuantity {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ATPLeadTimePropertiesQuantityResponseEntityList: IKRV_ATPLeadTimePropertiesQuantityResponseEntity[];\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public HighestDate: string;\r\n\r\n // Navigation properties names\r\n\r\n /**\r\n * Construct an object from odata response.\r\n * @param {any} odataObject The odata result object.\r\n */\r\n constructor(odataObject?: any) {\r\n odataObject = odataObject || {};\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ATPLeadTimePropertiesQuantityResponseEntityList = undefined;\r\n if (odataObject.ATPLeadTimePropertiesQuantityResponseEntityList) {\r\n this.ATPLeadTimePropertiesQuantityResponseEntityList = [];\r\n for (var i = 0; i < odataObject.ATPLeadTimePropertiesQuantityResponseEntityList.length; i++) {\r\n if (odataObject.ATPLeadTimePropertiesQuantityResponseEntityList[Number(i)]) {\r\n if (odataObject.ATPLeadTimePropertiesQuantityResponseEntityList[Number(i)]['@odata.type']) {\r\n var className: string = odataObject.ATPLeadTimePropertiesQuantityResponseEntityList[Number(i)]['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat('Class');\r\n if (EntityClasses[String(className)]) {\r\n this.ATPLeadTimePropertiesQuantityResponseEntityList[Number(i)] = new EntityClasses[String(className)](\r\n odataObject.ATPLeadTimePropertiesQuantityResponseEntityList[Number(i)]\r\n );\r\n }\r\n } else {\r\n this.ATPLeadTimePropertiesQuantityResponseEntityList[\r\n Number(i)\r\n ] = new KRV_ATPLeadTimePropertiesQuantityResponseEntityExtensionClass(\r\n odataObject.ATPLeadTimePropertiesQuantityResponseEntityList[Number(i)]\r\n );\r\n }\r\n } else {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ATPLeadTimePropertiesQuantityResponseEntityList[Number(i)] = undefined;\r\n }\r\n }\r\n }\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.HighestDate = odataObject.HighestDate;\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 * THIS FILE IS AN AUTOGENERATED TYPESCRIPT PROXY EXTENSION.\r\n * TO USE THIS FILE, IT MUST BE ADDED TO A D365COMMERCE APPLICATION\r\n */\r\n// tslint:disable\r\nimport { AsyncResult, callActionOrExecute, DataServiceQuery, IContext, IDataServiceRequest } from '@msdyn365-commerce/retail-proxy';\r\n// @ts-ignore\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as DataServiceEntities from './DataServiceEntities.g';\r\n\r\n// @ts-ignore\r\nfunction kRV_ATPQuery(id?: number): DataServiceQuery {\r\n const key = id ? { Id: id } : null;\r\n return new DataServiceQuery(\r\n 'KRV_ATP',\r\n 'KRV_ATPLeadTimePropertiesDate',\r\n DataServiceEntities.KRV_ATPLeadTimePropertiesDateExtensionClass,\r\n key\r\n );\r\n}\r\n\r\nexport function createKRV_GetATPLeadTimeWithDateInput(itemId: string, requestedDate: string): IDataServiceRequest {\r\n const query = kRV_ATPQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'KRV_GetATPLeadTimeWithDate',\r\n true,\r\n DataServiceEntities.KRV_ATPLeadTimePropertiesDateExtensionClass,\r\n 'false',\r\n { bypassCache: 'get', returnEntity: 'DataServiceEntities.IKRV_ATPLeadTimePropertiesDate' },\r\n { itemId: itemId, requestedDate: requestedDate }\r\n );\r\n}\r\n\r\nexport function kRV_GetATPLeadTimeWithDateAsync(\r\n context: IContext,\r\n itemId: string,\r\n requestedDate: string\r\n): AsyncResult {\r\n const request = createKRV_GetATPLeadTimeWithDateInput(itemId, requestedDate);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n\r\nexport function createKRV_GetATPLeadTimeWithQuantityInput(\r\n kRVATPLeadTimeQuantity: DataServiceEntities.IKRV_ATPLeadTimePropertiesQuantityRequestEntity[]\r\n): IDataServiceRequest {\r\n const query = kRV_ATPQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'KRV_GetATPLeadTimeWithQuantity',\r\n true,\r\n DataServiceEntities.KRV_GetATPLeadTimeResponseQuantityExtensionClass,\r\n 'false',\r\n { bypassCache: 'get', returnEntity: 'DataServiceEntities.IKRV_GetATPLeadTimeResponseQuantity' },\r\n { KRVATPLeadTimeQuantity: kRVATPLeadTimeQuantity }\r\n );\r\n}\r\n\r\nexport function kRV_GetATPLeadTimeWithQuantityAsync(\r\n context: IContext,\r\n kRVATPLeadTimeQuantity: DataServiceEntities.IKRV_ATPLeadTimePropertiesQuantityRequestEntity[]\r\n): AsyncResult {\r\n const request = createKRV_GetATPLeadTimeWithQuantityInput(kRVATPLeadTimeQuantity);\r\n return callActionOrExecute(request, context.callerContext);\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 { IProductsDimensionsAvailabilities } from '@msdyn365-commerce/commerce-entities';\r\nimport {\r\n getCatalogId,\r\n IComponent,\r\n IComponentProps,\r\n ICoreContext,\r\n IGridSettings,\r\n IImageData,\r\n IImageSettings,\r\n Image,\r\n msdyn365Commerce\r\n} from '@msdyn365-commerce/core';\r\nimport { AttributeValue, Customer, ProductPrice, ProductSearchResult, Cart, AsyncResult } from '@msdyn365-commerce/retail-proxy';\r\n// Todo: will remove getProductPageUrlSync after implentation of custom urls\r\nimport { generateImageUrl, /*getProductPageUrlSync,*/ validateCatalogId } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport PriceComponent, { IPriceComponentResources } from '../../../themes/krannich/views/components/price.component';\r\nimport { IPlpRequestPriceButtonData } from '../krannich-c-search-result-container.props.autogenerated';\r\nimport { ATPMessage, TrafficLights } from '../../../utils/atp-utils';\r\nimport { _calculateWpPrice, filteredProductAttributeList, formatUrlPath, isRequestPrice, taxPercentage } from '../../../utils/helper';\r\nimport { PromotionBadges } from '../../../utils/badges';\r\n\r\nexport interface IProductComponentProps extends IComponentProps<{ product?: ProductSearchResult }> {\r\n className?: string;\r\n imageSettings?: IImageSettings;\r\n savingsText?: string;\r\n freePriceText?: string;\r\n originalPriceText?: string;\r\n currentPriceText?: string;\r\n ratingAriaLabel?: string;\r\n ratingCountAriaLabel?: string;\r\n allowBack?: boolean;\r\n telemetryContent?: ITelemetryContent;\r\n quickViewButton?: React.ReactNode;\r\n productComparisonButton?: React.ReactNode;\r\n inventoryLabel?: string;\r\n isPriceMinMaxEnabled?: boolean;\r\n priceResources?: IPriceComponentResources;\r\n dimensionAvailabilities?: IProductsDimensionsAvailabilities[];\r\n swatchItemAriaLabel?: string;\r\n requestPriceBtn?: IPlpRequestPriceButtonData | undefined;\r\n activePrices?: ProductPrice[];\r\n customerInformation?: Customer;\r\n resources?: any;\r\n atpData?: any;\r\n cart?: AsyncResult;\r\n}\r\n\r\nexport interface IProductComponent extends IComponent {}\r\n\r\nconst PriceComponentActions = {};\r\n\r\n/**\r\n * Renders product comparison button similar to the quick view button.\r\n * @param productComparisonButton - React element of the button.\r\n * @param product - Current product info.\r\n * @param catalogId - Current catalog.\r\n * @returns React element for the specific product.\r\n */\r\nfunction renderProductComparisonButton(\r\n productComparisonButton: React.ReactNode,\r\n product: ProductSearchResult,\r\n catalogId: number\r\n): JSX.Element | undefined {\r\n validateCatalogId(catalogId);\r\n return React.cloneElement(productComparisonButton as React.ReactElement, { product, catalogId });\r\n}\r\n\r\nconst ProductCard: React.FC = ({\r\n data,\r\n context,\r\n imageSettings,\r\n telemetryContent,\r\n quickViewButton,\r\n productComparisonButton,\r\n requestPriceBtn,\r\n activePrices,\r\n customerInformation,\r\n resources,\r\n atpData,\r\n cart\r\n}) => {\r\n const product = data.product;\r\n //To set Image Url\r\n const [imgURI, setImgURL] = React.useState();\r\n const [producerName, setProducerName] = React.useState('');\r\n const [isBundle, setIsBundle] = React.useState(false);\r\n //to generate Image url after getting img url from api call\r\n React.useEffect(() => {\r\n if (imgURI) {\r\n let imageUrl = generateImageUrl(imgURI, context.actionContext.requestContext.apiSettings);\r\n imageUrl = imageUrl?.replace('=/', '=') || '';\r\n setImgURL(imageUrl);\r\n }\r\n }, [imgURI]);\r\n\r\n const isBundleProduct = () => {\r\n product?.AttributeValues?.map(e => {\r\n if (e.Name === 'IsBundleProduct') {\r\n if (e.BooleanValue === true) {\r\n setIsBundle(true);\r\n }\r\n }\r\n });\r\n };\r\n React.useEffect(() => {\r\n if (product) {\r\n findProducerName();\r\n isBundleProduct();\r\n }\r\n }, [product]);\r\n const _renderQuickView = (quickview: React.ReactNode, item?: number, attributevalues?: AttributeValue[]): JSX.Element | null => {\r\n if (!quickview) {\r\n return null;\r\n }\r\n return React.cloneElement(quickview as React.ReactElement, {\r\n selectedProductId: item,\r\n attributevalues: attributevalues,\r\n cart: cart\r\n });\r\n };\r\n //To set the producer name\r\n React.useEffect(() => {\r\n if (producerName) {\r\n setImgURL(producerName);\r\n }\r\n }, [producerName]);\r\n\r\n /**\r\n * Updates the product url link to product details page.\r\n * @param productDetailsPageUrl - Product page url.\r\n * @param coreContext - Context of the module using the component.\r\n * @param queryString - Querystring to be added to the URL.\r\n * @returns The update product page url.\r\n */\r\n function updateProductUrl(productDetailsPageUrl: string, coreContext: ICoreContext, queryString: string): string {\r\n const sourceUrl = new URL(productDetailsPageUrl, coreContext.request.apiSettings.baseUrl);\r\n if (sourceUrl.search) {\r\n sourceUrl.search += `&${queryString}`;\r\n } else {\r\n sourceUrl.search += queryString;\r\n }\r\n\r\n const updatedUrl = new URL(sourceUrl.href);\r\n return updatedUrl.pathname + sourceUrl.search;\r\n }\r\n const productAttributes = filteredProductAttributeList(product?.AttributeValues, context.app.config.kcProductAttribute);\r\n const findProducerName = () => {\r\n productAttributes?.map(e => {\r\n if (e.identifier === 'Manufacturer') {\r\n const manufactuerValueforImage = e.ExtensionProperties?.find(eProperty => eProperty.Key === 'globalAttributeValue')?.Value;\r\n setProducerName(manufactuerValueforImage?.StringValue);\r\n }\r\n });\r\n };\r\n const _renderProducerName = (prod: ProductSearchResult): string => {\r\n if (!prod) {\r\n return '';\r\n }\r\n return productAttributes?.find(attr => attr.identifier === 'Manufacturer')?.TextValue || '';\r\n };\r\n const _renderProducerKeyName = (prod: ProductSearchResult): string => {\r\n if (!prod) {\r\n return '';\r\n }\r\n return productAttributes?.find(attr => attr.identifier === 'Manufacturer')?.Name || '';\r\n };\r\n const getManufacturerItemTypeName = (prod: ProductSearchResult): string => {\r\n if (!prod) {\r\n return '';\r\n }\r\n return prod?.ExtensionProperties?.find(extension => extension.Key === 'ManufItemTypeName')?.Value?.StringValue || '';\r\n };\r\n // Todo: will remove productUrl after implentation of custom urls\r\n // let productUrl = product\r\n // ? getProductPageUrlSync(\r\n // formatUrlPath(_renderProducerName(product), getManufacturerItemTypeName(product)) ?? '',\r\n // product.RecordId,\r\n // context.actionContext,\r\n // undefined\r\n // )\r\n // : '';\r\n\r\n const urlPath = formatUrlPath(_renderProducerName(product!), getManufacturerItemTypeName(product!));\r\n const pathName = context.actionContext.requestContext.url.requestUrl.pathname.split('/');\r\n const isAddingPathWithUrl = context.actionContext.requestContext.app.config.addPathWithUrl ?? false;\r\n let productUrl =\r\n product &&\r\n (isAddingPathWithUrl\r\n ? `${context.actionContext.requestContext.url.requestUrl.origin}/${pathName[1]}/${urlPath}/${product.RecordId}.p`\r\n : `${context.actionContext.requestContext.url.requestUrl.origin}/${urlPath}/${product.RecordId}.p`);\r\n if (productUrl) {\r\n productUrl = updateProductUrl(productUrl, context, 'back=true');\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access -- app context is generic\r\n\r\n if (!product) {\r\n return null;\r\n }\r\n\r\n // Construct telemetry attribute to render\r\n const payLoad = getPayloadObject('click', telemetryContent!, '', product.RecordId.toString());\r\n\r\n const attribute = getTelemetryAttributes(telemetryContent!, payLoad);\r\n //use this function to render or display category image\r\n const _renderCategoryImg = (imgURI: string) => {\r\n return (\r\n
\r\n producer-images\r\n
\r\n );\r\n };\r\n\r\n const _renderProductPlacementImage = (\r\n imageSettings?: IImageSettings,\r\n gridSettings?: IGridSettings,\r\n imageUrl?: string,\r\n altText?: string\r\n ): JSX.Element | null => {\r\n if (!imageUrl || !gridSettings || !imageSettings) {\r\n return null;\r\n }\r\n const img: IImageData = {\r\n src: imageUrl,\r\n altText: altText ? altText : ''\r\n };\r\n const imageProps = {\r\n gridSettings: gridSettings,\r\n imageSettings\r\n };\r\n return ;\r\n };\r\n\r\n const activePrice = activePrices?.find((val: any) => val?.ProductId === product?.RecordId);\r\n const trafficLightATP = atpData && atpData?.filter((item: any) => item?.ItemId === product?.ItemId);\r\n const atpMsgRes = trafficLightATP && trafficLightATP[0]?.JsonResponseObject;\r\n const atpMsgResParsed = atpMsgRes && JSON.parse(atpMsgRes);\r\n const extensionsProps = product?.ExtensionProperties;\r\n const customerTaxPercentage = taxPercentage(customerInformation!);\r\n let promotionBadge = '';\r\n if (extensionsProps?.find(e => e?.Key === 'PromotionBadge')) {\r\n promotionBadge = extensionsProps?.find(e => e?.Key === 'PromotionBadge')?.Value?.StringValue || '';\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
{imgURI && _renderCategoryImg(imgURI)}
\r\n
\r\n
\r\n {_renderProductPlacementImage(imageSettings, context.request.gridSettings, product.PrimaryImageUrl, product.Name)}\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n

{product.Name}

\r\n\r\n
\r\n {resources.itemNumberLabel}\r\n {product.ItemId}\r\n
\r\n\r\n
\r\n \r\n
\r\n {_renderProducerKeyName(product)}: {_renderProducerName(product)}\r\n
\r\n
\r\n
\r\n
\r\n {context.actionContext.requestContext.user.isAuthenticated && trafficLightATP && (\r\n
\r\n \r\n {isBundle ? (\r\n

{resources.atpDiscontinuedMessageLabel}

\r\n ) : (\r\n /*VSI CUSTOMIZATION | DATE FORMATE | START | */\r\n atpMsgResParsed && (\r\n \r\n )\r\n /*VSI CUSTOMIZATION | DATE FORMATE | END | */\r\n )}\r\n
\r\n )}\r\n \r\n \r\n {context.actionContext.requestContext.user.isAuthenticated ? (\r\n <>\r\n
\r\n
\r\n {isRequestPrice(activePrice!, customerInformation?.LineDiscountGroup!, isBundle) || isBundle ? (\r\n
\r\n {resources.requestPriceLabel}\r\n
\r\n \r\n {resources.tooltipText}\r\n
\r\n
\r\n ) : (\r\n <>\r\n \r\n \r\n )}\r\n
\r\n
\r\n {context.actionContext.requestContext.user.isAuthenticated &&\r\n _calculateWpPrice(product?.AttributeValues!, context, isBundle, activePrice!, customerInformation!)}\r\n
\r\n
\r\n\r\n {productComparisonButton &&\r\n renderProductComparisonButton(productComparisonButton, product, getCatalogId(context.request))}\r\n
\r\n {quickViewButton && _renderQuickView(quickViewButton, product.RecordId, product?.AttributeValues)}\r\n \r\n {resources.viewDetailsLabel}\r\n \r\n
\r\n \r\n ) : (\r\n
\r\n \r\n {requestPriceBtn?.linkText}\r\n \r\n \r\n {resources.viewDetailsLabel}\r\n \r\n
\r\n )}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport const ProductComponent: React.FunctionComponent = msdyn365Commerce.createComponentOverride<\r\n IProductComponent\r\n>('Product', { component: ProductCard, ...PriceComponentActions });\r\n\r\nexport default ProductComponent;\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 {\r\n IBuyboxAddToCartViewProps,\r\n IBuyboxAddToOrderTemplateViewProps,\r\n // IBuyboxAddToWishlistViewProps,\r\n IBuyboxCallbacks,\r\n IBuyboxData,\r\n IBuyboxFindInStoreViewProps,\r\n IBuyboxKeyInPriceViewProps,\r\n IBuyboxProductConfigureDropdownViewProps,\r\n IBuyboxProductConfigureViewProps,\r\n IBuyboxProductQuantityViewProps,\r\n IBuyboxProps,\r\n IBuyboxShopSimilarLookViewProps,\r\n IBuyboxState,\r\n IBuyboxViewProps,\r\n IBuyboxCommonData,\r\n IBuyboxExtentedProps\r\n} from '@msdyn365-commerce-modules/buybox';\r\nimport {\r\n IncrementalQuantity,\r\n ITelemetryContent,\r\n Module,\r\n Node,\r\n // Button,\r\n // INodeProps,\r\n Modal,\r\n ModalBody,\r\n // ModalFooter,\r\n ModalHeader,\r\n Waiting\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport { RichTextComponent } from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\nimport { AttributeValue, ProductAvailableQuantity } from '@msdyn365-commerce/retail-proxy';\r\nimport {\r\n IBuyboxProps as IBuyboxExtentionProps,\r\n IBuyboxResources as IBuyboxExtentionResources\r\n} from '../definition-extensions/buybox.ext.props.autogenerated';\r\nimport { getAttributeValuesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\nimport { generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { trafficLightsAtpaction, TrafficLightsAtpInput } from '../../../actions/traffic-lights-atp.action';\r\nimport { ATPMessage, TrafficLights } from '../../../utils/atp-utils';\r\nimport EstimatedShipDateComponent from '../../../utils/ATP/atpESD';\r\nimport { KitProduct } from '../../../utils/Kits/kits';\r\nimport { kRV_GetMultipleATPLeadTimeDateAsync } from '../../../actions/customProxy/ATP-update/DataActionExtension.g';\r\nimport {\r\n IKRV_ATPLeadTimePropertiesDate,\r\n IKRV_GetMultipleATPLeadTimeResponseDate\r\n} from '../../../actions/customProxy/ATP-update/DataServiceEntities.g';\r\nimport EstimatedShipDateKitComponent from '../../../utils/ATP/atpKitESD';\r\nimport { PriceComponent } from './components/price.component';\r\nimport { filteredProductAttributeList, incExcPriceFormat, isRequestPrice, taxPercentage } from '../../../utils/helper';\r\nimport { PromotionBadges } from '../../../utils/badges';\r\nconst BuyboxView: React.FC & ProductAvailableQuantity> = props => {\r\n const {\r\n ModuleProps,\r\n MediaGalleryContainerProps,\r\n ProductInfoContainerProps,\r\n addToCart,\r\n addToOrderTemplate,\r\n // addToWishlist,\r\n telemetryContent,\r\n configure,\r\n description,\r\n findInStore,\r\n quantity,\r\n // price,\r\n title,\r\n rating,\r\n callbacks,\r\n state,\r\n resources,\r\n inventoryLabel,\r\n shopSimilarLook,\r\n keyInPrice,\r\n quantityLimitsMessages,\r\n max,\r\n shopSimilarDescription,\r\n unitOfMeasure,\r\n productComparisonButton\r\n } = props;\r\n\r\n const Auth = props.context.request.user.isAuthenticated;\r\n const { minErrorMessage, maxErrorMessage, promotionalTextEnable, promotionalTextColor } = props.config;\r\n const { zeroPriceProductText } = props.resources;\r\n const {\r\n context: {\r\n actionContext,\r\n request: {\r\n apiSettings: { channelId, catalogId }\r\n }\r\n }\r\n } = props;\r\n\r\n const linkedProducts: any[] | undefined = props.data.product.result?.Components;\r\n const [producerName, setProducerName] = React.useState('');\r\n const [producerKeyName, setProducerKeyName] = React.useState('');\r\n const [manufacturerItemNumber, setManufacturerItemNumber] = React.useState('');\r\n const [itemNumber, setItemNumber] = React.useState('');\r\n const [isMax, setIsMax] = React.useState(false);\r\n const [isMin, setIsMin] = React.useState(true);\r\n const [isMaxPop, setIsMaxPop] = React.useState(false);\r\n const [showMore, setShowMore] = React.useState(false);\r\n const [isClassName, setIsClassName] = React.useState(true);\r\n const [attributes, setAttributes] = React.useState();\r\n const [disountedWpPrice, setDiscountedwpPrice] = React.useState('');\r\n const [productName, setProductName] = React.useState('');\r\n const [promotionalText, setPromotionalText] = React.useState('');\r\n const [importantNotice, setimportantNotice] = React.useState('');\r\n const [longDescription, setlongDescription] = React.useState('');\r\n const [disableAddToCartATP, setDisableAddToCartATP] = React.useState(false);\r\n\r\n const extensionsProps = props.data.product.result?.ExtensionProperties;\r\n let promotionBadge = '';\r\n if (extensionsProps?.find(e => e?.Key === 'PromotionBadge')) {\r\n promotionBadge = extensionsProps?.find(e => e?.Key === 'PromotionBadge')?.Value?.StringValue || '';\r\n }\r\n // ************ VSI Customization Starts for Bundle kit ATP ****************//\r\n const [atpData, setAtpData] = React.useState>([]);\r\n const [kitProductATP, setKitProductATP] = React.useState(false);\r\n const [isKitProductATPDiscontinued, setIsKitProductATPDiscontinued] = React.useState(false);\r\n const productAttributes = filteredProductAttributeList(attributes, props.context.app.config.kcProductAttribute);\r\n const findProducerName = () => {\r\n productAttributes?.map(e => {\r\n if (e.identifier === 'Manufacturer') {\r\n setProducerName(e?.TextValue);\r\n }\r\n });\r\n };\r\n const findProducerKeyName = () => {\r\n productAttributes?.map(e => {\r\n if (e.identifier === 'Manufacturer') {\r\n setProducerKeyName(e?.Name);\r\n }\r\n });\r\n };\r\n const globalProducerName = () => {\r\n let globalProducerName: string = '';\r\n productAttributes?.map(e => {\r\n if (e.identifier === 'Manufacturer') {\r\n const manufactuerValueforImage = e.ExtensionProperties?.find(eProperty => eProperty.Key === 'globalAttributeValue')?.Value;\r\n globalProducerName = manufactuerValueforImage?.StringValue || '';\r\n }\r\n });\r\n return globalProducerName;\r\n };\r\n\r\n const _atpData = async (products: any[] | undefined) => {\r\n const KRVATPLeadTimeDate: any[] = [];\r\n //Create date according to API\r\n const objectDate = new Date();\r\n const day = objectDate.getDate();\r\n const month = objectDate.getMonth();\r\n const year = objectDate.getFullYear();\r\n const requestedDate = `${day}/${month + 1}/${year}`;\r\n\r\n if (products && products.length > 0) {\r\n products?.map((e: any) => {\r\n KRVATPLeadTimeDate.push({\r\n itemID: e.ItemId,\r\n requestedDate: requestedDate\r\n });\r\n });\r\n }\r\n const ctx = { callerContext: props.context.actionContext };\r\n try {\r\n const response = await kRV_GetMultipleATPLeadTimeDateAsync(ctx, KRVATPLeadTimeDate);\r\n setAtpData([response] || []);\r\n setKitProductATP(true);\r\n } catch (err) {\r\n console.error(err, 'ERR');\r\n }\r\n };\r\n function kitProductATPCall() {\r\n if (linkedProducts?.length !== 0) {\r\n _atpData(linkedProducts);\r\n }\r\n }\r\n React.useEffect(() => {\r\n if (linkedProducts?.length !== 0 && Auth) {\r\n if (!kitProductATP) {\r\n kitProductATPCall();\r\n }\r\n const anyRed = atpData[0]?.ATPTrafficLights?.filter(item => item.TrafficLight === 'Red');\r\n if (anyRed?.length) {\r\n setIsKitProductATPDiscontinued(true);\r\n }\r\n }\r\n }, [linkedProducts, atpData]);\r\n // ************ VSI Customization Ends for Bundle kit ATP ****************//\r\n // ************ VSI Customization Start ATP ****************//\r\n\r\n const [isLoading, setIsLoading] = React.useState(true);\r\n const [trafficLightsResponse, settrafficLightsResponse] = React.useState();\r\n const [propMax, setPropMax] = React.useState(max!);\r\n\r\n const [maxESD, setMaxESD] = React.useState(max!);\r\n\r\n //Create date according to API\r\n let objectDate = new Date();\r\n let day = objectDate.getDate();\r\n let month = objectDate.getMonth();\r\n let year = objectDate.getFullYear();\r\n let requestedDate = `${month + 1}/${day}/${year}`;\r\n\r\n //Call Traffic Light Data Action\r\n async function trafficLightsDataActionCall() {\r\n setIsLoading(true);\r\n const requestBody: any = {\r\n itemId: itemNumber!,\r\n requestedDate: requestedDate\r\n };\r\n try {\r\n const trafficLightsParams = new TrafficLightsAtpInput(requestBody.itemId, requestBody.requestedDate);\r\n const trafficLightsSlots = await trafficLightsAtpaction(trafficLightsParams, props.context.actionContext);\r\n settrafficLightsResponse(trafficLightsSlots);\r\n } catch (error) {\r\n props.telemetry.warning('error');\r\n props.telemetry.debug('Unable to get response for traffic lights slots');\r\n }\r\n setIsLoading(false);\r\n }\r\n\r\n //VSI Customization Start React.useEffect & Function of ATP calculation\r\n React.useEffect(() => {\r\n if (max) {\r\n setPropMax(max);\r\n }\r\n }, [max]);\r\n\r\n //Use this Effect for set max values of product in state according to status\r\n React.useEffect(() => {\r\n if (trafficLightsResponse) {\r\n if (trafficLightsResponse.StatusCode === '500') {\r\n setPropMax(trafficLightsResponse?.Quantity);\r\n setMaxESD(trafficLightsResponse?.Quantity);\r\n } else if (trafficLightsResponse.StatusCode === '501') {\r\n if (trafficLightsResponse.POQuantity > props.state.max!) {\r\n setPropMax(props.state.max!);\r\n setMaxESD(trafficLightsResponse.POQuantity!);\r\n } else {\r\n setPropMax(trafficLightsResponse.POQuantity!);\r\n setMaxESD(trafficLightsResponse.POQuantity!);\r\n }\r\n } else if (trafficLightsResponse.StatusCode === '502') {\r\n setPropMax(trafficLightsResponse?.Quantity);\r\n setMaxESD(trafficLightsResponse?.Quantity);\r\n } else if (trafficLightsResponse.StatusCode === '503') {\r\n if (trafficLightsResponse?.Quantity + trafficLightsResponse.POQuantity > props.state.max!) {\r\n setPropMax(props.state.max!);\r\n setMaxESD(trafficLightsResponse?.Quantity + trafficLightsResponse.POQuantity);\r\n } else {\r\n setPropMax(trafficLightsResponse?.Quantity + trafficLightsResponse.POQuantity);\r\n setMaxESD(trafficLightsResponse?.Quantity + trafficLightsResponse.POQuantity);\r\n }\r\n } else if (\r\n trafficLightsResponse.StatusCode === '204' &&\r\n trafficLightsResponse?.Message?.toLocaleLowerCase() === props.resources.noFurtherSuppliesText\r\n ) {\r\n //checking if already same product exist in cart\r\n let productOfInterestQuantity: number | undefined;\r\n props.data.cart.result?.cart.CartLines?.map(item => {\r\n if (item.ItemId === itemNumber) {\r\n productOfInterestQuantity = item.Quantity;\r\n }\r\n return undefined;\r\n });\r\n setPropMax(\r\n productOfInterestQuantity !== undefined\r\n ? trafficLightsResponse?.Quantity - productOfInterestQuantity!\r\n : trafficLightsResponse?.Quantity\r\n );\r\n setMaxESD(trafficLightsResponse?.Quantity);\r\n } else {\r\n setPropMax(props.state.max!);\r\n }\r\n }\r\n }, [trafficLightsResponse]);\r\n React.useEffect(() => {\r\n if (props.data.cart.result?.cart.CartLines && trafficLightsResponse?.StatusCode === '204') {\r\n //checking if already same product exist in cart\r\n let productOfInterestQuantity: number | undefined;\r\n props.data.cart.result?.cart.CartLines?.map(item => {\r\n if (item.ItemId === itemNumber) {\r\n productOfInterestQuantity = item.Quantity;\r\n }\r\n return undefined;\r\n });\r\n //condition to disable add to cart\r\n if (productOfInterestQuantity && productOfInterestQuantity >= trafficLightsResponse?.Quantity!) {\r\n setDisableAddToCartATP(true);\r\n }\r\n }\r\n }, [props.data.cart.result?.cart.CartLines, trafficLightsResponse, props.state]);\r\n\r\n React.useEffect(() => {\r\n if (requestedDate && itemNumber) trafficLightsDataActionCall();\r\n }, [requestedDate, itemNumber]);\r\n\r\n // ************ VSI Customization END ATP ****************//\r\n\r\n async function findAttributesValues() {\r\n const recordId: any = props.data.product.result?.RecordId;\r\n\r\n const attributes: AttributeValue[] = await getAttributeValuesAsync(\r\n { callerContext: actionContext, queryResultSettings: {} },\r\n recordId,\r\n channelId,\r\n catalogId\r\n );\r\n setAttributes(attributes);\r\n }\r\n\r\n React.useEffect(() => {\r\n findAttributesValues();\r\n setPromotionalTextFunction();\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n state.quantity <= props.data.product.result?.Behavior?.MinimumQuantity! ? setIsMin(true) : setIsMin(false);\r\n state.quantity < props.data.product.result?.Behavior?.MinimumQuantity! ? setIsClassName(true) : setIsClassName(false);\r\n state.quantity === propMax ? setIsMax(true) : setIsMax(false);\r\n }, [state.quantity]);\r\n\r\n React.useEffect(() => {\r\n if (isMaxPop !== true) {\r\n state.quantity === propMax ? setIsMaxPop(true) : setIsMaxPop(false);\r\n }\r\n }, [state.quantity]);\r\n\r\n React.useEffect(() => {\r\n if (attributes) {\r\n findProducerName();\r\n findProducerKeyName();\r\n findItemNumber();\r\n calculateWpPrice();\r\n findProductName();\r\n findManufacturerItemNumber();\r\n findImportantNotice();\r\n findlongDescription();\r\n }\r\n }, [attributes]);\r\n\r\n const findManufacturerItemNumber = () => {\r\n attributes?.map(e => {\r\n if (e.Name === 'Manufacturer item number') {\r\n setManufacturerItemNumber(e?.TextValue);\r\n }\r\n });\r\n };\r\n const findProductName = () => {\r\n const product = props.data.product?.result?.Name;\r\n setProductName(product);\r\n };\r\n const findItemNumber = () => {\r\n let itemId = props.data.product.result?.ItemId;\r\n\r\n setItemNumber(itemId);\r\n };\r\n const setPromotionalTextFunction = () => {\r\n if (props.data.product.result?.ExtensionProperties) {\r\n props.data.product.result?.ExtensionProperties?.map(e => {\r\n if (e.Key?.toLowerCase() === 'promotion') {\r\n setPromotionalText(e?.Value?.StringValue!);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const findImportantNotice = () => {\r\n let importantNotice = props.data.product.result?.ExtensionProperties;\r\n importantNotice?.map(e => {\r\n if (e.Key === 'ImportantNotice') {\r\n setimportantNotice(e.Value?.StringValue);\r\n }\r\n });\r\n };\r\n const findlongDescription = () => {\r\n let longDescription = props.data.product.result?.ExtensionProperties;\r\n longDescription?.map(e => {\r\n if (e.Key === 'LongDescription') {\r\n setlongDescription(e.Value?.StringValue);\r\n }\r\n });\r\n };\r\n const calculateWpPrice = () => {\r\n let basePrice = props.data.productPrice.result?.CustomerContextualPrice;\r\n let discountedPrice = props.data.productPrice.result?.CustomerContextualPrice;\r\n let tempBasePrice, tempDiscountedPrice, displayWpPrice;\r\n\r\n if (basePrice === discountedPrice) {\r\n attributes?.map(e => {\r\n if (e.Name === 'Power rating Pmax (Wp)') {\r\n if (e.IntegerValue !== 0) {\r\n tempBasePrice = basePrice! / e.IntegerValue!;\r\n }\r\n }\r\n if (e.KeyName === 'DisplayWPPrice' || e.Name === 'Display WP Price') {\r\n displayWpPrice = e.BooleanValue;\r\n }\r\n });\r\n\r\n if (displayWpPrice && tempBasePrice !== undefined) {\r\n setDiscountedwpPrice(tempBasePrice);\r\n }\r\n } else {\r\n attributes?.map(e => {\r\n if (e.Name === 'Power rating Pmax (Wp)') {\r\n if (e.IntegerValue !== 0) {\r\n tempBasePrice = basePrice! / e.IntegerValue!;\r\n tempDiscountedPrice = discountedPrice! / e.IntegerValue!;\r\n }\r\n }\r\n if (e.KeyName === 'DisplayWPPrice' || e.Name === 'Display WP Price') {\r\n displayWpPrice = e.BooleanValue;\r\n }\r\n });\r\n\r\n if (displayWpPrice && tempBasePrice !== undefined && tempDiscountedPrice !== undefined) {\r\n setDiscountedwpPrice(tempDiscountedPrice);\r\n }\r\n }\r\n };\r\n\r\n const _renderQuantity = (\r\n quantityComponent: IBuyboxProductQuantityViewProps,\r\n callbacks: IBuyboxCallbacks,\r\n props: IBuyboxProps,\r\n state: IBuyboxState,\r\n extentionResources: IBuyboxExtentionResources,\r\n quantityLimitsMessages: React.ReactNode,\r\n propMax: number | undefined,\r\n telemetryContent?: ITelemetryContent,\r\n max?: number\r\n ): JSX.Element => {\r\n const { ContainerProps, LabelContainerProps, heading, errors } = quantityComponent;\r\n const { quantity, min } = state;\r\n return (\r\n \r\n \r\n {heading}\r\n {errors}\r\n \r\n\r\n {min && (\r\n \r\n )}\r\n
\r\n {min && isMin && (\r\n

\r\n {resources.informationHeading}\r\n \r\n {`${minErrorMessage} ${min}`}\r\n

\r\n )}\r\n {(isMax || disableAddToCartATP) && (\r\n

\r\n {resources.informationHeading}\r\n \r\n {disableAddToCartATP\r\n ? resources.maxQuantityAlertMessage.replace('{Quantity}', String(trafficLightsResponse?.Quantity) || '')\r\n : `${maxErrorMessage} ${propMax}`}\r\n

\r\n )}\r\n {/* {_generateStockErrorMessage()} */}\r\n
\r\n
\r\n );\r\n };\r\n\r\n const getText = (text: any, showMoreText: string) => {\r\n // For Text that is shorter than desired length\r\n if (text?.props?.children?.length <= 100) return text.props.children;\r\n\r\n if (text?.props?.children?.length > 100) {\r\n return (\r\n <>\r\n

\r\n {`${text?.props?.children?.slice(0, 120)}...... `}\r\n \r\n

\r\n \r\n );\r\n }\r\n };\r\n\r\n const [imgURI, setImgURL] = React.useState();\r\n\r\n //To set the producer name\r\n React.useEffect(() => {\r\n const producerGlobalName: string = globalProducerName() || '';\r\n if (producerGlobalName) {\r\n setImgURL(producerGlobalName);\r\n }\r\n }, [producerName]);\r\n\r\n //to generate Image url after getting img url from api call\r\n React.useEffect(() => {\r\n if (imgURI) {\r\n let imageUrl = generateImageUrl(imgURI, props.context.actionContext.requestContext.apiSettings);\r\n imageUrl = imageUrl?.replace('=/', '=') || '';\r\n setImgURL(imageUrl);\r\n }\r\n }, [imgURI]);\r\n\r\n //use this function to render or display category image\r\n const _renderCategoryImg = (imgURI: string) => {\r\n return producer-images;\r\n };\r\n\r\n //use this function to render item number\r\n const _renderItemNumber = () => {\r\n return (\r\n
\r\n {props.resources.itemNumberText}:\r\n {itemNumber}\r\n
\r\n );\r\n };\r\n //use this function to render Manufacturer item number\r\n const _renderManufacturerItemNumber = () => {\r\n return (\r\n
\r\n {props.resources.manufacturerItemNumberText}:\r\n {manufacturerItemNumber}\r\n
\r\n );\r\n };\r\n //use this function to render Promotional Text\r\n const _renderPromotionalText = () => {\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n const _renderlongDescriptionAndImportantNotice = () => {\r\n return (\r\n \r\n

{resources.productInfoHeading}

\r\n
\r\n {importantNotice && (\r\n
\r\n \r\n
\r\n )}\r\n {longDescription && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n );\r\n };\r\n\r\n React.useEffect(() => {\r\n _renderPrice();\r\n }, [disountedWpPrice]);\r\n\r\n //use this function to render price\r\n const _renderPrice = () => {\r\n const { productPrice, customerInformation } = props.data;\r\n const customClass = linkedProducts?.length !== 0 ? '-bundle' : null;\r\n const {\r\n context: {\r\n app: {\r\n config: { enabledIncExPrices }\r\n }\r\n }\r\n } = props;\r\n const ppwPrice =\r\n props?.context?.actionContext?.requestContext?.apiSettings?.oun !== props.context.app.config.ounNumberForUsSite\r\n ? 'WP Price:'\r\n : 'PPW Price:';\r\n const customerTaxPercentage = taxPercentage(props.data.customerInformation?.result!);\r\n return (\r\n
\r\n {Auth &&\r\n isRequestPrice(productPrice?.result!, customerInformation?.result?.LineDiscountGroup!, linkedProducts?.length !== 0) ? (\r\n
\r\n {props.resources.requestPriceText}\r\n
\r\n \r\n {zeroPriceProductText}\r\n
\r\n
\r\n ) : (\r\n <>\r\n {/* {Auth && price} */}\r\n {Auth && getBuyboxProductPrice(props, props.state)}\r\n {Auth && linkedProducts?.length !== 0 ?

{'For Bundle'}

: null}\r\n {/* VSI Customization WP Base price show once we have no discount on product & Wp base price\r\n and Wp Discount price only shoes when we have discount on our product */}\r\n {Auth && disountedWpPrice && linkedProducts?.length === 0 && (\r\n
\r\n {ppwPrice}\r\n
\r\n \r\n {incExcPriceFormat(\r\n Number(disountedWpPrice),\r\n props.context,\r\n enabledIncExPrices,\r\n customerTaxPercentage,\r\n 3\r\n )}\r\n \r\n
\r\n
\r\n )}\r\n \r\n )}\r\n
\r\n );\r\n };\r\n\r\n const _renderAddToCart = (addToCart: IBuyboxAddToCartViewProps, propMax: number): JSX.Element => {\r\n const { errorBlock, button } = addToCart;\r\n let customAddBundleToCartButton;\r\n\r\n if (linkedProducts?.length !== 0) {\r\n customAddBundleToCartButton =\r\n button &&\r\n React.cloneElement(button as JSX.Element, {\r\n title: 'Add Bundle to Cart',\r\n children: 'Add Bundle to Cart',\r\n addToCartText: 'Add Bundle to Cart',\r\n className: 'add-bundle_cta'\r\n });\r\n }\r\n const customAddToCartButton =\r\n button &&\r\n React.cloneElement(button as JSX.Element, {\r\n isStatusTwoZeroFour: trafficLightsResponse?.StatusCode === '204' ? true : false\r\n });\r\n return (\r\n
\r\n {errorBlock}\r\n
\r\n {linkedProducts?.length !== 0\r\n ? Auth && (\r\n \r\n )\r\n : isClassName ||\r\n propMax === 0 ||\r\n isRequestPrice(\r\n props.data?.productPrice?.result!,\r\n props.data.customerInformation.result?.LineDiscountGroup!,\r\n linkedProducts?.length !== 0\r\n ) ||\r\n trafficLightsResponse?.TrafficLight === 'Red' ||\r\n trafficLightsResponse?.IsAddToCart === 'No' ||\r\n trafficLightsResponse?.IsDiscontinuedProduct === 'Yes' ||\r\n disableAddToCartATP ||\r\n isLoading\r\n ? Auth && (\r\n \r\n )\r\n : Auth && linkedProducts?.length !== 0\r\n ? isKitProductATPDiscontinued\r\n ? Auth && (\r\n \r\n )\r\n : customAddBundleToCartButton\r\n : Auth && customAddToCartButton}\r\n {Auth &&\r\n addToOrderTemplate &&\r\n !isRequestPrice(\r\n props.data?.productPrice?.result!,\r\n props.data.customerInformation.result?.LineDiscountGroup!,\r\n linkedProducts?.length !== 0\r\n ) &&\r\n !isKitProductATPDiscontinued &&\r\n trafficLightsResponse?.TrafficLight !== 'Red' &&\r\n trafficLightsResponse?.IsAddToCart !== 'No' &&\r\n !disableAddToCartATP &&\r\n _renderAddToOrderTemplate(addToOrderTemplate)}\r\n
\r\n
\r\n );\r\n };\r\n\r\n // ***** VSI CUSTOMIZATION START AVAILABLE use this useState and useEffect for disable request price link untill all data available *****//\r\n const [isDisableLink, setIsDisableLink] = React.useState(true);\r\n\r\n React.useEffect(() => {\r\n if (producerName && productName && itemNumber) {\r\n setIsDisableLink(false);\r\n }\r\n }, [producerName, productName, itemNumber]);\r\n\r\n // ***** VSI CUSTOMIZATION END *****//\r\n return (\r\n <>\r\n {isMaxPop && (\r\n {\r\n setIsMaxPop(false);\r\n }}\r\n >\r\n
\r\n {\r\n setIsMaxPop(!setIsMaxPop);\r\n }}\r\n >\r\n {props.resources.alertText}\r\n \r\n \r\n {props.resources.maxPurchaseAlertMessage\r\n .replace('{productName}', producerName || '')\r\n .replace('{propMax}', String(propMax) || '')}\r\n {/* {state.quantity && state.quantity === propMax && state.quantity >= propMax!\r\n ? _generateStockErrorMessage()\r\n : ` 'Maximum purchase quantity of the artice ${productName} is limited to ${propMax} piece per order.`} */}\r\n \r\n
\r\n \r\n )}\r\n {showMore && (\r\n {\r\n setShowMore(!showMore);\r\n }}\r\n >\r\n
\r\n {\r\n setShowMore(!showMore);\r\n }}\r\n >\r\n {props.resources.descriptionText}\r\n \r\n {description}\r\n
\r\n \r\n )}\r\n \r\n \r\n {props.mediaGallery}\r\n \r\n
{imgURI && _renderCategoryImg(imgURI)}
\r\n {title}\r\n
{getText(description, props.resources.showMoreText)}
\r\n
\r\n {itemNumber && _renderItemNumber()}\r\n {manufacturerItemNumber && _renderManufacturerItemNumber()}\r\n
\r\n {promotionalText && promotionalTextEnable && _renderPromotionalText()}\r\n {/* *********** VSI CUSTOMIZATION STARTS FOR Kit Bundles ************ */}\r\n {linkedProducts?.length !== 0 && Auth ? (\r\n \r\n ) : (\r\n <>\r\n {unitOfMeasure}\r\n {props.bulkPurchaseLink}\r\n {_renderTextBlock(props.slots.textBlocks)}\r\n {/* {description} */}\r\n {rating}\r\n {configure && _renderConfigure(configure)}\r\n {Auth ? keyInPrice && _renderKeyInPrice(keyInPrice) : false}\r\n \r\n )}\r\n {/* *********** VSI CUSTOMIZATION START FOR ATP ************ */}\r\n
\r\n {Auth ? (\r\n isLoading ? (\r\n \r\n ) : (\r\n
\r\n {trafficLightsResponse && (\r\n <>\r\n
\r\n \r\n {linkedProducts?.length !== 0 ? (\r\n
\r\n

{props.resources.callOfficeText}

\r\n
\r\n ) : isKitProductATPDiscontinued ? (\r\n
\r\n

\r\n {props.resources.noFurtherSuppliesText}{' '}\r\n

\r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n \r\n )}\r\n {linkedProducts?.length !== 0 ? (\r\n \r\n ) : isKitProductATPDiscontinued ? null : (\r\n \r\n )}\r\n
\r\n )\r\n ) : (\r\n false\r\n )}\r\n
\r\n {/* *********** VSI CUSTOMIZATION End FOR ATP ************ */}\r\n {/* *********** VSI CUSTOMIZATION END FOR Kit Bundles ************ */}\r\n {inventoryLabel}\r\n
\r\n
\r\n {Auth ? (\r\n linkedProducts?.length !== 0 ? (\r\n
\r\n
{props.resources.quantityText}
\r\n
\r\n ) : (\r\n quantity &&\r\n _renderQuantity(\r\n quantity,\r\n callbacks,\r\n props,\r\n state,\r\n resources,\r\n quantityLimitsMessages,\r\n propMax,\r\n telemetryContent,\r\n max\r\n )\r\n )\r\n ) : (\r\n false\r\n )}\r\n {_renderPrice()}\r\n
\r\n {addToCart && _renderAddToCart(addToCart, propMax)}\r\n {/* {Auth ? _renderCartAndActions(addToCart, addToOrderTemplate, addToWishlist) : false} */}\r\n {!Auth ? (\r\n
\r\n {props.config.requestPriceButton && props.config.requestPriceButton.linkText && }\r\n \r\n {props.config.requestPriceButton?.linkText}\r\n \r\n
\r\n ) : (\r\n false\r\n )}\r\n
\r\n {findInStore && _renderFindInStore(findInStore)}\r\n {_renderSocialShare(props.slots && props.slots.socialShare)}\r\n {productComparisonButton}\r\n {shopSimilarLook && _renderShopSimilarItem(shopSimilarLook)}\r\n {shopSimilarDescription && _renderShopSimilarItem(shopSimilarDescription)}\r\n
\r\n
\r\n {(longDescription || importantNotice) && _renderlongDescriptionAndImportantNotice()}\r\n \r\n );\r\n};\r\n\r\nconst _renderTextBlock = (textBlocks: React.ReactNode[]): JSX.Element | undefined => {\r\n if (!textBlocks || textBlocks.length === 0) {\r\n return undefined;\r\n }\r\n\r\n return <>{textBlocks[0]};\r\n};\r\n\r\nconst _renderAddToOrderTemplate = (addToOrderTemplate: IBuyboxAddToOrderTemplateViewProps): JSX.Element => {\r\n const { ContainerProps, errorBlock, button } = addToOrderTemplate;\r\n\r\n return (\r\n \r\n {errorBlock}\r\n {button}\r\n \r\n );\r\n};\r\n\r\nconst _renderSocialShare = (socialShare: React.ReactNode[]): JSX.Element | undefined => {\r\n if (!socialShare || socialShare.length === 0) {\r\n return undefined;\r\n }\r\n\r\n return <>{socialShare[0]};\r\n};\r\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\r\n const { ContainerProps, dropdowns } = configure;\r\n\r\n return {dropdowns.map(_renderConfigureDropdown)};\r\n};\r\n\r\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\r\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n {errors}\r\n \r\n {select}\r\n \r\n );\r\n};\r\n\r\nconst _renderFindInStore = (findInStore: IBuyboxFindInStoreViewProps): JSX.Element => {\r\n const { ContainerProps, storeSelector, heading, description, errors, button, modal, productPickupOptionList } = findInStore;\r\n\r\n return (\r\n \r\n {storeSelector}\r\n {heading}\r\n {productPickupOptionList}\r\n {description}\r\n {errors}\r\n {button}\r\n {modal}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * On Change function.\r\n * @param callbacks -Callbacks.\r\n * @returns Update quantity.\r\n */\r\nconst onChangeHandler = (callbacks: IBuyboxCallbacks) => (newValue: number): boolean => {\r\n if (callbacks.updateQuantity) {\r\n return callbacks.updateQuantity(newValue);\r\n }\r\n return true;\r\n};\r\nconst _renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\r\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\r\n\r\n return (\r\n \r\n {heading}\r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst _renderShopSimilarItem = (shopSimilarItem: IBuyboxShopSimilarLookViewProps): JSX.Element => {\r\n const { ContainerProps, errors, input } = shopSimilarItem;\r\n\r\n return (\r\n \r\n {errors}\r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst getBuyboxProductPrice = (props: IBuyboxExtentedProps, state: IBuyboxState): React.ReactElement | undefined => {\r\n const { id, typeName, context, resources } = props;\r\n const customerTaxPercentage = taxPercentage(props.data.customerInformation?.result!);\r\n\r\n return (\r\n state.productPrice && (\r\n featureState.Name === 'Dynamics.AX.Application.RetailSearchPriceRangeFeature'\r\n )?.IsEnabled\r\n }\r\n isSalesAgreementPriceFeatureEnabled={\r\n props.data.featureState.result?.find(\r\n featureState => featureState.Name === 'Dynamics.AX.Application.RetailSalesAgreementPriceSupportFeature'\r\n )?.IsEnabled\r\n }\r\n useLegacySalesAgreementHTMLFeature={\r\n props.data.featureState.result?.find(featureState => featureState.Name === 'UseLegacySalesAgreementHTMLFeature')\r\n ?.IsEnabled\r\n }\r\n priceResources={{\r\n priceRangeSeparator: resources.priceRangeSeparator,\r\n salesAgreementPricePrompt: resources.salesAgreementPricePrompt,\r\n salesAgreementExpirationDatePrompt: resources.salesAgreementExpirationDatePrompt,\r\n salesAgreementCommittedQuantityPrompt: resources.salesAgreementCommittedQuantityPrompt,\r\n salesAgreementRemainingQuantityPrompt: resources.salesAgreementRemainingQuantityPrompt\r\n }}\r\n freePriceText={resources.priceFree}\r\n originalPriceText={resources.originalPriceText}\r\n currentPriceText={resources.currentPriceText}\r\n isIncExPriceFormatEnabled={true}\r\n customerTaxPercentage={customerTaxPercentage}\r\n />\r\n )\r\n );\r\n};\r\nexport default BuyboxView;\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { ICoreContext, IGeneric, IAny } from '@msdyn365-commerce/core';\r\nimport { ICheckoutState } from '@msdyn365-commerce/global-state';\r\nimport { ICheckoutCustomerAccountPaymentViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/./checkout-customer-account-payment';\r\nimport { IAccountPaymentEditViewForm } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/./components/get-account-payment-form-edit-mode';\r\nimport { IAccountPaymentSummaryViewForm } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/./components/get-account-payment-form-summary-mode';\r\nimport { IModuleStateManager } from '@msdyn365-commerce-modules/checkout-utilities';\r\nimport { Customer, CustomerAttribute, CustomerBalances } from '@msdyn365-commerce/retail-proxy';\r\nimport {\r\n ICheckoutCustomerAccountPaymentProps,\r\n ICheckoutCustomerAccountPaymentResources\r\n} from '../definition-extensions/checkout-customer-account-payment.ext.props.autogenerated';\r\nimport { currencyFormat } from '../../../utils/helper';\r\n\r\n//VSI Customization\r\n// extends IAccountPaymentEditViewForm\r\ninterface IAccountPaymentEditViewFormExtended extends IAccountPaymentEditViewForm {\r\n context: ICoreContext>;\r\n resources: ICheckoutCustomerAccountPaymentResources;\r\n customerInfo?: Customer;\r\n checkoutInfo?: ICheckoutState;\r\n customerBalanceInfo?: CustomerBalances;\r\n moduleState: IModuleStateManager;\r\n}\r\n\r\n//VSI Customization\r\nconst _getPaymentAmount = (amount: React.ReactNode): string => {\r\n const amountJSX = amount as JSX.Element;\r\n const amountPropsJSX = amountJSX.props;\r\n return amountPropsJSX?.max || '0';\r\n};\r\n\r\nconst _getAvailableCredit = (creditBalances: CustomerBalances | undefined) => {\r\n let availableCredit = 0;\r\n\r\n if (!creditBalances) {\r\n return 0;\r\n }\r\n\r\n if (creditBalances.InvoiceAccountCreditLimit === 0) {\r\n availableCredit = creditBalances.CreditLimit - creditBalances.Balance - creditBalances.PendingBalance;\r\n } else {\r\n availableCredit =\r\n creditBalances.InvoiceAccountCreditLimit - creditBalances.InvoiceAccountBalance - creditBalances.InvoiceAccountPendingBalance;\r\n }\r\n\r\n return availableCredit;\r\n};\r\n\r\nconst _addPayment = async (paymentAmount: number, checkoutState?: ICheckoutState): Promise => {\r\n if (!checkoutState) {\r\n return;\r\n }\r\n\r\n await checkoutState.updateCustomerAccountAmount({ newAmount: paymentAmount });\r\n};\r\nexport const SummaryForm: React.FC = ({\r\n formProps,\r\n label,\r\n paymentAmount,\r\n addPaymentButton,\r\n appliedLine,\r\n bottomBorder\r\n}) => (\r\n \r\n <>\r\n {label}\r\n {paymentAmount}\r\n {addPaymentButton}\r\n {appliedLine}\r\n {bottomBorder}\r\n \r\n \r\n);\r\n\r\nexport const EditForm: React.FC = ({\r\n formProps,\r\n inputLabel,\r\n inputAmount,\r\n addPaymentButton,\r\n customerName,\r\n customerAccountNumber,\r\n customerSince,\r\n accountCredit,\r\n alert,\r\n accountDetails,\r\n appliedLine,\r\n bottomBorder,\r\n resources,\r\n context,\r\n customerBalanceInfo,\r\n customerInfo,\r\n checkoutInfo,\r\n moduleState\r\n}) => {\r\n const customerAttributes: CustomerAttribute[] = customerInfo?.Attributes || [];\r\n\r\n const isPrePaidCustomer =\r\n customerAttributes.find(attr => attr.Name === context.app.config.prepaidCustomerAttribute || 'Prepaid Customer')?.AttributeValue\r\n ?.BooleanValue || false;\r\n\r\n const creditBalance = customerBalanceInfo ? _getAvailableCredit(customerBalanceInfo) : 0;\r\n\r\n const paymentAmount = _getPaymentAmount(inputAmount);\r\n const usSiteFlag = context?.actionContext?.requestContext?.apiSettings?.oun === context.app.config.ounNumberForUsSite;\r\n\r\n React.useEffect(() => {\r\n const _addPaymentHandler = async (amountValue: number) => {\r\n await _addPayment(amountValue, checkoutInfo);\r\n };\r\n\r\n if (isPrePaidCustomer) {\r\n _addPaymentHandler(Number(paymentAmount)).then(() => {\r\n moduleState.onReady();\r\n });\r\n } else {\r\n _addPaymentHandler(Number(paymentAmount)).then(() => {\r\n moduleState.onReady();\r\n });\r\n }\r\n }, [paymentAmount]);\r\n\r\n return (\r\n \r\n <>\r\n {usSiteFlag ? (\r\n <>\r\n ) : isPrePaidCustomer ? (\r\n

{resources.prepaidCustomerMessage}

\r\n ) : (\r\n <>\r\n {false && customerName}\r\n {false && customerAccountNumber}\r\n {false &&
{customerSince}
}\r\n {false && accountCredit}\r\n {false && accountDetails}\r\n {false && inputLabel}\r\n {false && alert}\r\n {false && inputAmount}\r\n {false && addPaymentButton}\r\n {false && appliedLine}\r\n {false && bottomBorder}\r\n {false && (\r\n
\r\n {resources.totalAvailableCreditLimit} \r\n {currencyFormat(creditBalance, context)}\r\n
\r\n )}\r\n
\r\n {resources.orderAmount}\r\n {currencyFormat(Number(paymentAmount), context)}\r\n
\r\n \r\n )}\r\n \r\n
\r\n );\r\n};\r\n\r\nconst CheckoutCustomerAccountView: React.FC> = props => {\r\n const {\r\n checkoutCustomerAccount,\r\n summaryView,\r\n editView,\r\n moduleState,\r\n data: {\r\n customerInformation: { result: customerInfo },\r\n creditBalances: { result: customerBalanceInfo },\r\n checkout: { result: checkoutInfo }\r\n },\r\n context,\r\n resources,\r\n checkoutErrorRef\r\n } = props;\r\n return (\r\n \r\n {alert}\r\n\r\n {false && moduleState.isReady && summaryView && }\r\n {/* {!moduleState.isReady && editView && } */}\r\n {/* VSI CUSTOMIZATION START */}\r\n \r\n\r\n {/* VSI CUSTOMIZATION END */}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutCustomerAccountView;\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n ICheckoutDeliveryOptionEdit,\r\n ICheckoutDeliveryOptionsList,\r\n ICheckoutDeliveryOptionsViewProps\r\n} from '@msdyn365-commerce-modules/checkout/src/modules/checkout-delivery-options/./checkout-delivery-options';\r\nimport { DeliveryOption } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nexport interface ICheckoutDeliveryOptionWithSelected {\r\n selectedItem?: DeliveryOption;\r\n}\r\nconst DeliveryOptionList: React.FC = ({ DeliveryOptionsList, list }) => {\r\n if (!list || list.length === 0) {\r\n return null;\r\n }\r\n return (\r\n \r\n {list.map((deliveryOption: ICheckoutDeliveryOptionEdit) => {\r\n return (\r\n \r\n {deliveryOption.radioButton}\r\n {deliveryOption.description}\r\n {deliveryOption.code !== 'Collection' ? (\r\n To Be Calculated\r\n ) : (\r\n deliveryOption.price\r\n )}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst DeliveryOptionSelected: React.FC = ({ selectedItem }) => {\r\n return (\r\n \r\n {selectedItem?.Description}\r\n {selectedItem?.Code === 'Collection' ? (\r\n Free\r\n ) : (\r\n To Be Calculated\r\n )}\r\n \r\n );\r\n};\r\n\r\nconst CheckoutDeliveryOptionsView: React.FC = props => {\r\n const {\r\n CheckoutDeliveryOptions,\r\n checkoutErrorRef,\r\n viewState,\r\n deliveryOptions,\r\n deliveryOptionSelected,\r\n alert,\r\n waiting,\r\n saveButton,\r\n editButton,\r\n cancelButton,\r\n deliveryOptionsData,\r\n selectedItemId\r\n } = props;\r\n deliveryOptions?.DeliveryOptionsList;\r\n const selectedItem = deliveryOptionsData.find(deliveryOption => deliveryOption.Code === selectedItemId);\r\n return (\r\n // TODO: All wrapper div should be provided by viewProps. Once SDK provide the sln, update markup.\r\n \r\n {viewState.isLoading && waiting}\r\n {viewState.isError && alert}\r\n {viewState.isShowList && deliveryOptions && }\r\n {viewState.isShowSelected && deliveryOptionSelected && selectedItem && }\r\n {viewState.isShowSaveButton && saveButton}\r\n {viewState.isShowEditButton && editButton}\r\n {viewState.isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutDeliveryOptionsView;\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 { getUrlSync, IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport {\r\n format,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n ITelemetryContent,\r\n onTelemetryClick\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nexport interface ICartIconData {\r\n cart?: ICartState;\r\n}\r\n\r\nexport interface ICartIconComponentProps extends IComponentProps {\r\n className?: string;\r\n cartLabel: string;\r\n cartQtyLabel: string;\r\n telemetryContent?: ITelemetryContent;\r\n}\r\n\r\nexport interface ICartIconComponent extends IComponent {}\r\n\r\nconst CartIconComponentActions = {};\r\n\r\n/**\r\n *\r\n * CartIcon component.\r\n * @extends {React.FC}\r\n */\r\nconst CartIcon: React.FC = observer((props: ICartIconComponentProps) => {\r\n const {\r\n cartLabel,\r\n cartQtyLabel,\r\n data: { cart }\r\n } = props;\r\n const cartLink = getUrlSync('cart', props.context.actionContext);\r\n\r\n // If there are invoice lines, don't update mini cart item quantity\r\n // VSI CUSTOMIZATIOMN TO DISPLAY PRODUCT COUNT NOT A TOTAL QUANTITY ADDED IN CART\r\n const cartItem = cart ? cart.cart.CartLines?.length : 0;\r\n const qtyLabel = format(cartQtyLabel, cartItem);\r\n const label = format(cartLabel, cartItem);\r\n\r\n // Construct telemetry attribute to render\r\n const payLoad = getPayloadObject('click', props.telemetryContent!, 'cart-icon', '');\r\n const attributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n const style: React.CSSProperties = {\r\n visibility: cart ? 'visible' : 'hidden'\r\n };\r\n return (\r\n \r\n
\r\n {qtyLabel}\r\n
\r\n \r\n );\r\n});\r\n\r\n// @ts-expect-error\r\n// prettier-ignore\r\nexport const CartIconComponent: React.FunctionComponent = msdyn365Commerce.createComponentOverride('CartIcon', { component: CartIcon, ...CartIconComponentActions });\r\n\r\nexport default CartIconComponent;\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 { PriceLine, ProductPrice, SalesAgreementPriceLine } from '@msdyn365-commerce/retail-proxy';\r\nimport { Button, Collapse, format, ICollapseProps } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { incExcPriceFormat } from '../../../../utils/helper';\r\n\r\nconst defaultPrice: number = 0;\r\nconst freePrice: number = 0;\r\n\r\n/**\r\n * Interface for price component resources.\r\n * @param {string} priceRangeSeparator - The price range separator.\r\n */\r\nexport interface IPriceComponentResources {\r\n priceRangeSeparator?: string;\r\n salesAgreementPricePrompt?: string;\r\n salesAgreementExpirationDatePrompt?: string;\r\n salesAgreementCommittedQuantityPrompt?: string;\r\n salesAgreementRemainingQuantityPrompt?: string;\r\n}\r\n\r\n/**\r\n * Interface for price component props.\r\n * @param {boolean} isPriceMinMaxEnabled - Whether the price range feature is enabled or not.\r\n * @param {IPriceComponentResources} priceResources - The price range resources.\r\n */\r\nexport interface IPriceComponentProps extends IComponentProps<{ price: ProductPrice }> {\r\n className?: string;\r\n savingsText?: string;\r\n freePriceText?: string;\r\n originalPriceText?: string;\r\n currentPriceText?: string;\r\n isPriceMinMaxEnabled?: boolean;\r\n isSalesAgreementPriceFeatureEnabled?: boolean;\r\n useLegacySalesAgreementHTMLFeature?: boolean;\r\n salesAgreementLineId?: number;\r\n priceResources?: IPriceComponentResources;\r\n salesAgreementDetailCollapseProps?: ICollapseProps;\r\n salesAgreementDetailOnClick?(event: React.MouseEvent | React.KeyboardEvent): void;\r\n isIncExPriceFormatEnabled?: boolean;\r\n wpPrice?: JSX.Element;\r\n currencyCode?: string;\r\n customerTaxPercentage?: number;\r\n}\r\n\r\n/**\r\n * The interface of price component.\r\n */\r\nexport interface IPriceComponent extends IComponent {}\r\n\r\nconst priceComponentActions = {};\r\n\r\n/**\r\n * Get the original price from price component props.\r\n * @param props - The IPriceComponentProps.\r\n * @returns The original price.\r\n */\r\nconst getOriginalPrice = (props: IPriceComponentProps): number => {\r\n return Math.max(\r\n props.data.price.BasePrice ?? defaultPrice,\r\n props.data.price.TradeAgreementPrice ?? defaultPrice,\r\n props.data.price.AdjustedPrice ?? defaultPrice\r\n );\r\n};\r\n\r\n/**\r\n * Get the formatted currency.\r\n * @param props - The props.\r\n * @param price - The price.\r\n * @param shouldUseFreePriceText - The shouldUseFreePriceText.\r\n * @returns The formatted currency.\r\n */\r\nconst formatCurrency = (\r\n props: IPriceComponentProps,\r\n price: number | undefined,\r\n shouldUseFreePriceText: boolean | undefined,\r\n currencyCode?: string | undefined\r\n): string | JSX.Element => {\r\n if (price === undefined) {\r\n return '';\r\n }\r\n\r\n if (shouldUseFreePriceText && price === freePrice && props.freePriceText) {\r\n return props.freePriceText;\r\n }\r\n const { enabledIncExPrices } = props.context.app.config;\r\n // modify the below return statement of price with currency format\r\n // return props.context.cultureFormatter.formatCurrency(price);\r\n return props.isIncExPriceFormatEnabled\r\n ? incExcPriceFormat(price, props.context, enabledIncExPrices, props.customerTaxPercentage || 0)\r\n : props.context.cultureFormatter.formatCurrency(price, currencyCode);\r\n};\r\n\r\n/**\r\n * ShowStrikethroughPricing.\r\n * @param props - The props.\r\n * @returns True if showStrikethroughPricing, false otherwise.\r\n */\r\nconst showStrikethroughPricing = (props: IPriceComponentProps): boolean => {\r\n const originalPrice = getOriginalPrice(props);\r\n if (\r\n props.isPriceMinMaxEnabled &&\r\n props.data.price.MaxVariantPrice &&\r\n props.data.price.MinVariantPrice &&\r\n props.data.price.MaxVariantPrice > props.data.price.MinVariantPrice\r\n ) {\r\n return props.data.price.MinVariantPrice < originalPrice;\r\n }\r\n\r\n if (originalPrice && props.data.price?.CustomerContextualPrice) {\r\n return originalPrice > props.data.price?.CustomerContextualPrice;\r\n }\r\n\r\n return false;\r\n};\r\n\r\n/**\r\n * Render current price.\r\n * @param props - The props.\r\n * @returns The JSX.Element.\r\n */\r\nconst renderCurrentPrice = (props: IPriceComponentProps): JSX.Element => {\r\n const maxVariantPrice: string | JSX.Element = formatCurrency(props, props.data.price.MaxVariantPrice, false, props.currencyCode);\r\n const minVariantPrice: string | JSX.Element = formatCurrency(props, props.data.price.MinVariantPrice, false, props.currencyCode);\r\n if (\r\n props.isPriceMinMaxEnabled &&\r\n props.data.price.MaxVariantPrice &&\r\n props.data.price.MinVariantPrice &&\r\n props.data.price.MaxVariantPrice > props.data.price.MinVariantPrice\r\n ) {\r\n return (\r\n \r\n \r\n {minVariantPrice}\r\n \r\n \r\n {props.priceResources?.priceRangeSeparator}\r\n \r\n \r\n {maxVariantPrice}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {formatCurrency(props, props.data.price?.CustomerContextualPrice, true, props.currencyCode)}\r\n {props?.wpPrice && props?.wpPrice}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render current price with original price.\r\n * @param props - The props.\r\n * @returns The JSX.Element.\r\n */\r\nconst renderCurrentPriceWithOriginalPrice = (props: IPriceComponentProps): JSX.Element => {\r\n const originalPrice: number = getOriginalPrice(props);\r\n const initialPrice: string | JSX.Element = formatCurrency(props, originalPrice, true);\r\n return (\r\n <>\r\n \r\n {` `}\r\n {props.originalPriceText}\r\n {` `}\r\n {initialPrice}\r\n {` `}\r\n {props.currentPriceText}\r\n {` `}\r\n {renderCurrentPrice(props)}\r\n \r\n {/* */}\r\n \r\n {props.savingsText && {props.savingsText}}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * The state of sales agreement details.\r\n * @deprecated This will be removed with SalesAgreementPrice class soon.\r\n */\r\nexport interface ISalesAgreementDetailState {\r\n isOpen: boolean;\r\n}\r\n\r\n/**\r\n * The SalesAgreementPrice class.\r\n * @deprecated This implementation is deprecated. It will be removed soon. Please use the implementation in the Price function component.\r\n */\r\n// eslint-disable-next-line react/require-optimization -- Not needed.\r\nclass SalesAgreementPrice extends React.Component {\r\n public constructor(props: IPriceComponentProps) {\r\n super(props);\r\n this._toggle = this._toggle.bind(this);\r\n this.state = {\r\n isOpen: true\r\n } as ISalesAgreementDetailState;\r\n }\r\n\r\n public render(): React.ReactElement {\r\n const priceLines: PriceLine[] = this.props.data.price.AttainablePriceLines ?? [];\r\n const firstPriceLine: SalesAgreementPriceLine = priceLines[0] as SalesAgreementPriceLine;\r\n if (this.props.salesAgreementDetailCollapseProps) {\r\n this.props.salesAgreementDetailCollapseProps.isOpen = this.state.isOpen;\r\n }\r\n return (\r\n \r\n

\r\n {formatCurrency(\r\n this.props,\r\n this.props.data.price.SalesAgreementPrice ?? this.props.data.price?.CustomerContextualPrice,\r\n true\r\n )}\r\n

\r\n \r\n {this.props.priceResources?.salesAgreementPricePrompt}\r\n

\r\n \r\n

\r\n \r\n {/* Available date */}\r\n {// eslint-disable-next-line prefer-template -- Copied from other class.\r\n ' · ' +\r\n format(\r\n this.props.priceResources?.salesAgreementExpirationDatePrompt ?? '',\r\n this.props.context.cultureFormatter.formatDate(firstPriceLine.EffectiveDate as Date),\r\n this.props.context.cultureFormatter.formatDate(firstPriceLine.ExpirationDate as Date)\r\n )}\r\n \r\n \r\n {/* Quantity commitment */}\r\n {// eslint-disable-next-line prefer-template -- Copied from other class.\r\n ' · ' +\r\n format(\r\n this.props.priceResources?.salesAgreementCommittedQuantityPrompt ?? '',\r\n firstPriceLine.CommittedQuantity\r\n )}\r\n \r\n \r\n {/* Remaining quantity to qualify */}\r\n {// eslint-disable-next-line prefer-template -- Copied from other class.\r\n ' · ' +\r\n format(\r\n this.props.priceResources?.salesAgreementRemainingQuantityPrompt ?? '',\r\n firstPriceLine.RemainingQuantity\r\n )}\r\n \r\n

\r\n
\r\n
\r\n );\r\n }\r\n\r\n /**\r\n * Callback which toggles collapse mode.\r\n * @param event - The mouse or keyboard event.\r\n */\r\n private _toggle(event: React.MouseEvent | React.KeyboardEvent): void {\r\n event.preventDefault();\r\n // eslint-disable-next-line react/no-access-state-in-setstate -- Copied from other class.\r\n this.setState({ isOpen: !this.state.isOpen });\r\n }\r\n}\r\n\r\nconst renderSalesAgreementDetail = (props: IPriceComponentProps): JSX.Element => {\r\n // In most cases there should be only one sales agreement line.\r\n // If there are more than one, only the first one will be shown.\r\n const firstPriceLine: SalesAgreementPriceLine = (props.data.price.AttainablePriceLines ?? [])[0] as SalesAgreementPriceLine;\r\n return (\r\n

\r\n

\r\n {/* Available date */}\r\n {// eslint-disable-next-line prefer-template -- Copied from other class.\r\n ' · ' +\r\n format(\r\n props.priceResources?.salesAgreementExpirationDatePrompt ?? '',\r\n props.context.cultureFormatter.formatDate(firstPriceLine.EffectiveDate as Date),\r\n props.context.cultureFormatter.formatDate(firstPriceLine.ExpirationDate as Date)\r\n )}\r\n

\r\n

\r\n {/* Quantity commitment */}\r\n {// eslint-disable-next-line prefer-template -- Copied from other class.\r\n ' · ' + format(props.priceResources?.salesAgreementCommittedQuantityPrompt ?? '', firstPriceLine.CommittedQuantity)}\r\n

\r\n

\r\n {/* Remaining quantity to qualify */}\r\n {// eslint-disable-next-line prefer-template -- Copied from other class.\r\n ' · ' + format(props.priceResources?.salesAgreementRemainingQuantityPrompt ?? '', firstPriceLine.RemainingQuantity)}\r\n

\r\n

\r\n );\r\n};\r\n\r\n/**\r\n * Price.\r\n * @param props - The props.\r\n * @returns The JSX.Element.\r\n */\r\nconst Price: React.FC = (props: IPriceComponentProps): JSX.Element | null => {\r\n // CustomerContextualPrice could be zero);\r\n if (props.data.price?.CustomerContextualPrice === undefined) {\r\n return null;\r\n }\r\n\r\n // Determine if contract price is avaiable/applied by:\r\n // isFeatureEnabled and SA price != 0, for PDP.\r\n // SA line id != 0, for cart line.\r\n if (props.isSalesAgreementPriceFeatureEnabled && props.data.price.SalesAgreementPrice !== 0) {\r\n if (props.useLegacySalesAgreementHTMLFeature) {\r\n const salesAgreementPrice = new SalesAgreementPrice(props);\r\n return {salesAgreementPrice.render()};\r\n } else {\r\n const [isExpanded, setIsExpanded] = React.useState(false);\r\n const toggle = () => {\r\n setIsExpanded(!isExpanded);\r\n };\r\n return (\r\n \r\n \r\n

\r\n {formatCurrency(props, props.data.price.SalesAgreementPrice ?? props.data.price.CustomerContextualPrice, true)}\r\n

\r\n \r\n {props.priceResources?.salesAgreementPricePrompt}\r\n \r\n {isExpanded && renderSalesAgreementDetail(props)}\r\n
\r\n
\r\n );\r\n }\r\n }\r\n\r\n return (\r\n \r\n {showStrikethroughPricing(props) ? renderCurrentPriceWithOriginalPrice(props) : renderCurrentPrice(props)}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * The PriceComponent.\r\n */\r\nexport const PriceComponent: React.FunctionComponent = msdyn365Commerce.createComponentOverride(\r\n 'Price',\r\n {\r\n component: Price,\r\n ...priceComponentActions\r\n }\r\n);\r\n\r\nexport default PriceComponent;\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 { PriceComponent } from '../../../../themes/krannich/views/components/price.component';\r\nimport { IComponent, IComponentProps, msdyn365Commerce, IActionContext } from '@msdyn365-commerce/core';\r\nimport { ICartState, getCheckoutState } from '@msdyn365-commerce/global-state';\r\nimport { Coupon, Customer } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport {\r\n Button,\r\n format,\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 { taxPercentage } from '../../../../utils/helper';\r\n\r\nexport interface IPromoCodeProps extends IComponentProps<{}> {\r\n cart: ICartState | undefined;\r\n promoCodeHeadingText: string;\r\n appliedPromoCodeHeadingText: string;\r\n removePromoAriaLabelFormat: string;\r\n promoPlaceholderText: string;\r\n promoCodeApplyButtonText: string;\r\n collapseTimeOut: number;\r\n removePromoText: string;\r\n invalidPromoCodeErrorText: string;\r\n failedToAddPromoCodeErrorText: string;\r\n duplicatePromoCodeErrorText: string;\r\n failedToRemovePromoCodeErrorText: string;\r\n //these below upatePromoError & promoError props are defined to use this component in checkout and to resolve error message issue\r\n // we use these two props and these props are passed through checkout and set the error state for checkout only\r\n upatePromoError?: (err: string) => void;\r\n promoError?: string;\r\n customerInformation: Customer;\r\n\r\n /**\r\n * The telemetry content\r\n */\r\n telemetryContent?: ITelemetryContent;\r\n promoCodeApplyCallback?(): void;\r\n}\r\n\r\nexport interface IPromoCodeComponent extends IComponent {}\r\n\r\nconst PromoCodeComponentActions = {};\r\n\r\ninterface IPromoCodeState {\r\n isCollapseOpen: boolean;\r\n promoCodeInputValue: string;\r\n error: string;\r\n canApply: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * The PromoCode component renders the promocode section.\r\n * @extends {React.PureComponent}\r\n */\r\nclass PromoCode extends React.Component {\r\n private readonly payLoad: IPayLoad;\r\n\r\n constructor(props: IPromoCodeProps, state: IPromoCodeState) {\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 promoCodeInputValue: '',\r\n error: this.props.promoError || '',\r\n canApply: false\r\n };\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: IPromoCodeProps, nextState: IPromoCodeState): 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 {\r\n return (\r\n
\r\n
\r\n
{this.props.promoCodeHeadingText}
\r\n
\r\n INFORMATIOMN ICONs\r\n
\r\n
\r\n {this._renderForm(this.props.promoPlaceholderText, this.props.promoCodeApplyButtonText, this.props.cart)}\r\n

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

\r\n {this._renderAppliedPromoCode(this.props)}\r\n
\r\n );\r\n }\r\n\r\n private readonly _onInputChange = (e: React.ChangeEvent) => {\r\n const error = e.target.value === '' ? '' : this.state.error;\r\n this.setState({\r\n promoCodeInputValue: e.target.value,\r\n error,\r\n canApply: !!e.target.value\r\n });\r\n };\r\n\r\n private readonly _applyPromotion = (cartState: ICartState | undefined) => {\r\n const { upatePromoError } = this.props;\r\n if (!cartState || !cartState.cart) {\r\n return;\r\n }\r\n const appliedPromo = this.state.promoCodeInputValue;\r\n\r\n cartState\r\n .addPromoCode({ promoCode: appliedPromo })\r\n .then(async result => {\r\n if (result.status === 'SUCCESS') {\r\n // Show success text\r\n this.setState({ promoCodeInputValue: '', error: '', canApply: false });\r\n await cartState.refreshCart({});\r\n const checkoutState = await getCheckoutState(this.props.context.actionContext);\r\n await checkoutState.checkoutCart.addPromoCode({ promoCode: appliedPromo }).then(async result => {\r\n if (result.status === 'SUCCESS') {\r\n this.setState({ error: '' });\r\n }\r\n await checkoutState.checkoutCart.refreshCart({});\r\n });\r\n } else if (result.substatus === 'ALREADYADDED') {\r\n upatePromoError && upatePromoError(this.props.duplicatePromoCodeErrorText);\r\n this.setState({ error: this.props.duplicatePromoCodeErrorText });\r\n } else if (result.status === 'FAILED' && result.substatus !== 'INVALIDPROMOCODE') {\r\n const multipleValidPromoCodeError = result.errorDetails?.LocalizedMessage;\r\n upatePromoError && upatePromoError(multipleValidPromoCodeError!);\r\n this.setState({ error: multipleValidPromoCodeError! });\r\n } else {\r\n upatePromoError && upatePromoError(this.props.invalidPromoCodeErrorText);\r\n this.setState({ error: this.props.invalidPromoCodeErrorText });\r\n }\r\n })\r\n .catch(error => {\r\n upatePromoError && upatePromoError(this.props.failedToAddPromoCodeErrorText);\r\n this.setState({ error: this.props.failedToAddPromoCodeErrorText });\r\n });\r\n };\r\n\r\n private readonly _renderForm = (promoPlaceholderText: string, promoCodeApplyButtonText: string, cartState: ICartState | undefined) => {\r\n const _onSubmit = (event: React.FormEvent) => {\r\n event.preventDefault();\r\n this._applyPromotion(cartState);\r\n };\r\n const _applyPromotion = (event: React.MouseEvent) => {\r\n this._applyPromotion(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 {promoCodeApplyButtonText}\r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n private readonly _removePromotion = (cartState: ICartState | undefined, event: React.MouseEvent, ctx: IActionContext) => {\r\n if (!cartState) {\r\n return;\r\n }\r\n const code = event.currentTarget.getAttribute('data-value') || '';\r\n cartState\r\n .removePromoCodes({\r\n promoCodes: [code]\r\n })\r\n .then(async result => {\r\n const checkoutState = await getCheckoutState(ctx);\r\n if (result.status === 'SUCCESS') {\r\n this.setState({ error: '' });\r\n await cartState.refreshCart({});\r\n await checkoutState.checkoutCart.removePromoCodes({ promoCodes: [code] }).then(async result => {\r\n if (result.status === 'SUCCESS') {\r\n this.setState({ error: '' });\r\n }\r\n await checkoutState.checkoutCart.refreshCart({});\r\n });\r\n }\r\n })\r\n .catch(() => {\r\n this.setState({ error: this.props.failedToRemovePromoCodeErrorText });\r\n });\r\n };\r\n\r\n private readonly _calculateDiscount = (code: string, cartState: ICartState | undefined) => {\r\n if (!cartState || !cartState.cart || !cartState.cart.CartLines || cartState.cart.CartLines.length === 0 || !code) {\r\n return;\r\n }\r\n let discountAmount = 0;\r\n for (const line of cartState.cart.CartLines) {\r\n if (line.DiscountLines) {\r\n for (const discountLine of line.DiscountLines) {\r\n if (discountLine.DiscountCode === code) {\r\n discountAmount += discountLine.DiscountCost!;\r\n }\r\n }\r\n }\r\n }\r\n return discountAmount * -1;\r\n };\r\n\r\n private readonly _renderAppliedPromoCode = (props: IPromoCodeProps) => {\r\n if (!props.cart || !props.cart.cart || !props.cart.cart.Coupons || props.cart.cart.Coupons.length === 0) {\r\n return;\r\n }\r\n\r\n const _removePromotion = (event: React.MouseEvent) => {\r\n this._removePromotion(props.cart, event, props.context.actionContext);\r\n };\r\n const customerTaxPercentage = taxPercentage(props.customerInformation);\r\n\r\n for (const coupon of props.cart.cart.Coupons) {\r\n const discountAmount = this._calculateDiscount(coupon.Code ?? '', props.cart);\r\n let totalCouponDiscountAmount = 0;\r\n if (discountAmount) {\r\n totalCouponDiscountAmount = totalCouponDiscountAmount + discountAmount;\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n
{this.props.appliedPromoCodeHeadingText}
\r\n {props.cart.cart.Coupons.map((coupon: Coupon) => {\r\n const ariaLabel = props.removePromoAriaLabelFormat\r\n ? format(props.removePromoAriaLabelFormat, props.removePromoText, coupon.Code)\r\n : '';\r\n\r\n return (\r\n
\r\n
\r\n {coupon.Code}\r\n \r\n
\r\n \r\n {props.removePromoText}\r\n \r\n
\r\n );\r\n })}\r\n \r\n );\r\n };\r\n}\r\n\r\n// @ts-expect-error\r\nexport const PromoCodeComponent: React.FunctionComponent = msdyn365Commerce.createComponentOverride(\r\n 'PromoCode',\r\n { component: PromoCode, ...PromoCodeComponentActions }\r\n);\r\n\r\nexport default PromoCodeComponent;\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 { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IProductSpecificationViewProps } from '@msdyn365-commerce-modules/product-specification';\r\nimport { IProductSpecificationProps, IProductSpecificationData } from '@msdyn365-commerce-modules/product-specification';\r\nimport { kRV_DownloadCMSDocumentAsync } from '../../../actions/customProxy/PDPDownloadAbleLinks/DataActionExtension.g';\r\nimport { IKRV_DownloadCMSDocumentResponseEntity } from '../../../actions/customProxy/PDPDownloadAbleLinks/DataServiceEntities.g';\r\n\r\nenum ProductSpecificationRuleType {\r\n Blank = 'blank',\r\n Empty = '',\r\n AssemblyInstructions = 'Assembly instructions',\r\n UserManual = 'User Manual',\r\n WarrantyConditions = 'Warranty Conditions',\r\n Datasheets = 'Datasheets',\r\n Zero = 0,\r\n ProductStatus = 'Product Status',\r\n DisplayWpPrice = 'Display WP Price',\r\n IsBundleProduct = 'IsBundleProduct',\r\n Searchkeywords = 'Search keywords',\r\n manufacturerItemNumber = 'Manufacturer item number'\r\n}\r\ninterface IProductSpecificationButton {\r\n productName?: string;\r\n cellData?: string;\r\n className?: string;\r\n}\r\n\r\nconst ProductDownloadButton: React.FC = ({ productName, cellData, className }) => (\r\n \r\n {productName}\r\n \r\n);\r\n\r\nconst ProductSpecificationView: React.FC> = props => {\r\n const {\r\n ProductSpecification,\r\n ProductSpecificationTableProps,\r\n ProductSpecificationTableBodyProps,\r\n productSpecificationResult,\r\n data: { product }\r\n } = props;\r\n const manufacturerItemTypeName = product?.result?.ExtensionProperties?.find(item => {\r\n if (item.Key === 'ManufItemTypeName') {\r\n return item;\r\n } else {\r\n return null;\r\n }\r\n });\r\n\r\n //****** VSI Customization Start for Downloadable Link ******//\r\n // States use for set and map download able links\r\n const [productDownloadButtonState, setProductDownloadButtonState] = React.useState([]);\r\n const [downloadAbleLink, setDownloadAbleLink] = React.useState([]);\r\n // useEffect use to call function and call api to set response\r\n React.useEffect(() => {\r\n getDownloadAbleLinks();\r\n }, [props.data.product]);\r\n\r\n // useEffect use to call function and set downloadable link state\r\n React.useEffect(() => {\r\n if (downloadAbleLink) {\r\n _createDownloadLinks(downloadAbleLink);\r\n }\r\n }, [downloadAbleLink]);\r\n\r\n // Function use to call and set state\r\n const _createDownloadLinks = (content: IKRV_DownloadCMSDocumentResponseEntity[]) => {\r\n const productDownloadButtonArr: any = [];\r\n content &&\r\n content.map((product, index) => {\r\n productDownloadButtonArr.push(\r\n \r\n );\r\n });\r\n setProductDownloadButtonState(productDownloadButtonArr);\r\n };\r\n\r\n // API CALL\r\n const getDownloadAbleLinks = async () => {\r\n let productNumber = props.data.product.result?.ProductNumber!;\r\n if (props.data.product.result?.Components?.length! > 0) {\r\n productNumber = productNumber.substring(0, 10)?.trim();\r\n }\r\n const oun = props.context.request.apiSettings.oun;\r\n const context = {\r\n callerContext: props.context.actionContext\r\n };\r\n await kRV_DownloadCMSDocumentAsync(context, productNumber, oun).then(res => {\r\n setDownloadAbleLink(res);\r\n });\r\n };\r\n //****** VSI Customization End for Downloadable Link ******//\r\n\r\n //VSI-Customizations . To prevent escape characters in attriutes values of product specifications\r\n // todo need to remove it.\r\n // interface productSpecificationPropsExtended {\r\n // productName?: string;\r\n // }\r\n const rowData =\r\n productSpecificationResult &&\r\n ArrayExtensions.hasElements(productSpecificationResult) &&\r\n productSpecificationResult?.filter(ps => {\r\n const productSpecification = ps;\r\n // const cellData = productSpecification?.props as JSX.Element;\r\n const cellData = ps && productSpecification?.props?.children?.props;\r\n\r\n // todo: need to refactor it\r\n if (ps !== null) {\r\n if (\r\n cellData?.props?.dangerouslySetInnerHTML?.__html ===\r\n (ProductSpecificationRuleType.Blank || ProductSpecificationRuleType.Empty) ||\r\n cellData?.props?.children === 0\r\n ) {\r\n return null;\r\n }\r\n if (\r\n cellData?.productName === ProductSpecificationRuleType.AssemblyInstructions.trim() ||\r\n cellData?.productName === ProductSpecificationRuleType.Datasheets.trim() ||\r\n cellData?.productName === ProductSpecificationRuleType.UserManual.trim() ||\r\n cellData?.productName === ProductSpecificationRuleType.WarrantyConditions.trim() ||\r\n cellData?.productName === ProductSpecificationRuleType.IsBundleProduct.trim() ||\r\n cellData?.productName === ProductSpecificationRuleType.ProductStatus.trim() ||\r\n cellData?.productName === ProductSpecificationRuleType.DisplayWpPrice.trim() ||\r\n cellData?.productName === ProductSpecificationRuleType.Searchkeywords.trim() ||\r\n cellData?.productName === ProductSpecificationRuleType.manufacturerItemNumber.trim()\r\n ) {\r\n return null;\r\n }\r\n if (ps?.props.children === ProductSpecificationRuleType.Zero) {\r\n return null;\r\n }\r\n return !ObjectExtensions.isNullOrUndefined(ps);\r\n }\r\n return null;\r\n });\r\n const tempArray =\r\n rowData &&\r\n rowData?.map((item, index) => {\r\n const productName = item && item?.props?.children?.props?.productName;\r\n const value =\r\n item && item?.props?.children?.props?.cellData?.props?.dangerouslySetInnerHTML?.__html\r\n ? item?.props?.children?.props?.cellData?.props?.dangerouslySetInnerHTML?.__html\r\n : item?.props?.children?.props?.cellData?.props?.children;\r\n\r\n return {\r\n key: index, // Use the index as the key attribute\r\n productName: productName,\r\n value: value\r\n };\r\n });\r\n /* VSI customization to Move up \"manufacturer\" */\r\n const manufacturerIndex = tempArray && tempArray?.findIndex(item => item.productName.includes('Manufacturer'));\r\n // If found, move the object to the first position in the array\r\n if (manufacturerIndex !== -1) {\r\n const manufacturerObject = tempArray && manufacturerIndex && tempArray.splice(manufacturerIndex, 1)[0];\r\n tempArray && manufacturerObject && tempArray.unshift(manufacturerObject);\r\n }\r\n const ManufacturerItemTypeName = {\r\n key: (tempArray && tempArray.length) || 2,\r\n productName: 'Manufacturer Item Type Name',\r\n value: manufacturerItemTypeName?.Value?.StringValue === '' ? 'blank' : manufacturerItemTypeName?.Value?.StringValue\r\n };\r\n tempArray && tempArray.splice(1, 0, ManufacturerItemTypeName);\r\n const finalArray =\r\n tempArray &&\r\n tempArray.map((item, index) => ({\r\n ...item,\r\n key: index\r\n }));\r\n const filteredArray =\r\n finalArray &&\r\n finalArray?.filter(\r\n obj =>\r\n obj.value !== 'blank' &&\r\n obj.value !== undefined &&\r\n obj.value !== 0 &&\r\n obj.value !== '0' &&\r\n obj.productName !== 'Promotion Badge' &&\r\n obj.productName !== 'Promotion Text'\r\n );\r\n /* VSI customization Ends */\r\n return rowData && ArrayExtensions.hasElements(rowData) ? (\r\n \r\n
\r\n {props.title}\r\n\r\n \r\n \r\n {filteredArray &&\r\n filteredArray.map(item => (\r\n \r\n {item.productName}\r\n {item.value}\r\n \r\n ))}\r\n \r\n \r\n
\r\n {productDownloadButtonState?.length! > 0 && (\r\n
\r\n

Available downloads

\r\n
\r\n
{productDownloadButtonState && productDownloadButtonState}
\r\n
\r\n )}\r\n
\r\n ) : (\r\n //VSI-Customizations . To generate downloabale links for documents\r\n \r\n {productDownloadButtonState?.length! > 0 && (\r\n
\r\n

Available downloads

\r\n
\r\n
{productDownloadButtonState && productDownloadButtonState}
\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default ProductSpecificationView;\r\n","// tslint:disable\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\n/**\r\n * KRV_CMSDocument entity interface.\r\n */\r\nexport interface IKRV_CMSDocument {\r\n OUN?: string;\r\n FileName: string;\r\n FileURL?: string;\r\n ItemNumber?: string;\r\n ExtensionProperties?: Entities.CommerceProperty[];\r\n}\r\n\r\n/**\r\n * KRV_SaveCMSDocumentResponseEntity entity interface.\r\n */\r\nexport interface IKRV_SaveCMSDocumentResponseEntity {\r\n Status?: string;\r\n StatusCode?: string;\r\n Message?: string;\r\n ExtensionProperties?: Entities.CommerceProperty[];\r\n}\r\n\r\n/**\r\n * KRV_DownloadCMSDocumentResponseEntity entity interface.\r\n */\r\nexport interface IKRV_DownloadCMSDocumentResponseEntity {\r\n File?: string;\r\n FileName?: string;\r\n FileURL?: string;\r\n ExtensionProperties?: Entities.CommerceProperty[];\r\n}\r\n\r\n/**\r\n * KRV_CMSDocument entity class.\r\n */\r\nexport class KRV_CMSDocumentExtensionClass implements IKRV_CMSDocument {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public OUN: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public FileName: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public FileURL: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ItemNumber: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ExtensionProperties: Entities.CommerceProperty[];\r\n\r\n // Navigation properties names\r\n\r\n /**\r\n * Construct an object from odata response.\r\n * @param {any} odataObject The odata result object.\r\n */\r\n constructor(odataObject?: any) {\r\n odataObject = odataObject || {};\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.OUN = odataObject.OUN;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.FileName = odataObject.FileName;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.FileURL = odataObject.FileURL;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ItemNumber = odataObject.ItemNumber;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties = undefined;\r\n if (odataObject.ExtensionProperties) {\r\n this.ExtensionProperties = [];\r\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\r\n if (odataObject.ExtensionProperties[Number(i)]) {\r\n if (odataObject.ExtensionProperties[Number(i)]['@odata.type']) {\r\n var className: string = odataObject.ExtensionProperties[Number(i)]['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat('Class');\r\n if (EntityClasses[String(className)]) {\r\n this.ExtensionProperties[Number(i)] = new EntityClasses[String(className)](\r\n odataObject.ExtensionProperties[Number(i)]\r\n );\r\n }\r\n } else {\r\n this.ExtensionProperties[Number(i)] = new EntityClasses.CommercePropertyClass(\r\n odataObject.ExtensionProperties[Number(i)]\r\n );\r\n }\r\n } else {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties[Number(i)] = undefined;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * KRV_SaveCMSDocumentResponseEntity entity class.\r\n */\r\nexport class KRV_SaveCMSDocumentResponseEntityExtensionClass implements IKRV_SaveCMSDocumentResponseEntity {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Status: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public StatusCode: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Message: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ExtensionProperties: Entities.CommerceProperty[];\r\n\r\n // Navigation properties names\r\n\r\n /**\r\n * Construct an object from odata response.\r\n * @param {any} odataObject The odata result object.\r\n */\r\n constructor(odataObject?: any) {\r\n odataObject = odataObject || {};\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Status = odataObject.Status;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.StatusCode = odataObject.StatusCode;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Message = odataObject.Message;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties = undefined;\r\n if (odataObject.ExtensionProperties) {\r\n this.ExtensionProperties = [];\r\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\r\n if (odataObject.ExtensionProperties[Number(i)]) {\r\n if (odataObject.ExtensionProperties[Number(i)]['@odata.type']) {\r\n var className: string = odataObject.ExtensionProperties[Number(i)]['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat('Class');\r\n if (EntityClasses[String(className)]) {\r\n this.ExtensionProperties[Number(i)] = new EntityClasses[String(className)](\r\n odataObject.ExtensionProperties[Number(i)]\r\n );\r\n }\r\n } else {\r\n this.ExtensionProperties[Number(i)] = new EntityClasses.CommercePropertyClass(\r\n odataObject.ExtensionProperties[Number(i)]\r\n );\r\n }\r\n } else {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties[Number(i)] = undefined;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * KRV_DownloadCMSDocumentResponseEntity entity class.\r\n */\r\nexport class KRV_DownloadCMSDocumentResponseEntityExtensionClass implements IKRV_DownloadCMSDocumentResponseEntity {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public File: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public FileName: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public FileURL: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ExtensionProperties: Entities.CommerceProperty[];\r\n\r\n // Navigation properties names\r\n\r\n /**\r\n * Construct an object from odata response.\r\n * @param {any} odataObject The odata result object.\r\n */\r\n constructor(odataObject?: any) {\r\n odataObject = odataObject || {};\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.File = odataObject.File;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.FileName = odataObject.FileName;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.FileURL = odataObject.FileURL;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties = undefined;\r\n if (odataObject.ExtensionProperties) {\r\n this.ExtensionProperties = [];\r\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\r\n if (odataObject.ExtensionProperties[Number(i)]) {\r\n if (odataObject.ExtensionProperties[Number(i)]['@odata.type']) {\r\n var className: string = odataObject.ExtensionProperties[Number(i)]['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat('Class');\r\n if (EntityClasses[String(className)]) {\r\n this.ExtensionProperties[Number(i)] = new EntityClasses[String(className)](\r\n odataObject.ExtensionProperties[Number(i)]\r\n );\r\n }\r\n } else {\r\n this.ExtensionProperties[Number(i)] = new EntityClasses.CommercePropertyClass(\r\n odataObject.ExtensionProperties[Number(i)]\r\n );\r\n }\r\n } else {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties[Number(i)] = undefined;\r\n }\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 * THIS FILE IS AN AUTOGENERATED TYPESCRIPT PROXY EXTENSION.\r\n * TO USE THIS FILE, IT MUST BE ADDED TO A D365COMMERCE APPLICATION\r\n */\r\n// tslint:disable\r\nimport {\r\n AsyncResult,\r\n callActionOrExecute,\r\n DataServiceQuery,\r\n IContext,\r\n IDataServiceRequest,\r\n IQueryResultSettings\r\n} from '@msdyn365-commerce/retail-proxy';\r\n// @ts-ignore\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as DataServiceEntities from './DataServiceEntities.g';\r\n\r\n// @ts-ignore\r\nfunction kRV_CMSDocumentsQuery(fileName?: string): DataServiceQuery {\r\n const key = fileName ? { FileName: fileName } : null;\r\n return new DataServiceQuery('KRV_CMSDocuments', 'KRV_CMSDocument', DataServiceEntities.KRV_CMSDocumentExtensionClass, key);\r\n}\r\n\r\nexport function createKRV_SaveCMSDocumentInput(kRV_CMSDocument: DataServiceEntities.IKRV_CMSDocument): IDataServiceRequest {\r\n const query = kRV_CMSDocumentsQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'KRV_SaveCMSDocument',\r\n true,\r\n DataServiceEntities.KRV_SaveCMSDocumentResponseEntityExtensionClass,\r\n 'false',\r\n { bypassCache: 'get', returnEntity: 'DataServiceEntities.IKRV_SaveCMSDocumentResponseEntity' },\r\n { kRV_CMSDocument: kRV_CMSDocument }\r\n );\r\n}\r\n\r\nexport function kRV_SaveCMSDocumentAsync(\r\n context: IContext,\r\n kRV_CMSDocument: DataServiceEntities.IKRV_CMSDocument\r\n): AsyncResult {\r\n const request = createKRV_SaveCMSDocumentInput(kRV_CMSDocument);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n\r\nexport function createKRV_DownloadCMSDocumentInput(\r\n queryResultSettings: IQueryResultSettings,\r\n itemNumber: string,\r\n oun: string\r\n): IDataServiceRequest {\r\n const query = kRV_CMSDocumentsQuery().resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation(\r\n 'KRV_DownloadCMSDocument',\r\n true,\r\n DataServiceEntities.KRV_DownloadCMSDocumentResponseEntityExtensionClass,\r\n 'true',\r\n { bypassCache: 'get', returnEntity: 'DataServiceEntities.IKRV_DownloadCMSDocumentResponseEntity' },\r\n { itemNumber: itemNumber, oun: oun }\r\n );\r\n}\r\n\r\nexport function kRV_DownloadCMSDocumentAsync(\r\n context: IContext,\r\n itemNumber: string,\r\n oun: string\r\n): AsyncResult {\r\n const request = createKRV_DownloadCMSDocumentInput(context.queryResultSettings || {}, itemNumber, oun);\r\n return callActionOrExecute(request, context.callerContext);\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 { Module, Node, Waiting, IncrementalQuantity } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n IBuyboxAddToCartViewProps,\r\n IBuyboxAddToWishlistViewProps,\r\n IBuyboxKeyInPriceViewProps,\r\n IBuyboxProductConfigureDropdownViewProps,\r\n IBuyboxProductConfigureViewProps,\r\n IBuyboxProductQuantityViewProps\r\n} from '@msdyn365-commerce-modules/buybox/src/modules/quickview/../../common';\r\nimport { IQuickviewViewProps } from '@msdyn365-commerce-modules/buybox/src/modules/quickview/./quickview';\r\nimport { IQuickviewProps } from '../definition-extensions/quickview.ext.props.autogenerated';\r\nimport { IQuickviewData } from '@msdyn365-commerce-modules/buybox/src/modules/quickview/quickview.data';\r\nimport { generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { trafficLightsAtpaction, TrafficLightsAtpInput } from '../../../actions/traffic-lights-atp.action';\r\nimport { ATPMessage, TrafficLights } from '../../../utils/atp-utils';\r\nimport EstimatedShipDateComponent from '../../../utils/ATP/atpESD';\r\nimport { KitProduct } from '../../../utils/Kits/kits';\r\nimport { kRV_GetMultipleATPLeadTimeDateAsync } from '../../../actions/customProxy/ATP-update/DataActionExtension.g';\r\nimport {\r\n IKRV_ATPLeadTimePropertiesDate,\r\n IKRV_GetMultipleATPLeadTimeResponseDate\r\n} from '../../../actions/customProxy/ATP-update/DataServiceEntities.g';\r\nimport EstimatedShipDateKitComponent from '../../../utils/ATP/atpKitESD';\r\nimport { IBuyboxState, IBuyboxCommonData, IBuyboxExtentedProps } from '@msdyn365-commerce-modules/buybox';\r\nimport { PriceComponent } from './components/price.component';\r\nimport { filteredProductAttributeList, incExcPriceFormat, isRequestPrice, taxPercentage } from '../../../utils/helper';\r\nimport { PromotionBadges } from '../../../utils/badges';\r\n\r\nconst _renderAddToWishlist = (addToWishlist: IBuyboxAddToWishlistViewProps): JSX.Element => {\r\n const { ContainerProps, errorBlock, button } = addToWishlist;\r\n\r\n return (\r\n \r\n {errorBlock}\r\n {button}\r\n \r\n );\r\n};\r\n\r\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\r\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n {errors}\r\n \r\n {select}\r\n \r\n );\r\n};\r\n\r\nconst _renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\r\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\r\n return (\r\n \r\n {heading}\r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\r\n const { ContainerProps, dropdowns } = configure;\r\n\r\n return {dropdowns.map(_renderConfigureDropdown)};\r\n};\r\ninterface IQuickviewViewPropsExtended extends IQuickviewViewProps {\r\n cart?: any;\r\n}\r\ninterface CommercePropertyValue {\r\n BooleanValue?: boolean;\r\n ByteValue?: number;\r\n DateTimeOffsetValue?: Date;\r\n DecimalValue?: number;\r\n IntegerValue?: number;\r\n LongValue?: number;\r\n StringValue?: string;\r\n}\r\ninterface CommerceProperty {\r\n Key?: string;\r\n Value?: CommercePropertyValue;\r\n}\r\ninterface AttributeSwatch {\r\n SwatchValue?: string;\r\n SwatchImageUrl?: string;\r\n SwatchColorHexCode?: string;\r\n IsDefault?: boolean;\r\n ProductImageUrls?: string[];\r\n ExtensionProperties?: CommerceProperty[];\r\n}\r\ninterface AttributeValue {\r\n Name?: string;\r\n KeyName?: string;\r\n UnitOfMeasureSymbol?: string;\r\n DataTypeValue?: number;\r\n BooleanValue?: boolean;\r\n DateTimeOffsetValue?: Date;\r\n FloatValue?: number;\r\n IntegerValue?: number;\r\n TextValue?: string;\r\n CurrencyValue?: number;\r\n CurrencyCode?: string;\r\n AttributeValueId?: number;\r\n RecordId?: number;\r\n Swatches?: AttributeSwatch[];\r\n ExtensionProperties?: CommerceProperty[];\r\n}\r\ninterface customAttribute {\r\n attributevalues?: AttributeValue[];\r\n}\r\n\r\n/**\r\n * Functional component which renders quick view button and popup based by the given props file.\r\n * @param {IQuickviewViewProps} props - Configuration for the quick view component.\r\n * @returns {React.FC} - Functional component of the quick view.\r\n */\r\nexport const QuickViewFunctionalComponent: React.FC> = (\r\n props: IQuickviewViewPropsExtended & IQuickviewProps & customAttribute\r\n) => {\r\n const { quickView, quickViewButton, isModalOpen, isMobileDevice, resources } = props;\r\n const isUserAuth = props.context.actionContext.requestContext.user.isAuthenticated;\r\n const [isMax, setIsMax] = React.useState(false);\r\n const [isMin, setIsMin] = React.useState(true);\r\n const [isClassName, setIsClassName] = React.useState(true);\r\n const [producerName, setProducerName] = React.useState('');\r\n const [isProductDiscontinued, setIsProductDiscontinued] = React.useState(false);\r\n const [isAddToCartDisabled, setIsAddToCartDisabled] = React.useState(false);\r\n const [disableAddToCartATP, setDisableAddToCartATP] = React.useState(false);\r\n const [twoZeroFourProdMax, setTwoZeroFourProdMax] = React.useState(0);\r\n //To set Image Url\r\n const [imgURI, setImgURL] = React.useState();\r\n const productAttributes = filteredProductAttributeList(props.attributevalues, props.context.app.config.kcProductAttribute);\r\n const findProducerName = () => {\r\n productAttributes?.map(e => {\r\n if (e.identifier === 'Manufacturer') {\r\n setProducerName(e?.TextValue);\r\n }\r\n });\r\n };\r\n\r\n //use this function to render or display category image\r\n const _renderCategoryImg = (imgURI: string) => {\r\n return (\r\n
\r\n producer-images\r\n
\r\n );\r\n };\r\n //To set the producer name\r\n React.useEffect(() => {\r\n findProducerName();\r\n if (producerName) {\r\n setImgURL(producerName);\r\n }\r\n }, [props.attributevalues]);\r\n\r\n //to generate Image url after getting img url from api call\r\n React.useEffect(() => {\r\n if (imgURI) {\r\n let imageUrl = generateImageUrl(imgURI, props.context.actionContext.requestContext.apiSettings);\r\n imageUrl = imageUrl?.replace('=/', '=') || '';\r\n setImgURL(imageUrl);\r\n }\r\n }, [imgURI]);\r\n\r\n React.useEffect(() => {\r\n props.state.quantity <= props.state.min! ? setIsMin(true) : setIsMin(false);\r\n props.state.quantity === props.state.max! ? setIsMax(true) : setIsMax(false);\r\n props.state.quantity < props.state.min! ? setIsClassName(true) : setIsClassName(false);\r\n }, [props.state.quantity, props.state.min, props.state.max]);\r\n\r\n const _renderAddToCart = (addToCart: IBuyboxAddToCartViewProps): JSX.Element => {\r\n const { ContainerProps, errorBlock, button } = addToCart;\r\n let customAddBundleToCartButton;\r\n if (props?.productDetails?.product?.Components?.length !== 0) {\r\n customAddBundleToCartButton =\r\n button &&\r\n React.cloneElement(button as JSX.Element, {\r\n title: props.resources.addBundleToCartButtonLabel,\r\n children: props.resources.addBundleToCartButtonLabel,\r\n addToCartText: props.resources.addBundleToCartButtonLabel\r\n });\r\n }\r\n return (\r\n \r\n {errorBlock}\r\n
\r\n {props.productDetails?.product?.Components?.length !== 0 ? (\r\n \r\n ) : isRequestPrice(\r\n props.productDetails?.productPrice!,\r\n props.data.customerInformation.result?.LineDiscountGroup!,\r\n props.productDetails?.product?.Components?.length !== 0\r\n ) ||\r\n isClassName ||\r\n isProductDiscontinued ||\r\n isAddToCartDisabled ||\r\n disableAddToCartATP ? (\r\n \r\n ) : props?.productDetails?.product?.Components?.length !== 0 ? (\r\n
{customAddBundleToCartButton}
\r\n ) : (\r\n
{button}
\r\n )}\r\n
\r\n
\r\n );\r\n };\r\n\r\n const _renderQuantity = (\r\n quantity: IBuyboxProductQuantityViewProps,\r\n quantityLimitsMessages: React.ReactNode,\r\n propMax: number\r\n ): JSX.Element => {\r\n const { ContainerProps, LabelContainerProps, heading, input, errors } = quantity;\r\n const customInput =\r\n input &&\r\n React.cloneElement(input as JSX.Element, {\r\n max: propMax,\r\n disable: disableAddToCartATP ? true : false\r\n });\r\n return (\r\n \r\n \r\n {heading}\r\n {errors}\r\n \r\n {isRequestPrice(\r\n props.productDetails?.productPrice!,\r\n props.data.customerInformation.result?.LineDiscountGroup!,\r\n props.productDetails?.product?.Components?.length !== 0\r\n ) ||\r\n isClassName ||\r\n isProductDiscontinued ||\r\n isAddToCartDisabled ||\r\n disableAddToCartATP ? (\r\n \r\n ) : (\r\n customInput\r\n )}\r\n {/* {quantityLimitsMessages} */}\r\n
\r\n {props.state.min && isMin && (\r\n

\r\n {props.resources.informationHeading}\r\n \r\n {`${props.resources.minErrorMessage} ${props.state.min}`}\r\n

\r\n )}\r\n\r\n {((props.state.max && isMax) || disableAddToCartATP) && (\r\n

\r\n {props.resources.informationHeading}\r\n \r\n {disableAddToCartATP\r\n ? props.resources.maxQuantityMessage.replace('{propMax}', String(propMax))\r\n : `${props.resources.maxErrorMessage} ${twoZeroFourProdMax !== 0 ? twoZeroFourProdMax : props.state.max}`}\r\n

\r\n )}\r\n
\r\n
\r\n );\r\n };\r\n\r\n const RenderBodyContent: React.FC = (\r\n props: IQuickviewViewPropsExtended & customAttribute\r\n ) => {\r\n const {\r\n title,\r\n price,\r\n rating,\r\n keyInPrice,\r\n quantity,\r\n configure,\r\n inventoryLabel,\r\n quantityLimitsMessages,\r\n // seeDetailsbutton,\r\n loading,\r\n ProductInfoContainerProps,\r\n MediaGalleryContainerProps,\r\n CarouselProps,\r\n unitOfMeasure,\r\n productDetails,\r\n cart\r\n } = props;\r\n const buyBoxProps = props as IBuyboxExtentedProps;\r\n const { enabledIncExPrices } = props.context.app.config;\r\n const renderItemNumber = () => {\r\n let itemNumber;\r\n itemNumber = props.productDetails?.product?.ItemId;\r\n return `${itemNumber}`;\r\n };\r\n const customerTaxPercentage = taxPercentage(props.data.customerInformation?.result!);\r\n const calculateWpPrice = () => {\r\n let price;\r\n let discountedWpPrice: number;\r\n let displayValue;\r\n\r\n props.attributevalues?.map(e => {\r\n if (e.KeyName === 'PowerratingPmax(Wp)') {\r\n price = props.productDetails?.productPrice?.CustomerContextualPrice! / e.IntegerValue!;\r\n discountedWpPrice = props.productDetails?.productPrice?.CustomerContextualPrice! / e.IntegerValue!;\r\n }\r\n if (e.KeyName === 'DisplayWPPrice') {\r\n displayValue = e.BooleanValue;\r\n }\r\n });\r\n if (displayValue && price !== undefined) {\r\n const ppwPrice =\r\n props?.context?.actionContext?.requestContext?.apiSettings?.oun !== props.context.app.config.ounNumberForUsSite\r\n ? resources.wpPriceLabel\r\n : resources.ppwPriceLabel;\r\n return (\r\n Number.isFinite(discountedWpPrice!) && (\r\n
\r\n {ppwPrice}:\r\n \r\n {incExcPriceFormat(Number(discountedWpPrice!), props.context, enabledIncExPrices, customerTaxPercentage, 3)}\r\n \r\n
\r\n )\r\n );\r\n }\r\n return <>;\r\n };\r\n\r\n if (loading) {\r\n return <>{loading};\r\n }\r\n let linkedProducts: any[] | undefined;\r\n if (productDetails) {\r\n linkedProducts = productDetails.product?.Components;\r\n }\r\n const extensionsProps = props?.productDetails?.product?.ExtensionProperties;\r\n let promotionBadge = '';\r\n if (extensionsProps?.find(e => e?.Key === 'PromotionBadge')) {\r\n promotionBadge = extensionsProps?.find(e => e?.Key === 'PromotionBadge')?.Value?.StringValue || '';\r\n }\r\n // ************ VSI Customization Starts for Bundle kit ATP ****************//\r\n const [atpData, setAtpData] = React.useState>([]);\r\n const [kitProductATP, setKitProductATP] = React.useState(false);\r\n const [isKitProductATPDiscontinued, setIsKitProductATPDiscontinued] = React.useState(false);\r\n const _atpData = async (products: any[] | undefined) => {\r\n const KRVATPLeadTimeDate: any[] = [];\r\n //Create date according to API\r\n const objectDate = new Date();\r\n const day = objectDate.getDate();\r\n const month = objectDate.getMonth();\r\n const year = objectDate.getFullYear();\r\n const requestedDate = `${day}/${month + 1}/${year}`;\r\n\r\n if (products && products.length > 0) {\r\n products?.map((e: any) => {\r\n KRVATPLeadTimeDate.push({\r\n itemID: e.ItemId,\r\n requestedDate: requestedDate\r\n });\r\n });\r\n }\r\n const ctx = { callerContext: props.context.actionContext };\r\n try {\r\n const response = await kRV_GetMultipleATPLeadTimeDateAsync(ctx, KRVATPLeadTimeDate);\r\n setAtpData([response] || []);\r\n setKitProductATP(true);\r\n } catch (err) {\r\n console.error(err, 'ERR');\r\n }\r\n };\r\n function kitProductATPCall() {\r\n if (linkedProducts?.length !== 0) {\r\n _atpData(linkedProducts);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n if (linkedProducts?.length !== 0 && props.context.request.user.isAuthenticated) {\r\n if (!kitProductATP) {\r\n kitProductATPCall();\r\n }\r\n const anyRed = atpData[0]?.ATPTrafficLights?.filter(item => item.TrafficLight === 'Red');\r\n if (anyRed?.length || trafficLightsResponse?.IsDiscontinuedProduct === 'Yes') {\r\n setIsKitProductATPDiscontinued(true);\r\n setIsProductDiscontinued(true);\r\n }\r\n if (trafficLightsResponse?.IsAddToCart === 'No') {\r\n setIsAddToCartDisabled(true);\r\n }\r\n }\r\n }, [linkedProducts, atpData]);\r\n // ************ VSI Customization Ends for Bundle kit ATP ****************//\r\n // ********** VSI Customization Start ****************//\r\n const itemId = productDetails?.product?.ItemId;\r\n const [isLoading, setIsLoading] = React.useState(true);\r\n const [propMax, setPropMax] = React.useState(props.state.max!);\r\n const [maxESD, setMaxESD] = React.useState(props.state.max!);\r\n const [trafficLightsResponse, settrafficLightsResponse] = React.useState();\r\n\r\n React.useEffect(() => {\r\n if (props.state.max) {\r\n setPropMax(props.state.max);\r\n }\r\n }, [props.state.max]);\r\n\r\n //Use this Effect for set max values of product in state according to status\r\n React.useEffect(() => {\r\n if (trafficLightsResponse) {\r\n if (trafficLightsResponse.StatusCode === '500') {\r\n setIsClassName(true);\r\n setPropMax(trafficLightsResponse?.Quantity);\r\n setMaxESD(trafficLightsResponse?.Quantity);\r\n } else if (trafficLightsResponse.StatusCode === '501') {\r\n if (trafficLightsResponse.POQuantity > props.state.max!) {\r\n setPropMax(props.state.max!);\r\n setMaxESD(props.state.max!);\r\n } else {\r\n setPropMax(trafficLightsResponse.POQuantity!);\r\n setMaxESD(trafficLightsResponse.POQuantity!);\r\n }\r\n } else if (trafficLightsResponse.StatusCode === '502') {\r\n setPropMax(trafficLightsResponse?.Quantity);\r\n setMaxESD(trafficLightsResponse?.Quantity);\r\n } else if (trafficLightsResponse.StatusCode === '503') {\r\n if (trafficLightsResponse?.Quantity + trafficLightsResponse.POQuantity > props.state.max!) {\r\n setPropMax(props.state.max!);\r\n setMaxESD(trafficLightsResponse?.Quantity + trafficLightsResponse.POQuantity);\r\n } else {\r\n setPropMax(trafficLightsResponse?.Quantity + trafficLightsResponse.POQuantity);\r\n setMaxESD(trafficLightsResponse?.Quantity + trafficLightsResponse.POQuantity);\r\n }\r\n } else if (\r\n trafficLightsResponse.StatusCode === '204' &&\r\n trafficLightsResponse?.Message?.toLocaleLowerCase() === resources.noFurtherSuppliesText\r\n ) {\r\n //checking if already same product exist in cart\r\n let productOfInterestQuantity: number | undefined;\r\n\r\n cart?.result?.cart?.CartLines?.map((item: { ItemId: string | undefined; Quantity: number | undefined }) => {\r\n if (item.ItemId === itemId) {\r\n productOfInterestQuantity = item.Quantity;\r\n }\r\n return undefined;\r\n });\r\n setPropMax(\r\n productOfInterestQuantity !== undefined\r\n ? trafficLightsResponse?.Quantity - productOfInterestQuantity!\r\n : trafficLightsResponse?.Quantity\r\n );\r\n setMaxESD(trafficLightsResponse?.Quantity);\r\n } else {\r\n setPropMax(props.state.max!);\r\n }\r\n }\r\n }, [trafficLightsResponse]);\r\n React.useEffect(() => {\r\n if (cart?.result?.cart?.CartLines && trafficLightsResponse?.StatusCode === '204') {\r\n //checking if already same product exist in cart\r\n let productOfInterestQuantity: number | undefined;\r\n cart?.result?.cart?.CartLines?.map((item: { ItemId: string | undefined; Quantity: number | undefined }) => {\r\n if (item.ItemId === itemId) {\r\n productOfInterestQuantity = item.Quantity;\r\n }\r\n return undefined;\r\n });\r\n //condition to disable add to cart\r\n if (productOfInterestQuantity && productOfInterestQuantity >= trafficLightsResponse?.Quantity!) {\r\n setDisableAddToCartATP(true);\r\n setPropMax(trafficLightsResponse?.Quantity!);\r\n }\r\n }\r\n }, [cart?.result?.cart, trafficLightsResponse]);\r\n React.useEffect(() => {\r\n if (trafficLightsResponse?.StatusCode === '204') {\r\n //condition to set new max\r\n if (\r\n (props.state.max && props.state.max > trafficLightsResponse?.Quantity!) ||\r\n props.state.quantity === trafficLightsResponse?.Quantity!\r\n ) {\r\n setTwoZeroFourProdMax(trafficLightsResponse?.Quantity!);\r\n setIsMax(true);\r\n } else if (props.state.quantity < trafficLightsResponse?.Quantity!) {\r\n setIsMax(false);\r\n }\r\n }\r\n }, [props.state.quantity, trafficLightsResponse]);\r\n //VSI Customization Start States of traffic lights\r\n let objectDate = new Date();\r\n let day = objectDate.getDate();\r\n let month = objectDate.getMonth();\r\n let year = objectDate.getFullYear();\r\n let requestedDate = `${month + 1}/${day}/${year}`;\r\n\r\n //VSI Customization END States of traffic lights\r\n async function trafficLightsDataActionCall() {\r\n setIsLoading(true);\r\n const requestBody = {\r\n itemId: itemId!,\r\n requestedDate: requestedDate\r\n };\r\n try {\r\n const trafficLightsParams = new TrafficLightsAtpInput(requestBody.itemId, requestBody.requestedDate);\r\n const trafficLightsSlots = await trafficLightsAtpaction(trafficLightsParams, props.context.actionContext);\r\n settrafficLightsResponse(trafficLightsSlots);\r\n if (trafficLightsSlots.TrafficLight === 'Red' || trafficLightsResponse?.IsDiscontinuedProduct === 'Yes') {\r\n setIsProductDiscontinued(true);\r\n }\r\n if (trafficLightsResponse?.IsAddToCart === 'No') {\r\n setIsAddToCartDisabled(true);\r\n }\r\n } catch (error) {\r\n props.telemetry.warning('error');\r\n props.telemetry.debug('Unable to get response for traffic lights slots');\r\n }\r\n setIsLoading(false);\r\n }\r\n\r\n React.useEffect(() => {\r\n if (requestedDate && itemId) trafficLightsDataActionCall();\r\n }, [requestedDate, itemId]);\r\n\r\n // ********** VSI Customization END ****************//\r\n\r\n if (CarouselProps.items) {\r\n if (CarouselProps.items[0]?.props.children) {\r\n CarouselProps.items[0].props.children.props.role = '';\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n
{imgURI && _renderCategoryImg(imgURI)}
\r\n {title}\r\n
\r\n {resources.itemNnLabel}: \r\n {renderItemNumber()}\r\n
\r\n {linkedProducts?.length !== 0 ? (\r\n \r\n ) : (\r\n <>\r\n {unitOfMeasure}\r\n {rating}\r\n {configure && _renderConfigure(configure)}\r\n {keyInPrice && _renderKeyInPrice(keyInPrice)}\r\n \r\n )}\r\n {/* *********** VSI CUSTOMIZATION START FOR ATP ************ */}\r\n
\r\n {isLoading ? (\r\n \r\n ) : (\r\n
\r\n {trafficLightsResponse && (\r\n
\r\n \r\n {linkedProducts?.length !== 0 ? (\r\n
\r\n

{resources.contactSalesOfficeMessage}

\r\n
\r\n ) : isKitProductATPDiscontinued ? (\r\n
\r\n

{resources.noFurtherSuppliesText}

\r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n )}\r\n\r\n {linkedProducts?.length !== 0 ? (\r\n \r\n ) : isKitProductATPDiscontinued ? null : (\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n {/* *********** VSI CUSTOMIZATION End FOR ATP ************ */}\r\n\r\n
\r\n {linkedProducts?.length !== 0 ? (\r\n
\r\n
{resources.quantityLabel}
\r\n
\r\n ) : (\r\n quantity && _renderQuantity(quantity, quantityLimitsMessages, propMax)\r\n )}\r\n
\r\n {isRequestPrice(\r\n props.productDetails?.productPrice!,\r\n props.data.customerInformation?.result?.LineDiscountGroup!,\r\n linkedProducts?.length !== 0\r\n ) ? (\r\n
\r\n {resources.requestPriceLabel}\r\n
\r\n \r\n {resources.cantAddContactSalesOfficeMessage}\r\n
\r\n
\r\n ) : (\r\n <>\r\n {price && getBuyboxProductPrice(buyBoxProps, props.state)}\r\n {linkedProducts?.length !== 0 ?

{resources.forBundleLabel}

: null}\r\n \r\n )}\r\n {props.context.actionContext.requestContext.user.isAuthenticated &&\r\n !isRequestPrice(\r\n props.productDetails?.productPrice!,\r\n props.data.customerInformation?.result?.LineDiscountGroup!,\r\n linkedProducts?.length !== 0\r\n ) &&\r\n calculateWpPrice()}\r\n
\r\n
\r\n {/* {seeDetailsbutton} */}\r\n {inventoryLabel}\r\n
\r\n \r\n );\r\n };\r\n\r\n const _renderQuickViewPopup = (props: IQuickviewViewPropsExtended): JSX.Element => {\r\n const {\r\n ModalContainer,\r\n ModalHeaderContainer,\r\n ModalFooterContainer,\r\n ModalHeaderContent,\r\n ModalBodyContainer,\r\n addToWishlist,\r\n addToCart,\r\n cartContainerProps\r\n } = props;\r\n return (\r\n \r\n {ModalHeaderContent}\r\n {}\r\n \r\n \r\n {addToCart && _renderAddToCart(addToCart)}\r\n {addToWishlist && _renderAddToWishlist(addToWishlist)}\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n {!isMobileDevice && isUserAuth && quickViewButton}\r\n {isModalOpen && _renderQuickViewPopup(props)}\r\n \r\n );\r\n};\r\n\r\nconst getBuyboxProductPrice = (props: IBuyboxExtentedProps, state: IBuyboxState): React.ReactElement | undefined => {\r\n const { id, typeName, context, resources } = props;\r\n const customerTaxPercentage = taxPercentage(props.data.customerInformation?.result!);\r\n return (\r\n state.productPrice && (\r\n featureState.Name === 'Dynamics.AX.Application.RetailSearchPriceRangeFeature'\r\n )?.IsEnabled\r\n }\r\n isSalesAgreementPriceFeatureEnabled={\r\n props.data.featureState.result?.find(\r\n featureState => featureState.Name === 'Dynamics.AX.Application.RetailSalesAgreementPriceSupportFeature'\r\n )?.IsEnabled\r\n }\r\n useLegacySalesAgreementHTMLFeature={\r\n props.data.featureState.result?.find(featureState => featureState.Name === 'UseLegacySalesAgreementHTMLFeature')\r\n ?.IsEnabled\r\n }\r\n priceResources={{\r\n priceRangeSeparator: resources.priceRangeSeparator,\r\n salesAgreementPricePrompt: resources.salesAgreementPricePrompt,\r\n salesAgreementExpirationDatePrompt: resources.salesAgreementExpirationDatePrompt,\r\n salesAgreementCommittedQuantityPrompt: resources.salesAgreementCommittedQuantityPrompt,\r\n salesAgreementRemainingQuantityPrompt: resources.salesAgreementRemainingQuantityPrompt\r\n }}\r\n freePriceText={resources.priceFree}\r\n originalPriceText={resources.originalPriceText}\r\n currentPriceText={resources.currentPriceText}\r\n isIncExPriceFormatEnabled={true}\r\n customerTaxPercentage={customerTaxPercentage}\r\n />\r\n )\r\n );\r\n};\r\n\r\nexport default QuickViewFunctionalComponent;\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n ISignInItem,\r\n ISignInLoading,\r\n ISignInLocalAccount,\r\n ISignInSocialAccount,\r\n ISignInSocialItem,\r\n ISignInB2BAccount,\r\n ISignInB2BItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/./sign-in';\r\n\r\nconst LocalAccount: React.FC = ({ localAccount, items, forgetPassword, disclaimer, error, signInButton }) => {\r\n return (\r\n \r\n {items &&\r\n items.map((item: ISignInItem) => {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {forgetPassword}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n \r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({ socialAccounts, items }) => {\r\n return (\r\n \r\n {items &&\r\n items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst B2BAccount: React.FC = ({ socialAccounts, items }) => {\r\n return (\r\n \r\n {items &&\r\n items.map((item: ISignInB2BItem) => {\r\n return (\r\n item && (\r\n \r\n {item.text}\r\n \r\n )\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({ modal, modalBody, icon, message }) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n signInB2BAccount,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n

Sign in with your email address

\r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n {B2BAccount(signInB2BAccount)}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default SignInView;\r\n","import React from 'react';\r\nimport { Button } from 'reactstrap';\r\nimport ATPESDMessageComponent from './atpESDMessage';\r\nimport { kRV_GetATPLeadTimeWithQuantityAsync } from '../../actions/customProxy/ATP1/DataActionExtension.g';\r\nimport { IKRV_GetATPLeadTimeResponseQuantity } from '../../actions/customProxy/ATP1/DataServiceEntities.g';\r\n\r\nconst EstimatedShipDateComponent: React.FC = ({ itemNumber, propMax, context, trafficLightsResponse }) => {\r\n const [quanATP, setQuanAtp] = React.useState();\r\n const [isLoadingAtpResponse, setIsLoadingAtpResponse] = React.useState(false);\r\n const [atpResponse, setAtpResponse] = React.useState();\r\n const [isCalculateBtnDisable, setIsCalculateBtnDisable] = React.useState(false);\r\n const [isMaxExceeded, setIsMaxExceeded] = React.useState(false);\r\n React.useEffect(() => {\r\n quanATP! < 1 || trafficLightsResponse?.IsCalShipping === 'No' || trafficLightsResponse?.IsDiscontinuedProduct === 'Yes'\r\n ? setIsCalculateBtnDisable(true)\r\n : setIsCalculateBtnDisable(false);\r\n if (quanATP! > propMax && trafficLightsResponse?.StatusCode === '500') {\r\n setQuanAtp(propMax);\r\n } else if (quanATP! > propMax && trafficLightsResponse?.StatusCode === '502') {\r\n setQuanAtp(propMax);\r\n } else if (quanATP! > propMax && trafficLightsResponse?.StatusCode === '501') {\r\n setQuanAtp(propMax);\r\n } else if (quanATP! > propMax && trafficLightsResponse?.StatusCode === '503') {\r\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\r\n setQuanAtp(trafficLightsResponse?.Quantity + trafficLightsResponse.POQuantity);\r\n } else if (quanATP! > propMax && trafficLightsResponse?.StatusCode === '204') {\r\n setQuanAtp(propMax);\r\n setIsMaxExceeded(true);\r\n setTimeout(() => {\r\n setIsMaxExceeded(false);\r\n }, 4000);\r\n }\r\n }, [quanATP]);\r\n\r\n async function buttonATPCalculationDataActionCall() {\r\n setIsLoadingAtpResponse(true);\r\n try {\r\n const KRVATPLeadTimeQuantity = [\r\n {\r\n itemID: itemNumber,\r\n Qty: quanATP!\r\n }\r\n ];\r\n const context1 = { callerContext: context.actionContext };\r\n await kRV_GetATPLeadTimeWithQuantityAsync(context1, KRVATPLeadTimeQuantity).then(res => {\r\n setAtpResponse(res);\r\n setIsLoadingAtpResponse(false);\r\n });\r\n } catch (error) {\r\n const errorBody: any = {\r\n Id: 0,\r\n ATPDate: '0',\r\n Message: 'Unable to get response for Estimated Availability',\r\n ExtensionProperties: []\r\n };\r\n setAtpResponse(errorBody);\r\n setIsLoadingAtpResponse(false);\r\n }\r\n }\r\n const handleCalculateATPDate = () => {\r\n if (itemNumber && quanATP) {\r\n void buttonATPCalculationDataActionCall();\r\n }\r\n };\r\n //These symbols are not be typed on input box\r\n const exceptThisSymbols = ['e', 'E', '+', '-', '.'];\r\n\r\n return (\r\n <>\r\n
\r\n \r\n {\r\n setQuanAtp(e.target.value);\r\n }}\r\n onKeyDown={e => exceptThisSymbols.includes(e.key) && e.preventDefault()}\r\n disabled={\r\n trafficLightsResponse?.TrafficLight! === 'Red' ||\r\n trafficLightsResponse?.IsCalShipping === 'No' ||\r\n trafficLightsResponse?.IsDiscontinuedProduct === 'Yes'\r\n }\r\n />\r\n \r\n Calculate Shipping Date\r\n \r\n
\r\n {/*Message to be changed and moved to resources */}\r\n {isMaxExceeded &&

{`Only available stock quantity can be entered (${propMax})`}

}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default EstimatedShipDateComponent;\r\n","/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\r\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\r\nimport React from 'react';\r\nimport { Waiting } from '@msdyn365-commerce-modules/utilities';\r\nimport { dateFormatByLocale } from '../helper';\r\n\r\nconst ATPESDMessageComponent: React.FC = ({ quanATP, propMax, trafficLightsResponse, isLoadingAtpResponse, atpResponse, context }) => {\r\n let estShipDate;\r\n let atpHighestDate;\r\n if (\r\n atpResponse?.ATPLeadTimePropertiesQuantityResponseEntityList[0]?.ATPDate &&\r\n context.app.config.dateFormat &&\r\n context.request.channel?.Currency\r\n ) {\r\n estShipDate =\r\n dateFormatByLocale(\r\n context.app.config.dateFormat,\r\n context.request.channel?.Currency,\r\n atpResponse?.ATPLeadTimePropertiesQuantityResponseEntityList[0]?.ATPDate\r\n ) ?? '';\r\n }\r\n if (atpResponse?.HighestDate.toString() && context.app.config.dateFormat && context.request.channel?.Currency) {\r\n atpHighestDate =\r\n dateFormatByLocale(context.app.config.dateFormat, context.request.channel?.Currency, atpResponse?.HighestDate.toString()) ?? '';\r\n }\r\n if (quanATP! >= propMax && trafficLightsResponse?.StatusCode === '500') {\r\n return (\r\n
\r\n

\r\n Information\r\n \r\n On-Hand Quantity Is {propMax} , And Item Is Discontinued For Future.\r\n

\r\n {isLoadingAtpResponse ? (\r\n \r\n ) : atpResponse?.ATPLeadTimePropertiesQuantityResponseEntityList[0]?.ATPDate &&\r\n atpResponse?.ATPLeadTimePropertiesQuantityResponseEntityList[0]?.ATPDate !== '0' ? (\r\n atpResponse?.ATPLeadTimePropertiesQuantityResponseEntityList[0]?.ATPDate && (\r\n

Estimated Shipping Date : {estShipDate}

\r\n )\r\n ) : (\r\n

{atpResponse?.ATPLeadTimePropertiesQuantityResponseEntityList[0]?.Message}

\r\n )}\r\n
\r\n );\r\n } else if (\r\n quanATP >= trafficLightsResponse?.Quantity! + trafficLightsResponse?.POQuantity &&\r\n trafficLightsResponse?.StatusCode === '503'\r\n ) {\r\n return (\r\n
\r\n

\r\n Information\r\n \r\n On-Hand Quantity Is {trafficLightsResponse?.Quantity! + trafficLightsResponse?.POQuantity!} , And Item Is Discontinued\r\n For Future.\r\n

\r\n {isLoadingAtpResponse ? (\r\n \r\n ) : atpResponse?.ATPLeadTimePropertiesQuantityResponseEntityList[0]?.ATPDate &&\r\n atpResponse?.ATPLeadTimePropertiesQuantityResponseEntityList[0]?.ATPDate !== '0' ? (\r\n atpResponse?.ATPLeadTimePropertiesQuantityResponseEntityList[0]?.ATPDate && (\r\n

Estimated Shipping Date : {estShipDate}

\r\n )\r\n ) : (\r\n

{atpResponse?.ATPLeadTimePropertiesQuantityResponseEntityList[0]?.Message}

\r\n )}\r\n
\r\n );\r\n } else {\r\n if (isLoadingAtpResponse) {\r\n return ;\r\n } else {\r\n if (atpResponse?.ATPLeadTimePropertiesQuantityResponseEntityList.length === 1) {\r\n if (atpResponse?.ATPLeadTimePropertiesQuantityResponseEntityList[0]?.ATPDate !== '0') {\r\n return

Estimated Shipping Date : {estShipDate}

;\r\n } else {\r\n return

{atpResponse?.ATPLeadTimePropertiesQuantityResponseEntityList[0]?.Message}

;\r\n }\r\n } else {\r\n if (atpResponse?.HighestDate !== undefined) {\r\n return

Estimated Shipping Date : {atpHighestDate}

;\r\n } else {\r\n return

{atpResponse?.ATPLeadTimePropertiesQuantityResponseEntityList[0]?.Message}

;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport default ATPESDMessageComponent;\r\n","import React from 'react';\r\nimport { Button } from 'reactstrap';\r\n// import { IKRV_ATPLeadTimePropertiesQuantity } from '../../actions/customProxy/ATP/DataServiceEntities.g';\r\n// import { CalculateEstDateAtpInput, estimatedAvailabilityAction } from '../../actions/calculate-est-date-atp.action';\r\nimport ATPESDMessageComponent from './atpESDMessage';\r\nimport { kRV_GetATPLeadTimeWithQuantityAsync } from '../../actions/customProxy/ATP1/DataActionExtension.g';\r\nimport { IKRV_GetATPLeadTimeResponseQuantity } from '../../actions/customProxy/ATP1/DataServiceEntities.g';\r\n\r\nconst EstimatedShipDateKitComponent: React.FC = ({\r\n linkedProducts,\r\n itemNumber,\r\n propMax,\r\n context,\r\n trafficLightsResponse,\r\n anyChildWithRedLight\r\n}) => {\r\n const [quanATP, setQuanAtp] = React.useState();\r\n const [isLoadingAtpResponse, setIsLoadingAtpResponse] = React.useState(false);\r\n const [atpResponse, setAtpResponse] = React.useState();\r\n const [isCalculateBtnDisable, setIsCalculateBtnDisable] = React.useState(false);\r\n\r\n React.useEffect(() => {\r\n quanATP! < 1 ? setIsCalculateBtnDisable(true) : setIsCalculateBtnDisable(false);\r\n if (quanATP! > propMax && trafficLightsResponse?.StatusCode === '500') {\r\n setQuanAtp(propMax);\r\n } else if (quanATP! > propMax && trafficLightsResponse?.StatusCode === '502') {\r\n setQuanAtp(propMax);\r\n } else if (quanATP! > propMax && trafficLightsResponse?.StatusCode === '501') {\r\n setQuanAtp(propMax);\r\n } else if (quanATP! > propMax && trafficLightsResponse?.StatusCode === '503') {\r\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\r\n setQuanAtp(trafficLightsResponse?.Quantity + trafficLightsResponse.POQuantity);\r\n }\r\n }, [quanATP]);\r\n\r\n async function buttonATPCalculationDataActionCall() {\r\n setIsLoadingAtpResponse(true);\r\n try {\r\n //gathering all the child products payload\r\n const KRVATPLeadTimeChildsQuantity: any[] = linkedProducts.map((item: any) => {\r\n return {\r\n itemID: item.ItemId,\r\n Qty: String(item.Quantity * quanATP!)\r\n };\r\n });\r\n\r\n const context1 = { callerContext: context.actionContext };\r\n await kRV_GetATPLeadTimeWithQuantityAsync(context1, KRVATPLeadTimeChildsQuantity).then(res => {\r\n setAtpResponse(res);\r\n setIsLoadingAtpResponse(false);\r\n });\r\n } catch (error) {\r\n const errorBody: any = {\r\n Id: 0,\r\n ATPDate: '0',\r\n Message: 'Unable to get response for Estimated Availability',\r\n ExtensionProperties: []\r\n };\r\n setAtpResponse(errorBody);\r\n setIsLoadingAtpResponse(false);\r\n }\r\n }\r\n const handleCalculateATPDate = () => {\r\n if (itemNumber && quanATP) {\r\n void buttonATPCalculationDataActionCall();\r\n }\r\n };\r\n //These symbols are not be typed on input box\r\n const exceptThisSymbols = ['e', 'E', '+', '-', '.'];\r\n\r\n return (\r\n <>\r\n
\r\n \r\n {\r\n setQuanAtp(e.target.value);\r\n }}\r\n onKeyDown={e => exceptThisSymbols.includes(e.key) && e.preventDefault()}\r\n />\r\n \r\n Calculate Shipping Date\r\n \r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default EstimatedShipDateKitComponent;\r\n","import React, { PropsWithChildren } from 'react';\r\nimport { IBuyboxData, IBuyboxViewProps } from '@msdyn365-commerce-modules/buybox';\r\nimport { IQuickviewViewProps } from '@msdyn365-commerce-modules/buybox/src/modules/quickview/./quickview';\r\nimport { IBuyboxProps } from '../../themes/krannich/definition-extensions/buybox.ext.props.autogenerated';\r\nimport { ProductAvailableQuantity } from '@msdyn365-commerce/retail-proxy';\r\nimport { generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { ICartViewProps } from '../../modules/krannich-c-cart/krannich-c-cart';\r\ninterface CommercePropertyValue {\r\n BooleanValue?: boolean;\r\n ByteValue?: number;\r\n DateTimeOffsetValue?: Date;\r\n DecimalValue?: number;\r\n IntegerValue?: number;\r\n LongValue?: number;\r\n StringValue?: string;\r\n}\r\n\r\ninterface CommerceProperty {\r\n Key?: string;\r\n Value?: CommercePropertyValue;\r\n}\r\ninterface AttributeSwatch {\r\n SwatchValue?: string;\r\n SwatchImageUrl?: string;\r\n SwatchColorHexCode?: string;\r\n IsDefault?: boolean;\r\n ProductImageUrls?: string[];\r\n ExtensionProperties?: CommerceProperty[];\r\n}\r\ninterface AttributeValue {\r\n Name?: string;\r\n KeyName?: string;\r\n UnitOfMeasureSymbol?: string;\r\n DataTypeValue?: number;\r\n BooleanValue?: boolean;\r\n DateTimeOffsetValue?: Date;\r\n FloatValue?: number;\r\n IntegerValue?: number;\r\n TextValue?: string;\r\n CurrencyValue?: number;\r\n CurrencyCode?: string;\r\n AttributeValueId?: number;\r\n RecordId?: number;\r\n Swatches?: AttributeSwatch[];\r\n ExtensionProperties?: CommerceProperty[];\r\n}\r\ninterface customAttribute {\r\n attributevalues?: AttributeValue[];\r\n}\r\nexport const KitProduct = ({\r\n linkedProducts,\r\n props\r\n}: {\r\n linkedProducts: any[] | undefined;\r\n props:\r\n | PropsWithChildren & ProductAvailableQuantity>\r\n | (IQuickviewViewProps & customAttribute)\r\n | ICartViewProps;\r\n}) => {\r\n return (\r\n
\r\n
\r\n

Bundle Contains

\r\n {linkedProducts?.length.toString()} Items\r\n
\r\n
\r\n {linkedProducts &&\r\n linkedProducts?.map((e: any, index: number) => {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{e.Name!}

\r\n
\r\n
\r\n
\r\n {'Item number: '}\r\n {e.ItemId!}\r\n
\r\n {/*
\r\n {'Price:'} \r\n \r\n {props.context.cultureFormatter.formatCurrency(Number(e.Product?.Price!))}\r\n \r\n
*/}\r\n
\r\n {'Quantity: '}\r\n {e.Quantity!}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n );\r\n};\r\n","import React from 'react';\r\nimport { IKRV_ATPLeadTimePropertiesDate } from '../actions/customProxy/ATP-update/DataServiceEntities.g';\r\nimport { dateFormatByLocale } from './helper';\r\n\r\ninterface ITrafficLight {\r\n lightColor?: string;\r\n isVisible?: string;\r\n}\r\n\r\ninterface IKRV_ATPLeadTimePropertiesDateFormat extends IKRV_ATPLeadTimePropertiesDate {\r\n locale?: string;\r\n currency?: string;\r\n}\r\n\r\nexport const TrafficLights: React.FC = ({ lightColor, isVisible }) => (\r\n
\r\n
\r\n
\r\n);\r\n\r\nexport const ATPMessage: React.FC = props => {\r\n /* VSI CUSTOMIZATION | DATE FORMAT | START */\r\n let PurchaseLeadTimeDate = props.PurchaseLeadTimeDate;\r\n if (props.currency && props.locale && PurchaseLeadTimeDate) {\r\n PurchaseLeadTimeDate = dateFormatByLocale(props.locale, props.currency, PurchaseLeadTimeDate);\r\n }\r\n let PODate = props.PODate;\r\n if (props.currency && props.locale && PODate) {\r\n PODate = dateFormatByLocale(props.locale, props.currency, PODate);\r\n }\r\n /* VSI CUSTOMIZATION | DATE FORMAT | END */\r\n let atpMessage = '';\r\n if (props.IsVisible === 'No') {\r\n atpMessage = 'no further supplies';\r\n } else if (props.IsDiscontinuedProduct === 'Yes') {\r\n atpMessage = props?.Message!.toLowerCase();\r\n } else if (PurchaseLeadTimeDate !== '' && props.Quantity === 0 && props.POQuantity === 0) {\r\n atpMessage = `${props.Quantity} in stock, more from ${PurchaseLeadTimeDate}`;\r\n } else if (PurchaseLeadTimeDate === '' && props.Quantity === 0 && props.POQuantity > 0) {\r\n atpMessage = `${props.Quantity} in stock, more from ${PODate}`;\r\n } else if (PurchaseLeadTimeDate !== '' && props.Quantity > 0 && props.POQuantity === 0) {\r\n atpMessage = `${props.Quantity} in stock, more from ${PurchaseLeadTimeDate}`;\r\n } else if (PurchaseLeadTimeDate === '' && props.Quantity > 0 && props.POQuantity > 0) {\r\n atpMessage = `${props.Quantity} in stock, more from ${PODate}`;\r\n } else if (PurchaseLeadTimeDate === '' && props.Quantity >= 0 && props.POQuantity === 0) {\r\n atpMessage = props?.Message ? `${props.Quantity} in stock, ${props?.Message.toLowerCase()}` : `${props.Quantity} in stock`;\r\n }\r\n if (atpMessage !== '') {\r\n return (\r\n
\r\n

{atpMessage}

\r\n
\r\n );\r\n }\r\n return (\r\n
\r\n

\r\n

\r\n Information\r\n \r\n Error while fetching the data!!!\r\n

\r\n

\r\n
\r\n );\r\n};\r\n","import React from 'react';\r\nexport const PromotionBadges: React.FC = ({ promotionalBadge, context }) => {\r\n const { enableBadges, badges } = context?.actionContext?.requestContext?.app.config;\r\n const badgeUI = badges?.find((badge: { label: string }) => badge?.label?.trim() === promotionalBadge?.trim());\r\n if (enableBadges && context?.actionContext?.requestContext?.user?.isAuthenticated && promotionalBadge?.length !== 0) {\r\n return (\r\n \r\n {promotionalBadge}\r\n
\r\n );\r\n }\r\n return null;\r\n};\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrganizationUsersTileViewProps } from './organization-users-tile';\n\nconst OrganizationUsersTileView: React.FC = props => {\n const { OrganizationUsersTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default OrganizationUsersTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport Msdyn365, {\n ContentEditableEvent,\n generateImageUrl,\n getCatalogId,\n getUrlSync,\n Image,\n RichTextComponent,\n Text\n} from '@msdyn365-commerce/core';\nimport { MediaLocation, ProductCatalog } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ICatalogPickerData } from './catalog-picker.data';\nimport { ICatalogPickerProps } from './catalog-picker.props.autogenerated';\n\n/**\n * ICatalogPickerViewProps.\n */\nexport interface ICatalogPickerViewProps extends ICatalogPickerProps {\n catalogPicker: IModuleProps;\n heading: React.ReactNode;\n paragraph: React.ReactNode;\n catalogs: ReactNode;\n}\n\n/**\n * CatalogPicker component.\n * @extends {React.PureComponent>}\n */\nexport class CatalogPicker extends React.PureComponent> {\n private static readonly _moduleClassName = 'ms-catalog-picker';\n\n public constructor(props: ICatalogPickerViewProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { heading, paragraph } = this.props.config;\n\n const catalogPickerHeading = heading && (\n \n );\n\n const isCatalogsAvailable: boolean = ArrayExtensions.hasElements(this.props.data.catalogs?.result);\n const catalogPickerParagraph = paragraph && (\n \n );\n const viewProps = {\n ...this.props,\n handleText: this.handleTextChange,\n catalogPicker: {\n moduleProps: this.props,\n className: CatalogPicker._moduleClassName\n },\n heading: catalogPickerHeading,\n paragraph: catalogPickerParagraph,\n catalogs: isCatalogsAvailable ? this._renderCatalogPicker() : ''\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n private _renderCatalogPickerButton(item: ProductCatalog): React.ReactNode {\n const catalogId = item.RecordId;\n const currentCatalogId = getCatalogId(this.props.context.request);\n if (currentCatalogId === catalogId) {\n return
{this.props.resources.currentCatalogText}
;\n }\n let linkToCatalog = '';\n if (Msdyn365.isBrowser) {\n const catalogUrl = getUrlSync('home', this.props.context.actionContext) ?? '';\n const fullUrl = new URL(catalogUrl, window.location.href);\n fullUrl.searchParams.set('catalogid', `${catalogId}`);\n linkToCatalog = fullUrl.href;\n }\n return (\n \n {this.props.resources.changeCatalogButtonText}\n \n );\n }\n\n private _renderCatalogPicker(): React.ReactNode {\n const catalogs = this.props.data.catalogs?.result;\n\n const isBrowser = Msdyn365.isBrowser;\n\n return (\n
\n {catalogs?.map(item => {\n const reactKey = `${JSON.stringify(item)}-${String(isBrowser)}`;\n const image: MediaLocation | undefined = ArrayExtensions.firstOrDefault(item.Images);\n return (\n \n

{item.Name}

\n
\n \n
\n {this._renderCatalogPickerButton(item)}\n
\n
\n
\n );\n })}\n \n );\n }\n}\n\nexport default CatalogPicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICatalogPickerViewProps } from './catalog-picker';\n\n/**\n * ICatalogPickerViewProps.\n * @param props - ICatalogPickerViewProps.\n * @returns - Render Catalog Picker.\n */\nexport const CatalogPickerViewFunctionComponent: React.FC = props => {\n const { catalogPicker } = props;\n return (\n \n {props.heading}\n {props.paragraph}\n {props.catalogs}\n \n );\n};\n\nexport default CatalogPickerViewFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport { ICartlinesViewProps, ICartResources, ICartViewProps, IOrderSummaryErrors } from '@msdyn365-commerce-modules/cart';\nimport { ICartLineItemViewProps } from '@msdyn365-commerce-modules/cart/dist/types/modules/cart/components/cart-line-items-promotion';\nimport { IInvoiceSummaryLines } from '@msdyn365-commerce-modules/invoice-payment-summary';\nimport { IOrderSummaryLines } from '@msdyn365-commerce-modules/order-summary-utilities';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent,\n Node,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst CartView: React.FC = (props: ICartViewProps) => (\n
\n {props.title}\n {props.promotionOptions && _renderPromotions(props.promotionOptions)}\n {props.cart?.hasInvoiceLine || props.multiplePickUpEnabled ? (\n _renderCartLinesGroup(props, props.resources)\n ) : (\n \n {_renderCartlines(\n props.cartlines,\n props.resources,\n props.storeSelector,\n props.backToShoppingButton,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult,\n props.telemetryContent,\n props.multiplePickUpEnabled,\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n \n )}\n {props.orderSummaryHeading && (\n \n {props.orderSummaryHeading}\n {props.cart?.hasInvoiceLine\n ? _renderInvoiceSummarylines(props.invoiceSummaryLineitems, props.OrderSummaryItems, props)\n : _renderOrderSummarylines(props.orderSummaryLineitems, props.OrderSummaryItems, props)}\n {_renderErrorBlock(props.OrderSummaryErrors)}\n {props.checkoutAsSignInUserButton}\n {props.checkoutAsGuestButton}\n {props.expressCheckoutButton && ArrayExtensions.hasElements(props.expressCheckoutButton) ? (\n {props.expressCheckoutButton}\n ) : null}\n {props.backToShoppingButton}\n {props.createTemplateFromCartButton}\n \n )}\n {props.storeSelector}\n
\n);\n\nconst _renderPromotions = (promotions: ICartLineItemViewProps): JSX.Element | undefined => {\n return (\n <>\n \n {promotions.promotionMessage}\n {promotions.promotionSeeAllLink}\n {promotions.promotionDialog}\n \n \n );\n};\n\nconst _renderCartlines = (\n cartLines: ICartlinesViewProps[] | undefined,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n backToShoppingButton: React.ReactNode,\n waitingComponent: React.ReactNode,\n cartLoadingStatus: string,\n cartDataResult: boolean,\n telemetryContent?: ITelemetryContent,\n mulitplePickUp?: boolean,\n emailDeliveryModeCode?: string\n): JSX.Element[] | JSX.Element => {\n const { emptyCartText } = resources;\n\n if (cartLoadingStatus) {\n return <>{cartLoadingStatus};\n }\n if (cartLines) {\n return cartLines.map((cartLine, index) => {\n return (\n
\n {cartLine.cartline}\n {mulitplePickUp ? null : _renderBOPISBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {mulitplePickUp ? (\n \n {_renderGroupBOPISBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n ) : cartLine.addToOrderTemplate ? (\n \n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n ) : (\n <>\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n )}\n
\n );\n });\n }\n return cartDataResult ? (\n
\n

{emptyCartText}

\n {backToShoppingButton}\n
\n ) : (\n <>{waitingComponent}\n );\n};\n\n/**\n * On Toggle function.\n * @param cartLine -Cartline.\n * @param isBopisSelected -Boolean.\n * @returns Set state of button.\n */\nconst onToggleBopisHandler = (cartLine: ICartlinesViewProps, isBopisSelected: boolean) => () => {\n cartLine.pickUpInStore && cartLine.pickUpInStore.callbacks.toggleBopis(!isBopisSelected);\n};\n\n/**\n * On change store function.\n * @param cartLine -CartLine items prop.\n * @returns Set state of button.\n */\nconst onChangeStoreHandler = (cartLine: ICartlinesViewProps) => () => {\n cartLine.pickUpInStore && cartLine.pickUpInStore.callbacks.toggleBopis(true);\n};\n\nconst _renderBOPISBlock = (\n cartLine: ICartlinesViewProps,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent,\n emailDeliveryModeCode?: string\n): JSX.Element | null => {\n // If it is electronic item cart line, then return null for BOPISBlock.\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\n return null;\n }\n\n const {\n shipInsteadDisplayText,\n shipToAddressDisplayText,\n pickItUpDisplayText,\n pickUpAtStoreWithLocationText,\n changeStoreDisplayText\n } = resources;\n\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n
\n {isBopisSelected ? (\n {pickUpAtStoreWithLocationText}\n ) : (\n {shipToAddressDisplayText}\n )}\n
\n {isBopisSelected && (\n
\n {cartLine.pickUpInStore.orgUnitName}\n \n
\n )}\n \n {isBopisSelected ? shipInsteadDisplayText : pickItUpDisplayText}\n \n
\n );\n};\n\nconst _renderErrorBlock = (errorData: IOrderSummaryErrors | undefined): JSX.Element | null => {\n if (!errorData || errorData.errors.length === 0) {\n return null;\n }\n return (\n \n {errorData.header}\n {errorData.errors}\n \n );\n};\n\nconst _renderOrderSummarylines = (\n orderSummaryLines: IOrderSummaryLines | undefined,\n OrderSummaryItems: INodeProps,\n props: ICartViewProps\n): JSX.Element | null => {\n if (!orderSummaryLines) {\n return null;\n }\n return (\n \n {props.promoCode}\n {orderSummaryLines.subtotal}\n {orderSummaryLines.shipping}\n {orderSummaryLines.otherCharge}\n {orderSummaryLines.tax}\n {orderSummaryLines.totalDiscounts ? orderSummaryLines.totalDiscounts : null}\n {orderSummaryLines.orderTotal}\n \n );\n};\n\nconst _renderInvoiceSummarylines = (\n invoiceSummaryLines: IInvoiceSummaryLines | undefined,\n OrderSummaryItems: INodeProps,\n props: ICartViewProps\n): JSX.Element | null => {\n if (!invoiceSummaryLines) {\n props.context.telemetry.error('InvoiceSummary content is empty, module wont render');\n return null;\n }\n return (\n \n {invoiceSummaryLines.invoices}\n {invoiceSummaryLines.giftCard}\n {invoiceSummaryLines.loyalty}\n {invoiceSummaryLines.orderTotal}\n \n );\n};\n\nconst _renderCartLinesGroup = (props: ICartViewProps, resources: ICartResources): JSX.Element | undefined => {\n if (props.cartLinesGroup && props.cartLinesGroup.length > 0) {\n return (\n
\n {props.cartLinesGroup.map(cartlines => {\n return (\n
\n {_renderCartLinesGroupHeader(\n cartlines[0],\n props.storeSelector,\n resources,\n _countItems(cartlines),\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n {_renderCartlines(\n cartlines,\n props.resources,\n props.storeSelector,\n props.backToShoppingButton,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult,\n props.telemetryContent,\n props.multiplePickUpEnabled,\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n
\n );\n })}\n
\n );\n }\n return props.cartDataResult ? (\n
\n
\n

{props.resources.emptyCartText}

\n {props.backToShoppingButton}\n
\n
\n ) : (\n <>{props.waitingComponent}\n );\n};\nconst _renderCartLinesGroupHeader = (\n cartLine: ICartlinesViewProps,\n storeSelector: React.ReactNode | undefined,\n resources: ICartResources,\n count: number,\n emailDeliveryModeCode?: string\n) => {\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\n const { pickUpText, shippingText, emailshippingText, payInvoicesDisplayText } = resources;\n let groupTitle: string;\n\n groupTitle = isBopisSelected ? pickUpText : shippingText;\n if (cartLine.data && cartLine.data.cartline.IsInvoiceLine) {\n groupTitle = payInvoicesDisplayText;\n } else if (!StringExtensions.isNullOrEmpty(emailDeliveryModeCode)) {\n groupTitle = cartLine.data && cartLine.data.cartline.DeliveryMode === emailDeliveryModeCode ? emailshippingText : groupTitle;\n }\n\n return (\n <>\n
\n

\n

{groupTitle}

\n {_renderCartLinesGroupTitle(cartLine, resources, count)}\n
\n \n );\n};\n\nconst _renderGroupBOPISBlock = (\n cartLine: ICartlinesViewProps,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent,\n emailDeliveryModeCode?: string\n): JSX.Element | null => {\n // If it is electronic item cart line, then return null for GroupBOPISBlock.\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\n return null;\n }\n\n const { changeStoreDisplayText, shipInsteadDisplayText, pickItUpDisplayText } = resources;\n\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n <>\n {isBopisSelected ? (\n \n ) : null}\n \n {isBopisSelected ? shipInsteadDisplayText : pickItUpDisplayText}\n \n \n );\n};\n\nconst _countItems = (cartLine: ICartlinesViewProps[]): number => {\n let countItem = 0;\n countItem = cartLine.reduce((count, item) => {\n return count + (item.data?.cartline.Quantity || 0);\n }, 0);\n return countItem;\n};\n\nconst _renderCartLinesGroupTitle = (cartLine: ICartlinesViewProps, resources: ICartResources, count: number) => {\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\n const { itemLabel, itemsLabel } = resources;\n const suffix = count > 1 ? itemsLabel : itemLabel;\n return (\n <>\n \n {isBopisSelected ? (\n

\n {cartLine.pickUpInStore?.deliveryOption}\n {', '}\n {cartLine.pickUpInStore?.orgUnitName}\n

\n ) : null}\n

\n ({count}\n {` `}\n {suffix})\n

\n
\n \n );\n};\n\nexport default CartView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, INodeProps, Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrderTemplateLineViewProps } from './components';\nimport { IOrderTemplateViewProps } from './order-template';\n\nconst OrderTemplateLinesView: React.FC = (props: IOrderTemplateViewProps) => {\n const {\n OrderTemplateLines,\n status,\n statusMessage,\n heading,\n ProductsTable,\n ProductsTableHeading,\n orderLines,\n ProductsTableRow,\n productsStatusMessage,\n OrderTemplateActions,\n orderActions,\n pagination,\n itemAddedToCartDialog,\n bulkOrderLineActions,\n isDetailsDisplayed,\n detailedProductView,\n toggleDetailsDisplayed,\n resources: {\n cancelBtnLabel,\n productNumberText,\n productText,\n productUnitPriceText,\n productUOMText,\n productQuantityText,\n productLineCatalogName\n }\n } = props;\n\n const toggleDetails = React.useCallback(() => {\n toggleDetailsDisplayed && toggleDetailsDisplayed(undefined);\n }, [toggleDetailsDisplayed]);\n\n return (\n \n {heading}\n {OrderTemplateActions && (\n \n {orderActions?.addTemplateToBag}\n {orderActions?.renameTemplate}\n {orderActions?.removeTemplate}\n {orderActions?.actionsSplitButton}\n {!isDetailsDisplayed && productsStatusMessage}\n \n )}\n {bulkOrderLineActions}\n {status !== 'SUCCESS' && statusMessage}\n {ProductsTable && orderLines && orderLines.length > 0 && (\n \n \n {ProductsTableHeading}\n \n {orderLines &&\n orderLines.map(product => {\n return _renderItem(product, productQuantityText, ProductsTableRow);\n })}\n \n \n {pagination}\n \n )}\n {itemAddedToCartDialog}\n \n Product Details\n \n
    \n
  • {detailedProductView?.productImage}
  • \n
  • \n {productText}:\n {detailedProductView?.productInfo}\n
  • \n
  • \n {productLineCatalogName}:\n {detailedProductView?.productLineCatalog}\n
  • \n
  • \n {productNumberText}:\n {detailedProductView?.productNumber}\n
  • \n
  • \n {productUnitPriceText}:\n {` `}\n {detailedProductView?.productPrice}\n
  • \n
  • \n {productUOMText}:\n {` `}\n {detailedProductView?.productUnitOfMeasure}\n
  • \n
  • \n {productQuantityText}:\n {detailedProductView?.productQuantityView}\n
  • \n {productsStatusMessage &&
  • {productsStatusMessage}
  • }\n
\n
\n \n \n \n \n
\n );\n};\n\nconst _renderItem = (product: IOrderTemplateLineViewProps, quantityLabel: string, ProductsTableRow?: INodeProps): JSX.Element | null => {\n if (!product) {\n return null;\n }\n\n const {\n key,\n selectLine,\n productLineCatalog,\n productImage,\n productPrice,\n productNumber,\n addToBagButton,\n removeButton,\n productInfo,\n productUnitOfMeasure,\n productQuantityView,\n productQuantity,\n popUp,\n isMobile,\n extraActionsPopup,\n isMultipleCatalogFeatureEnabledInHq,\n disabled\n } = product;\n\n const lineVisibility = disabled\n ? {\n pointerEvents: 'none',\n opacity: 0.5\n }\n : {\n pointerEvents: 'auto',\n opacity: 1\n };\n\n const disableElement: React.CSSProperties = lineVisibility as React.CSSProperties;\n\n return (\n \n {selectLine}\n {!isMobile && isMultipleCatalogFeatureEnabledInHq && {productLineCatalog}}\n {productImage}\n {isMobile ? (\n \n
{productNumber}
\n
\n {quantityLabel}:{` `}\n {productQuantity}\n
\n \n ) : (\n {productNumber}\n )}\n {!isMobile && {productInfo}}\n {!isMobile && {productPrice}}\n {!isMobile && {productUnitOfMeasure}}\n {!isMobile && {productQuantityView}}\n {isMobile && {popUp}}\n {!isMobile && !isMultipleCatalogFeatureEnabledInHq && (\n \n {addToBagButton}\n {removeButton}\n \n )}\n {extraActionsPopup}\n
\n );\n};\n\nexport default OrderTemplateLinesView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ISocialShareConfig, ISocialShareProps, orientation } from './social-share.props.autogenerated';\n\nexport interface ISocialShareViewProps extends ISocialShareProps {\n isConsentGiven: boolean;\n SocialShareItemElements: React.ReactNode[];\n SocialShare: IModuleProps;\n SocialShareList: INodeProps;\n SocialShareItem: INodeProps;\n SocialShareItemCustomization: INodeProps;\n}\n\n/**\n *\n * SocialShare component.\n * @extends {React.PureComponent>}\n */\nclass SocialShare extends React.PureComponent> {\n constructor(props: ISocialShareProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { slots } = this.props;\n\n if (!slots || !ArrayExtensions.hasElements(slots.socialShareItems)) {\n this.props.context.telemetry.error('No social media is enable for sharing, module wont render');\n return null;\n }\n\n const isConsentGiven =\n this.props.context.request &&\n this.props.context.request.cookies &&\n this.props.context.request.cookies.isConsentGiven &&\n this.props.context.request.cookies.isConsentGiven();\n\n if (!isConsentGiven && !this.props.context.request.params.isEditor) {\n return null;\n }\n\n const viewprops = {\n ...this.props,\n SocialShare: {\n moduleProps: this.props,\n className: classnames('ms-social-share', this.props.config.className)\n },\n SocialShareList: {\n 'data-title': this.props.config.caption,\n className: `ms-social-share-ul ${this.props.config.caption && 'caption'} ${\n this.props.config.orientation === orientation.vertical ? 'vertical' : ''\n }`,\n tag: 'ul',\n role: 'group'\n },\n SocialShareItem: {\n className: 'ms-social-share-li',\n tag: 'li',\n tabIndex: '0',\n role: 'link'\n },\n SocialShareItemElements: slots && slots.socialShareItems.length > 0 && slots.socialShareItems\n };\n\n return this.props.renderView(viewprops) as React.ReactElement;\n }\n}\n\nexport default SocialShare;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ISocialShareViewProps } from './social-share';\n\nexport const SocialShareView: React.FC = props => {\n const { SocialShareList, SocialShareItemElements, SocialShareItem, SocialShare } = props;\n if (SocialShareItemElements.length === 0) {\n props.context.telemetry.error('Social media list is empty, module wont render');\n return null;\n }\n return (\n \n \n {SocialShareItemElements.map((SocialShareElement: ReactNode, index: number) => {\n return (\n \n {SocialShareElement}\n \n );\n })}\n \n \n );\n};\n\nexport default SocialShareView;\n"],"names":["KRV_ATPLeadTimePropertiesDateExtensionClass","constructor","odataObject","this","Id","parseInt","ATPDate","Quantity","parseFloat","Message","PODate","POQuantity","POMessage","PurchaseLeadTimeDate","PurchaseLeadTimeQuantity","PurchaseLeadTimeMessage","ItemStatusMessage","StatusCode","TrafficLight","ExtensionProperties","undefined","i","length","Number","className","substr","lastIndexOf","concat","EntityClasses","String","KRV_ATPLeadTimePropertiesQuantityResponseEntityExtensionClass","ItemId","KRV_GetATPLeadTimeResponseQuantityExtensionClass","ATPLeadTimePropertiesQuantityResponseEntityList","HighestDate","kRV_ATPQuery","id","key","DataServiceQuery","DataServiceEntities","kRV_GetATPLeadTimeWithQuantityAsync","context","kRVATPLeadTimeQuantity","request","createDataServiceRequestForOperation","bypassCache","returnEntity","KRVATPLeadTimeQuantity","createKRV_GetATPLeadTimeWithQuantityInput","callActionOrExecute","callerContext","ProductComponent","msdyn365Commerce","createComponentOverride","_objectSpread","component","_ref","_context$actionContex","_trafficLightATP$","_promotionBadge","_trafficLightATP$2","_context$request$chan","data","imageSettings","telemetryContent","quickViewButton","productComparisonButton","requestPriceBtn","activePrices","customerInformation","resources","atpData","cart","product","imgURI","setImgURL","React","producerName","setProducerName","isBundle","setIsBundle","_imageUrl","imageUrl","generateImageUrl","actionContext","requestContext","apiSettings","replace","isBundleProduct","_product$AttributeVal","findProducerName","AttributeValues","map","e","Name","BooleanValue","productAttributes","filteredProductAttributeList","app","config","kcProductAttribute","identifier","_e$ExtensionPropertie","manufactuerValueforImage","find","eProperty","Key","Value","StringValue","_renderProducerName","prod","_productAttributes$fi","attr","TextValue","_renderProducerKeyName","_productAttributes$fi2","urlPath","formatUrlPath","_prod$ExtensionProper","extension","pathName","url","requestUrl","pathname","split","isAddingPathWithUrl","addPathWithUrl","productUrl","origin","RecordId","productDetailsPageUrl","coreContext","queryString","sourceUrl","URL","baseUrl","search","href","updateProductUrl","payLoad","getPayloadObject","toString","attribute","getTelemetryAttributes","activePrice","val","ProductId","trafficLightATP","filter","item","atpMsgRes","JsonResponseObject","atpMsgResParsed","JSON","parse","extensionsProps","customerTaxPercentage","taxPercentage","promotionBadge","_extensionsProps$find","quickview","attributevalues","Object","assign","onClick","onTelemetryClick","PromotionBadges","promotionalBadge","src","alt","_renderCategoryImg","_renderProductPlacementImage","gridSettings","altText","img","imageProps","Image","loadFailureBehavior","PrimaryImageUrl","itemNumberLabel","user","isAuthenticated","TrafficLights","lightColor","isVisible","IsVisible","atpDiscontinuedMessageLabel","ATPMessage","locale","dateFormat","currency","channel","Currency","isRequestPrice","LineDiscountGroup","requestPriceLabel","tabIndex","tooltipText","PriceComponent","typeName","price","freePriceText","priceFree","originalPriceText","currentPriceText","isIncExPriceFormatEnabled","_calculateWpPrice","catalogId","validateCatalogId","renderProductComparisonButton","getCatalogId","selectedProductId","viewDetailsLabel","title","linkUrl","destinationUrl","linkText","_renderTextBlock","textBlocks","_renderAddToOrderTemplate","addToOrderTemplate","ContainerProps","errorBlock","button","Node","_renderSocialShare","socialShare","_renderConfigure","configure","dropdowns","_renderConfigureDropdown","dropdown","LabelContainerProps","heading","errors","select","_renderFindInStore","findInStore","storeSelector","description","modal","productPickupOptionList","onChangeHandler","callbacks","newValue","updateQuantity","_renderKeyInPrice","keyInPrice","input","_renderShopSimilarItem","shopSimilarItem","getBuyboxProductPrice","props","state","_props$data$customerI4","_props$data$featureSt","_props$data$featureSt2","_props$data$featureSt3","result","productPrice","isPriceMinMaxEnabled","featureState","IsEnabled","isSalesAgreementPriceFeatureEnabled","useLegacySalesAgreementHTMLFeature","priceResources","priceRangeSeparator","salesAgreementPricePrompt","salesAgreementExpirationDatePrompt","salesAgreementCommittedQuantityPrompt","salesAgreementRemainingQuantityPrompt","_props$data$product$r","_props$data$product$r2","_props$data$cart$resu4","_props$context$reques","_props$config$request","ModuleProps","MediaGalleryContainerProps","ProductInfoContainerProps","addToCart","quantity","rating","inventoryLabel","shopSimilarLook","quantityLimitsMessages","max","shopSimilarDescription","unitOfMeasure","Auth","minErrorMessage","maxErrorMessage","promotionalTextEnable","promotionalTextColor","zeroPriceProductText","channelId","linkedProducts","Components","producerKeyName","setProducerKeyName","manufacturerItemNumber","setManufacturerItemNumber","itemNumber","setItemNumber","isMax","setIsMax","isMin","setIsMin","isMaxPop","setIsMaxPop","showMore","setShowMore","isClassName","setIsClassName","attributes","setAttributes","disountedWpPrice","setDiscountedwpPrice","productName","setProductName","promotionalText","setPromotionalText","importantNotice","setimportantNotice","longDescription","setlongDescription","disableAddToCartATP","setDisableAddToCartATP","setAtpData","kitProductATP","setKitProductATP","isKitProductATPDiscontinued","setIsKitProductATPDiscontinued","kitProductATPCall","async","KRVATPLeadTimeDate","objectDate","Date","requestedDate","getDate","getMonth","getFullYear","products","push","itemID","ctx","response","kRV_GetMultipleATPLeadTimeDateAsync","err","console","error","_atpData","_atpData$","anyRed","ATPTrafficLights","isLoading","setIsLoading","trafficLightsResponse","settrafficLightsResponse","propMax","setPropMax","maxESD","setMaxESD","day","_trafficLightsRespons","toLocaleLowerCase","noFurtherSuppliesText","_props$data$cart$resu","productOfInterestQuantity","CartLines","_props$data$cart$resu2","_props$data$cart$resu3","requestBody","itemId","trafficLightsParams","TrafficLightsAtpInput","trafficLightsSlots","trafficLightsAtpaction","telemetry","warning","debug","trafficLightsDataActionCall","_props$data$product$r3","recordId","getAttributeValuesAsync","queryResultSettings","findAttributesValues","setPromotionalTextFunction","_props$data$product$r4","_props$data$product$r5","Behavior","MinimumQuantity","findItemNumber","calculateWpPrice","findProductName","findManufacturerItemNumber","findImportantNotice","findlongDescription","_props$data$product","_props$data$product$r6","_props$data$product$r7","_props$data$product$r8","_e$Key","_e$Value","toLowerCase","_props$data$product$r9","_e$Value2","_props$data$product$r10","_e$Value3","_props$data$productPr","_props$data$productPr2","tempBasePrice","tempDiscountedPrice","displayWpPrice","basePrice","CustomerContextualPrice","discountedPrice","IntegerValue","KeyName","producerGlobalName","globalProducerName","_renderPrice","_props$context","_props$data$customerI","_customerInformation$","customClass","enabledIncExPrices","ppwPrice","oun","ounNumberForUsSite","requestPriceText","incExcPriceFormat","isDisableLink","setIsDisableLink","Modal","wrapClassName","autoFocus","fade","applicationNode","isOpen","toggle","ModalHeader","alertText","ModalBody","maxPurchaseAlertMessage","descriptionText","Module","mediaGallery","text","showMoreText","_text$props","children","_text$props2","_text$props3","slice","itemNumberText","manufacturerItemNumberText","style","color","RichTextComponent","KitProduct","bulkPurchaseLink","slots","Waiting","callOfficeText","EstimatedShipDateKitComponent","anyChildWithRedLight","EstimatedShipDateComponent","quantityText","type","value","disabled","_renderQuantity","quantityComponent","extentionResources","min","IncrementalQuantity","currentCount","onChange","inputQuantityAriaLabel","decrementButtonAriaLabel","incrementButtonAriaLabel","minQuantityText","maxQuantityText","IsDiscontinuedProduct","IsAddToCart","informationHeading","maxQuantityAlertMessage","_renderAddToCart","_props$data","_props$data$customerI2","_props$data2","_props$data$customerI3","customAddBundleToCartButton","addToCartText","customAddToCartButton","isStatusTwoZeroFour","addBundleToCartText","requestPriceButton","productInfoHeading","getText","SummaryForm","formProps","label","paymentAmount","addPaymentButton","appliedLine","bottomBorder","EditForm","_ref2","_customerAttributes$f","inputLabel","inputAmount","customerName","customerAccountNumber","customerSince","accountCredit","alert","accountDetails","customerBalanceInfo","customerInfo","checkoutInfo","moduleState","isPrePaidCustomer","Attributes","prepaidCustomerAttribute","AttributeValue","creditBalances","availableCredit","InvoiceAccountCreditLimit","CreditLimit","Balance","PendingBalance","InvoiceAccountBalance","InvoiceAccountPendingBalance","_getAvailableCredit","amount","amountPropsJSX","_getPaymentAmount","usSiteFlag","_addPaymentHandler","checkoutState","updateCustomerAccountAmount","newAmount","_addPayment","amountValue","then","onReady","prepaidCustomerMessage","orderAmount","currencyFormat","checkoutCustomerAccount","summaryView","editView","checkout","checkoutErrorRef","ref","DeliveryOptionList","DeliveryOptionsList","list","deliveryOption","DeliveryOption","code","radioButton","DeliveryOptionSelected","selectedItem","Description","Code","CheckoutDeliveryOptions","viewState","deliveryOptions","deliveryOptionSelected","waiting","saveButton","editButton","cancelButton","deliveryOptionsData","selectedItemId","isError","isShowList","isShowSelected","isShowSaveButton","isShowEditButton","isShowCancelButton","CartIcon","observer","_cart$cart$CartLines","cartLabel","cartQtyLabel","cartLink","getUrlSync","cartItem","qtyLabel","format","visibility","CartIconComponent","getOriginalPrice","_props$data$price$Bas","_props$data$price$Tra","_props$data$price$Adj","Math","BasePrice","TradeAgreementPrice","AdjustedPrice","formatCurrency","shouldUseFreePriceText","currencyCode","cultureFormatter","renderCurrentPrice","_props$data$price3","maxVariantPrice","MaxVariantPrice","minVariantPrice","MinVariantPrice","_props$priceResources","itemProp","wpPrice","SalesAgreementPrice","super","_toggle","bind","render","_this$props$data$pric","_this$props$data$pric2","_this$props$data$pric3","_this$props$priceReso","_this$props$priceReso2","_this$props$priceReso3","_this$props$priceReso4","_this$props$priceReso5","_this$props$priceReso6","_this$props$priceReso7","firstPriceLine","AttainablePriceLines","salesAgreementDetailCollapseProps","classnames","Collapse","formatDate","EffectiveDate","ExpirationDate","CommittedQuantity","RemainingQuantity","event","preventDefault","setState","_props$data$price4","salesAgreementPrice","_props$data$price$Sal","_props$priceResources8","_props$priceResources9","isExpanded","setIsExpanded","Button","_props$data$price$Att","_props$priceResources2","_props$priceResources3","_props$priceResources4","_props$priceResources5","_props$priceResources6","_props$priceResources7","renderSalesAgreementDetail","_props$data$price","originalPrice","_props$data$price2","showStrikethroughPricing","initialPrice","savingsText","renderCurrentPriceWithOriginalPrice","PromoCode","_onInputChange","target","promoCodeInputValue","canApply","_applyPromotion","cartState","upatePromoError","appliedPromo","addPromoCode","promoCode","status","refreshCart","getCheckoutState","checkoutCart","substatus","duplicatePromoCodeErrorText","_result$errorDetails","multipleValidPromoCodeError","errorDetails","LocalizedMessage","invalidPromoCodeErrorText","catch","failedToAddPromoCodeErrorText","_renderForm","promoPlaceholderText","promoCodeApplyButtonText","onSubmit","placeholder","_removePromotion","currentTarget","getAttribute","removePromoCodes","promoCodes","failedToRemovePromoCodeErrorText","_calculateDiscount","discountAmount","line","DiscountLines","discountLine","DiscountCode","DiscountCost","_renderAppliedPromoCode","Coupons","coupon","_coupon$Code","totalCouponDiscountAmount","appliedPromoCodeHeadingText","ariaLabel","removePromoAriaLabelFormat","removePromoText","TelemetryConstant","ApplyPromoCode","isCollapseOpen","promoError","shouldComponentUpdate","nextProps","nextState","_this$props","promoCodeHeadingText","promoCodeInformationMessage","PromoCodeComponent","ProductSpecificationRuleType","KRV_CMSDocumentExtensionClass","OUN","FileName","FileURL","ItemNumber","KRV_DownloadCMSDocumentResponseEntityExtensionClass","File","kRV_CMSDocumentsQuery","fileName","kRV_DownloadCMSDocumentAsync","resultSettings","createKRV_DownloadCMSDocumentInput","ProductDownloadButton","cellData","rel","_product$result","_manufacturerItemType","_manufacturerItemType2","ProductSpecification","ProductSpecificationTableProps","ProductSpecificationTableBodyProps","productSpecificationResult","manufacturerItemTypeName","productDownloadButtonState","setProductDownloadButtonState","downloadAbleLink","setDownloadAbleLink","getDownloadAbleLinks","_createDownloadLinks","content","productDownloadButtonArr","index","productNumber","ProductNumber","_productNumber$substr","substring","trim","res","rowData","ArrayExtensions","hasElements","ps","_productSpecification","productSpecification","_cellData$props","_cellData$props2","dangerouslySetInnerHTML","__html","Blank","Empty","AssemblyInstructions","Datasheets","UserManual","WarrantyConditions","IsBundleProduct","ProductStatus","DisplayWpPrice","Searchkeywords","Zero","ObjectExtensions","isNullOrUndefined","tempArray","_item$props","_item$props2","_item$props3","_item$props4","manufacturerIndex","findIndex","includes","manufacturerObject","splice","unshift","ManufacturerItemTypeName","finalArray","filteredArray","obj","QuickViewFunctionalComponent","quickView","isModalOpen","isMobileDevice","isUserAuth","isProductDiscontinued","setIsProductDiscontinued","isAddToCartDisabled","setIsAddToCartDisabled","twoZeroFourProdMax","setTwoZeroFourProdMax","_props$productDetails","_props$productDetails2","_props$productDetails3","_props$productDetails4","_props$productDetails5","productDetails","addBundleToCartButtonLabel","addToCartbuttonLabel","_props$productDetails6","_props$productDetails7","customInput","disable","maxQuantityMessage","RenderBodyContent","_props$productDetails11","_productDetails$produ2","_cart$result4","_linkedProducts3","_linkedProducts4","_linkedProducts5","_linkedProducts6","_linkedProducts7","_props$productDetails12","_linkedProducts8","_linkedProducts9","_props$productDetails13","_props$data$customerI5","_linkedProducts10","loading","CarouselProps","buyBoxProps","_productDetails$produ","_linkedProducts","_linkedProducts2","_cart$result","_cart$result2","_cart$result3","_CarouselProps$items$","items","role","itemNnLabel","renderItemNumber","_props$productDetails8","contactSalesOfficeMessage","quantityLabel","cantAddContactSalesOfficeMessage","forBundleLabel","_props$attributevalue","discountedWpPrice","displayValue","_props$productDetails9","_props$productDetails10","wpPriceLabel","ppwPriceLabel","isFinite","ModalContainer","ModalHeaderContainer","ModalFooterContainer","ModalHeaderContent","ModalBodyContainer","addToWishlist","cartContainerProps","_renderAddToWishlist","_renderQuickViewPopup","_props$data$customerI6","SignInLoading","_ref4","modalBody","icon","message","signIn","defaultAADConainer","aadConainer","signInSection","signUpSection","signInSectionHeading","signInLocalAccount","signInSocialAccount","signUpSectionHeading","signInB2BAccount","signUpDescription","signUpLink","isShowLoading","localAccount","forgetPassword","disclaimer","signInButton","wrapper","LocalAccount","socialAccounts","image","SocialAccount","_ref3","B2BAccount","quanATP","setQuanAtp","isLoadingAtpResponse","setIsLoadingAtpResponse","atpResponse","setAtpResponse","isCalculateBtnDisable","setIsCalculateBtnDisable","isMaxExceeded","setIsMaxExceeded","IsCalShipping","setTimeout","exceptThisSymbols","htmlFor","onKeyDown","handleCalculateATPDate","Qty","context1","buttonATPCalculationDataActionCall","ATPESDMessageComponent","_atpResponse$ATPLeadT","_context$request$chan3","estShipDate","atpHighestDate","_dateFormatByLocale","_context$request$chan2","_atpResponse$ATPLeadT2","_dateFormatByLocale2","_context$request$chan4","_atpResponse$ATPLeadT3","_atpResponse$ATPLeadT4","_atpResponse$ATPLeadT5","_atpResponse$ATPLeadT6","_atpResponse$ATPLeadT7","_atpResponse$ATPLeadT8","_atpResponse$ATPLeadT9","_atpResponse$ATPLeadT10","_atpResponse$ATPLeadT11","_atpResponse$ATPLeadT12","_atpResponse$ATPLeadT13","dateFormatByLocale","KRVATPLeadTimeChildsQuantity","_e$Product","Product","atpMessage","_context$actionContex2","enableBadges","badges","badgeUI","badge","_badge$label","background","bgColor","fontColor","OrganizationUsersTile","links","CatalogPicker","handleTextChange","handleParagraphChange","paragraph","_heading$tag","_this$props$data$cata","catalogPickerHeading","Text","_moduleClassName","tag","editProps","onEdit","isCatalogsAvailable","catalogs","catalogPickerParagraph","catalogValidationText","viewProps","handleText","catalogPicker","moduleProps","_renderCatalogPicker","renderView","_renderCatalogPickerButton","currentCatalogText","linkToCatalog","Msdyn365","isBrowser","_getUrlSync","catalogUrl","fullUrl","window","location","searchParams","set","changeCatalogButtonText","_this$props$data$cata2","reactKey","stringify","firstOrDefault","Images","Uri","galleryImageSettings","AltText","CatalogPickerViewFunctionComponent","_renderPromotions","promotions","promotionMessageWrapper","promotionMessage","promotionSeeAllLink","promotionDialog","_renderCartlines","cartLines","backToShoppingButton","waitingComponent","cartLoadingStatus","cartDataResult","mulitplePickUp","emailDeliveryModeCode","emptyCartText","cartLine","MsDyn365","cartline","_renderBOPISBlock","_renderGroupBOPISBlock","remove","onToggleBopisHandler","isBopisSelected","pickUpInStore","toggleBopis","onChangeStoreHandler","_cartLine$data","DeliveryMode","shipInsteadDisplayText","shipToAddressDisplayText","pickItUpDisplayText","pickUpAtStoreWithLocationText","changeStoreDisplayText","PickupInStore","puckUpinStoreAttribute","orgUnitName","_renderErrorBlock","errorData","Wrapper","header","_renderOrderSummarylines","orderSummaryLines","OrderSummaryItems","subtotal","shipping","otherCharge","tax","totalDiscounts","orderTotal","_renderInvoiceSummarylines","invoiceSummaryLines","invoices","giftCard","loyalty","_renderCartLinesGroup","cartLinesGroup","cartlines","_props$context$action2","_props$context$action3","cartlineId","_renderCartLinesGroupHeader","_countItems","EmailDeliveryModeCode","multiplePickUpEnabled","count","_cartLine$pickUpInSto","pickUpText","shippingText","emailshippingText","payInvoicesDisplayText","groupTitle","IsInvoiceLine","StringExtensions","isNullOrEmpty","_renderCartLinesGroupTitle","_cartLine$data2","countItem","reduce","_item$data","_cartLine$pickUpInSto2","_cartLine$pickUpInSto3","_cartLine$pickUpInSto4","itemLabel","itemsLabel","suffix","_props$cart","_props$context$action","_props$cart2","renderModuleAttributes","promotionOptions","hasInvoiceLine","CartlinesWrapper","orderSummaryHeading","OrderSummaryWrapper","invoiceSummaryLineitems","orderSummaryLineitems","OrderSummaryErrors","checkoutAsSignInUserButton","checkoutAsGuestButton","expressCheckoutButton","ExpressCheckoutSectionWrapper","createTemplateFromCartButton","_renderItem","ProductsTableRow","selectLine","productLineCatalog","productImage","addToBagButton","removeButton","productInfo","productUnitOfMeasure","productQuantityView","productQuantity","popUp","isMobile","extraActionsPopup","isMultipleCatalogFeatureEnabledInHq","disableElement","pointerEvents","opacity","OrderTemplateLines","statusMessage","ProductsTable","ProductsTableHeading","orderLines","productsStatusMessage","OrderTemplateActions","orderActions","pagination","itemAddedToCartDialog","bulkOrderLineActions","isDetailsDisplayed","detailedProductView","toggleDetailsDisplayed","cancelBtnLabel","productNumberText","productText","productUnitPriceText","productUOMText","productQuantityText","productLineCatalogName","toggleDetails","addTemplateToBag","renameTemplate","removeTemplate","actionsSplitButton","ModalFooter","SocialShare","socialShareItems","cookies","isConsentGiven","params","isEditor","viewprops","SocialShareList","caption","orientation","SocialShareItem","SocialShareItemElements","SocialShareView","SocialShareElement"],"sourceRoot":""}