{"version":3,"file":"static/js/9a4a609bbb7fbb324e40.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/actions/eShopOrderSummary/eshopOrderSummary.ts?5570","webpack://Msdyn365.Commerce.Online/./src/actions/helper-functions.ts?5715","webpack://Msdyn365.Commerce.Online/./src/modules/eshop-order-summary/actions/get-products-in-active-ecomm-checkout-cart.ts?2b27","webpack://Msdyn365.Commerce.Online/./src/modules/eshop-order-summary/eshop-order-summary.tsx?9d66","webpack://Msdyn365.Commerce.Online/./src/modules/eshop-order-summary/eshop-order-summary.view.tsx?ebf8","webpack://Msdyn365.Commerce.Online/./lib/eshop-order-summary/module-registration.js?4a30","webpack://Msdyn365.Commerce.Online/external var \"React\"?0d3b","webpack://Msdyn365.Commerce.Online/external var \"ReactDOM\"?853b"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\n/**\r\n * GetActivecategorymenustate Input Action\r\n */\r\nexport class GetOrderSummaryStateValuesInput implements Msdyn365.IActionInput {\r\n // TODO: Determine if the results of this get action should cache the results and if so provide\r\n // a cache object type and an appropriate cache key\r\n public getCacheKey = () => `modelOpenValue`;\r\n public getCacheObjectType = () => 'modelOpenValue';\r\n public dataCacheType = (): Msdyn365.CacheType => 'application';\r\n}\r\n\r\n// TODO: Create a data model here or import one to capture the response of the action\r\nexport interface IGetOrderSummaryStateValuesInput {\r\n modelOpenValue: boolean;\r\n}\r\n\r\n/**\r\n * TODO: Use this function to create the input required to make the action call\r\n */\r\nconst createInput = (args: Msdyn365.ICreateActionContext): Msdyn365.IActionInput => {\r\n return new GetOrderSummaryStateValuesInput();\r\n};\r\n\r\n/**\r\n * TODO: Use this function to call your action and process the results as needed\r\n */\r\nasync function getSelectedQuantityValuesStateAction(input: GetOrderSummaryStateValuesInput, ctx: Msdyn365.IActionContext):Promise {\r\n // const apiSettings = Msdyn365.msdyn365Commerce.apiSettings;\r\n\r\n // TODO: Uncomment the below line to get the value from a service\r\n // const response = await Msdyn365.sendRequest('/get/example/id/1', 'get');\r\n return { modelOpenValue: false };\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >getSelectedQuantityValuesStateAction,\r\n // TODO: Give your data action a unique id\r\n id: 'GetOrderSummaryStateValuesInputStateActionState',\r\n input: createInput\r\n // TODO: Uncomment the below line if this is a meant to be a batched data action\r\n // isBatched: true\r\n});","import { ICoreContext } from '@msdyn365-commerce/core';\r\n\r\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\r\n\r\nimport { AsyncResult, Customer, Product, ProductSearchCriteria, ProductSearchResult, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\nimport { getOrderHistoryAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CustomersDataActions.g';\r\nimport { searchAsync, searchByCategoryAsync, getByIdsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\n\r\nimport { v4 as uuidv4, validate as uuidValidate, version as uuidVersion } from 'uuid';\r\n\r\nimport { createOrUpdateBTGPCartLineAsync, createBTGPErrorLogAsync, getByCustomerAllBTGPTransactionAsync } from '../actions/DataActionExtension.g';\r\nimport { CategoryProducts, FormDetails, PastTransaction, CartItem, Transaction } from '../actions/ecomm-interfaces';\r\n\r\nimport DedicationPeriod from '../resources/dedicationPeriod.json';\r\n\r\nexport async function getProductsByCategoryId(context: ICoreContext, categoryId: number): Promise {\r\n const searchResult = await searchByCategoryAsync({ callerContext: context.actionContext }, context.actionContext.requestContext.apiSettings.channelId, context.actionContext.requestContext.apiSettings.catalogId, categoryId).catch(error => console.log('[getProductsByCategoryId] searchByCategoryAsync error: ', error));\r\n\r\n if (searchResult && searchResult.length > 0) {\r\n searchResult.sort((a: ProductSearchResult, b: ProductSearchResult) => ((a.DisplayOrder!) < (b.DisplayOrder!) ? -1 : 1));\r\n\r\n const productIds: number[] = [];\r\n\r\n searchResult.map(item => productIds.push(item.RecordId));\r\n\r\n // const availability = await getEstimatedAvailabilityAsync(context, { ProductIds: productIds, DefaultWarehouseOnly: true }).\r\n // catch(error => console.log('[getProductsByCategoryId] getEstimatedAvailabilityAsync error: ', error));\r\n\r\n // if (availability && availability.ProductWarehouseInventoryAvailabilities) {\r\n // const warehouse = availability.ProductWarehouseInventoryAvailabilities;\r\n\r\n // if (warehouse.length > 0) {\r\n // const availableIds: number[] = [];\r\n\r\n // searchResult.map(item => {\r\n // const found = warehouse.find(stock => stock.ProductId === item.RecordId);\r\n\r\n // if (found && (found.PhysicalAvailableInventoryLevelCode && found.PhysicalAvailableInventoryLevelCode === InventoryLvls.AVAIL)) {\r\n // availableIds.push(item.RecordId);\r\n // }\r\n // });\r\n\r\n // const products = await getByIdsAsync(context, channelId, availableIds).catch(error => console.log('[getProductsByCategoryId] getByIdsAsync error: ', error));\r\n\r\n // return products;\r\n // }\r\n // }\r\n\r\n const products = await getByIdsAsync({ callerContext: context.actionContext }, context.actionContext.requestContext.apiSettings.channelId, productIds).catch(error => console.log('[getProductsByCategoryId] getByIdsAsync error: ', error));\r\n\r\n return products;\r\n }\r\n\r\n return [];\r\n}\r\n\r\nexport async function getProducts(context: ICoreContext, categoryIDs: number[]): Promise {\r\n if (categoryIDs.length > 0) {\r\n const projectDomain = { ChannelId: context.actionContext.requestContext.apiSettings.channelId, CatalogId: context.actionContext.requestContext.apiSettings.catalogId };\r\n\r\n const criterias: ProductSearchCriteria = { Context: projectDomain, CategoryIds: categoryIDs, IncludeAttributes: true };\r\n \r\n const products = await searchAsync({ callerContext: context.actionContext }, criterias);\r\n \r\n return products;\r\n }\r\n\r\n return [];\r\n}\r\n\r\nexport async function getCustomerOrderHistory(context: ICoreContext, hierarchy: AsyncResult, customer: Customer, organisation: string, isUat: boolean, limit: number) {\r\n const dictionary = await generateDictionary(context, hierarchy);\r\n\r\n const orders = await getOrderHistoryAsync({ callerContext: context.actionContext }, customer.AccountNumber);\r\n\r\n const orderHistory: PastTransaction[] = [];\r\n\r\n const btgpTransactions = await getByCustomerAllBTGPTransactionAsync({ callerContext: context.actionContext }, customer.AccountNumber, customer.Email!, organisation, isUat, limit);\r\n\r\n for (let i = 0; i < btgpTransactions.length; i++) {\r\n const transaction: Transaction = JSON.parse(btgpTransactions[`${i}`]);\r\n \r\n if (transaction['errorCode']) {\r\n console.log(transaction['errorMessage']);\r\n } else {\r\n const transactionNames: string[] = [];\r\n\r\n for (let j = 1; j <= 20; j++) {\r\n const nameID = 'Name_' + j;\r\n\r\n if (transaction[`${nameID}`]) {\r\n transactionNames.push(transaction[`${nameID}`]);\r\n }\r\n }\r\n\r\n let mainName = '';\r\n let mainID = 0;\r\n let price = 0;\r\n\r\n if (transaction.ProductCategoryID === '' || transaction.ProductCategoryID === null) {\r\n dictionary.forEach(record => {\r\n const found = record.Products.find(item => item.RecordId === parseInt(transaction.ProductID));\r\n\r\n if (found) { \r\n mainName = record.Main.Name!; \r\n mainID = record.Main.RecordId;\r\n price = found.Price ? found.Price : 0;\r\n }\r\n });\r\n } else {\r\n mainName = transaction.ProductCategory;\r\n mainID = Number(transaction.ProductCategoryID);\r\n price = transaction.ProductPrice;\r\n }\r\n\r\n if (transaction.DedicationPeriod !== '') {\r\n let found = DedicationPeriod.en.period.findIndex(item => item.label === transaction.DedicationPeriod);\r\n\r\n // Look through chinese version.\r\n if (found < 0) {\r\n found = DedicationPeriod.zh.period.findIndex(item => item.label === transaction.DedicationPeriod);\r\n }\r\n\r\n // Found matching dedication period.\r\n if (found >= 0) {\r\n price = price * DedicationPeriod.scale[`${found}`];\r\n }\r\n }\r\n\r\n const matchingOrder = orders.find(order => order.Id === transaction.SalesOrderID);\r\n const orderReceiptNo = transaction.ReceiptNo === '' ? matchingOrder && matchingOrder.SalesId ? matchingOrder.SalesId : 'Pending' : transaction.ReceiptNo;\r\n\r\n let order = transaction;\r\n order.ProductPrice = price;\r\n order.ProductCategory = mainName;\r\n order.ProductCategoryID = mainID.toString();\r\n\r\n orderHistory.push({ \r\n EventDates: [transaction.EventName],\r\n Names: transactionNames,\r\n OrderDate: transaction.DateOfTransaction ? new Date(transaction.DateOfTransaction) : new Date(),\r\n ReceiptNo: [orderReceiptNo],\r\n Record: order\r\n });\r\n }\r\n }\r\n\r\n orderHistory.sort((a, b) => {\r\n return b.OrderDate.getTime() - a.OrderDate.getTime();\r\n }); \r\n\r\n return orderHistory;\r\n}\r\n\r\nexport async function generateErrorLog(context: ICoreContext, errorLogName: string, errorDetails: string, item: FormDetails) {\r\n await createBTGPErrorLogAsync({ callerContext: context.actionContext }, generateUUID(), errorLogName, errorDetails, new Date().toISOString(), item.CartLineID, item.CartID, item.ProductID, item.EventID, item.EventName, item.SerialID, item.SerialNumber, item.SerialName, item.Name_1, item.Name_2, item.Name_3, item.Name_4, item.Name_5, item.Name_6, item.Name_7, item.Name_8, item.Name_9, item.Name_10, item.Name_11, item.Name_12, item.Name_13, item.Name_14, item.Name_15, item.Name_16, item.Name_17, item.Name_18, item.Name_19, item.Name_20, item.Remarks, item.Message, item.Category, item.DedicatedBy, item.HasTaxDeduction, item.Nric, item.BuildingName, item.UnitNumber, item.PostalCode, item.BirthDate, item.PhoneNumber, item.SchoolName, item.DonationOption, item.BlessingOption, item.CartLineComment, item.BirthTime, item.LightOption, item.ValidFrom, item.ValidTo, item.ParentCartLineID, item.DedicationPeriod, item.Country, item.CompanyName, item.DeceasedRelationship, item.SurgeryDate, item.DeathDate, item.DeathTime, item.NameChange, item.OldName_1, item.OldName_2, item.BirthDate_2, item.BirthTime_2, item.StartDate, item.Gender, item.ChineseName, item.ContactNumber, item.NameNextKin, item.ContactNumberNextKin, item.PassportNumber, item.PassportExpiryDate, item.PassportIssuedDate);\r\n}\r\n\r\nexport async function createOrUpdateCartline(context: ICoreContext, item: CartItem): Promise {\r\n const result = await createOrUpdateBTGPCartLineAsync({ callerContext: context.actionContext }, item.Form.CartLineID, item.Form.CartID, item.Form.ProductID, item.Form.EventID, item.Form.EventName, item.Form.SerialID, item.Form.SerialNumber, item.Form.SerialName, item.Form.Name_1, item.Form.Name_2, item.Form.Name_3, item.Form.Name_4, item.Form.Name_5, item.Form.Name_6, item.Form.Name_7, item.Form.Name_8, item.Form.Name_9, item.Form.Name_10, item.Form.Name_11, item.Form.Name_12, item.Form.Name_13, item.Form.Name_14, item.Form.Name_15, item.Form.Name_16, item.Form.Name_17, item.Form.Name_18, item.Form.Name_19, item.Form.Name_20, item.Form.Remarks, item.Form.Message, item.Form.Category, item.Form.DedicatedBy, item.Form.HasTaxDeduction, item.Form.Nric, item.Form.BuildingName, item.Form.UnitNumber, item.Form.PostalCode, item.Form.BirthDate, item.Form.PhoneNumber, item.Form.SchoolName, item.Form.DonationOption, item.Form.BlessingOption, item.Form.CartLineComment, item.Form.BirthTime, item.Form.LightOption, item.Form.ValidFrom, item.Form.ValidTo, item.Form.ParentCartLineID, item.Form.DedicationPeriod, item.Form.Country, item.Form.CompanyName, item.Form.DeceasedRelationship, item.Form.SurgeryDate, item.Form.DeathDate, item.Form.DeathTime, item.Form.NameChange, item.Form.OldName_1, item.Form.OldName_2, item.Form.BirthDate_2, item.Form.BirthTime_2, item.IsValid, item.InvalidType, item.InCart, item.IsSubProduct, item.Form.StartDate, item.Form.Gender, item.Form.ChineseName, item.Form.NameNextKin, item.Form.ContactNumber, item.Form.ContactNumberNextKin, item.Form.PassportNumber, item.Form.PassportExpiryDate, item.Form.PassportIssuedDate, item.Form.Consent, item.Form.IsInsuranceIncluded);\r\n\r\n return result;\r\n}\r\n\r\nexport async function generateDictionary(context: ICoreContext, hierarchy: AsyncResult): Promise {\r\n const dictionary: CategoryProducts[] = [];\r\n\r\n if (hierarchy.result) {\r\n hierarchy.result.forEach(record => {\r\n if (record.Children && record.Children.length > 0) {\r\n dictionary.push({ Main: record, SubIDs: record.Children.map(item => item.RecordId), Products: [] });\r\n }\r\n });\r\n }\r\n\r\n for (let j = 0; j < dictionary.length; ++j) {\r\n dictionary[`${j}`].Products = await getProducts(context, dictionary[`${j}`].SubIDs);\r\n }\r\n\r\n return dictionary;\r\n}\r\n\r\nexport function generateUUID(): string {\r\n let uuid = uuidv4();\r\n\r\n while (!(uuidValidate(uuid) && uuidVersion(uuid) == 4)) {\r\n uuid = uuidv4();\r\n }\r\n\r\n return uuid;\r\n}","/* eslint-disable no-duplicate-imports */\r\nimport { getSimpleProducts, ProductInput } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput } from '@msdyn365-commerce/core';\r\nimport { getCartState } from '@msdyn365-commerce/global-state';\r\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\n/**\r\n * Input class for ActiveCheckoutCartWithProducts data action\r\n */\r\nexport class ActiveCheckoutCartProductsInput implements IActionInput {\r\n public getCacheKey = () => 'ActiveCheckoutCartProducts';\r\n public getCacheObjectType = () => 'ActiveCheckoutCartProducts';\r\n public dataCacheType = (): CacheType => 'none';\r\n}\r\n\r\nexport const createInput = () => {\r\n return new ActiveCheckoutCartProductsInput();\r\n};\r\n\r\n/**\r\n * Calls the Retail API and returns a cart object based on the passed GetCartInput\r\n */\r\nexport async function getActiveCheckoutCartProductsAction(input: ActiveCheckoutCartProductsInput, ctx: IActionContext): Promise {\r\n // If no cart ID is provided in input, we need to create a cart object\r\n if (!input) {\r\n ctx.telemetry.exception(new Error('[getActiveCheckoutCartWithProducts]No valid Input was provided, failing'));\r\n throw new Error('[getActiveCheckoutCartWithProducts]No valid Input was provided, failing');\r\n }\r\n\r\n const checkoutState = await getCartState(ctx);\r\n const cart = checkoutState.cart;\r\n\r\n // If there are cart lines, make call to get products\r\n if (cart && cart.CartLines && cart.CartLines.length) {\r\n return getSimpleProducts(\r\n cart.CartLines.map(cartLine => {\r\n if (cartLine.ProductId) {\r\n return new ProductInput(cartLine.ProductId, ctx.requestContext.apiSettings);\r\n }\r\n return undefined;\r\n }).filter(Boolean),\r\n ctx\r\n )\r\n .then(products => {\r\n if (products) {\r\n return products;\r\n } else {\r\n return [];\r\n }\r\n })\r\n .catch(error => {\r\n ctx.telemetry.exception(error);\r\n throw new Error('[getActiveCheckoutCartWithProdcuts]Unable to hydrate cart with product information');\r\n });\r\n }\r\n\r\n return [];\r\n}\r\n\r\nexport default createObservableDataAction({\r\n id: '@msdyn365-commerce-modules/checkout/get-products-in-active-checkout-cart',\r\n action: >getActiveCheckoutCartProductsAction,\r\n input: createInput\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 * as React from \"react\";\r\n\r\nimport { IEshopOrderSummaryData } from \"./eshop-order-summary.data\";\r\nimport {\r\n IEshopOrderSummaryProps,\r\n IEshopOrderSummaryConfig,\r\n} from \"./eshop-order-summary.props.autogenerated\";\r\nimport { Cart, SimpleProduct } from \"@msdyn365-commerce/retail-proxy\";\r\nimport {\r\n getCheckoutState,\r\n getCartState,\r\n ICartState,\r\n} from \"@msdyn365-commerce/global-state\";\r\nimport {\r\n getActiveCheckoutCartProductsAction,\r\n ActiveCheckoutCartProductsInput,\r\n} from \"./actions/get-products-in-active-ecomm-checkout-cart\";\r\nexport interface IEshopOrderSummaryViewProps\r\n extends IEshopOrderSummaryProps {\r\n cart: Cart;\r\n products: SimpleProduct[];\r\n config: IEshopOrderSummaryConfig;\r\n cartItems: ICartState;\r\n callbacks: IOrderSummaryCallbacks;\r\n}\r\nexport interface IDimensionsionString {\r\n\r\n /** String for size key */\r\n sizeString: string;\r\n /** String for color key */\r\n colorString: string;\r\n /** String associated with the configuration product dimension */\r\n configString: string;\r\n /** String for style key */\r\n styleString: string;\r\n /** String for amount key */\r\n amountString?: string;\r\n}\r\nexport interface IOrderSummaryCallbacks {\r\n updateCartState(removeCartItem: boolean): void;\r\n}\r\n\r\n/**\r\n *\r\n * EshopOrderSummary component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass EshopOrderSummary extends React.PureComponent<\r\n IEshopOrderSummaryProps\r\n> {\r\n constructor(props: IEshopOrderSummaryProps) {\r\n super(props);\r\n\r\n this.state = {\r\n cart: null,\r\n products: null,\r\n modelOpenValue: false,\r\n cartItems: null,\r\n removeCartItem: false,\r\n };\r\n }\r\n\r\n private readonly callbacks: IOrderSummaryCallbacks = {\r\n updateCartState: async (removeCartItem: boolean): Promise => {\r\n const ctx = this.props.context.actionContext;\r\n const checkoutState = await getCartState(ctx);\r\n const actionInput = new ActiveCheckoutCartProductsInput();\r\n const productsState = await getActiveCheckoutCartProductsAction(\r\n actionInput,\r\n ctx\r\n );\r\n\r\n this.state[\"cart\"] = checkoutState.cart;\r\n this.state[\"products\"] = productsState;\r\n this.state[\"cartItems\"] = checkoutState;\r\n this.state[\"callbacks\"] = this.callbacks;\r\n this.setState({ removeCartItem: removeCartItem });\r\n },\r\n };\r\n\r\n public async componentDidMount(): Promise {\r\n const checkoutState = await getCheckoutState(\r\n this.props.context.actionContext\r\n );\r\n this.state[\"cart\"] = checkoutState.checkoutCart.cart;\r\n }\r\n\r\n public async componentDidUpdate(\r\n prevProps: Readonly>,\r\n prevState: Readonly<{}>,\r\n snapshot?: any\r\n ): Promise {\r\n const ctx = this.props.context.actionContext;\r\n const checkoutState = await getCartState(ctx);\r\n const actionInput = new ActiveCheckoutCartProductsInput();\r\n const productsState = await getActiveCheckoutCartProductsAction(\r\n actionInput,\r\n ctx\r\n );\r\n if (this.state[\"cart\"] != checkoutState.cart) {\r\n this.state[\"cart\"] = checkoutState.cart;\r\n }\r\n\r\n this.state[\"products\"] = productsState;\r\n\r\n if (this.state[\"cartItems\"] != checkoutState) {\r\n this.state[\"cartItems\"] = checkoutState;\r\n }\r\n\r\n this.state[\"callbacks\"] = this.callbacks;\r\n\r\n this.setState({\r\n modelOpenValue: this.props.data.modelOpenValue.result?.modelOpenValue,\r\n });\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const IEshopOrderSummaryViewProps = {\r\n ...this.props,\r\n cart: this.state[\"cart\"],\r\n products: this.state[\"products\"],\r\n cartItems: this.state[\"cartItems\"],\r\n callbacks: this.state[\"callbacks\"],\r\n };\r\n return this.props.renderView(IEshopOrderSummaryViewProps);\r\n }\r\n}\r\n\r\nexport default EshopOrderSummary;\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 * as React from \"react\";\r\n\r\n//import { isMobile } from \"../../components/breakpoints\";\r\n\r\n//import SlidingPanel from \"react-sliding-side-panel\";\r\n\r\nimport { IEshopOrderSummaryViewProps } from \"./eshop-order-summary\";\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Button } from '@msdyn365-commerce-modules/utilities';\r\nimport { AsyncResult, CartLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\nimport { validateForCheckoutAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\n\r\nimport { deleteBTGPCartLineAsync } from '../../actions/DataActionExtension.g';\r\nimport { generateErrorLog } from '../../actions/helper-functions';\r\nimport { FormDetails } from '../../actions/ecomm-interfaces';\r\n\r\ninterface IDimensionStrings {\r\n /** String for size key */\r\n sizeString?: string;\r\n /** String for color key */\r\n colorString?: string;\r\n /** String associated with the configuration product dimension */\r\n configString?: string;\r\n /** String for style key */\r\n styleString?: string;\r\n /** String for amount key */\r\n amountString?: string;\r\n}\r\n\r\nexport class OrderSummaryView extends React.PureComponent<\r\n IEshopOrderSummaryViewProps\r\n> {\r\n public state: any = { hasMounted: false, openPanel: false, width: 0 };\r\n\r\n public componentDidMount(): void {\r\n if (!this.state.hasMounted) {\r\n window.addEventListener(\"resize\", this._updateDimensions);\r\n\r\n this.setState({ hasMounted: true, width: window.innerWidth });\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n if (!this.state.hasMounted) {\r\n return null;\r\n }\r\n const { cart, products } = this.props;\r\n\r\n // if (this.props.config.enableMobile) {\r\n // return isMobile(this.state.width) ? this._renderMobile() : null;\r\n // } else {\r\n // if (isMobile(this.state.width)) {\r\n // return null;\r\n // }\r\n\r\n const bg = this.props.config.orderSummaryImage?.src\r\n ? { backgroundImage: `url(${this.props.config.orderSummaryImage.src})` }\r\n : { backgroundImage: \"\" };\r\n\r\n return (\r\n
\r\n
\r\n
{this.props.config.orderSummaryHeaderText}
\r\n {products && cart && cart.CartLines ? this._getCartItems() : null}\r\n
\r\n
\r\n
\r\n {this.props.config.totalText}\r\n {cart ? \" \" + \"$\" + cart.SubtotalAmount : \"\"}\r\n
\r\n
\r\n
\r\n
\r\n {\r\n event.preventDefault();\r\n \r\n if (this.props.config.gotoCartUrl) {\r\n window.location.href = this.props.config.gotoCartUrl;\r\n }\r\n } } aria-label={this.props.config.gotoCartText}\r\n >\r\n {this.props.config.gotoCartText}\r\n \r\n {\r\n event.preventDefault();\r\n \r\n if (this.props.config.gotoCheckoutUrl) {\r\n window.location.href = this.props.config.gotoCheckoutUrl;\r\n }\r\n } } aria-label={this.props.config.gotoCheckoutText}\r\n >\r\n {this.props.config.gotoCheckoutText}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n // }\r\n }\r\n\r\n public componentWillUnmount() {\r\n window.removeEventListener(\"resize\", this._updateDimensions);\r\n }\r\n\r\n private _getCartItems(): JSX.Element[] | null {\r\n const { cart, products } = this.props;\r\n\r\n const destructDimensionStrings = {\r\n sizeString: this.props.config.SizeDimension,\r\n colorString: this.props.config.colorDimension,\r\n styleString: this.props.config.styleDimension,\r\n configString: this.props.config.configDimension,\r\n amountString: this.props.config.amountDimension\r\n};\r\n\r\n return cart.CartLines!.map((item, index) => {\r\n const productDimensions = products[`${index}`] && this.CartLineItemFunctions.renderProductDimensions(products[`${index}`], destructDimensionStrings);\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n

{products[`${index}`].Name}

\r\n

\r\n {\" \"}\r\n {\"$\" + item.Price! * item.Quantity!}\r\n

\r\n {ArrayExtensions.hasElements(productDimensions) ?

{productDimensions}

: ''}\r\n

{this.props.config.QuantityText ? this.props.config.QuantityText : \"Quantity\" }: {item.Quantity!}

\r\n

\r\n \r\n

\r\n

\r\n
\r\n
\r\n );\r\n });\r\n }\r\n\r\n // private _getMobileCartItems(): JSX.Element[] | null {\r\n // const { cart, products } = this.props;\r\n\r\n // return cart.CartLines!.map((item, index) => {\r\n // return (\r\n //
\r\n //
\r\n // {products[`${index}`].Name}\r\n //
\r\n //
\r\n // ${item.Price! * item.Quantity!}\r\n //
\r\n //
\r\n // );\r\n // });\r\n // }\r\n\r\n // private _renderMobile(): JSX.Element | null {\r\n // const { cart } = this.props;\r\n\r\n // const bg = this.props.config.orderSummaryImage?.src\r\n // ? { backgroundImage: `url(${this.props.config.orderSummaryImage.src})` }\r\n // : { backgroundImage: \"\" };\r\n\r\n // return (\r\n //
\r\n //
\r\n //
\r\n //
\r\n //

