{"version":3,"file":"static/js/94b50a9af00098e44150.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, IActionContext } from '@msdyn365-commerce/core';\r\n\r\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\r\n\r\nimport { AsyncResult, Customer, Product, ProductSearchCriteria, ProductSearchResult, SimpleProduct, SalesOrder } 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, getByCustomerAllBTGPTransactionFromHqAsync } 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\nimport { ICartState} from '@msdyn365-commerce/global-state';\r\nimport { ReceiptItem } from './kioskv3-interfaces';\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, source: string) {\r\n const dictionary = await generateDictionary(context, hierarchy);\r\n const orderHistory: PastTransaction[] = [];\r\n let btgpTransactions;\r\n let orders : SalesOrder[]= []; \r\n\r\n\r\n if (source ==\"CH\")\r\n {\r\n orders = await getOrderHistoryAsync({ callerContext: context.actionContext }, customer.AccountNumber);\r\n\r\n btgpTransactions = await getByCustomerAllBTGPTransactionAsync({ callerContext: context.actionContext }, customer.AccountNumber, customer.Email!, organisation, isUat, limit); \r\n }\r\n else{\r\n btgpTransactions = await getByCustomerAllBTGPTransactionFromHqAsync({ callerContext: context.actionContext }, isUat, customer.AccountNumber, customer.Email!, (organisation==\"BT\"?\"BTRT\":\"GPBT\")); \r\n }\r\n\r\n\r\n if (btgpTransactions)\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\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}\r\n\r\nexport function showNextOrPreviousPage(selectors: string, showClassName: string, hideClassName: string, showNextPage: boolean) {\r\n let showPageIndex;\r\n const elements = document.querySelectorAll(selectors);\r\n\r\n // to get show page index\r\n for (let i = 0 ; i < elements.length; i++){\r\n const htmlElement = elements[`${i}`] as HTMLElement;\r\n if (htmlElement.classList.contains(showClassName)) {\r\n showPageIndex = showNextPage ? i + 1 : i - 1;\r\n }\r\n htmlElement.classList.remove(showClassName);\r\n htmlElement.classList.add(hideClassName);\r\n }\r\n\r\n const elementToShow = elements[`${showPageIndex}`] as HTMLElement;\r\n elementToShow.classList.remove(hideClassName);\r\n elementToShow.classList.add(showClassName);\r\n}\r\n\r\nexport function loadingProductListInHomePageOrPrecheckoutPage(className: string){\r\n const productListEl = document.getElementsByClassName(className)[0];\r\n const overlayEl = document.getElementsByClassName(\"loading-overlay-parent\")[0] as HTMLElement;\r\n\r\n if (!productListEl.hasChildNodes()){\r\n overlayEl.style.display = \"block\";\r\n\r\n const intervalId = setInterval(()=>{\r\n if (document.getElementsByClassName(className)[0].hasChildNodes()) {\r\n overlayEl.style.display = \"none\";\r\n clearInterval(intervalId);\r\n }\r\n }, 200);\r\n }\r\n else{\r\n overlayEl.style.display = \"none\";\r\n }\r\n}\r\n\r\nexport function showLoadingScreen(show: boolean){\r\n const overlayEl = document.getElementsByClassName(\"loading-overlay-parent\")[0] as HTMLElement;\r\n // show ? overlayEl.style.display = \"block\" : overlayEl.style.display = \"none\";\r\n let overlayTimeout: any = \"\";\r\n\r\n if (show){\r\n overlayTimeout = setTimeout(()=>{\r\n overlayEl.style.display = \"block\";\r\n }, 1000);\r\n }\r\n else{\r\n overlayEl.style.display = \"none\";\r\n }\r\n\r\n\r\n return overlayTimeout;\r\n}\r\n\r\nexport function showLoadingScreenInstant(show: boolean){\r\n const overlayEl = document.getElementsByClassName(\"loading-overlay-parent\")[0] as HTMLElement;\r\n show ? overlayEl.style.display = \"block\" : overlayEl.style.display = \"none\";\r\n}\r\n\r\nexport function showPrintReceiptPopUp(show: boolean){\r\n const overlayEl = document.getElementsByClassName(\"try-again-overlay-parent\")[0] as HTMLElement;\r\n show ? overlayEl.style.display = \"block\" : overlayEl.style.display = \"none\";\r\n}\r\n\r\nexport function clearOverlayTimeout(overlayTimeout: NodeJS.Timeout){\r\n clearTimeout(overlayTimeout);\r\n}\r\n\r\nexport function showStartOverBtnInHeader2(show: boolean){\r\n let elements: Element[] = Array.from(document.getElementsByClassName(\"start-over\"));\r\n elements.forEach(element =>{\r\n if (show){\r\n (element as HTMLElement).style.display = \"block\";\r\n }\r\n else{\r\n (element as HTMLElement).style.display = \"none\";\r\n }\r\n });\r\n}\r\n\r\n\r\nexport async function buildKioskv3ReceiptItems(cart: ICartState, actionContext: IActionContext, channelId: number): Promise{\r\n let productIds: number[] = [];\r\n cart.cart.CartLines?.map(cartLine => productIds.push(Number(cartLine.ProductId)));\r\n\r\n let simpleProductsResults = await searchAsync({ callerContext: actionContext }, { Ids: productIds });\r\n\r\n let receiptItems: ReceiptItem[] = [];\r\n\r\n cart.cart.CartLines?.map(cartLine => {\r\n if (cartLine.ProductId) {\r\n let receiptItem: ReceiptItem = {\r\n quantity: cartLine.Quantity!,\r\n productName: simpleProductsResults.find(product => product.RecordId == cartLine.ProductId)!.ProductName!,\r\n price: cartLine.Price!,\r\n totalAmount: cartLine.Quantity! * cartLine.Price!,\r\n comment: cartLine.Comment!\r\n };\r\n receiptItems.push(receiptItem);\r\n }\r\n })\r\n\r\n return receiptItems;\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","source","dictionary","result","forEach","record","Children","Main","SubIDs","Products","j","generateDictionary","orderHistory","btgpTransactions","orders","getOrderHistoryAsync","AccountNumber","getByCustomerAllBTGPTransactionAsync","Email","getByCustomerAllBTGPTransactionFromHqAsync","i","transaction","JSON","parse","transactionNames","nameID","mainName","mainID","price","ProductCategoryID","found","find","parseInt","ProductID","Name","Price","ProductCategory","Number","ProductPrice","DedicationPeriod","findIndex","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","showNextOrPreviousPage","selectors","showClassName","hideClassName","showNextPage","showPageIndex","elements","document","querySelectorAll","htmlElement","classList","contains","remove","add","elementToShow","loadingProductListInHomePageOrPrecheckoutPage","className","productListEl","getElementsByClassName","overlayEl","hasChildNodes","style","display","intervalId","setInterval","clearInterval","showLoadingScreen","show","overlayTimeout","setTimeout","showLoadingScreenInstant","showPrintReceiptPopUp","clearOverlayTimeout","clearTimeout","showStartOverBtnInHeader2","Array","from","element","buildKioskv3ReceiptItems","cart","_cart$cart$CartLines","_cart$cart$CartLines2","CartLines","cartLine","ProductId","simpleProductsResults","Ids","receiptItems","receiptItem","quantity","Quantity","productName","product","ProductName","totalAmount","comment","Comment","ActiveCheckoutCartProductsInput","createInput","getActiveCheckoutCartProductsAction","telemetry","exception","Error","getCartState","getSimpleProducts","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","_cartResult$cart","retry","arguments","undefined","cartResult","msg","AsyncResult","resolve","cartVersion","Version","_cartResult","validateForCheckoutAsync","name","refreshCart","refreshError","validateError","CartLineItemFunctions","renderProductDimensions","Product","DimensionStrings","Dimensions","productDimension","DimensionTypeValue","key","colorString","DimensionValue","Value","configString","sizeString","IsGiftCard","amountString","styleString","componentDidMount","addEventListener","_this$props$config$or","bg","config","orderSummaryImage","src","backgroundImage","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","hasElements","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":""}