\r\n // \r\n // {this.props.config.totalText}\r\n // \r\n // \r\n // \r\n // ${cart && cart.TotalAmount?.toFixed(2)}\r\n // \r\n // \r\n //

\r\n //
\r\n //
\r\n // \r\n //
\r\n // \r\n // {this.state.openPanel && (\r\n //
\r\n //

\r\n // {this.props.config.orderSummaryHeaderText}\r\n //

\r\n // {cart && this._getMobileCartItems()}\r\n //
\r\n //
{this.props.config.taxTitle}
\r\n //
\r\n // {this.props.config.taxStatusTitle}\r\n //
\r\n //
\r\n //
\r\n //
\r\n //
\r\n //

\r\n // \r\n // {this.props.config.totalText}\r\n // \r\n // \r\n // \r\n // ${cart && cart.TotalAmount?.toFixed(2)}\r\n // \r\n // \r\n //

\r\n //
\r\n //
\r\n //
\r\n // )}\r\n // \r\n //
\r\n // );\r\n // }\r\n\r\n // private _onTogglePanel = () => {\r\n // this.setState({ openPanel: !this.state.openPanel });\r\n // };\r\n\r\n private _updateDimensions = () => {\r\n this.setState({ width: window.innerWidth });\r\n };\r\n public removeItem = async(cartlineToRemove: CartLine, props: IEshopOrderSummaryViewProps)=> {\r\n \r\n if (props.cart) {\r\n const childCartLineData = props.cart.CartLines?.filter(cl => cl['ParentCartLineID'] === cartlineToRemove.LineId);\r\n let cartLinesToRemove = [cartlineToRemove.LineId!];\r\n \r\n childCartLineData||[].map((child) => {\r\n cartLinesToRemove.push(child['CartLineID']);\r\n });\r\n \r\n const input = { cartLineIds: cartLinesToRemove };\r\n \r\n await this.props.cartItems.removeCartLines(input)\r\n .catch((error) => {\r\n props.telemetry.warning(error);\r\n props.telemetry.debug('Unable to Remove Cart Line');\r\n });\r\n \r\n await this.validateCart(props)\r\n .catch((error) => {\r\n props.telemetry.warning(error);\r\n props.telemetry.debug('Unable to validate Cart');\r\n });\r\n \r\n await deleteBTGPCartLineAsync({ callerContext: props.context.actionContext }, cartlineToRemove.LineId!);\r\n\r\n this.props.callbacks.updateCartState(!this.state.openPanel);\r\n this.setState({openPanel: !this.state.openPanel});\r\n \r\n \r\n }\r\n const logDetail = 'Capturing user actions, File: eshop-order-summary.View.tsx, funtion: removeItem';\r\n const item: FormDetails = {\r\n CartLineID: cartlineToRemove.LineId!, CartID: props.cart.Id, CartLineComment: '', ParentCartLineID: '',\r\n ProductID: cartlineToRemove.ItemId || '', EventID: '', EventName: '',\r\n SerialID: '', SerialNumber: cartlineToRemove.Quantity?.toString() || '', SerialName: '',\r\n Name_1: '', Name_2: '', Name_3: '', Name_4: '', Name_5: '', Name_6: '', Name_7: '', Name_8: '', Name_9: '', Name_10: '', \r\n Name_11: '', Name_12: '', Name_13: '', Name_14: '', Name_15: '', Name_16: '', Name_17: '', Name_18: '', Name_19: '', Name_20: '',\r\n Remarks: '', Message: '',\r\n Category: '', DedicatedBy: '',\r\n HasTaxDeduction: false, Nric: '',\r\n BuildingName: '', UnitNumber: '', PostalCode: '', PhoneNumber: '', Country: '',\r\n ChineseName:'',\r\n SchoolName: '', CompanyName: '',\r\n DonationOption: '', BlessingOption: '', LightOption: '',\r\n ValidFrom: '', ValidTo: '',\r\n DedicationPeriod: '',\r\n StartDate: '',\r\n Gender: '',\r\n SurgeryDate: '',\r\n BirthDate: '', BirthTime: '',\r\n BirthDate_2: '', BirthTime_2: '',\r\n DeathDate: '', DeathTime: '',\r\n DeceasedRelationship: '',\r\n NameChange: '', OldName_1: '', OldName_2: '',\r\n NameNextKin:'',\r\n ContactNumber:'',\r\n ContactNumberNextKin:'',\r\n PassportNumber:'',\r\n PassportExpiryDate:'',\r\n PassportIssuedDate:'',\r\n Consent:0,\r\n IsInsuranceIncluded:0\r\n };\r\n await generateErrorLog(props.context, \"User clicked Remove button in eShop pdp page\", logDetail, item);\r\n }\r\n\r\n public validateCart = async(props: IEshopOrderSummaryViewProps, retry: boolean = true): Promise =>{\r\n // if (!this.isQuantityLimitsFeatureEnabled) {\r\n // return AsyncResult.resolve();\r\n // }\r\n \r\n const { cartItems } = props;\r\n \r\n let cartResult: ICartState;\r\n \r\n try {\r\n cartResult = await cartItems;\r\n } catch (error) {\r\n const msg = error as unknown as string;\r\n \r\n props.telemetry.warning(msg);\r\n props.telemetry.debug('Unable to get cart');\r\n \r\n return AsyncResult.resolve();\r\n }\r\n \r\n const cartVersion = cartResult.cart?.Version;\r\n \r\n if (cartVersion) {\r\n try {\r\n await validateForCheckoutAsync({ callerContext: props.context.actionContext }, cartResult?.cart?.Id, cartVersion);\r\n // this.setState({cartlinesErrors: validationResult.ValidationFailuresByCartLines || []});\r\n return AsyncResult.resolve();\r\n } catch (error) {\r\n const msg = error as unknown as any;\r\n \r\n if (retry && msg.name === 'Microsoft_Dynamics_Commerce_Runtime_InvalidCartVersion') {\r\n try {\r\n await cartResult.refreshCart({});\r\n } catch (refreshError) {\r\n const msg = refreshError as unknown as string;\r\n \r\n props.telemetry.warning(msg);\r\n props.telemetry.debug('Unable to refresh Cart');\r\n \r\n return AsyncResult.resolve();\r\n }\r\n try {\r\n await this.validateCart(props, false);\r\n \r\n return AsyncResult.resolve();\r\n } catch (validateError) {\r\n const msg = validateError as unknown as string;\r\n \r\n props.telemetry.warning(msg);\r\n props.telemetry.debug('Unable to validate Cart');\r\n \r\n return AsyncResult.resolve();\r\n }\r\n }\r\n \r\n props.telemetry.warning(msg);\r\n props.telemetry.debug('Unable to validate Cart');\r\n \r\n return AsyncResult.resolve();\r\n }\r\n } else {\r\n props.telemetry.warning('Cart version not found for Cart validation request.');\r\n \r\n return AsyncResult.resolve();\r\n }\r\n }\r\n\r\n public CartLineItemFunctions = {\r\n renderProductDimensions: (Product: SimpleProduct, DimensionStrings: IDimensionStrings) => {\r\n if (!Product || !Product.Dimensions) {\r\n return [];\r\n }\r\n\r\n return Product.Dimensions.map(productDimension => {\r\n\r\n if (productDimension.DimensionTypeValue === 1) {\r\n return (\r\n
\r\n {DimensionStrings.colorString}: {productDimension.DimensionValue && productDimension.DimensionValue.Value}\r\n
\r\n );\r\n }\r\n\r\n if (productDimension.DimensionTypeValue === 2) {\r\n return (\r\n
\r\n {DimensionStrings.configString}: {productDimension.DimensionValue && productDimension.DimensionValue.Value}\r\n
\r\n );\r\n }\r\n\r\n if (productDimension.DimensionTypeValue === 3) {\r\n return (\r\n
\r\n {DimensionStrings.sizeString}: {productDimension.DimensionValue && productDimension.DimensionValue.Value}\r\n
\r\n );\r\n }\r\n\r\n if (productDimension.DimensionTypeValue === 4) {\r\n return (\r\n
\r\n {Product.IsGiftCard ? DimensionStrings.amountString : DimensionStrings.styleString}: {productDimension.DimensionValue && productDimension.DimensionValue.Value}\r\n
\r\n );\r\n }\r\n return null;\r\n });\r\n }\r\n};\r\n}\r\n\r\n\r\nexport default OrderSummaryView;\r\n","const binding = { modules: {}, dataActions: {} };\n\n const registerActionId = (actionPath) => {\n if (binding.dataActions[actionPath] &&\n binding.dataActions[actionPath].default &&\n binding.dataActions[actionPath].default.prototype &&\n binding.dataActions[actionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[actionPath].default.prototype.id] = binding.dataActions[actionPath];\n } else {\n Object.keys(binding.dataActions[actionPath] || {}).forEach(exportName => {\n if (binding.dataActions[actionPath][exportName] &&\n binding.dataActions[actionPath][exportName].prototype &&\n binding.dataActions[actionPath][exportName].prototype.Action) {\n binding.dataActions[binding.dataActions[actionPath][exportName].prototype.id] = binding.dataActions[actionPath][exportName];\n }\n })\n }\n };\n\n const registerSanitizedActionPath = (sanitizedActionPath, dataAction) => {\n if (process.env.NODE_ENV === 'development') {\n if (!dataAction.default) {\n throw new Error('Data action path does not have a default export');\n }\n if (!(dataAction.default.prototype.id && binding.dataActions[dataAction.default.prototype.id]) || !binding.dataActions[sanitizedActionPath]) {\n binding.dataActions[sanitizedActionPath] = dataAction;\n }\n } else {\n binding.dataActions[sanitizedActionPath] = dataAction;\n if (!binding.dataActions[sanitizedActionPath].default) {\n throw new Error('Data action path ' + sanitizedActionPath + ' does not have a default export');\n }\n binding.dataActions[sanitizedActionPath].default.prototype.RegistrationId = sanitizedActionPath;\n if (binding.dataActions[sanitizedActionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[sanitizedActionPath].default.prototype.id] = sanitizedActionPath;\n }\n }\n };\n \n\n (binding.modules['eshop-order-summary'] = {\n c: () => require('partner/modules/eshop-order-summary/eshop-order-summary.tsx'),\n $type: 'contentModule',\n da: [{name:'checkout', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action', runOn: 0},{name:'modelOpenValue', path:'actions/eShopOrderSummary/eshopOrderSummary', runOn: 0},{name:'products', path:'modules/eshop-order-summary/actions/get-products-in-active-ecomm-checkout-cart', runOn: 0}],\n \n iNM: false,\n ns: '__local__',\n n: 'eshop-order-summary',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/eshop-order-summary'\n });\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action';\n let dataAction = require('@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = 'actions/eShopOrderSummary/eshopOrderSummary';\n let dataAction = require('partner/actions/eShopOrderSummary/eshopOrderSummary');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = 'modules/eshop-order-summary/actions/get-products-in-active-ecomm-checkout-cart';\n let dataAction = require('partner/modules/eshop-order-summary/actions/get-products-in-active-ecomm-checkout-cart');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n \n window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.dataActions = {\n ...window.__bindings__.dataActions || {},\n ...binding.dataActions\n };\n export const viewDictionary = {};\n viewDictionary['__local__|__local__|modules|eshop-order-summary|eshop-order-summary'] = {\n c: () => require('partner/modules/eshop-order-summary/eshop-order-summary.view.tsx'),\n cn: '__local__-__local__-eshop-order-summary'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","module.exports = React;","module.exports = ReactDOM;"],"names":["GetOrderSummaryStateValuesInput","constructor","getCacheKey","getCacheObjectType","dataCacheType","Msdyn365","action","async","input","ctx","modelOpenValue","id","args","getProductsByCategoryId","context","categoryId","searchResult","searchByCategoryAsync","callerContext","actionContext","requestContext","apiSettings","channelId","catalogId","catch","error","console","log","length","sort","a","b","DisplayOrder","productIds","map","item","push","RecordId","getByIdsAsync","getProducts","categoryIDs","criterias","Context","ChannelId","CatalogId","CategoryIds","IncludeAttributes","searchAsync","getCustomerOrderHistory","hierarchy","customer","organisation","isUat","limit","dictionary","result","forEach","record","Children","Main","SubIDs","Products","j","generateDictionary","orders","getOrderHistoryAsync","AccountNumber","orderHistory","btgpTransactions","getByCustomerAllBTGPTransactionAsync","Email","i","transaction","JSON","parse","transactionNames","nameID","mainName","mainID","price","ProductCategoryID","found","find","parseInt","ProductID","Name","Price","ProductCategory","Number","ProductPrice","DedicationPeriod","label","matchingOrder","order","Id","SalesOrderID","orderReceiptNo","ReceiptNo","SalesId","toString","EventDates","EventName","Names","OrderDate","DateOfTransaction","Date","Record","getTime","generateErrorLog","errorLogName","errorDetails","createBTGPErrorLogAsync","uuid","uuidv4","uuidValidate","uuidVersion","generateUUID","toISOString","CartLineID","CartID","EventID","SerialID","SerialNumber","SerialName","Name_1","Name_2","Name_3","Name_4","Name_5","Name_6","Name_7","Name_8","Name_9","Name_10","Name_11","Name_12","Name_13","Name_14","Name_15","Name_16","Name_17","Name_18","Name_19","Name_20","Remarks","Message","Category","DedicatedBy","HasTaxDeduction","Nric","BuildingName","UnitNumber","PostalCode","BirthDate","PhoneNumber","SchoolName","DonationOption","BlessingOption","CartLineComment","BirthTime","LightOption","ValidFrom","ValidTo","ParentCartLineID","Country","CompanyName","DeceasedRelationship","SurgeryDate","DeathDate","DeathTime","NameChange","OldName_1","OldName_2","BirthDate_2","BirthTime_2","StartDate","Gender","ChineseName","ContactNumber","NameNextKin","ContactNumberNextKin","PassportNumber","PassportExpiryDate","PassportIssuedDate","createOrUpdateCartline","createOrUpdateBTGPCartLineAsync","Form","IsValid","InvalidType","InCart","IsSubProduct","Consent","IsInsuranceIncluded","ActiveCheckoutCartProductsInput","createInput","getActiveCheckoutCartProductsAction","telemetry","exception","Error","cart","getCartState","CartLines","getSimpleProducts","cartLine","ProductId","ProductInput","filter","Boolean","then","products","createObservableDataAction","EshopOrderSummary","React","props","super","callbacks","updateCartState","this","checkoutState","actionInput","productsState","state","setState","removeCartItem","cartItems","getCheckoutState","checkoutCart","prevProps","prevState","snapshot","_this$props$data$mode","data","render","IEshopOrderSummaryViewProps","_objectSpread","renderView","OrderSummaryView","_this","hasMounted","openPanel","width","_updateDimensions","window","innerWidth","removeItem","cartlineToRemove","_cartlineToRemove$Qua","_props$cart$CartLines","childCartLineData","cl","LineId","cartLinesToRemove","child","cartLineIds","removeCartLines","warning","debug","validateCart","deleteBTGPCartLineAsync","ItemId","Quantity","_cartResult$cart","retry","arguments","undefined","cartResult","msg","AsyncResult","cartVersion","Version","_cartResult","_cartResult$cart2","validateForCheckoutAsync","name","refreshCart","refreshError","validateError","CartLineItemFunctions","renderProductDimensions","Product","DimensionStrings","Dimensions","productDimension","DimensionTypeValue","key","className","colorString","DimensionValue","Value","configString","sizeString","IsGiftCard","amountString","styleString","componentDidMount","addEventListener","_this$props$config$or","bg","config","orderSummaryImage","src","backgroundImage","style","orderSummaryHeaderText","_getCartItems","totalText","SubtotalAmount","Button","onClick","event","preventDefault","gotoCartUrl","location","href","gotoCartText","gotoCheckoutUrl","gotoCheckoutText","componentWillUnmount","removeEventListener","destructDimensionStrings","SizeDimension","colorDimension","styleDimension","configDimension","amountDimension","index","productDimensions","PrimaryImageUrl","ArrayExtensions","QuantityText","removeButtontext","binding","modules","dataActions","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","prototype","RegistrationId","c","require","$type","da","path","runOn","iNM","ns","n","p","pdp","md","__bindings__","viewDictionary","cn","module","exports","ReactDOM"],"sourceRoot":""}