{"version":3,"file":"static/js/0abe0bbec936d8bd1910.bundle.js","mappings":"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","sources":["webpack://mattressfirm/./src/Utilities/analytics/fullStoryTrack.ts?965d","webpack://mattressfirm/./src/Utilities/analytics/utagCaller.ts?3814","webpack://mattressfirm/./src/Utilities/cart-utils.ts?6ba1","webpack://mattressfirm/./src/Utilities/checkout-utils.ts?958e","webpack://mattressfirm/./src/Utilities/constants.ts?8bdf","webpack://mattressfirm/./src/Utilities/doRetryCallBack.ts?72a9","webpack://mattressfirm/./src/Utilities/enum.ts?dc36","webpack://mattressfirm/./src/Utilities/fallbackImageUrl.ts?ace7","webpack://mattressfirm/./src/Utilities/get-product-brand.tsx?2b65","webpack://mattressfirm/./src/Utilities/getDeliveryMod.ts?1a84","webpack://mattressfirm/./src/Utilities/getDeliveryService.tsx?918e","webpack://mattressfirm/./src/actions/fetch-core-delivery-list.action.ts?41e3","webpack://mattressfirm/./src/actions/get-mfrm-products-category-paths.action.ts?dc81","webpack://mattressfirm/./src/actions/get-recycle-fee-checkout.action.ts?9366","webpack://mattressfirm/./src/actions/get-sm-inventory-status.action.ts?cb72","webpack://mattressfirm/./src/actions/progressive-actions/progressive-delete-transaction.action.ts?16ee","webpack://mattressfirm/./src/actions/progressive-actions/progressive-proxy-files/ProgressiveDataActionExtension.g.ts?41e1","webpack://mattressfirm/./src/actions/progressive-actions/progressive-proxy-files/ProgressiveDataServiceEntities.g.ts?9bda","webpack://mattressfirm/./src/common/cookies/cookie-utils.ts?68f7","webpack://mattressfirm/./src/common/salesorder-attributes/attributes.ts?b5ef","webpack://mattressfirm/./src/data-actions/checkout-skeleton.action.ts?78fb","webpack://mattressfirm/./src/data-actions/mfi-atp-inventory.action.ts?2cbf","webpack://mattressfirm/./src/data-actions/utilities/utils.ts?7452","webpack://mattressfirm/./src/modules/mfrm-cart/utils/cart-utils.ts?3c24","webpack://mattressfirm/./src/modules/mfrm-checkout-delivery-options/utils/mfrm-delivery-option-utils.ts?cbd4"],"sourcesContent":["import { Cart, CartLine, DataValidationFailure } from '@msdyn365-commerce/retail-proxy';\r\nimport { ICartProductPrice } from '../cart-utils';\r\n\r\nexport interface IDataValidationErrors {\r\n CorrelationId?: string;\r\n ErrorResourceId?: string;\r\n LocalizedMessage?: string;\r\n ValidationResults?: DataValidationFailure[];\r\n}\r\n\r\nconst callFS = (name?: string, detailsObject?: any) => {\r\n try {\r\n // If FS doesn't exist in the global scope, set as false.\r\n const FS = global.hasOwnProperty('FS') ? global['FS'] : false;\r\n FS && FS.event(name, detailsObject);\r\n } catch (e) {\r\n console.log('FS View Errors', e);\r\n }\r\n};\r\nexport const eventFullStoryAPISuccess = async (name?: string, pathName?: string, objToCall?: Cart) => {\r\n const detailsObject = {\r\n pathName,\r\n status: 'success'\r\n };\r\n callFS(name, detailsObject);\r\n};\r\n\r\nexport const eventFullStoryPriceMismatch = async (name?: string, pathName?: string, objToCall?: ICartProductPrice[], cartLines?: CartLine[] | undefined , tradeIds?: number[] ) => {\r\n const PdpPriceArrays: string[] = [];\r\n const idsArrays: string[] = [];\r\n const cartPriceArrays: string[] = [];\r\n const tradeLines = tradeIds && tradeIds.length > 0 ? true : false;\r\n objToCall?.forEach((items) => {\r\n PdpPriceArrays.push(`${items.price}`);\r\n idsArrays.push(`${items.variantRecordId}`);\r\n const checkCartPrice = cartLines?.find((lines) => lines.ProductId === items.variantRecordId)?.Price;\r\n if(checkCartPrice){\r\n cartPriceArrays.push(`${checkCartPrice}`);\r\n }\r\n });\r\n const detailsObject = {\r\n pathName,\r\n id: idsArrays?.toString(),\r\n pdp_price: PdpPriceArrays?.toString(),\r\n cart_price: cartPriceArrays?.toString(),\r\n ...(tradeLines && {tradeAgreement: \"trade agreement is missing\"})\r\n };\r\n callFS(name, detailsObject);\r\n};\r\n\r\nexport const eventFullStoryFailAPI = async (\r\n name?: string,\r\n pathName?: string,\r\n objToCall?: {\r\n error: {\r\n data?: IDataValidationErrors;\r\n message?: string;\r\n statusCode?: number;\r\n };\r\n }\r\n) => {\r\n const detailsObject = {\r\n pathName,\r\n status: objToCall?.error?.statusCode,\r\n message: objToCall?.error?.message,\r\n correlationId: objToCall?.error?.data?.CorrelationId,\r\n validationError: objToCall?.error?.data?.ValidationResults?.[0]?.ErrorContext\r\n };\r\n callFS(name, detailsObject);\r\n};\r\n","import { IAnalyticsConfiguration } from './clickTrack';\r\n\r\n// Interface for 3rd-party function. AKA utag.\r\ninterface ITealium {\r\n link(data: {}): void | false;\r\n view(data: {}): void | false;\r\n data(data: {}): void | false;\r\n}\r\n\r\nexport interface IPromotionConfig {\r\n event?: string | null;\r\n event_name?: string | null;\r\n search_term?: string | null;\r\n search_type?: string | null;\r\n event_category?: string | null;\r\n event_action?: string | null;\r\n event_label?: string | null;\r\n event_type?: string | null;\r\n event_noninteraction?: string;\r\n enhanced_action?: string | null;\r\n customer_email?: string | undefined;\r\n customer_phone_number?: string | undefined;\r\n first_name?: string | undefined;\r\n last_name?: string | undefined;\r\n address1?: string | undefined;\r\n address2?: string | undefined;\r\n city?: string | undefined;\r\n state?: string | undefined;\r\n zip_code?: string | undefined;\r\n order_subtotal?: string | undefined;\r\n order_currency?: string | undefined;\r\n country?: string | undefined;\r\n // productConfig?: IProductDataConfig;\r\n checkout_step?: string;\r\n checkout_option?:(string | undefined)[];\r\n checkout_type?:(string | undefined)[];\r\n product_id?: (string | undefined)[];\r\n product_name?: (string | undefined)[];\r\n product_category?: (string | undefined)[];\r\n product_brand?: (string | undefined)[];\r\n product_variant?: (string | undefined | number)[];\r\n product_price?: (string | undefined)[];\r\n product_quantity?: (string | undefined)[];\r\n product_url?: (string | undefined)[];\r\n product_size?: (string | undefined)[];\r\n product_image_url?: (string | undefined)[];\r\n core_item_flag?: string | null;\r\n funnel_type?: string | null;\r\n ga_title?: string | null;\r\n ga_location?: string | null;\r\n order_quantity?: string | null;\r\n master_customer_code?: string | null;\r\n order_number?: string | null;\r\n}\r\n\r\ninterface IProductDataConfig {\r\n product_variant?: (string | undefined)[];\r\n product_price?: (string | undefined)[];\r\n}\r\n\r\nexport interface IAnalyticsConfigurationData {\r\n productConfig?: IProductDataConfig;\r\n}\r\n\r\n\r\n// Legacy function\r\nexport const callUtag = async (objToCall: IPromotionConfig) => {\r\n void await callUtagLink(objToCall);\r\n};\r\n\r\n/**\r\n * Tealium dispatch click tracking.\r\n * @param objToCall\r\n */\r\nexport const callUtagLink = async (objToCall: IPromotionConfig | IAnalyticsConfiguration) => {\r\n try {\r\n Object.keys(objToCall).forEach(\r\n key => {\r\n if (objToCall[key] === null) {\r\n delete objToCall[key];\r\n }\r\n }\r\n );\r\n // If utag doesn't exist in the global scope, set as false.\r\n const utag: ITealium = global.hasOwnProperty('utag') ? global[\"utag\"] : false;\r\n if(utag) { utag.link(objToCall); }\r\n\r\n } catch (e) {\r\n console.log('Utag Error', e);\r\n }\r\n};\r\n\r\n/**\r\n * Tealium dispatch view tracking.\r\n * @param objToCall\r\n */\r\nexport const callUtagView = async (objToCall: {}) => {\r\n try {\r\n // If utag doesn't exist in the global scope, set as false.\r\n const utag: ITealium = global.hasOwnProperty('utag') ? global[\"utag\"] : false;\r\n if(utag) { utag.view(objToCall); }\r\n } catch (e) {\r\n console.log('utag View Error', e);\r\n }\r\n};\r\n\r\n/**\r\n * Not currently implemented.\r\n * @param objToCall\r\n * @param dataType\r\n */\r\nexport const callUtagData = ({ productConfig = {} }: IAnalyticsConfigurationData , dataType: string) => {\r\n try {\r\n // If utag doesn't exist in the global scope, set as false.\r\n const utag: ITealium = global.hasOwnProperty('utag') ? global[\"utag\"] : false;\r\n switch (dataType) {\r\n case 'data':\r\n // @ts-ignore\r\n if('utag' in window) { utag.data = {...utag.data, ...productConfig}; }\r\n break;\r\n case '_data':\r\n // @ts-ignore\r\n utag_data = {...utag_data , ...productConfig};\r\n break;\r\n default:\r\n null;\r\n }\r\n } catch (e) {\r\n console.log('Utag Error', e);\r\n }\r\n};","import MsDyn365, { IActionContext } from '@msdyn365-commerce/core';\r\nimport {IProductDetails,IProductBonusItems, IProductBonusWithBrandName } from '../modules/mfrm-cart/mfrm-cart';\r\nimport {IMFIBonusItemsResponse, IMFIGetBonusCouponsDetailsResponse} from '../actions/BonusItemDataServiceEntities.g';\r\nimport { SimpleProduct, CartLine } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { setCookie } from '../common/cookies/cookie-utils';\r\nimport { LocalStorageKeys, MFRMProductTypes } from './enum';\r\nimport { getByIdAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\nimport { IMfrmAddress } from '../modules/mfrm-checkout-shipping-address';\r\nimport { ICoreProductsCartData } from '../themes/mattressfirm/views/checkout.view';\r\n\r\nexport interface IMFRMDateGroupedProducts {\r\n dateStr: string;\r\n days?: string;\r\n productVariantRecordIds: number[];\r\n productItemIds: string[];\r\n productsType: string;\r\n}\r\n\r\nexport interface IExpressFlow {\r\n paymentEdit: boolean\r\n}\r\n\r\nexport interface ICartProductPrice {\r\n variantRecordId?: number;\r\n price?: number;\r\n}\r\n\r\n/** interface for parcel inventory details */\r\nexport interface IParcelInventoryDetails {\r\n itemId: string | undefined;\r\n location: string | undefined;\r\n productId: string | undefined;\r\n quantity: string | undefined;\r\n}\r\nexport interface ICartIconData {\r\n iconUrl?: string;\r\n altText?: string;\r\n ariaLabel?: string;\r\n}\r\nexport interface IEyeBrowIcon {\r\n iconName?: string;\r\n iconURL?: string;\r\n}\r\n\r\nconst getSetLocalStorage = (key: string, getSet: string, valueToSet?: any, returnType?: any) => {\r\n // The type of the value to return (must be added).\r\n if (MsDyn365.isBrowser) {\r\n switch (getSet) {\r\n case 'set':\r\n return localStorage.setItem(key, JSON.stringify(valueToSet || returnType));\r\n case 'get':\r\n const storedValue = localStorage.getItem(key);\r\n try {\r\n return storedValue ? JSON.parse(storedValue) : (returnType ?? \"\");\r\n } catch {\r\n // JSON.parse will throw an error If it's stored as string; return string value in that case\r\n return storedValue;\r\n }\r\n case 'remove':\r\n return localStorage.removeItem(key);\r\n default:\r\n return returnType;\r\n }\r\n } else {\r\n return returnType;\r\n }\r\n};\r\n\r\nexport const getSetProductData = (getSet: string, products?: IProductDetails[]) => {\r\n products?.length && products.length > 0 && setCoreProductCookie(products); // Set cookie if it has core products\r\n return getSetLocalStorage('product_details', getSet, products, []);\r\n};\r\n\r\n// Following function sets cookie to check if cart has core item; Cookie is needed to access it on server side for skeleton on checkout\r\nconst setCoreProductCookie = (products: IProductDetails[]) => {\r\n for (const psp of products) {\r\n if (psp.typeOfProduct.toLowerCase().trim() === MFRMProductTypes.core) {\r\n setCookie('has-core-product', true);\r\n return;\r\n }\r\n }\r\n setCookie('has-core-product', false);\r\n};\r\n\r\nexport const getSetProductSpec = (getSet: string, products?: IProductDetails[]) => {\r\n return getSetLocalStorage('product_specification', getSet, products, []);\r\n};\r\n\r\nexport const getSetPromoCodeApplyList = (getSet: string) => {\r\n return getSetLocalStorage('promo_code_apply_list', getSet, [], []);\r\n};\r\n\r\nexport const getSetPromoCode = (getSet: string) => {\r\n return getSetLocalStorage('promoCode', getSet, [], []);\r\n};\r\n\r\nexport const getSetGrandTotal = (getSet: string, total?: string) => {\r\n return getSetLocalStorage('grand_total', getSet, total, 0);\r\n};\r\n\r\nexport const getSetBonusItemProd = (getSet: string, globalBonusItems?: IMFIBonusItemsResponse[])=>{\r\n return getSetLocalStorage('BonusItemProduct', getSet, globalBonusItems, []);\r\n};\r\n\r\nexport const getSetSelectedBonusItem = (getSet: string, bonusItemArray?: IProductBonusItems[]) => {\r\n return getSetLocalStorage('selectedBonasItems', getSet, bonusItemArray, []);\r\n};\r\n\r\nexport const getSetBonusCouponDetail = (getSet: string, getCoupons?: IMFIGetBonusCouponsDetailsResponse[])=>{\r\n return getSetLocalStorage('bonusCouponsDetail', getSet, getCoupons, []);\r\n};\r\n\r\nexport const getSetPrevBonasModalState = (getSet: string, previousBonasModal?: IProductBonusItems[]) => {\r\n return getSetLocalStorage('previousBonasModalState', getSet, previousBonasModal, []);\r\n};\r\n\r\nexport const getSetBonusItemBrandName = (getSet: string, bonusItemsBrandName?: IProductBonusWithBrandName[]) => {\r\n return getSetLocalStorage('bonusItmesWithBrand', getSet, bonusItemsBrandName, []);\r\n};\r\n\r\nexport const getSetDateGroupedProducts = (getSet: string, products?: IMFRMDateGroupedProducts[]) => {\r\n return getSetLocalStorage('date_grouped_products', getSet, products, []);\r\n};\r\n\r\nexport const getSetExpressFlow = (getSet: string, express?: IExpressFlow) => {\r\n return getSetLocalStorage('express_flow', getSet, express, []);\r\n};\r\nexport const getSetWmapCartLines = (getSet: string, products?: { product: SimpleProduct; count: number }[]) => {\r\n return getSetLocalStorage('wmapCartLines', getSet, products, []);\r\n};\r\n\r\nexport const getSetCartProductPrice = (getSet: string, priceDetails?: ICartProductPrice[]) => {\r\n return getSetLocalStorage('cart_product_price', getSet, priceDetails, []);\r\n};\r\n\r\nexport const getSetParcelInventoryData = (getSet: string, details?: IParcelInventoryDetails[]) => {\r\n return getSetLocalStorage('parcel_inventory_details', getSet, details, []);\r\n};\r\n\r\nexport const getSetDropshipLatestDeliveryMsg = (getSet: string, msg?: string) => {\r\n return getSetLocalStorage(LocalStorageKeys.DropshipLatestDeliveryMsg, getSet, msg, '');\r\n};\r\n\r\nexport const getSetParcelLatestDeliveryMsg = (getSet: string, msg?: string) => {\r\n return getSetLocalStorage(LocalStorageKeys.ParcelLatestDeliveryMsg, getSet, msg, '');\r\n};\r\n\r\nexport const getSetCustomerPhone = (getSet: string, phone?: string) => {\r\n return getSetLocalStorage(LocalStorageKeys.CustomerPhone, getSet, phone, '');\r\n};\r\n\r\nexport const getSetSelectedDeliveryService = (getSet: string, phone?: string) => {\r\n return getSetLocalStorage(LocalStorageKeys.SelectedDeliveryService, getSet, phone, '');\r\n};\r\n\r\nexport const getSetCustomerBillingSameDelivery = (getSet: string, isSame?: string) => {\r\n return getSetLocalStorage(LocalStorageKeys.CustomerBillingSameDelivery, getSet, isSame, '');\r\n};\r\n\r\nexport const getSetRecycleFee = (getSet: string, fee?: string) => {\r\n return getSetLocalStorage(LocalStorageKeys.RecycleFee, getSet, fee, '');\r\n};\r\n\r\nexport const getSetSelectedDeliverySlot = (getSet: string, slot?: string) => {\r\n return getSetLocalStorage('selected_delivery_slot ', getSet, slot, '');\r\n};\r\n\r\nexport const getSetSelectedDeliveryDate = (getSet: string, date?: Date) => {\r\n return getSetLocalStorage('selected_delivery_date', getSet, date, '');\r\n};\r\nexport const getSetCoreProductDeliveryMsg = (getSet: string, msg?: string) => {\r\n return getSetLocalStorage('coreprod_deliverymsg', getSet, msg, '');\r\n};\r\n\r\nexport const getSetDefaultDeliverySelected = (getSet: string, selected?: boolean) => {\r\n return getSetLocalStorage('default_delivery_selected', getSet, selected, '');\r\n};\r\n\r\nexport const getSetTimeSlot = (getSet: string, selected?: string) => {\r\n return getSetLocalStorage('time_slot', getSet, selected, '');\r\n};\r\n\r\nexport const getSetDaySlot = (getSet: string, selected?: string) => {\r\n return getSetLocalStorage('day_slot', getSet, selected, '');\r\n};\r\n\r\nexport const getSetServiceName = (getSet: string, selected?: string) => {\r\n return getSetLocalStorage('service_name', getSet, selected, '');\r\n};\r\n\r\nexport const getSetSelectedServicePrice = (getSet: string, selected?: number) => {\r\n return getSetLocalStorage('selected_service_price', getSet, selected, 0);\r\n};\r\n\r\nexport const getSetCoreShippingMsg = (getSet: string, selected?: string) => {\r\n return getSetLocalStorage('core_shipping_msg', getSet, selected, '');\r\n};\r\n\r\nexport const getSetEcomMonthlyAmount = (getSet: string, selected?: number) => {\r\n return getSetLocalStorage('ecom_monthly_amount', getSet, selected, '');\r\n};\r\n\r\nexport const getSetExpressType = (getSet: string, value?: string) => {\r\n return getSetLocalStorage('express-type', getSet, value, ''); /* Selected express payment method name; Also used in sales header attributes */\r\n};\r\n\r\nexport const getSetApplepayCheckoutError = (getSet: string, value?: string) => {\r\n return getSetLocalStorage('applepay-checkout-error', getSet, value, ''); /* It indicates that retrieveCardPayment/checkout API for applepay is failed on the Cart/Checkout page, It displays error above the shipping address */\r\n};\r\n\r\nexport const getSetApplepayError = (getSet: string, value?: string) => {\r\n return getSetLocalStorage('applepay-error', getSet, value, ''); /* It indicates that retrieveCardPayment API for applepay is failed on the Cart page, It displays error above the shipping address */\r\n};\r\n\r\nexport const getSetApplepayIFrameError = (getSet: string, value?: string) => {\r\n return getSetLocalStorage('applepay-iframe-error', getSet, value, ''); /* It indicates that applepay iframe has an error and if its true; applepay button will not be shown and also stop showing loader for applepay */\r\n};\r\n\r\nexport const getSetGetCardApplepayPass = (getSet: string, value?: string) => {\r\n return getSetLocalStorage('getcardapplepay-pass', getSet, value, ''); /* It indicates that getCardPaymentAcceptPoint() API gives success for applepay; If it's true, 'applepay-iframe-error' will be checked after that */\r\n};\r\n\r\nexport const getSetGetCardApplepayFail = (getSet: string, value?: string) => {\r\n return getSetLocalStorage('getcardapplepay-fail', getSet, value, ''); /* It indicates that getCardPaymentAcceptPoint() API is failed for applepay; If it's true => 1. 'applepay-iframe-error' will be checked after that; 2. it'll display error on the respective page cart/checkout */\r\n};\r\n\r\nexport const getSetLoadExpress = (getSet: string, value?: string) => {\r\n return getSetLocalStorage('loadExpress', getSet, value, ''); /* Avoid display loader on checkout page in case of express checkout */\r\n};\r\n\r\nexport const getSetPaypalCheckoutError = (getSet: string, value?: string) => {\r\n return getSetLocalStorage('paypal-checkout-error', getSet, value, ''); /* It indicates that retrieveCardPayment/checkout API for paypal is failed on the Cart/Checkout page, It displays error above the shipping address */\r\n};\r\n\r\nexport const getSetPaypalError = (getSet: string, value?: string) => {\r\n return getSetLocalStorage('paypal-error', getSet, value, ''); /* It indicates that retrieveCardPayment API for paypal is failed on the Cart page, It displays error above the shipping address */\r\n};\r\n\r\nexport const getSetPaypalIFrameError = (getSet: string, value?: string) => {\r\n return getSetLocalStorage('paypal-iframe-error', getSet, value, ''); /* It indicates that paypal iframe has an error and if its true; paypal button will not be shown and also stop showing loader for paypal */\r\n};\r\n\r\nexport const getSetGetCardExpressPass = (getSet: string, value?: string) => {\r\n return getSetLocalStorage('getcardexpress-pass', getSet, value, ''); /* It indicates that getCardPaymentAcceptPoint() API gives success for paypal; If it's true, 'paypal-iframe-error' will be checked after that */\r\n};\r\n\r\nexport const getSetGetCardExpressFail = (getSet: string, value?: string) => {\r\n return getSetLocalStorage('getcardexpress-fail', getSet, value, ''); /* It indicates that getCardPaymentAcceptPoint() API is failed for paypal; If it's true => 1. 'paypal-iframe-error' will be checked after that; 2. it'll display error on the respective page cart/checkout */\r\n};\r\n\r\nexport const getSetExpressAddress = (getSet: string, value?: IMfrmAddress) => {\r\n return getSetLocalStorage('express-address', getSet, value, []); /* Address from express address is saved. If user updates it by clicking on edit customer info, updated address will be saved in it. But if user re-authenticate, it will reset the old address and will save the new one */\r\n};\r\n\r\nexport const getSetExpressPageLoad = (getSet: string, value?: string) => {\r\n return getSetLocalStorage('express_page_load', getSet, value, ''); /* It checks if express checkout page is reloaded */\r\n};\r\n\r\nexport const getSetThankyou = (getSet: string, value?: any) => {\r\n return getSetLocalStorage('thankyou_payment_details', getSet, value, '');\r\n};\r\n\r\nexport const getSetEcomFinanceOption = (getSet: string, value?: string) => {\r\n return getSetLocalStorage('Ecom_FinanceOption', getSet, value, '');\r\n};\r\n\r\nexport const getSetEcomFinancePlanId = (getSet: string, value?: string) => {\r\n return getSetLocalStorage('Ecom_FinancePlanId', getSet, value, '');\r\n};\r\n\r\nexport const getSetCoreProdMsg = (getSet: string, value?: string) => {\r\n return getSetLocalStorage('payment_review_latest_core_prod_msg', getSet, value, '');\r\n};\r\n\r\nexport const getSetBillingAddress = (getSet: string, value?: any) => {\r\n return getSetLocalStorage('billing_address', getSet, value, {});\r\n};\r\n\r\nexport const getSetPaymentLoader = (getSet: string, value?: string) => {\r\n return getSetLocalStorage('paymentloader', getSet, value, '');\r\n};\r\n\r\nexport const getSetLastPaymentConnector = (getSet: string, value?: string) => {\r\n return getSetLocalStorage('lastPaymentConnector', getSet, value, '');\r\n};\r\n\r\nexport const getSetPaymentRadioName = (getSet: string, value?: string) => {\r\n return getSetLocalStorage('payment_radio_name', getSet, value, '');\r\n};\r\n\r\nexport const getSetPaymentRadioIndex = (getSet: string, value?: string) => {\r\n return getSetLocalStorage('payment_radio_index', getSet, value, '');\r\n};\r\n\r\nexport const getSetSelectedPaymentRadio = (getSet: string, value?: string) => {\r\n return getSetLocalStorage('selectedPaymentRadio', getSet, value, '');\r\n};\r\n\r\nexport const getSetPaymentInfoForOCPage = (getSet: string, value?: any) => {\r\n return getSetLocalStorage('temp_card_payment_info_for_order_confirmation', getSet, value, '');\r\n};\r\n\r\nexport const getSetCurrentStep = (getSet: string, value?: number) => {\r\n return getSetLocalStorage('current_step', getSet, value, 0);\r\n};\r\n\r\nexport const getSetCheckoutCurrentStep = (getSet: string, value?: number) => {\r\n return getSetLocalStorage('checkout_current_step', getSet, value, 0);\r\n};\r\n\r\nexport const getSetCartCoreProductInfo = (getSet: string, value?: ICoreProductsCartData[]) => {\r\n return getSetLocalStorage('cart_core_prods_info', getSet, value, []);\r\n};\r\n\r\nexport const getSetUpdatedEmail = (getSet: string, value?: string) => {\r\n return getSetLocalStorage('updated_email ', getSet, value, '');\r\n};\r\n\r\nexport const getSetSelectedDeliverySlotZone = (getSet: string, zone?: string) => {\r\n return getSetLocalStorage('selected_delivery_slot_zone ', getSet, zone, '');\r\n};\r\n\r\nconst processCartLine = async (cartLine: CartLine, actionContext: IActionContext, channelId: number) => {\r\n try {\r\n const productResponse = await getByIdAsync(\r\n {callerContext: actionContext, queryResultSettings: {Paging: {Top: 1}}},\r\n cartLine.ProductId || 0,\r\n channelId\r\n );\r\n\r\n if (productResponse?.DefaultUnitOfMeasure) {\r\n // Adding unit of measure for order confirmation emails to get Ecom_variantId attribute\r\n cartLine.UnitOfMeasureSymbol = productResponse.DefaultUnitOfMeasure;\r\n return cartLine;\r\n } else {\r\n // Handle the case where DefaultUnitOfMeasure is not available\r\n return cartLine;\r\n }\r\n } catch (error) {\r\n // Handle errors if getByIdAsync fails for a specific productId\r\n console.error(`Error processing ProductId ${cartLine.ProductId}: ${error.message}`);\r\n return cartLine;\r\n }\r\n};\r\n\r\nexport const addUnitOfMeasureInAddCartLine = async (cartLines: CartLine[], actionContext: IActionContext, channelId: number) => {\r\n const promises = cartLines\r\n .filter((cartLine: any) => !cartLine.DefaultUnitOfMeasure)\r\n .map((cartLine: any) => processCartLine(cartLine, actionContext, channelId));\r\n\r\n try {\r\n return await Promise.all(promises);\r\n } catch (error) {\r\n // Handle errors if any of the promises fail\r\n console.error(`Error processing cartLines: ${error}`);\r\n return cartLines;\r\n }\r\n};","import { IMFIATPInventoryDynamicEntity, IMFIATPInventoryEntity, IMFIATPInventoryStatusEntity, IMFICartLine } from '../actions/CoreProductDataServiceEntities.g';\r\nimport { IProductDetails } from '../modules/mfrm-cart/mfrm-cart';\r\nimport { getSetParcelInventoryData, getSetProductData, IParcelInventoryDetails, getSetCartProductPrice, ICartProductPrice, getSetCheckoutCurrentStep, getSetPaymentRadioName, getSetExpressType, getSetSelectedDeliverySlotZone, getSetTimeSlot } from './cart-utils';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport MsDyn365, { IActionContext, IAny, ICoreContext, IGeneric, RichText } from '@msdyn365-commerce/core';\r\nimport { Address, AttributeValue, CartLine, CategoryPathResult, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\nimport { atpInventoryDoRetry, cartOperationDoRetry, getInventoryQuantityInternal, updateCartLineInternal } from './doRetryCallBack';\r\nimport Cookies from 'universal-cookie';\r\nimport mfiAtpInventoryAction, { MfiAtpInventoryInput } from '../data-actions/mfi-atp-inventory.action';\r\nimport dayjs from 'dayjs';\r\nimport { ICheckoutViewProps } from '../themes/mattressfirm/views/checkout.view';\r\nimport { IProductWithAttribute } from '../data-actions/get-product-attributes-cartlines';\r\nimport { parseBrandName } from './get-product-brand';\r\nimport { IBrandListData } from '../modules/mfrm-buybox/mfrm-buybox.view';\r\nimport { urlFallBackImage } from './fallbackImageUrl';\r\nimport { GetCategoryPathsInput, getProductsCategoryPathsAction } from '../actions/get-mfrm-products-category-paths.action';\r\nimport _getInventoryQuantity from './get-inventory-quantity';\r\nimport { eventFullStoryPriceMismatch } from './analytics/fullStoryTrack';\r\nimport { IUsaEpayErrorMessage } from '../themes/mattressfirm/custom-components/mfrm-guided-card';\r\nimport { getDeliveryService } from './getDeliveryService';\r\nimport { getModOfDelivery } from './getDeliveryMod';\r\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport { set } from 'mobx';\r\nimport { IMfrmAddress, IShippingAddress } from '../modules/mfrm-checkout-shipping-address';\r\nimport { GetRecycleFeeCheckoutInput } from '../actions/get-recycle-fee-checkout.action';\r\nimport { DeliveryModes, MFRMProductTypes, coreItemShippingType } from './enum';\r\nimport { IErrorCaseForDeliveryDate } from '../modules/mfrm-checkout-delivery-options';\r\nimport { getDeliveryMessageForProduct } from '../modules/mfrm-checkout-delivery-options/utils/mfrm-delivery-option-utils';\r\nimport { CheckoutSkeletonInput } from '../data-actions/checkout-skeleton.action';\r\nimport { IMfrmCheckoutShippingAddressData } from '../modules/mfrm-checkout-shipping-address';\r\nimport { IMfrmCheckoutDeliveryOptionsData } from '../modules/mfrm-checkout-delivery-options';\r\nimport { IBasketCookie, getSetBasketCookie } from '../modules/mfrm-cart/utils/cart-utils';\r\nimport { IDeliveryProps } from '../modules/mfrm-cart/mfrm-cart.view';\r\nimport { getCookie } from '../common/cookies/cookie-utils';\r\nimport { ProgressiveDeleteTransactionAction, ProgressiveDeleteTransactionInput } from '../actions/progressive-actions/progressive-delete-transaction.action';\r\nimport { callUtagLink } from './analytics/utagCaller';\r\nimport { LineLevelAttributeName } from '../common/salesorder-attributes/attributes';\r\n\r\nexport interface IUpdatedCartDetails {\r\n cartState: ICartState;\r\n updatedCartLines: CartLine[] | undefined\r\n}\r\nexport interface IDetailsCategoryWithDetails {\r\n productsCategories: CategoryPathResult[],\r\n newProductDetails: IProductDetails[],\r\n}\r\nexport interface IAtpSlotsDetails {\r\n selectedSlotNotExist?: boolean;\r\n isNotAvailable?: boolean;\r\n isbackOrdered?: boolean;\r\n}\r\n\r\nexport interface IProgressivePaymentInfo {\r\n InitialPayment?: number;\r\n TotalTax?: number;\r\n LeaseToOwnCost?: number;\r\n Term?: string;\r\n TotalMonthLeaseToOwnCost?: number;\r\n}\r\n\r\nexport const _isAllSmallParcel = (): boolean => {\r\n let isAllParcel = true;\r\n const productspecificationsDetails: IProductDetails[] = getSetProductData('get');\r\n const { core, dropShip } = MFRMProductTypes;\r\n\r\n productspecificationsDetails?.forEach(product => {\r\n const productType = product.typeOfProduct?.toLowerCase();\r\n if (productType === core || productType === dropShip) {\r\n isAllParcel = false;\r\n }\r\n });\r\n return isAllParcel;\r\n};\r\n\r\nexport const validateZipCode = (zipcode?: string | undefined) => {\r\n return zipcode && /^\\d{5}$/.test(zipcode) && zipcode !== '00000';\r\n};\r\n\r\nexport const _isExpressFlow = (context: ICoreContext>) => {\r\n const currentUrl = MsDyn365.isBrowser && window.location.pathname?.substring(1);\r\n const applepayExpressUrl: string = context.app.config.expressApplePayCheckouturl || 'applepay-express';\r\n const paypalExpressUrl: string = context.app.expressCheckouturl || 'paypal-express';\r\n return paypalExpressUrl === currentUrl || applepayExpressUrl === currentUrl ? true : false;\r\n};\r\n\r\nexport const _isAllNonCoreItems = (): boolean => {\r\n let isAllParcel = true;\r\n const productspecificationsDetails: IProductDetails[] = getSetProductData('get');\r\n\r\n productspecificationsDetails?.forEach(product => {\r\n const productType = product.typeOfProduct?.toLowerCase();\r\n if (productType === MFRMProductTypes.core) {\r\n isAllParcel = false;\r\n }\r\n });\r\n return isAllParcel;\r\n};\r\n\r\n// Update CartLines on Saving customer info with new location OR If customer saved shipping info or there is an error on checkout redirecting to payment step again, call updateCartlines to add warehouse details for tax calculation\r\n// datePicker indicates if this function is called on changing date manually by User\r\nexport const _updateCartLinesWithWarehouseId = async (\r\n actionContext: IActionContext,\r\n checkoutCartState: ICartState,\r\n dynamicInventoryData: IMFIATPInventoryDynamicEntity[],\r\n selectedTimeSlot: string,\r\n dropShipDefaultWarehouseId: string,\r\n datePicker?: boolean,\r\n _getUpdatedCart?: boolean // To updateAttribute in cartlines, there is already UpdateCartLines api call so we'll just get UpdatedCart from here to use it in payload to update attribute and warehouse ID simultaneously\r\n): Promise => {\r\n const cartState = checkoutCartState;\r\n const currentCartLines = cartState?.cart.CartLines;\r\n const { core, smallParcel, dropShip } = MFRMProductTypes;\r\n // Get warehouseId for CORE from selected slot data\r\n\r\n let selectedAtpSlot: IMFIATPInventoryEntity | undefined;\r\n if (dynamicInventoryData && dynamicInventoryData.length > 0) {\r\n selectedAtpSlot = dynamicInventoryData[0].ATPSlots?.find(atpSlot => {\r\n const startAndEndTimeOfSlot = `${atpSlot.StartTime} - ${atpSlot.EndTime}`;\r\n return selectedTimeSlot === startAndEndTimeOfSlot?.toLowerCase()?.trim();\r\n });\r\n }\r\n const coreProductWarehouseId = selectedAtpSlot?.Location1 || '';\r\n\r\n const productspecificationsDetails: IProductDetails[] = getSetProductData('get');\r\n\r\n // Case datePicker: Check if new date slot has same locationId, dont callUpdateCartLines\r\n let isSameWareHouseForCore = false;\r\n let isSameWareHouseForParcel = false;\r\n const updatedCartLines = currentCartLines?.map(cartLine => {\r\n // Set warehouse ID for DropShip products\r\n const cartLineProductSpesifications = productspecificationsDetails.find(product => product.ItemId === cartLine.ItemId && product.VariantRecordId === cartLine.ProductId);\r\n const typeOfProduct = cartLineProductSpesifications?.typeOfProduct?.toLowerCase() || '';\r\n\r\n const smallParcelWarehouseId = cartLineProductSpesifications?.InventLocationId || '';\r\n\r\n if (typeOfProduct === dropShip && !datePicker) {\r\n if (!cartLine.WarehouseId) {\r\n cartLine.FulfillmentStoreId = dropShipDefaultWarehouseId;\r\n cartLine.WarehouseId = dropShipDefaultWarehouseId;\r\n }\r\n } else if (typeOfProduct === core|| !typeOfProduct) {\r\n if (datePicker && !isSameWareHouseForCore && cartLine.WarehouseId === coreProductWarehouseId) {\r\n isSameWareHouseForCore = true;\r\n } else {\r\n cartLine.FulfillmentStoreId = coreProductWarehouseId;\r\n cartLine.WarehouseId = coreProductWarehouseId;\r\n }\r\n } else if (typeOfProduct === smallParcel) {\r\n if (datePicker && !isSameWareHouseForParcel && cartLine.WarehouseId === smallParcelWarehouseId) {\r\n isSameWareHouseForParcel = true;\r\n }\r\n cartLine.FulfillmentStoreId = smallParcelWarehouseId;\r\n cartLine.WarehouseId = smallParcelWarehouseId;\r\n }\r\n // Set warehouse ID for Core products\r\n return cartLine;\r\n });\r\n\r\n if (_getUpdatedCart) {\r\n return {\r\n cartState: cartState,\r\n updatedCartLines: updatedCartLines\r\n };\r\n\r\n } else {\r\n if (!isSameWareHouseForCore || !isSameWareHouseForParcel) {\r\n await cartOperationDoRetry(() => updateCartLineInternal(cartState?.cart, updatedCartLines ? updatedCartLines : [], actionContext, 'update ware house ID'), cartState).then(() => {\r\n });\r\n }\r\n return undefined;\r\n }\r\n};\r\n\r\n/**\r\n * VSI Customization - check small parcel out of stock and get the exact location for fedx-ground/small parcel.\r\n * ticket - 95174 Start.\r\n*/\r\nexport const checkSmallParcelOutOfStock = async (zipCode: string, detailsProduct: IProductDetails[], cartLines: CartLine[] | undefined, context: ICoreContext>): Promise => {\r\n const date = new Date();\r\n const currentDate = date.setDate(date.getDate());\r\n const tempProducts: { ItemId: string; Quantity: number; VariantRecordId: string }[] = [];\r\n cartLines?.forEach((item: CartLine) => {\r\n const parcelDetails = detailsProduct?.find((prod) => item.ProductId === prod.VariantRecordId);\r\n if (parcelDetails?.typeOfProduct?.toLowerCase() === MFRMProductTypes.smallParcel && !parcelDetails?.outOfStockSmallParcel) {\r\n tempProducts.push({\r\n ItemId: item.ItemId ? item.ItemId : parcelDetails.ItemId,\r\n Quantity: item.Quantity!,\r\n VariantRecordId: item?.ProductId?.toString()!\r\n });\r\n }\r\n });\r\n if (tempProducts?.length) {\r\n const requestBody = {\r\n InventoryType: DeliveryModes.core,\r\n StoreId: '',\r\n Weeks: context.app && context.app.config.weeksPDPforATPCall,\r\n RequestedDate: dayjs(currentDate).format('MM/DD/YYYY'),\r\n ZipCode: zipCode, // '77047',\r\n ItemLines: tempProducts,\r\n NoOfPriorityDC: context.app.config.NoOfPriorityDC ? context.app.config.NoOfPriorityDC : 0\r\n };\r\n const resultData = await atpInventoryDoRetry(() => getInventoryQuantityInternal(requestBody, context, false, 'delivery module for set invent location'));\r\n const parcelInventoryData: IParcelInventoryDetails[] = [];\r\n resultData?.result?.ATPInventoryStatusData?.forEach((items: IMFIATPInventoryStatusEntity) => {\r\n // redirect to cart when any item location is null\r\n if (!items.Location) {\r\n window.location.href = `${window.location.origin}/cart`;\r\n }\r\n const inventoryDetails = { itemId: items.ItemId, location: items.Location, productId: items.VariantRecordId, quantity: items.Quantity };\r\n parcelInventoryData.push(inventoryDetails);\r\n });\r\n getSetParcelInventoryData('set', parcelInventoryData);\r\n return resultData?.result?.ATPInventoryStatusData;\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\n/**\r\n * VSI Customization - On submit order check selected Delivery slot is available or not API call.\r\n * ticket - 85300 Start.\r\n*/\r\nexport const _checkATPSlotsAvailable = async (props: ICheckoutViewProps): Promise => {\r\n const { app: config, context } = props;\r\n const itemLinesArray: IMFICartLine[] = [];\r\n const cookies = new Cookies();\r\n const zipcode = cookies.get('zip_code');\r\n const productSpecification = getSetProductData('get');\r\n let selectedSlotNotExist = true;\r\n let isNotAvailable = true;\r\n if (productSpecification && productSpecification.length > 0) {\r\n productSpecification.map((product: IProductDetails) => {\r\n if (product.typeOfProduct?.toLowerCase().trim() === MFRMProductTypes.core) {\r\n const itemLines: IMFICartLine = {\r\n ItemId: product.ItemId,\r\n Quantity: product.Quantity,\r\n VariantRecordId: product.VariantRecordId.toString()\r\n };\r\n itemLinesArray.push(itemLines);\r\n }\r\n });\r\n const selectedATPDate = props.data.selectedATPSlotInfo.result?.selectedATPSlotInfo?.Date;\r\n\r\n const date = new Date();\r\n let currentDate = date.setDate(date.getDate());\r\n const currHour = date.getHours();\r\n if (currHour >= 14) {\r\n currentDate = date.setDate(date.getDate() + 1);\r\n }\r\n const requestBody = {\r\n inventoryType: DeliveryModes.core,\r\n weeks: config.config.weeksPDPforATPCall,\r\n storeId: '',\r\n page: 'pdp',\r\n requestedDate: dayjs(currentDate).format('MM/DD/YYYY'),\r\n zipCode: zipcode,\r\n itemLines: itemLinesArray\r\n };\r\n\r\n try {\r\n const mfiInventoryInput = new MfiAtpInventoryInput(\r\n requestBody.inventoryType,\r\n requestBody.weeks,\r\n requestBody.storeId,\r\n requestBody.page,\r\n requestBody.requestedDate,\r\n requestBody.zipCode,\r\n requestBody.itemLines\r\n );\r\n const ATPSlots = await mfiAtpInventoryAction(mfiInventoryInput, context.actionContext);\r\n if (ATPSlots && ATPSlots.ATPInventoryDynamicData && ATPSlots.ATPInventoryDynamicData.length > 0) {\r\n ATPSlots.ATPInventoryDynamicData.map((singleDate: IMFIATPInventoryDynamicEntity) => {\r\n if (singleDate.AvailableSlots === 'YES') {\r\n isNotAvailable = false;\r\n if (selectedATPDate && singleDate.Date?.includes(selectedATPDate)) {\r\n selectedSlotNotExist = false;\r\n }\r\n }\r\n });\r\n }\r\n } catch (error) {\r\n // @ts-ignore\r\n props.telemetry.warning(error);\r\n props.telemetry.debug('Unable to mFIATPInventoryDynamicAsync for slots');\r\n }\r\n return { selectedSlotNotExist, isNotAvailable };\r\n } else {\r\n return { selectedSlotNotExist, isNotAvailable };\r\n }\r\n};\r\n\r\n/** * VSI Customization - Call Full story custom event for check price mismatch details.\r\n * ticket - 95129 End. */\r\ntype PriceCheck = (cartPrice?: number, productPrice?: number) => boolean;\r\nconst priceCheck: PriceCheck = (cartPrice, productPrice) => {\r\n return Math.abs((cartPrice || 0) - (productPrice || 0)) >= 0.01;\r\n};\r\n\r\nexport const priceMismatchFSEvent = (cartLinesData: CartLine[] | undefined) => {\r\n const getCartProductPriceArray = getSetCartProductPrice('get');\r\n const missingTradeIds: number[] = [];\r\n cartLinesData?.forEach((line) => {\r\n const getAgreementLines = line.PriceLines?.find((item) => item['@odata.type'].includes('TradeAgreementPriceLine'));\r\n if (!getAgreementLines) {\r\n missingTradeIds.push(line.ProductId!);\r\n }\r\n });\r\n const getDiffernce = getCartProductPriceArray?.filter((details: ICartProductPrice) => cartLinesData?.some(itemProduct => details.variantRecordId === itemProduct.ProductId && priceCheck(details.price, itemProduct.Price))\r\n );\r\n if (getDiffernce.length > 0 || missingTradeIds.length > 0) {\r\n void eventFullStoryPriceMismatch('order_health price_mismatch_details', 'on click checkout', getDiffernce, cartLinesData, missingTradeIds);\r\n }\r\n};\r\n\r\nexport function logTrace(cartId: string | undefined, line: number, input: any, inputSource?: string) {\r\n console.trace();\r\n try {\r\n throw new Error('Function _addDefaultDays');\r\n } catch (error) {\r\n // @ts-ignore\r\n window.DD_LOGS?.logger.info(`Line:${line}, cartId:${cartId}`, {\r\n // @ts-ignore\r\n stack: error.stack,\r\n cartId: cartId,\r\n input,\r\n inputSource\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * VSI Customization - On submit order check selected Delivery slot is available or not API call.\r\n * ticket - 85300 End.\r\n*/\r\nexport const _addDefaultDays = (days: number, cartId?: string) => {\r\n logTrace(cartId, 336, days, \"Fun: _addDefaultDays before\");\r\n const date = new Date();\r\n const deliveryDate = date.setDate(date.getDate());\r\n let deliveryDateFormatted = '';\r\n deliveryDateFormatted = dayjs(deliveryDate).format('YYYY-MM-DDTHH:mm:ss');\r\n let newDate;\r\n while (days > 0) {\r\n newDate = date.setDate(date.getDate() + 1);\r\n if (dayjs(newDate).format('d') !== '0' && dayjs(newDate).format('d') !== '6') {\r\n days--;\r\n }\r\n }\r\n logTrace(cartId, 348, newDate, \"Fun _addDefaultDays after\");\r\n deliveryDateFormatted = dayjs(newDate).format('YYYY-MM-DDTHH:mm:ss');\r\n return deliveryDateFormatted;\r\n};\r\n\r\n/**\r\n * VSI Customization - create attribute with pre-define objects values.\r\n*/\r\nexport const AttributeCreate = (ecomName: string, value: string | undefined, cartId?: string) => {\r\n if(ecomName === LineLevelAttributeName.DeliveryDate){\r\n logTrace(cartId, 358, value, \"Fun: AttributeCreate\");\r\n }\r\n // Ensure TextValue is always a string or an empty string\r\n const textValue = value !== undefined ? String(value) : '';\r\n const preDefine = {\r\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeTextValue',\r\n Name: '',\r\n ExtensionProperties: [],\r\n TextValue: '',\r\n TextValueTranslations: []\r\n };\r\n const source = { Name: ecomName, TextValue: textValue };\r\n const returnedObject = Object.assign(preDefine, source);\r\n return returnedObject;\r\n};\r\n\r\n/**\r\n * VSI Customization - get product attribute.\r\n*/\r\nexport const getCheckoutAttributeByName = (attributeValues: AttributeValue[] | undefined, keyValue: string): AttributeValue | undefined => {\r\n return attributeValues && attributeValues.find(currAttribute => currAttribute.Name && currAttribute.Name?.toLowerCase()?.trim() === keyValue?.toLowerCase()?.trim());\r\n};\r\n\r\n\r\n/**\r\n * VSI Customization - get product brand lead time.\r\n*/\r\nexport const getBrandLeadTime = (brandList: IBrandListData[], brandName: string | undefined) => {\r\n return brandList && brandName && brandList?.find(list => list.brandName === brandName)?.brandLeadtime;\r\n};\r\n\r\n\r\n/**\r\n * VSI Customization - send Lead ime Or Brand lead time then get the delivery date and request delivery date.\r\n*/\r\nexport const generateDeliveryDate = (leadTimeVal: string, brandLeadTime: string) => {\r\n const timeValue = leadTimeVal || brandLeadTime;\r\n let date = new Date();\r\n const daysSpan = timeValue?.split('-');\r\n let deliveryByMessage = '';\r\n let deliveryByMessageRange: string = '';\r\n const currentYear = dayjs().year();\r\n const deliveryDate = date.setDate(date.getDate());\r\n daysSpan?.map((item: string, index: number) => {\r\n if (parseInt(item, 10) > 0) {\r\n let numberOfDays = parseInt(item, 10);\r\n let newDate = deliveryDate;\r\n date = new Date();\r\n while (numberOfDays > 0) {\r\n newDate = date.setDate(date.getDate() + 1);\r\n if (dayjs(newDate).format('d') !== '0' && dayjs(newDate).format('d') !== '6') {\r\n numberOfDays--;\r\n }\r\n }\r\n deliveryByMessage = dayjs(newDate).format('MMM D');\r\n if (deliveryByMessageRange !== '') {\r\n deliveryByMessageRange = `${deliveryByMessageRange} - ${deliveryByMessage}`;\r\n } else {\r\n deliveryByMessageRange = deliveryByMessage;\r\n newDate = date.setDate(date.getDate() - parseInt(item[0], 10));\r\n }\r\n } else {\r\n let singleDays = parseInt(timeValue, 10);\r\n let newDate = deliveryDate;\r\n let flag = true;\r\n while (singleDays > 0) {\r\n newDate = date.setDate(date.getDate() + 1);\r\n if (dayjs(newDate).format('d') !== '0' && dayjs(newDate).format('d') !== '6') {\r\n singleDays--;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n deliveryByMessage = flag && timeValue === '1' ? `${dayjs(date.setDate(date.getDate())).format('MMM D')}` : dayjs(newDate).format('ddd, MMM D');\r\n }\r\n });\r\n deliveryByMessage = deliveryByMessageRange;\r\n const findDate = deliveryByMessage?.split('-');\r\n if (findDate?.length > 1) {\r\n const getDate = dayjs(`${findDate[1]} ${currentYear}`).format('MM/DD/YYYY');\r\n const fullDate = `${getDate} 12:00:00 AM`;\r\n const formatDeliveryDate = dayjs(fullDate).format('YYYY-MM-DDTHH:mm:ss');\r\n return { fullDate, formatDeliveryDate };\r\n } else {\r\n const getDate = dayjs(`${date[0]} ${currentYear}`).format('MM/DD/YYYY');\r\n const fullDate = `${getDate} 12:00:00 AM`;\r\n const formatDeliveryDate = dayjs(fullDate).format('YYYY-MM-DDTHH:mm:ss');\r\n return { fullDate, formatDeliveryDate };\r\n }\r\n};\r\n\r\n/**\r\n * VSI Customization - send the product and get variant type.\r\n*/\r\nconst getVariant = (product: SimpleProduct | undefined) => {\r\n if (!product) {\r\n return '';\r\n }\r\n let dimensionValueCustom = '';\r\n product.Dimensions?.map((item, index) => {\r\n if (item.DimensionValue?.Value !== 'Prime') {\r\n if (index === 0) {\r\n dimensionValueCustom += item.DimensionValue?.Value!;\r\n }\r\n else {\r\n dimensionValueCustom += ' , ' + `${item.DimensionValue?.Value!}`;\r\n }\r\n }\r\n });\r\n return dimensionValueCustom;\r\n};\r\n\r\n/**\r\n * VSI Customization - get product details with updated categories values which using for revenue categories.\r\n*/\r\nexport const getProductsCategoryPath = async (\r\n context: ICoreContext>,\r\n products: SimpleProduct[] | undefined,\r\n productDetailsData: IProductDetails[]\r\n): Promise => {\r\n const {\r\n request: {\r\n apiSettings: { catalogId }\r\n },\r\n app: {\r\n config: { revenueCategory, otherRevenueDetail, categoryNameBoxSprings, categoryNameAdjustableBase }\r\n }\r\n } = context;\r\n const getProductIdArray: number[] = [];\r\n products?.forEach((items: SimpleProduct) => getProductIdArray.push(items.RecordId));\r\n const productsCategories = await getProductsCategoryPathsAction(\r\n new GetCategoryPathsInput(context.request, catalogId, getProductIdArray),\r\n context.actionContext\r\n );\r\n const revenueCategoryConfig = revenueCategory;\r\n const newProductDetails = productDetailsData?.map(item => {\r\n // Find the category information for the current item\r\n const checkCategory = productsCategories?.find(data => data?.ProductId === item?.VariantRecordId);\r\n const getSegments = checkCategory?.CategoryPath || [];\r\n\r\n // Combine main and supplementary categories to check\r\n const categoriesToCheck = [\r\n ...revenueCategoryConfig,\r\n { CategoryName: categoryNameAdjustableBase },\r\n { CategoryName: categoryNameBoxSprings }\r\n ];\r\n\r\n // Find the first matching category in the available segments\r\n const foundCategory = categoriesToCheck?.find(categoryItem =>\r\n getSegments?.some(category => category?.Segments?.some(segment => segment?.CategoryName === categoryItem?.CategoryName))\r\n );\r\n\r\n item.revenueCategory = foundCategory ? foundCategory?.Name : otherRevenueDetail;\r\n // If no match found, set categoryName to the last segment's CategoryName\r\n item.categoryName = foundCategory && foundCategory.CategoryName;\r\n\r\n return item;\r\n });\r\n\r\n return { productsCategories, newProductDetails };\r\n};\r\n\r\n/**\r\n * VSI Customization - create product detaisl with attribute data.\r\n * use this utility to get product details and speicfication from local storage\r\n * this will be called on cart and checkout both. So, updated values will be stored\r\n*/\r\nexport const getProuductDetailsHandler = (\r\n context: ICoreContext>,\r\n cartLine: CartLine,\r\n attribute: IProductWithAttribute | undefined,\r\n products: SimpleProduct[] | undefined\r\n) => {\r\n const {\r\n actionContext,\r\n app: {\r\n config: { brandList, outOfStockProductKey, leadTime, brandBackofficeAttributePdp, placeholderImageName, collection, productType }\r\n }\r\n } = context;\r\n const productTypeInformation = getCheckoutAttributeByName(attribute?.attributeValue, 'shippingInformation')?.TextValue || '';\r\n const getProduct = products?.find(prod => prod.RecordId === cartLine.ProductId);\r\n const typeOfProduct = productTypeInformation?.toLowerCase()?.trim() === coreItemShippingType ? MFRMProductTypes.core : productTypeInformation;\r\n const brandName = parseBrandName(attribute?.attributeValue, brandBackofficeAttributePdp, attribute?.productId) || '';\r\n const VariantRecordId = attribute?.productId!;\r\n const categoryName = attribute?.categoryName;\r\n const name = attribute?.Name || '';\r\n const ItemId = cartLine.ItemId || '';\r\n const Quantity = cartLine.Quantity!;\r\n const outOfStock = getCheckoutAttributeByName(attribute?.attributeValue, outOfStockProductKey)?.TextValue ? true : false;\r\n const leadTimeVal = getCheckoutAttributeByName(attribute?.attributeValue, leadTime)?.TextValue || '';\r\n const brandLeadTime = getBrandLeadTime(brandList, brandName) || '';\r\n const getDeliveryDateDetails = generateDeliveryDate(leadTimeVal, brandLeadTime);\r\n const brandAndProductName = brandName ? `${brandName} ${name}` : name;\r\n const productCollection = getCheckoutAttributeByName(attribute?.attributeValue, collection)?.TextValue || '';\r\n // product type attribute from getAttributeValues and storing in product details and specification\r\n const productTypeAttribute = getCheckoutAttributeByName(attribute?.attributeValue, productType)?.TextValue || '';\r\n const variantType = `${getVariant(getProduct)\r\n ?.toString()\r\n ?.replace(/,/g, '')}`;\r\n const imageFallBackUrl = urlFallBackImage(String(placeholderImageName), cartLine.ItemId, actionContext.requestContext) || '';\r\n const imagePrimary: string = attribute?.PrimaryImageUrl !== undefined ? attribute?.PrimaryImageUrl : '';\r\n const MasterProductId = getProduct?.MasterProductId;\r\n const sharedValues = {\r\n typeOfProduct,\r\n outOfStock,\r\n Quantity,\r\n ItemId,\r\n VariantRecordId,\r\n zipCodeError: false,\r\n leadTimeVal,\r\n brandLeadTime,\r\n collection: productCollection,\r\n outOfStockSmallParcel: false,\r\n variantType,\r\n quantityMessage: false,\r\n brandName,\r\n name: brandAndProductName,\r\n productTypeAttribute,\r\n primaryImageUrl: imagePrimary,\r\n fallbackImageUrl: imageFallBackUrl\r\n };\r\n const productDetailsData = {\r\n ...sharedValues,\r\n brandAndProductName,\r\n categoryName,\r\n DeliveryDate: getDeliveryDateDetails?.formatDeliveryDate,\r\n RequestedDeliveryDate: getDeliveryDateDetails?.fullDate\r\n };\r\n const productSepcification = {\r\n ...sharedValues,\r\n ProducName: name,\r\n MasterProductId\r\n };\r\n const getDetailsProducts = { productDetailsData, productSepcification };\r\n return getDetailsProducts;\r\n};\r\n/**\r\n * VSI Customization - to extract params from URL\r\n*/\r\nexport const urlParam = (name: string) => {\r\n // eslint-disable-next-line security/detect-non-literal-regexp\r\n const results = new RegExp(`[\\?&]${name}=([^&#]*)`).exec(window.location.href);\r\n return results?.[1] || 0;\r\n};\r\n\r\n// get USaEpay error details to show fallback error message on checkout\r\nexport const getUsaEpayErrorDetails = (errorCode: string, usaEpayErrorMessages: IUsaEpayErrorMessage[]) => {\r\n return usaEpayErrorMessages?.find((item: IUsaEpayErrorMessage) => item?.errorCode?.includes(errorCode?.trim()) && !item?.exclude) || usaEpayErrorMessages?.find((item: IUsaEpayErrorMessage) => item?.markAsDefault && !item?.exclude);\r\n};\r\n\r\n// Following function is used in all checkout module to verify delivery service against each cartline\r\nexport const verifyDeliverService = (productId: number, context: ICoreContext<{ [x: string]: any; }>): string => {\r\n const servicesFromConfigurations = context.request.app.config.deliveryServices;\r\n const getArrayDeliveryService = getDeliveryService(servicesFromConfigurations);\r\n const get = getArrayDeliveryService.find((item) => item === productId);\r\n if (get) {\r\n return \"Delivery\";\r\n } else {\r\n return '';\r\n }\r\n};\r\n\r\n/**\r\n * VSI Customization - wrapper for update the exact delivery mode in cart object key.\r\n */\r\nexport const _addDeliveryMode = async (cartLinesData: CartLine[], productAttributes: IProductWithAttribute[], context: ICoreContext<{ [x: string]: any; }>): Promise => {\r\n const {\r\n app: {\r\n config: {\r\n deliveryMessageManagementValues\r\n }\r\n }\r\n } = context;\r\n const generaCartLines: CartLine[] = [];\r\n await Promise.all(cartLinesData.map(async (elem: CartLine) => {\r\n try {\r\n const attributesList = productAttributes?.find((items) => items.productId === elem.ProductId)?.attributeValue;\r\n const getMode = attributesList?.find((attribute) => attribute.Name === 'shippingInformation')?.TextValue;\r\n elem.DeliveryMode = getMode ? getModOfDelivery(getMode, deliveryMessageManagementValues) : verifyDeliverService(elem.ProductId!, context);\r\n // and response need to be added into final response array\r\n generaCartLines.push(elem);\r\n } catch (error) {\r\n console.log(`error${error}`);\r\n }\r\n }));\r\n return generaCartLines; // return without waiting for process of\r\n};\r\n/**\r\n * Checkout Page Overlay Modal.\r\n */\r\nexport interface ICheckoutPageOverlayModal {\r\n modal: INodeProps;\r\n}\r\n// utility to be used with financing offers on checkout to show end date\r\nexport const extractMonthAndDate = (dateString: string | undefined): string | undefined => {\r\n if (!dateString) {\r\n return undefined;\r\n }\r\n // match the date string against a regular expression to extract the month and date\r\n const match = dateString.match(/(\\d{1,2})\\/(\\d{1,2})\\/(\\d{2,4})/);\r\n if (!match) {\r\n return undefined;\r\n }\r\n const month = match[1].padStart(2, '0');\r\n const date = match[2].padStart(2, '0');\r\n return `${month}/${date}`;\r\n};\r\n\r\n// utility to set address on checkout\r\nexport const setAddress = (addUpdateAddress: IMfrmAddress, email?: string, firstName?: string, lastName?: string, emailMeCheckbox?: boolean, phone?: string, address?: string, apt?: string) => {\r\n set(addUpdateAddress, {\r\n Email: email ?? '',\r\n FirstName: firstName ?? '',\r\n LastName: lastName ?? '',\r\n EmailMeCheckbox: emailMeCheckbox ?? false,\r\n Phone: phone,\r\n Address: address,\r\n APT: apt\r\n });\r\n};\r\n\r\n// Following function updates tax on checkout page by updating state action GetRecycleFeeCheckoutInput; This function is called everytime after UpdateCartLine API call\r\nexport const _updateCheckoutTax = async (\r\n context: ICoreContext<{\r\n [x: string]: any;\r\n }>,\r\n cartState: ICartState\r\n) => {\r\n const {\r\n app: { config }\r\n } = context;\r\n const { RecycleFeeAttribute } = config;\r\n const recycleFeeAttributeValue = RecycleFeeAttribute?.trim().toLowerCase();\r\n const extentionArray = cartState.cart.ExtensionProperties;\r\n const fee = extentionArray?.find((item) => item.Key?.trim().toLowerCase() === recycleFeeAttributeValue)?.Value?.DecimalValue!;\r\n context.actionContext.update(new GetRecycleFeeCheckoutInput(), { recycleFee: Number(fee), tax: Number(cartState.cart?.TaxAmount) });\r\n};\r\n\r\n\r\n/**\r\n * VSI Customization - create delivery service re-useable attribute.\r\n*/\r\nexport const getServiceItemsAttributes = (isWillCall: boolean , willCallDeliveryDate: string , InventLocation: string | undefined) => {\r\n const AttributesArray = [];\r\n const ecomDeliverySetDate = willCallDeliveryDate?.slice(0, -6);\r\n const dayjsEcomDateDelivery = dayjs(ecomDeliverySetDate).format('YYYY-MM-DDTHH:mm:ss');\r\n const deliveryDateError: IErrorCaseForDeliveryDate = {\r\n case: 'ATP Slots Found && selected TimeSLot length ===0 && Product is a service id',\r\n line: 706,\r\n value: dayjsEcomDateDelivery\r\n };\r\n const deliveryDateErrorWillCall: IErrorCaseForDeliveryDate = {\r\n case: 'Slots found and else part and is a service product',\r\n line: 711,\r\n value: dayjsEcomDateDelivery\r\n };\r\n const ecomDeliveryDate = AttributeCreate(\r\n 'Ecom_DeliveryDate',\r\n dayjsEcomDateDelivery ? dayjsEcomDateDelivery : JSON.stringify(deliveryDateError)\r\n );\r\n const ecomDeliveryDatewillCall = AttributeCreate(\r\n 'Ecom_DeliveryDate',\r\n dayjsEcomDateDelivery ? dayjsEcomDateDelivery : JSON.stringify(deliveryDateErrorWillCall)\r\n );\r\n const ecomDSDeliveryScheduleStatus = AttributeCreate('Ecom_DSDeliveryScheduleStatus' , 'Open');\r\n const ecomInventLocationId = AttributeCreate( 'Ecom_InventLocationId', InventLocation);\r\n if(isWillCall) {\r\n AttributesArray.push(ecomDeliveryDatewillCall, ecomDSDeliveryScheduleStatus, ecomInventLocationId);\r\n } else {\r\n AttributesArray.push(ecomDeliveryDate, ecomDSDeliveryScheduleStatus, ecomInventLocationId);\r\n }\r\n return AttributesArray;\r\n};\r\n\r\n/**\r\n * VSI Customization - create core re-useable attribute.\r\n*/\r\nexport const getCoreProductAttributes = (isWillCall: boolean, willCallDeliveryDate: string , InventLocation: string | undefined) => {\r\n // core items attributes\r\n const AttributesArray = [];\r\n const ecomDeliverySetDate = willCallDeliveryDate?.slice(0, -6);\r\n const dayjsEcomDateDelivery = dayjs(ecomDeliverySetDate).format('YYYY-MM-DDTHH:mm:ss');\r\n const deliveryDateError: IErrorCaseForDeliveryDate = {\r\n case: 'ATP Slots Found && selected time slot selectedTimeSlot length = 0 && Delivery Item in a will call case',\r\n line: 742,\r\n value: dayjsEcomDateDelivery\r\n };\r\n const ecomDeliveryDate = AttributeCreate(\r\n 'Ecom_DeliveryDate',\r\n dayjsEcomDateDelivery ? dayjsEcomDateDelivery : JSON.stringify(deliveryDateError)\r\n );\r\n const deliveryDateErrorWillCall: IErrorCaseForDeliveryDate = {\r\n case: 'Slots found and else part and is a Core product',\r\n line: 751,\r\n value: dayjsEcomDateDelivery\r\n };\r\n const ecomDeliveryDateWillCall = AttributeCreate(\r\n 'Ecom_DeliveryDate',\r\n dayjsEcomDateDelivery ? dayjsEcomDateDelivery : JSON.stringify(deliveryDateErrorWillCall)\r\n );\r\n const ecomDSDeliveryScheduleStatus = AttributeCreate('Ecom_DSDeliveryScheduleStatus' , 'Open');\r\n const ecomInventLocationId = AttributeCreate( 'Ecom_InventLocationId', InventLocation);\r\n if(isWillCall) {\r\n AttributesArray.push(ecomDeliveryDateWillCall, ecomDSDeliveryScheduleStatus, ecomInventLocationId);\r\n } else {\r\n AttributesArray.push(ecomDeliveryDate, ecomDSDeliveryScheduleStatus, ecomInventLocationId);\r\n }\r\n return AttributesArray;\r\n};\r\n\r\n/**\r\n * VSI Customization - create parcel re-useable attribute.\r\n*/\r\nexport const getParcelProductAttributes = (productDetails: IProductDetails, isWillCall: boolean, deliveryMsg: { shippingInformation: string; MOD: string; }[] | undefined, daysParcel: number | undefined ) => {\r\n // parcel items attributes\r\n const AttributesArray = [];\r\n const defaultDaysParcel = daysParcel && daysParcel > 0 && _addDefaultDays(daysParcel);\r\n const getModDelivery = getModOfDelivery('Parcel', deliveryMsg!);\r\n const ecomDeliveryServiceMode = AttributeCreate('Ecom_DeliveryService', getModDelivery);\r\n const deliveryDateError: IErrorCaseForDeliveryDate = {\r\n case: 'ATP Slots Found && selected time slot length =0 && Parcel Item',\r\n line: 779,\r\n value: productDetails?.DeliveryDate\r\n };\r\n const ecomDeliveryDate = AttributeCreate(\r\n 'Ecom_DeliveryDate',\r\n productDetails?.DeliveryDate\r\n ? productDetails?.DeliveryDate\r\n : defaultDaysParcel\r\n ? defaultDaysParcel\r\n : JSON.stringify(deliveryDateError)\r\n );\r\n const deliveryDateErrorWillCall: IErrorCaseForDeliveryDate = {\r\n case: 'Slots found and else part and is a parcel product',\r\n line: 792,\r\n value: productDetails?.DeliveryDate\r\n };\r\n const ecomDeliveryDateWillCall = AttributeCreate(\r\n 'Ecom_DeliveryDate',\r\n productDetails?.DeliveryDate\r\n ? productDetails?.DeliveryDate\r\n : defaultDaysParcel\r\n ? defaultDaysParcel\r\n : JSON.stringify(deliveryDateErrorWillCall)\r\n );\r\n if(isWillCall) {\r\n AttributesArray.push(ecomDeliveryServiceMode, ecomDeliveryDateWillCall );\r\n } else {\r\n AttributesArray.push(ecomDeliveryServiceMode, ecomDeliveryDate );\r\n }\r\n\r\n return AttributesArray;\r\n};\r\n\r\n\r\n/**\r\n * VSI Customization - create drop ship re-useable attribute.\r\n*/\r\n export const getDropShipProductAttributes = (productDetails: IProductDetails, isWillCall: boolean, deliveryMsg: { shippingInformation: string; MOD: string; }[] | undefined, daysDropShip: string | undefined ) => {\r\n // drop ship items attributes\r\n const AttributesArray = [];\r\n const getModDelivery = getModOfDelivery(MFRMProductTypes.dropShip, deliveryMsg!);\r\n const ecomDeliveryServiceMode = AttributeCreate('Ecom_DeliveryService', getModDelivery);\r\n const deliveryDateError: IErrorCaseForDeliveryDate = {\r\n case: 'ATP Slots Found && selected time slot && length = 0 && Drop Ship Item',\r\n line: 823,\r\n value: productDetails?.DeliveryDate\r\n };\r\n const deliveryDateErrorWillCall: IErrorCaseForDeliveryDate = {\r\n case: 'Slots found and else part and is a dropship product',\r\n line: 828,\r\n value: productDetails?.DeliveryDate\r\n };\r\n const ecomDeliveryDate = AttributeCreate(\r\n 'Ecom_DeliveryDate',\r\n productDetails?.DeliveryDate\r\n ? productDetails?.DeliveryDate\r\n : daysDropShip\r\n ? daysDropShip\r\n : JSON.stringify(deliveryDateError)\r\n );\r\n const ecomDeliveryDateWillCall = AttributeCreate(\r\n 'Ecom_DeliveryDate',\r\n productDetails?.DeliveryDate\r\n ? productDetails?.DeliveryDate\r\n : daysDropShip\r\n ? daysDropShip\r\n : JSON.stringify(deliveryDateErrorWillCall)\r\n );\r\n const ecomDSShippingMessage = AttributeCreate(\r\n 'Ecom_ShippingMessage',\r\n `Arrives ${getDeliveryMessageForProduct(productDetails?.VariantRecordId)}`\r\n );\r\n if(isWillCall) {\r\n AttributesArray.push(\r\n ecomDeliveryServiceMode,\r\n ecomDSShippingMessage,\r\n ecomDeliveryDateWillCall\r\n );\r\n } else {\r\n AttributesArray.push(\r\n ecomDeliveryServiceMode,\r\n ecomDSShippingMessage,\r\n ecomDeliveryDate\r\n );\r\n }\r\n return AttributesArray;\r\n };\r\n// Following function detects if browser is Safari or not\r\nexport const isSafari = (): boolean => {\r\n return !!(navigator.vendor && navigator.vendor.indexOf('Apple') > -1);\r\n};\r\n\r\n// express skeleton check\r\nexport const handleExpressSkeletonCheck = (actionContext: IActionContext, data: IMfrmCheckoutShippingAddressData | IMfrmCheckoutDeliveryOptionsData) => {\r\n actionContext.update(new CheckoutSkeletonInput(), {\r\n showPaymentSkeleton: data.showSkeleton.result?.showPaymentSkeleton,\r\n expressSkeleton: data.showSkeleton.result?.expressSkeleton,\r\n expressPhoneNotavailable: data.showSkeleton.result?.expressPhoneNotavailable,\r\n expressLoaderRunning: false,\r\n showDeliverySkeleton: data.showSkeleton.result?.showDeliverySkeleton,\r\n showCustomerInfoSkeleton: data.showSkeleton.result?.showCustomerInfoSkeleton\r\n });\r\n};\r\n\r\nexport const hasCoreProduct = (products?: IProductDetails[]) => {\r\n const productSpecificationsCookieData = products ? products : getSetProductData('get');\r\n if (productSpecificationsCookieData && productSpecificationsCookieData.length) {\r\n for (const psp of productSpecificationsCookieData) {\r\n if (psp.typeOfProduct.toLowerCase().trim() === MFRMProductTypes.core) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n};\r\n\r\n// When checkout data action's value is not available e.g. in another data action (getCardPaymentAcceptPoint); check if this is express checkout using url like following\r\nexport const isExpressCheckout = (actionContext: IActionContext) => {\r\n const { requestContext: { url, app: { config: { expressApplePayCheckouturl, expressCheckouturl } } } } = actionContext;\r\n const checkoutURl = url.requestUrl.pathname?.split('/')[1]?.toLowerCase()?.trim();\r\n // Check if it's express checkout page\r\n return !!(checkoutURl === expressApplePayCheckouturl || checkoutURl === expressCheckouturl);\r\n};\r\n\r\n// Check if it's cart page or express checkout page to avoid unnecassary API calls on normal checkout flow\r\nexport const isExpressPage = (actionContext: IActionContext) => {\r\n const { requestContext: { url, app: { config: { expressApplePayCheckouturl, expressCheckouturl } } } } = actionContext;\r\n const pageURL = url.requestUrl.pathname?.split('/')[1]?.toLowerCase()?.trim();\r\n // Check if it's express checkout page or cart page\r\n return !!(pageURL === expressApplePayCheckouturl || pageURL === expressCheckouturl || pageURL === 'cart');\r\n};\r\n\r\n/**\r\n * Retrieves and constructs a shipping address based on cookies and shipping info data.\r\n */\r\nexport const getAddressFromCookies = (context: ICoreContext, zipCodeValue?: string): IShippingAddress => {\r\n const cookies = new Cookies();\r\n const extraInfo = cookies.get('shipping_extra_info');\r\n const bCookie: IBasketCookie = getSetBasketCookie('get', context);\r\n const zipCode = zipCodeValue || cookies.get('zip_code');\r\n const firstName = bCookie?.firstName || '';\r\n const lastName = bCookie?.lastName || '';\r\n const city = extraInfo?.city || '';\r\n const state = extraInfo?.state || '';\r\n const address1 = bCookie?.address1 || '';\r\n const address2 = bCookie?.address2 || '';\r\n const country = extraInfo?.ThreeLetterISORegionName || '';\r\n\r\n return {\r\n Name: `${firstName}##${lastName}`,\r\n AddressTypeValue: 6,\r\n City: city,\r\n State: state,\r\n Street: address2 ? `${address1}##${address2}` : address1,\r\n ZipCode: zipCode,\r\n ThreeLetterISORegionName: country\r\n };\r\n};\r\n\r\nexport const getProgressiveTotal = (\r\n cartState: ICartState | undefined,\r\n deliveryOptions: IDeliveryProps[],\r\n deliveryStates: string[]\r\n): number => {\r\n const getArrayDeliveryService = getDeliveryService(deliveryOptions);\r\n const selectedState = getCookie('cInfo_State') || '';\r\n if (!cartState) {\r\n return 0; // Handle the case where cartState is undefined.\r\n }\r\n const { cart } = cartState;\r\n const { ShippingAddress } = cart;\r\n const state = ShippingAddress?.State || selectedState;\r\n let filterCartLine: CartLine[] | undefined = cartState?.cart.CartLines;\r\n\r\n // Check if delivery fee is not allowed in the current state\r\n const checkNotAllowDeliveryFee = deliveryStates?.includes(state);\r\n\r\n // If not allowed, filter out CartLines that have specific ProductIds\r\n if (checkNotAllowDeliveryFee) {\r\n filterCartLine = filterCartLine?.filter((items) => {\r\n return !getArrayDeliveryService?.some((service) => service === items.ProductId);\r\n });\r\n }\r\n let netAmountTotal = 0;\r\n // Calculate netAmountTotal by iterating through the filtered CartLines\r\n filterCartLine?.forEach(item => {\r\n netAmountTotal += item.ExtendedPrice || 0;\r\n });\r\n return Number(netAmountTotal?.toFixed(2));\r\n};\r\n\r\n// Check if it's payment step or not\r\nexport const isPaymentStep = (context: ICoreContext<{ [x: string]: any; }>) => {\r\n // Read cookies from server for initial render to get current checkout step\r\n const contextCookies = context.request.cookies;\r\n const serverCookies = new Cookies(contextCookies);\r\n const hasCoreProduct = serverCookies.get('has-core-product');\r\n const checkoutCurrentStep = Number(getSetCheckoutCurrentStep('get'));\r\n return (hasCoreProduct === 'true' && checkoutCurrentStep === 2) || (hasCoreProduct === 'false' && checkoutCurrentStep === 1);\r\n};\r\n\r\nexport const deleteProgApplicationTransaction = async (progressiveLeaseId: string | undefined, ctx: IActionContext) => {\r\n const { progressiveTenderType, progressiveTransactionType } = ctx.requestContext.app.config;\r\n // Create the input for data-action\r\n const actionInput = {\r\n ApplicationId: Number(progressiveLeaseId),\r\n TenderType: progressiveTenderType,\r\n TransactionType: progressiveTransactionType\r\n };\r\n // Run and await the result of the data action to delete the transaction\r\n await ProgressiveDeleteTransactionAction(new ProgressiveDeleteTransactionInput(actionInput), ctx).then().catch();\r\n};\r\n\r\nexport const utagLinkProgressiveApply = () => {\r\n void callUtagLink({\r\n event: \"Payment-Progressive-Apply\",\r\n event_category: \"Financing\",\r\n event_action: \"Payment page Apply Now button click\",\r\n event_label:\"Progressive - Apply Now\",\r\n event_noninteraction: \"false\",\r\n event_type: \"lto_button\"\r\n });\r\n};\r\n\r\n/** Following function format the phone to (xxx) xxx-xxxx format as in API, it stores like xxx-xxx-xxxx */\r\nexport const _formatPhoneNumber = (phoneNumberString: string) => {\r\n const cleaned = ''.concat(phoneNumberString).replace(/\\D/g, '');\r\n const match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{4})$/);\r\n if (match) {\r\n return '('.concat(match[1]).concat(') ').concat(match[2]).concat('-').concat(match[3]);\r\n }\r\n return phoneNumberString;\r\n};\r\n\r\n/** Following function changes any phone string format (xxx) xxx-xxx to xxx-xxx-xxxx */\r\nexport const changePhoneFormatForAPI = (phone: string) => {\r\n return phone?.replace('(','').replace(')','').split((/[\\s-]+/)).join('-');\r\n};\r\n\r\n/** Following function changes phone format from xxx-xxx-xxxx to (xxx) xxx-xxx to be shown on confirmation page */\r\nexport const changePhoneFormatForDisplay = (phone: string) => {\r\n const phoneArray = phone.split('-');\r\n if (phoneArray.length && phoneArray.length === 3) {\r\n return `(${phoneArray[0]}) ${phoneArray[1]}-${phoneArray[2]}`;\r\n }\r\n return phone;\r\n};\r\n\r\n/** Following function changes any phone string format from given Address */\r\nexport const changeAddressPhoneFormatForAPI = (address: Address) => {\r\n const phone = address.Phone;\r\n if (phone) {\r\n const updatedPhone = phone && changePhoneFormatForAPI(phone); // Just updated phone format from (xxx) xxx-xxxx to xxx-xxx-xxxx\r\n address.Phone = updatedPhone;\r\n }\r\n return address;\r\n};\r\n\r\n/** Following function changes phone format from a given Address to be displayed on the checkout page */\r\nexport const changeAddressPhoneFormatForDisplay = (address: Address) => {\r\n const phone = address.Phone;\r\n if (phone) {\r\n const updatedPhone = phone && changePhoneFormatForDisplay(phone); // Just updated phone format from xxx-xxx-xxxx to (xxx) xxx-xxxx\r\n address.Phone = updatedPhone;\r\n }\r\n return address;\r\n};\r\n\r\n/** Following function return if it's an usaePay order i.e. credit card or applepay express order */\r\nexport const isUsaEpayOrder = (): boolean => {\r\n const selectedPaymentType = getSetPaymentRadioName('get')?.toLowerCase().trim();\r\n const isUSAePay = selectedPaymentType === 'credit card' || selectedPaymentType === 'applepay';\r\n const expressType = getSetExpressType('get')?.toLowerCase().trim();\r\n const isApplePayExpress = expressType === 'applepay';\r\n return isUSAePay || isApplePayExpress;\r\n};\r\n\r\nexport const removesSpecialCharacterFromString = (str: string) => {\r\n return str.replace(/[^a-zA-Z0-9 ]/g, '').replace(/\\s/g, '' );\r\n};\r\n\r\n// Function to filter slot object based on selection criteria\r\nexport const filterAtpSlots = (atplSlots: IMFIATPInventoryEntity[]) => {\r\n const getSelectedSlotZone = getSetSelectedDeliverySlotZone('get');\r\n const getTimeSlot = getSetTimeSlot('get');\r\n const [getStartTime, getEndTime] = getTimeSlot?.split(' - ');\r\n\r\n // Filter by Zone and Available\r\n let atpResult = atplSlots?.find(item => item?.Zone === getSelectedSlotZone && item?.Available === \"YES\");\r\n\r\n // If not found, filter by StartTime and EndTime\r\n if (!atpResult) {\r\n atpResult = atplSlots?.find(item => item?.Available === \"YES\" && item?.StartTime === getStartTime && item?.EndTime === getEndTime);\r\n }\r\n\r\n // If still not found, assign the first slot\r\n if (!atpResult) {\r\n atpResult = atplSlots[0];\r\n }\r\n\r\n return atpResult;\r\n};\r\n\r\n/**\r\n * Calculates the financing details for a given cart total and promotional period.\r\n *\r\n * @param {number} cartTotal - The total amount of the cart.\r\n * @param {number} promoMonths - The number of months for the promotional period.\r\n * @param {RichText | undefined} monthlyOfferMessage - The template message for the monthly offer.\r\n * @returns {Object} - An object containing the updated financing message and the monthly payment amount.\r\n */\r\nexport function calculateFinancing(cartTotal: number, promoMonths: number, monthlyOfferMessage: RichText | undefined) {\r\n // Ensure cartTotal is a number\r\n cartTotal = typeof cartTotal === 'number' ? cartTotal : parseFloat(cartTotal);\r\n\r\n // Calculate the promo fee rounded down to the nearest cent\r\n const promoFee = cartTotal * 0.02;\r\n let roundedPromoFee = Math.floor(promoFee * 100) / 100;\r\n\r\n // Ensure promoFee is a number\r\n const totalAmountFinanced = parseFloat((cartTotal + roundedPromoFee)?.toFixed(2));\r\n\r\n // Calculate the monthly payment, rounded up to the nearest whole number\r\n let monthlyPayment = Math.ceil(totalAmountFinanced / promoMonths);\r\n\r\n let financingMessage = monthlyOfferMessage;\r\n\r\n // Special case for 36-month promotional period\r\n if (promoMonths === 36) {\r\n const adjustedAmountFinanced = totalAmountFinanced - 3;\r\n const adjustedMonths = promoMonths - 3;\r\n monthlyPayment = Math.ceil(adjustedAmountFinanced / adjustedMonths);\r\n if (monthlyOfferMessage) {\r\n financingMessage = monthlyOfferMessage.replace('{financedAmount}', monthlyPayment.toString());\r\n }\r\n }\r\n\r\n return { financingMessage, monthlyPayment };\r\n}","export const variantQueryStringName = 'variantid';","import { IActionContext, IAny, ICoreContext, IGeneric } from '@msdyn365-commerce/core';\r\nimport { addCartLinesAsync, removeCartLinesAsync, updateCartLinesAsync, updateLineDeliverySpecificationsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\r\nimport { Cart, CartLine, LineDeliverySpecification } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { ICartActionResultWithCart, ICartState } from '@msdyn365-commerce/global-state';\r\nimport { IMFICLDeliveryScheduleParameters, IInventoryStatusResponse } from '../actions/CoreProductDataServiceEntities.g';\r\nimport getATPInventoryStatusAction, { GetATPInventoryStatusInput } from '../actions/get-sm-inventory-status.action';// import { IMFIATPInventoryResponse } from '../actions/CoreProductDataServiceEntities.g';\r\nimport { eventFullStoryAPISuccess, eventFullStoryFailAPI } from './analytics/fullStoryTrack';\r\nimport { addUnitOfMeasureInAddCartLine } from './cart-utils';\r\n\r\nexport const cartOperationDoRetry = async (callback: () => Promise, cartState: ICartState) => {\r\n let callbackResult = await callback();\r\n if (callbackResult.status === 'SUCCESS') {\r\n if (callbackResult) {\r\n await cartState.updateCart({ newCartObject: callbackResult.cart! }).then(null);\r\n }\r\n } else {\r\n callbackResult = await callback();\r\n if (callbackResult.status === 'SUCCESS') {\r\n if (callbackResult.cart) {\r\n void cartState.updateCart({ newCartObject: callbackResult.cart }).then(null);\r\n }\r\n }\r\n }\r\n return callbackResult?.cart;\r\n};\r\n\r\nexport const atpInventoryDoRetry = async (callback: () => Promise) => {\r\n let callbackResult = await callback();\r\n if (callbackResult.Message === 'SUCCESS') {\r\n return callbackResult;\r\n } else {\r\n callbackResult = await callback();\r\n if (callbackResult.Message === 'SUCCESS') {\r\n return callbackResult;\r\n }\r\n }\r\n return callbackResult;\r\n};\r\n\r\nexport const updateCartLineDeliverySpecificationsInternal = async (cart: Readonly, cartLineDeliverySpecifications: LineDeliverySpecification[], actionContext: IActionContext, pathName = \"\"): Promise => {\r\n if (!cart || !cart.CartLines || cartLineDeliverySpecifications.length === 0) {\r\n return { cart: undefined, status: 'FAILED', substatus: 'EMPTYCART' };\r\n }\r\n\r\n return updateLineDeliverySpecificationsAsync(\r\n { callerContext: actionContext },\r\n cart.Id,\r\n cartLineDeliverySpecifications\r\n )\r\n .then(newCart => {\r\n void eventFullStoryAPISuccess('order_health update_line_delivery_success', pathName);\r\n return { cart: newCart, status: 'SUCCESS' };\r\n }).catch(error => {\r\n void eventFullStoryFailAPI('order_health update_line_delivery_fail', pathName, {error});\r\n actionContext.telemetry.warning(error);\r\n actionContext.telemetry.debug('Unable to updateLineDeliverySpecificationsAsync');\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access -- existing error type.\r\n return { cart: undefined, status: 'FAILED', errorDetails: { LocalizedMessage: error.message } };\r\n });\r\n};\r\n\r\nexport const updateCartLineInternal = async (cart: Readonly, cartLineDeliverySpecifications: LineDeliverySpecification[], actionContext: IActionContext, pathName = \"\"): Promise => {\r\n if (!cart || !cart.CartLines || cartLineDeliverySpecifications.length === 0) {\r\n return { cart: undefined, status: 'FAILED', substatus: 'EMPTYCART' };\r\n }\r\n\r\n return updateCartLinesAsync(\r\n { callerContext: actionContext },\r\n cart.Id,\r\n cartLineDeliverySpecifications\r\n )\r\n .then(newCart => {\r\n void eventFullStoryAPISuccess('order_health update_cart_success', pathName);\r\n return { cart: newCart, status: 'SUCCESS' };\r\n }).catch(error => {\r\n void eventFullStoryFailAPI('order_health update_cart_fail', pathName, {error});\r\n actionContext.telemetry.warning(error);\r\n actionContext.telemetry.debug('Unable to updateLineDeliverySpecificationsAsync');\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access -- existing error type.\r\n return { cart: undefined, status: 'FAILED', errorDetails: { LocalizedMessage: error.message } };\r\n });\r\n};\r\n\r\nexport const addCartLineInternal = async (cart: Readonly, cartLineDeliverySpecifications: CartLine[], actionContext: IActionContext, channelId: number): Promise => {\r\n if (!cart || !cart.CartLines || cartLineDeliverySpecifications.length === 0) {\r\n return { cart: undefined, status: 'FAILED', substatus: 'EMPTYCART' };\r\n }\r\n\r\n return addCartLinesAsync(\r\n { callerContext: actionContext },\r\n cart.Id,\r\n await addUnitOfMeasureInAddCartLine(cartLineDeliverySpecifications, actionContext, channelId)\r\n )\r\n .then(newCart => {\r\n return { cart: newCart, status: 'SUCCESS' };\r\n }).catch(error => {\r\n actionContext.telemetry.warning(error);\r\n actionContext.telemetry.debug('Unable to updateLineDeliverySpecificationsAsync');\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access -- existing error type.\r\n return { cart: undefined, status: 'FAILED', errorDetails: { LocalizedMessage: error.message } };\r\n });\r\n};\r\n\r\nexport default async function removeCartLinesInternal(cart: Readonly, cartLineIds: string[], actionContext: IActionContext): Promise {\r\n if (!cart) {\r\n return { cart: undefined, status: 'FAILED', substatus: 'EMPTYCART' };\r\n }\r\n\r\n return removeCartLinesAsync({ callerContext: actionContext }, cart.Id, cartLineIds)\r\n .then(newCart => {\r\n // This is because of a TSProxy typing error\r\n const returnedCart = Array.isArray(newCart) ? newCart[0] : newCart;\r\n\r\n return { cart: returnedCart, status: 'SUCCESS' };\r\n })\r\n .catch(error => {\r\n actionContext.telemetry.warning(error);\r\n actionContext.telemetry.debug('Unable to Remove Cart Line');\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access -- existing error type.\r\n return { cart: undefined, status: 'FAILED', errorDetails: { LocalizedMessage: error.message } };\r\n });\r\n}\r\n\r\nexport const getInventoryQuantityInternal = async(request: IMFICLDeliveryScheduleParameters, context: ICoreContext>, isCached?: boolean, pathName = \"\"): Promise => {\r\n if (!request) {\r\n return { Message: 'FAILED' };\r\n }\r\n\r\n const getATPInventoryStatusInput = new GetATPInventoryStatusInput(request, isCached);\r\n return getATPInventoryStatusAction(getATPInventoryStatusInput, context.actionContext).then(result => {\r\n if (result === null || !result.ATPInventoryStatusData) {\r\n void eventFullStoryFailAPI('order_health get_inventory_status_fail', pathName, { error: { message: 'api given null' } });\r\n return { Message: 'FAILED' };\r\n }\r\n void eventFullStoryAPISuccess('order_health get_inventory_status_success', pathName);\r\n return { Message :'SUCCESS', result };\r\n })\r\n .catch(error => {\r\n void eventFullStoryFailAPI('order_health get_inventory_status_fail', pathName, {error});\r\n context.actionContext.telemetry.warning(error);\r\n context.actionContext.telemetry.debug('Unable to get ATP Inventory Status');\r\n\r\n return { Message: 'FAILED' };\r\n });\r\n};","/* MFRMProductTypes enum is used to check/compare the product type with product_details cookie\r\nby converting it to lower case used mainly in \"conditional statements\" */\r\nexport enum MFRMProductTypes {\r\n core = 'core',\r\n smallParcel = 'parcel',\r\n dropShip = 'drop ship'\r\n}\r\n\r\n// DeliveryModes enum is used to pass the modOfDelivery value in \"API payloads\"\r\nexport enum DeliveryModes {\r\n core = 'Delivery',\r\n smallParcel = 'Parcel',\r\n dropShip = 'Drop Ship'\r\n}\r\n\r\n// Enum for Delivery Date details messages show on cart page.\r\nexport enum DeliveryDateDetails {\r\n DeliveryToday = 'Delivery by Today',\r\n DeliveryTomorrow = 'Delivery by Tomorrow',\r\n DeliveryBy = 'Delivery by',\r\n AvailableYes = 'yes'\r\n}\r\n\r\n// coreItemShippingType constant value is used to compare the shipping type of core products\r\nexport const coreItemShippingType = 'delivery';\r\n\r\nexport enum EyeBrowMessage {\r\n BestSeller = \"Best Seller\",\r\n SleepExpertPick = \"Sleep Expert® Pick\",\r\n OnlyAtMattressFirm = \"Only at Mattress Firm\",\r\n SleepScoreValidated = \"Sleep score validated\",\r\n PLPRibbon = \"Best Seller\",\r\n}\r\n\r\nexport enum EyeBrowAttributeName {\r\n BestSeller = 'BestSeller',\r\n SE_Pick = 'SE_Pick',\r\n IsExclusive = 'IsExclusive',\r\n SleepScore = 'SleepScore',\r\n PLP_Ribbon = 'PLP_Ribbon',\r\n}\r\n// this text is sent to rating component on cart page (as it is used on cart page so sending cart module name)\r\nexport const cartModuleName = 'mfrm-cart';\r\n\r\n// Define an enum for local storage keys\r\nexport enum LocalStorageKeys {\r\n DropshipLatestDeliveryMsg = 'payment_review_dropship_latest_del_msg',\r\n ParcelLatestDeliveryMsg = 'payment_review_parcel_latest_del_msg',\r\n CustomerPhone = 'customer_phone',\r\n SelectedDeliveryService = 'selected_delivery_service',\r\n CustomerBillingSameDelivery = 'is_customer_billing_same_as_delivery',\r\n RecycleFee = 'recycleFee'\r\n}\r\n// this text is using for progressive value\r\nexport const progressiveName = 'Progressive';","import { IRequestContext } from '@msdyn365-commerce/core';\r\nimport { getFallbackImageUrl } from '../data-actions/utilities/utils';\r\n\r\nexport const urlFallBackImage = (imageUrl: string, itemId: string | undefined, apiSettings: IRequestContext) => {\r\n let fallbackImageUrl = getFallbackImageUrl(itemId, apiSettings?.apiSettings);\r\n if (imageUrl && fallbackImageUrl) {\r\n fallbackImageUrl = `${fallbackImageUrl},${imageUrl}`;\r\n }\r\n return fallbackImageUrl;\r\n};","import { IGridSettings, IImageSettings, Image } from '@msdyn365-commerce/core';\r\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy';\r\nimport React from 'react';\r\nimport { IBrandListData } from '../modules/mfrm-buybox/mfrm-buybox.view';\r\nimport { IProductBonusWithBrandName } from '../modules/mfrm-cart/mfrm-cart';\r\nimport {hasArray} from './emtpyChecker';\r\nimport MsDyn365 from '@msdyn365-commerce/core';\r\n\r\nconst fallBackBrandAttribute = 'VENDOR BRAND';\r\n\r\n// tslint:disable-next-line: cyclomatic-complexity\r\nexport const parseBrandData = (\r\n attributes: AttributeValue[] | undefined,\r\n backendAttribute: string,\r\n gridSettings: IGridSettings,\r\n renderBrandNameOnly: Boolean = false,\r\n brandList: IBrandListData[],\r\n imageSettings?: IImageSettings\r\n): JSX.Element | undefined => {\r\n const attribute = backendAttribute || fallBackBrandAttribute;\r\n const productBrandName =\r\n attributes &&\r\n attributes.find(currAttribute => currAttribute.Name && currAttribute.Name.toLowerCase().trim() === attribute.toLowerCase().trim())\r\n ?.TextValue;\r\n\r\n if (renderBrandNameOnly) {\r\n return {productBrandName};\r\n }\r\n\r\n const selectedBrand =\r\n (brandList &&\r\n productBrandName &&\r\n brandList.find(\r\n (brand: IBrandListData) => brand && brand.brandName.toLowerCase().trim() === productBrandName.toLowerCase().trim()\r\n )) ||\r\n undefined;\r\n\r\n if (!selectedBrand) {\r\n return undefined;\r\n }\r\n\r\n const copySelectedBrand: IBrandListData = selectedBrand;\r\n // set alt text to brand name if no alt text is configured\r\n if (copySelectedBrand && _useDefaultAltText(copySelectedBrand) && copySelectedBrand.brandLogo) {\r\n copySelectedBrand.brandLogo.altText = productBrandName;\r\n }\r\n\r\n // set height to configured value or the default\r\n const height = copySelectedBrand && copySelectedBrand.logoHeight !== undefined ? copySelectedBrand.logoHeight : 22;\r\n const brandImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: `w=0&h=25&m=6`, w: 0, h: 25 },\r\n lg: { q: `w=0&h=25&m=6`, w: 0, h: 25 },\r\n xl: { q: `w=0&h=25&m=6`, w: 0, h: 25 }\r\n },\r\n lazyload: false\r\n };\r\n\r\n const brandLogo = copySelectedBrand && copySelectedBrand.brandLogo && (\r\n \r\n );\r\n // place logo inside a link if configured to\r\n const brandLink =\r\n copySelectedBrand &&\r\n copySelectedBrand.brandLink &&\r\n copySelectedBrand.brandLink.linkUrl &&\r\n copySelectedBrand.brandLink.linkUrl.destinationUrl &&\r\n copySelectedBrand.brandLink;\r\n const linkElement = brandLink && (\r\n \r\n {brandLogo}\r\n \r\n );\r\n\r\n return linkElement || brandLogo;\r\n};\r\n// get only brandName\r\nexport const parseBrandName = (attributes: AttributeValue[] | undefined, backendAttribute: string, recordId?: number): string | undefined => {\r\n const attribute = backendAttribute || fallBackBrandAttribute;\r\n let productBrandName = hasArray(attributes)?.find((currAttribute: AttributeValue) => currAttribute?.Name?.toLowerCase().trim() === attribute?.toLowerCase().trim())?.TextValue;\r\n if (!productBrandName && MsDyn365.isBrowser) {\r\n const getLocalStorage = localStorage.getItem('bonusItmesWithBrand');\r\n let bonusItemArray: IProductBonusWithBrandName[] = [];\r\n if (getLocalStorage) {\r\n bonusItemArray = JSON.parse(getLocalStorage);\r\n }\r\n const checkBrandName = bonusItemArray.find(item => item.productId === recordId)?.brandName;\r\n if(checkBrandName) {\r\n productBrandName = checkBrandName;\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n return productBrandName;\r\n};\r\n\r\nexport const parseBrandNameUnbxd = (attributes: any | undefined, backendAttribute: string, recordId?: number): string | undefined => {\r\n const attribute = backendAttribute || fallBackBrandAttribute;\r\n // let productBrandName = hasArray(attributes)?.find((currAttribute: AttributeValue) => currAttribute?.Name?.toLowerCase().trim() === attribute?.toLowerCase().trim())?.TextValue;\r\n let productBrandName = attributes && attributes[attribute];\r\n if (!productBrandName && MsDyn365.isBrowser) {\r\n const getLocalStorage = localStorage.getItem('bonusItmesWithBrand');\r\n let bonusItemArray: IProductBonusWithBrandName[] = [];\r\n if (getLocalStorage) {\r\n bonusItemArray = JSON.parse(getLocalStorage);\r\n }\r\n const checkBrandName = bonusItemArray.find(item => item.productId === recordId)?.brandName;\r\n if(checkBrandName) {\r\n productBrandName = checkBrandName;\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n return productBrandName;\r\n};\r\n\r\n// get only brandName\r\nexport const getBrandNameCheck = (attributes: AttributeValue[] | undefined, backendAttribute: string): string | undefined => {\r\n const productBrandName =\r\n attributes &&\r\n attributes.find(\r\n currAttribute => currAttribute.Name && currAttribute.Name.toLowerCase().trim() === backendAttribute.toLowerCase().trim()\r\n )?.TextValue;\r\n if (!productBrandName) {\r\n return undefined;\r\n }\r\n return productBrandName;\r\n};\r\n\r\n// get the appropriate image alt text\r\nconst _useDefaultAltText = (selectedBrand: IBrandListData): boolean => {\r\n const configuredAltText = selectedBrand.brandLogo?.altText;\r\n return !(configuredAltText && configuredAltText.trim() && configuredAltText !== 'No Data Available');\r\n};\r\n","export const getModOfDelivery = (mod: string , list: { shippingInformation: string; MOD: string; }[]) => {\r\n let deliveryMod: string = \"\";\r\n list.forEach((items: { shippingInformation: string; MOD: string; }) => {\r\n if(items.shippingInformation?.trim()?.toLowerCase() === mod?.trim()?.toLowerCase()) {\r\n deliveryMod = items?.MOD;\r\n }\r\n });\r\n return deliveryMod;\r\n};\r\n","import { IDeliveryProps } from '../modules/mfrm-cart/mfrm-cart.view';\r\n\r\nexport interface IDeliveryServiceNames {\r\n serviceProductRecId: number;\r\n serviceName: string;\r\n willCallMessage: string;\r\n willCallTitle?: string;\r\n}\r\n\r\nexport const getDeliveryService = (deliveryServices: IDeliveryProps[]): number[] => {\r\n const newDeliveryServiceArray: number[] = [];\r\n deliveryServices?.forEach((item: IDeliveryProps) => {\r\n let serviceProductRecId = item.serviceProductRecId;\r\n newDeliveryServiceArray.push(serviceProductRecId);\r\n if(item?.childService) {\r\n item.childService.forEach((childItem) => {\r\n serviceProductRecId = childItem.productRectId!;\r\n newDeliveryServiceArray.push(serviceProductRecId);\r\n });\r\n }\r\n });\r\n\r\n return newDeliveryServiceArray;\r\n};\r\n\r\nexport const getDeliveryServiceWithName = (deliveryServices: IDeliveryProps[]): IDeliveryServiceNames[] => {\r\n const newDeliveryServiceArray: IDeliveryServiceNames[] = [];\r\n deliveryServices?.forEach((item: IDeliveryProps) => {\r\n let serviceProductRecId = {serviceProductRecId: item.serviceProductRecId , serviceName: item.serviceName , willCallMessage: item.willCallMessage, willCallTitle: item?.willCallTitle };\r\n newDeliveryServiceArray.push(serviceProductRecId);\r\n if(item?.childService) {\r\n item.childService.map((childItem) => {\r\n serviceProductRecId = {serviceProductRecId: childItem.productRectId! , serviceName: item.serviceName , willCallMessage: item.willCallMessage, willCallTitle: item?.willCallTitle };\r\n newDeliveryServiceArray.push(serviceProductRecId);\r\n });\r\n }\r\n });\r\n\r\n return newDeliveryServiceArray;\r\n};\r\n\r\nexport const getDeliveryServiceWithSKU = (deliveryServices: IDeliveryProps[]): { serviceProductRecId: number; serviceSku: string; addKeyInPrice: boolean }[] => {\r\n const newDeliveryServiceArray: { serviceProductRecId: number; serviceSku: string; addKeyInPrice: boolean }[] = [];\r\n deliveryServices?.forEach((item: IDeliveryProps) => {\r\n const serviceItems = {serviceProductRecId: item.serviceProductRecId , serviceSku: item.serviceSku , addKeyInPrice: item.addKeyInPrice!};\r\n newDeliveryServiceArray.push(serviceItems);\r\n if(item?.childService) {\r\n item.childService.map((childItem) => {\r\n const serviceItems = {serviceProductRecId: childItem.productRectId! , serviceSku: childItem.serviceSKU! , addKeyInPrice: childItem.addKeyInPrice};\r\n newDeliveryServiceArray.push(serviceItems);\r\n });\r\n }\r\n });\r\n\r\n return newDeliveryServiceArray;\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 Msdyn365 from '@msdyn365-commerce/core';\r\nimport { getZipCode } from '../Utilities/get-zipcode';\r\nimport dayjs from 'dayjs';\r\nimport { mFIATPInventoryPLPAsync } from './BatchCoreProductDataActionExtension.g';\r\nimport { IMFIATPInventoryPLPResponse, IMFICartLine, IMFIDeliveryScheduleParameters } from './BatchCoreProductDataServiceEntities.g';\r\n\r\n/**\r\n * FetchCoreDeliveryList Input Action\r\n */\r\nexport class FetchCoreDeliveryListInput implements Msdyn365.IActionInput {\r\n // Construct the input needed to run the action\r\n public cartLines: IMFICartLine[];\r\n public zipCode?: string;\r\n constructor(cartLines: IMFICartLine[], zipCode?: string) {\r\n this.cartLines = cartLines;\r\n this.zipCode = zipCode;\r\n }\r\n\r\n // 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 = () => {\r\n return this.cartLines?.sort((a, b) => a?.VariantRecordId && b?.VariantRecordId && a?.VariantRecordId > b?.VariantRecordId ? 1 : -1).map(item => `FetchCoreDeliveryList-${item.VariantRecordId}-${this.zipCode}-${item.VariantRecordId?.length}`).toString();\r\n };\r\n public getCacheObjectType = () => 'FetchCoreDeliveryList';\r\n public dataCacheType = (): Msdyn365.CacheType => 'request';\r\n}\r\n\r\n// Create a data model here or import one to capture the response of the action\r\nexport interface IFetchCoreDeliveryListData {\r\n text: string;\r\n}\r\n\r\n/**\r\n * Use this function to create the input required to make the action call\r\n */\r\n// const createInput = (args: Msdyn365.ICreateActionContext): Msdyn365.IActionInput => {\r\n// return new FetchCoreDeliveryListInput();\r\n// };\r\n\r\n/**\r\n * Use this function to call your action and process the results as needed\r\n */\r\nasync function fetchCoreDeliveryAction(input: FetchCoreDeliveryListInput, ctx: Msdyn365.IActionContext): Promise {\r\n // const apiSettings = Msdyn365.msdyn365Commerce.apiSettings;\r\n const atpInput: IMFIDeliveryScheduleParameters = {\r\n Weeks: 6,\r\n InventoryType: 'Delivery',\r\n StoreId: '',\r\n RequestedDate: dayjs(Date.now()).format('MM/DD/YYYY'),\r\n ZipCode: input.zipCode ?? getZipCode(ctx),\r\n ItemLines: input.cartLines,\r\n CustomerRequestTime: dayjs(Date.now()).format('MM/DD/YYYY HH:mm:ss'),\r\n Id: 0,\r\n NoOfPriorityDC: 0\r\n };\r\n const response = await mFIATPInventoryPLPAsync({ callerContext: ctx }, atpInput);\r\n // 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 response;\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >fetchCoreDeliveryAction,\r\n // Give your data action a unique id\r\n id: 'FetchCoreDeliveryList'\r\n // input: createInput\r\n // Uncomment the below line if this is a meant to be a batched data action\r\n // isBatched: true\r\n});\r\n","import {\r\n CacheType,\r\n createObservableDataAction,\r\n IAction,\r\n IActionContext,\r\n IActionInput,\r\n IAny,\r\n ICommerceApiSettings,\r\n ICreateActionContext,\r\n IGeneric,\r\n IRequestContext\r\n} from '@msdyn365-commerce/core';\r\n// import { ICategoryPath, ICategoryUrl } from '@msdyn365-commerce/core-internal/dist/types/interfaces/ICategoryPathInterfaces';\r\nimport { getCategoryPathsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\nimport { CategoryPathLookup, CategoryPathResult } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { hasArray } from '../Utilities/emtpyChecker';\r\n\r\n/**\r\n * Category path input\r\n */\r\nexport class GetCategoryPathsInput implements IActionInput {\r\n public readonly ChannelId: number;\r\n public CatalogId?: number;\r\n public productIds?: number[];\r\n // public readonly categoryPathLooksups: CategoryPathLookup[];\r\n public readonly apiSettings: ICommerceApiSettings;\r\n // @ts-ignore\r\n private constructedCacheKey: string | undefined;\r\n\r\n constructor(context: IRequestContext, catalogId?: number, productIds?: number[]) {\r\n this.ChannelId = context.apiSettings.channelId;\r\n this.CatalogId = catalogId; // context.apiSettings.catalogId || 0;\r\n this.productIds = productIds;\r\n // this.categoryPathLooksups = categoryPathLooksups;\r\n this.apiSettings = context.apiSettings;\r\n this.constructedCacheKey = '';\r\n // categoryPathLooksups.forEach(categoryPath=> {\r\n // this.constructedCacheKey+=`${categoryPath.ProductId && categoryPath.ProductId.toString()}|`;\r\n // });\r\n this.constructedCacheKey = this.productIds?.map(ids => ids).join('-').toString();\r\n this.constructedCacheKey += `${this.ChannelId?.toString()}|`;\r\n this.constructedCacheKey += `${this.CatalogId?.toString()}|`;\r\n }\r\n\r\n public getCacheKey = () => `MFRMProductCategoryPath-${this.constructedCacheKey}`;\r\n public getCacheObjectType = () => 'MFRMProductCategoryPath';\r\n public dataCacheType = (): CacheType => 'application';\r\n}\r\n\r\n/**\r\n * Creates the input required to make the getCategoryPath retail api call\r\n */\r\nexport const createGetCategoryPathsInput = (\r\n inputData: GetCategoryPathsInput,\r\n context: ICreateActionContext>\r\n): IActionInput => {\r\n const productId = inputData.productIds;\r\n if (productId) {\r\n return new GetCategoryPathsInput(context.requestContext, inputData.CatalogId, inputData.productIds);\r\n } else {\r\n throw new Error('Unable to create SelectedVariantInput, no productId found on module config or query');\r\n }\r\n};\r\n\r\n/**\r\n * Calls the Retail API and returns the category path for a product\r\n */\r\nexport async function getProductsCategoryPathsAction(input: GetCategoryPathsInput, ctx: IActionContext): Promise {\r\n const catPaths: CategoryPathLookup[] = [];\r\n if (!hasArray(input.productIds)) {\r\n return [];\r\n }\r\n for (let productsIter = 0; productsIter < input.productIds!.length; productsIter++) {\r\n catPaths.push({ ProductId: input.productIds![productsIter] });\r\n }\r\n try {\r\n return await getCategoryPathsAsync({ callerContext: ctx, queryResultSettings: { Paging: { Top: input.productIds!.length }, Sorting: {} } }, input.ChannelId, input.CatalogId!, catPaths);\r\n } catch (err) {\r\n console.log(err);\r\n return [];\r\n }\r\n}\r\n\r\nexport const getCategoryPathsActionDataAction = createObservableDataAction({\r\n id: 'GetMFRMProductsCategoryPaths',\r\n action: >getProductsCategoryPathsAction,\r\n input: createGetCategoryPathsInput\r\n});\r\n\r\nexport default getCategoryPathsActionDataAction;\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 Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport interface ICheckoutRecycleFeeTaxUpdate {\r\n recycleFee: number | null;\r\n tax: number | null;\r\n}\r\n/**\r\n * GetRecycleFeeCheckout Input Action\r\n */\r\nexport class GetRecycleFeeCheckoutInput implements Msdyn365.IActionInput {\r\n\r\n // 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 = () => `CheckoutUpdateRecycleFee`;\r\n public getCacheObjectType = () => 'CheckoutUpdateRecycleFee';\r\n public dataCacheType = (): Msdyn365.CacheType => 'request';\r\n}\r\n\r\n// Create a data model here or import one to capture the response of the action\r\n/**\r\n * 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 GetRecycleFeeCheckoutInput();\r\n};\r\n\r\n/**\r\n * Use this function to call your action and process the results as needed\r\n */\r\nasync function action(input: GetRecycleFeeCheckoutInput, ctx: Msdyn365.IActionContext): Promise {\r\n // const apiSettings = Msdyn365.msdyn365Commerce.apiSettings;\r\n\r\n // Uncomment the below line to get the value from a service\r\n return {recycleFee: null , tax: null};\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >action,\r\n // Give your data action a unique id\r\n id: 'GetRecycleFeeCheckout',\r\n input: createInput\r\n // Uncomment the below line if this is a meant to be a batched data action\r\n // isBatched: true\r\n});\r\n","/*---------------------------------------------------------------------------------------------\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\nimport { mFIATPInventoryStatusAsync } from './CoreProductDataActionExtension.g';\r\nimport { IMFIATPInventoryStatusResponse, IMFICLDeliveryScheduleParameters } from './CoreProductDataServiceEntities.g';\r\n\r\n/**\r\n * Small parcel getInventory status Input Action\r\n */\r\n\r\nexport class GetATPInventoryStatusInput implements Msdyn365.IActionInput {\r\n // Construct the input needed to run the action\r\n public input: IMFICLDeliveryScheduleParameters;\r\n public isCached?: boolean;\r\n constructor(input: IMFICLDeliveryScheduleParameters, isCached: boolean = true) {\r\n this.input = input;\r\n this.isCached = isCached;\r\n }\r\n\r\n // 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 = () => {\r\n const key = Array.prototype.map.call(this.input.ItemLines, (item) => { return item.VariantRecordId; }).sort().join(\",\");\r\n return `Get-Inventory-Status${this.input.ZipCode}-${this.input.ItemLines![0].ItemId}-${key}-${\r\n this.input?.Weeks\r\n }-${this.input?.RequestedDate}`;\r\n };\r\n // public getCacheKey = () => 'do';\r\n public getCacheObjectType = () => 'GetATPInventoryStatusResult';\r\n public dataCacheType = (): Msdyn365.CacheType => (this.isCached ? 'request' : 'none');\r\n}\r\n\r\n// Create a data model here or import one to capture the response of the action\r\n\r\n/**\r\n * Use this function to create the input required to make the action call\r\n */\r\n// const createInput = (args: Msdyn365.ICreateActionContext): Msdyn365.IActionInput => {\r\n// return new GetDeliveryMessageInput();\r\n// };\r\n\r\n/**\r\n * Use this function to call your action and process the results as needed\r\n */\r\nasync function getATPInventoryStatusAction(\r\n request: GetATPInventoryStatusInput,\r\n ctx: Msdyn365.IActionContext\r\n): Promise {\r\n if (request.input) {\r\n try {\r\n const result = await mFIATPInventoryStatusAsync({ callerContext: ctx }, request.input);\r\n if (result) {\r\n return result;\r\n }\r\n } catch (error) {\r\n console.log('Error', error);\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >getATPInventoryStatusAction,\r\n // Give your data action a unique id\r\n id: 'GetATPInventoryStatus'\r\n // input: createInput\r\n // Uncomment the below line if this is a meant to be a batched data action\r\n // isBatched: true\r\n});\r\n","import * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { IDeleteTransactionResponse, IDeleteTransactionRequest, mFIDeleteTransactionAsync } from './progressive-proxy-files';\r\n\r\n/**\r\n * ProgressiveDeleteTransaction Input Action\r\n */\r\n\r\nexport class ProgressiveDeleteTransactionInput extends Msdyn365.CommerceEntityInput implements Msdyn365.IActionInput {\r\n public deleteContract: IDeleteTransactionRequest;\r\n\r\n constructor(leaseContract: IDeleteTransactionRequest) {\r\n super({ shouldCacheOutput: true, cacheObjectType: 'ProgressiveDeleteTransaction', cacheKey: 'ProgressiveDeleteTransaction' });\r\n this.deleteContract = leaseContract;\r\n }\r\n\r\n public getCacheKey = () => `ProgressiveDeleteTransaction`;\r\n public getCacheObjectType = () => 'ProgressiveDeleteTransaction';\r\n public dataCacheType = (): Msdyn365.CacheType => 'none';\r\n}\r\n\r\nconst createInput = (args: Msdyn365.ICreateActionContext): Msdyn365.IActionInput => {\r\n return new ProgressiveDeleteTransactionInput({ ApplicationId: 0 });\r\n};\r\n\r\n/**\r\n * ProgressiveDeleteTransactionAction function receives applicationId and deletes the lease contract\r\n */\r\nexport async function ProgressiveDeleteTransactionAction(input: ProgressiveDeleteTransactionInput, ctx: Msdyn365.IActionContext): Promise {\r\n try {\r\n const deleteContractResponse = await mFIDeleteTransactionAsync({ callerContext: ctx }, input.deleteContract);\r\n return deleteContractResponse.Transaction || null;\r\n } catch (error) {\r\n console.error('Error:', error);\r\n return null;\r\n }\r\n}\r\n\r\nexport const IProgressiveDeleteTransactionAction = Msdyn365.createObservableDataAction({\r\n action: >ProgressiveDeleteTransactionAction,\r\n input: createInput,\r\n id: 'ProgressiveDeleteTransaction'\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 import {\r\n AsyncResult,\r\n callActionOrExecute,\r\n DataServiceQuery,\r\n IContext,\r\n IDataServiceRequest,\r\n // @ts-ignore -- Unused import\r\n NullResult\r\n } from '@msdyn365-commerce/retail-proxy';\r\n // @ts-ignore -- Unused import\r\n import * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\n // @ts-ignore -- Unused import\r\n import * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n import * as DataServiceEntities from './ProgressiveDataServiceEntities.g';\r\n\r\n\r\n // @ts-ignore\r\n function progressiveQuery(id?: number): DataServiceQuery {\r\n const key = (id) ? { Id: id } :null;\r\n return new DataServiceQuery(\"Progressive\", \"LeaseLookupByCustomer\", DataServiceEntities.LeaseLookupByCustomerExtensionClass, key);\r\n }\r\n\r\n\r\n export function createMFIGetLeaseLookupByCustomerInput(leaseLookupByCustomer: DataServiceEntities.ILeaseLookupByCustomerRequest): IDataServiceRequest {\r\n const query = progressiveQuery();\r\n return query.createDataServiceRequestForOperation('MFIGetLeaseLookupByCustomer', true, DataServiceEntities.MFILeaseLookupByCustomerResponseExtensionClass, 'false', {bypassCache: 'get', returnEntity: 'DataServiceEntities.IMFILeaseLookupByCustomerResponse'}, {leaseLookupByCustomer: leaseLookupByCustomer });\r\n }\r\n\r\n\r\n export function mFIGetLeaseLookupByCustomerAsync(context: IContext, leaseLookupByCustomer: DataServiceEntities.ILeaseLookupByCustomerRequest): AsyncResult {\r\n const request = createMFIGetLeaseLookupByCustomerInput(leaseLookupByCustomer);\r\n return callActionOrExecute(request, context.callerContext);\r\n }\r\n\r\n export function createMFIGetPaymentEstimatesInput(paymentEstimate: DataServiceEntities.IPaymentEstimateRequest): IDataServiceRequest {\r\n const query = progressiveQuery();\r\n return query.createDataServiceRequestForOperation('MFIGetPaymentEstimates', true, DataServiceEntities.MFIGetPaymentEstimateResponseExtensionClass, 'false', {bypassCache: 'get', returnEntity: 'DataServiceEntities.IMFIGetPaymentEstimateResponse'}, {paymentEstimate: paymentEstimate });\r\n }\r\n\r\n\r\n export function mFIGetPaymentEstimatesAsync(context: IContext, paymentEstimate: DataServiceEntities.IPaymentEstimateRequest): AsyncResult {\r\n const request = createMFIGetPaymentEstimatesInput(paymentEstimate);\r\n return callActionOrExecute(request, context.callerContext);\r\n }\r\n\r\n export function createMFISubmitCartInformationInput(submitCartInformation: DataServiceEntities.ISubmitCartInformationRequest): IDataServiceRequest {\r\n const query = progressiveQuery();\r\n return query.createDataServiceRequestForOperation('MFISubmitCartInformation', true, DataServiceEntities.MFISubmitCartInformationResponseExtensionClass, 'false', {bypassCache: 'get', returnEntity: 'DataServiceEntities.IMFISubmitCartInformationResponse'}, {submitCartInformation: submitCartInformation });\r\n }\r\n\r\n\r\n export function mFISubmitCartInformationAsync(context: IContext, submitCartInformation: DataServiceEntities.ISubmitCartInformationRequest): AsyncResult {\r\n const request = createMFISubmitCartInformationInput(submitCartInformation);\r\n return callActionOrExecute(request, context.callerContext);\r\n }\r\n\r\n export function createMFIGetLeaseContractInput(leaseContract: DataServiceEntities.IGetLeaseContractRequest): IDataServiceRequest {\r\n const query = progressiveQuery();\r\n return query.createDataServiceRequestForOperation('MFIGetLeaseContract', true, DataServiceEntities.MFIGetLeaseContractResponseExtensionClass, 'false', {bypassCache: 'get', returnEntity: 'DataServiceEntities.IMFIGetLeaseContractResponse'}, {leaseContract: leaseContract });\r\n }\r\n\r\n\r\n export function mFIGetLeaseContractAsync(context: IContext, leaseContract: DataServiceEntities.IGetLeaseContractRequest): AsyncResult {\r\n const request = createMFIGetLeaseContractInput(leaseContract);\r\n return callActionOrExecute(request, context.callerContext);\r\n }\r\n\r\n export function createMFIOrderConfirmationInput(orderConfirmation: DataServiceEntities.IOrderConfirmationRequest): IDataServiceRequest {\r\n const query = progressiveQuery();\r\n return query.createDataServiceRequestForOperation('MFIOrderConfirmation', true, DataServiceEntities.MFIOrderConfirmationResponseExtensionClass, 'false', {bypassCache: 'get', returnEntity: 'DataServiceEntities.IMFIOrderConfirmationResponse'}, {orderConfirmation: orderConfirmation });\r\n }\r\n\r\n\r\n export function mFIOrderConfirmationAsync(context: IContext, orderConfirmation: DataServiceEntities.IOrderConfirmationRequest): AsyncResult {\r\n const request = createMFIOrderConfirmationInput(orderConfirmation);\r\n return callActionOrExecute(request, context.callerContext);\r\n }\r\n\r\n export function createMFIDeleteTransactionInput(deleteContract: DataServiceEntities.IDeleteTransactionRequest): IDataServiceRequest {\r\n const query = progressiveQuery();\r\n return query.createDataServiceRequestForOperation('MFIDeleteTransaction', true, DataServiceEntities.MFIDeleteTransactionResponseExtensionClass, 'false', {bypassCache: 'get', returnEntity: 'DataServiceEntities.IMFIDeleteTransactionResponse'}, {deleteContract: deleteContract });\r\n }\r\n\r\n\r\n export function mFIDeleteTransactionAsync(context: IContext, deleteContract: DataServiceEntities.IDeleteTransactionRequest): AsyncResult {\r\n const request = createMFIDeleteTransactionInput(deleteContract);\r\n return callActionOrExecute(request, context.callerContext);\r\n }\r\n\r\n export function createMFIGetPricingInformationInput(pricingInformation: DataServiceEntities.IGetPricingInformationRequet): IDataServiceRequest {\r\n const query = progressiveQuery();\r\n return query.createDataServiceRequestForOperation('MFIGetPricingInformation', true, DataServiceEntities.MFIGetPricingInformationResponseExtensionClass, 'false', {bypassCache: 'get', returnEntity: 'DataServiceEntities.IMFIGetPricingInformationResponse'}, {pricingInformation: pricingInformation });\r\n }\r\n\r\n\r\n export function mFIGetPricingInformationAsync(context: IContext, pricingInformation: DataServiceEntities.IGetPricingInformationRequet): AsyncResult {\r\n const request = createMFIGetPricingInformationInput(pricingInformation);\r\n return callActionOrExecute(request, context.callerContext);\r\n }\r\n","\r\n // @ts-ignore -- Unused import\r\n import * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\n import * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n // @ts-ignore -- Unused import\r\n import { jsonLightReadStringPropertyValue } from '@msdyn365-commerce/retail-proxy/dist/externals';\r\n\r\n\r\n /**\r\n * LeaseLookupByCustomer entity interface.\r\n */\r\n export interface ILeaseLookupByCustomer {\r\n Id: number;\r\n ExtensionProperties?: Entities.CommerceProperty[];\r\n }\r\n\r\n /**\r\n * Store entity interface.\r\n */\r\n export interface IStore {\r\n ProgressiveMerchantId?: number;\r\n MerchantStoreId?: string;\r\n SalesAssociate?: string;\r\n MerchantApplicationIdentifier?: string;\r\n MerchantTerminalId?: string;\r\n }\r\n\r\n /**\r\n * LeaseLookupByCustomerRequest entity interface.\r\n */\r\n export interface ILeaseLookupByCustomerRequest {\r\n Store?: IStore;\r\n MobilePhoneNumber?: string;\r\n Last4SSN?: string;\r\n TenderType?: string;\r\n TransactionType?: string;\r\n }\r\n\r\n /**\r\n * Address entity interface.\r\n */\r\n export interface IAddress {\r\n StreetAddress1?: string;\r\n StreetAddress2?: string;\r\n City?: string;\r\n State?: string;\r\n Zip?: string;\r\n }\r\n\r\n /**\r\n * LeaseLookup entity interface.\r\n */\r\n export interface ILeaseLookup {\r\n ApplicationId?: string;\r\n Status?: string;\r\n ApprovalAmount: number;\r\n IsOkToDeliver: boolean;\r\n DateOfApplication: Date;\r\n InvoiceAmount: number;\r\n MerchantTransactionId?: string;\r\n FirstName?: string;\r\n LastName?: string;\r\n HomePhone?: string;\r\n CellPhone?: string;\r\n EmailAddress?: string;\r\n HomeAddress?: IAddress;\r\n InitialPaymentSalesTaxAmount: number;\r\n InitialPaymentPreSalesTax: number;\r\n InitialPaymentTotal: number;\r\n PeriodicPaymentTotal: number;\r\n PayFrequency?: string;\r\n }\r\n\r\n /**\r\n * Errors entity interface.\r\n */\r\n export interface IErrors {\r\n }\r\n\r\n /**\r\n * ProgressiveErrorDetails entity interface.\r\n */\r\n export interface IProgressiveErrorDetails {\r\n Errors?: IErrors;\r\n Type?: string;\r\n Title?: string;\r\n Status: number;\r\n Detail?: string;\r\n Instance?: string;\r\n TraceId?: string;\r\n ProgressiveErrorCode?: string;\r\n }\r\n\r\n /**\r\n * LeaseLookupByCustomerResponse entity interface.\r\n */\r\n export interface ILeaseLookupByCustomerResponse {\r\n LeaseLookup?: ILeaseLookup;\r\n ProgressiveErrorDetails?: IProgressiveErrorDetails;\r\n CRTMessage?: string | undefined;\r\n CRTStatus: boolean;\r\n IsNoContent: boolean;\r\n }\r\n\r\n /**\r\n * PaymentEstimateRequest entity interface.\r\n */\r\n export interface IPaymentEstimateRequest {\r\n InvoiceAmount: number;\r\n Deposit: number;\r\n PaymentFrequency?: string;\r\n State?: string;\r\n Store?: IStore;\r\n TenderType?: string;\r\n TransactionType?: string;\r\n }\r\n\r\n /**\r\n * TermMonthsEstimates entity interface.\r\n */\r\n export interface ITermMonthsEstimates {\r\n PaymentMonth: number;\r\n CostOfLease: number;\r\n CumulativeAmountPaid: number;\r\n PaymentNumber: number;\r\n PaymentAmount: number;\r\n }\r\n\r\n /**\r\n * PaymentEstimate entity interface.\r\n */\r\n export interface IPaymentEstimate {\r\n InitialPayment: number;\r\n TermMonthEstimates?: ITermMonthsEstimates[];\r\n Message?: string;\r\n }\r\n\r\n /**\r\n * PaymentEstimateResponse entity interface.\r\n */\r\n export interface IPaymentEstimateResponse {\r\n PaymentEstimates?: IPaymentEstimate;\r\n ProgressiveErrorDetails?: IProgressiveErrorDetails;\r\n CRTMessage?: string;\r\n CRTStatus: boolean;\r\n IsNoContent: boolean;\r\n }\r\n\r\n /**\r\n * Items entity interface.\r\n */\r\n export interface IItems {\r\n LineNumber: number;\r\n Sku?: string;\r\n Model?: string;\r\n Description?: string;\r\n Type?: string;\r\n PriceEach: number;\r\n LineTotal: number;\r\n Quantity: number;\r\n IsNew: boolean;\r\n }\r\n\r\n /**\r\n * SubmitCartInformationRequest entity interface.\r\n */\r\n export interface ISubmitCartInformationRequest {\r\n Store?: IStore;\r\n ApplicationId?: string;\r\n MerchantTransactionId?: string;\r\n Deposit: number;\r\n SalesTax: number;\r\n CartTotal: number;\r\n Items?: IItems[];\r\n TenderType?: string;\r\n TransactionType?: string;\r\n }\r\n\r\n /**\r\n * SubmitCartInformation entity interface.\r\n */\r\n export interface ISubmitCartInformation {\r\n CartId: number;\r\n Message?: string;\r\n }\r\n\r\n /**\r\n * SubmitCartInformationResponse entity interface.\r\n */\r\n export interface ISubmitCartInformationResponse {\r\n SubmitCartInformation?: ISubmitCartInformation;\r\n ProgressiveErrorDetails?: IProgressiveErrorDetails;\r\n CRTMessage?: string;\r\n CRTStatus: boolean;\r\n IsNoContent: boolean;\r\n }\r\n\r\n /**\r\n * GetLeaseContractRequest entity interface.\r\n */\r\n export interface IGetLeaseContractRequest {\r\n ApplicationId?: string;\r\n TenderType?: string;\r\n TransactionType?: string;\r\n }\r\n\r\n /**\r\n * GetLeaseContract entity interface.\r\n */\r\n export interface IGetLeaseContract {\r\n ESignUrl?: string;\r\n Message?: string;\r\n }\r\n\r\n /**\r\n * GetLeaseContractResponse entity interface.\r\n */\r\n export interface IGetLeaseContractResponse {\r\n LeaseContract?: IGetLeaseContract;\r\n ProgressiveErrorDetails?: IProgressiveErrorDetails;\r\n CRTMessage?: string;\r\n CRTStatus: boolean;\r\n IsNoContent: boolean;\r\n }\r\n\r\n /**\r\n * OrderConfirmationRequest entity interface.\r\n */\r\n export interface IOrderConfirmationRequest {\r\n Store?: IStore;\r\n ApplicationId?: string;\r\n CartId: number;\r\n TenderType?: string;\r\n TransactionType?: string;\r\n }\r\n\r\n /**\r\n * OrderConfirmation entity interface.\r\n */\r\n export interface IOrderConfirmation {\r\n StatusCode: number;\r\n }\r\n\r\n /**\r\n * OrderConfirmationResponse entity interface.\r\n */\r\n export interface IOrderConfirmationResponse {\r\n OrderConfirmation?: IOrderConfirmation;\r\n ProgressiveErrorDetails?: IProgressiveErrorDetails;\r\n CRTMessage?: string;\r\n CRTStatus: boolean;\r\n IsNoContent: boolean;\r\n }\r\n\r\n /**\r\n * DeleteTransactionRequest entity interface.\r\n */\r\n export interface IDeleteTransactionRequest {\r\n ApplicationId: number;\r\n TenderType?: string;\r\n TransactionType?: string;\r\n }\r\n\r\n /**\r\n * DeleteTransaction entity interface.\r\n */\r\n export interface IDeleteTransaction {\r\n }\r\n\r\n /**\r\n * DeleteTransactionResponse entity interface.\r\n */\r\n export interface IDeleteTransactionResponse {\r\n Transaction?: IDeleteTransaction;\r\n ProgressiveErrorDetails?: IProgressiveErrorDetails;\r\n CRTMessage?: string;\r\n CRTStatus: boolean;\r\n IsNoContent: boolean;\r\n }\r\n\r\n /**\r\n * GetPricingInformationRequet entity interface.\r\n */\r\n export interface IGetPricingInformationRequet {\r\n ApplicationId?: string;\r\n TenderType?: string;\r\n TransactionType?: string;\r\n }\r\n\r\n /**\r\n * NinethDayPricing entity interface.\r\n */\r\n export interface INinethDayPricing {\r\n EstimatedTax: number;\r\n LeaseCostToOwn: number;\r\n NinetyDayBuyout: number;\r\n LeaseToOwnTotal: number;\r\n NinetyDayBuyoutMarkup: number;\r\n NinetyDayBuyoutNetRld: number;\r\n }\r\n\r\n /**\r\n * PricingTerms entity interface.\r\n */\r\n export interface IPricingTerms {\r\n InvoiceAmount: number;\r\n EstimatedTax: number;\r\n SubTotal: number;\r\n FullTermTotalCostWithEstimatedTaxNoDeposit: number;\r\n LastPayment: number;\r\n LastPaymentEstimatedTax: number;\r\n TotalLastPayment: number;\r\n DepositTax: number;\r\n TotalDeposit: number;\r\n NetDeposit: number;\r\n LeaseCostToOwn: number;\r\n LeaseCostToOwnWithEstimatedTax: number;\r\n LeaseToOwnTotal: number;\r\n PeriodicPayment: number;\r\n RecurringPaymentEstimatedTax: number;\r\n TotalRecurringPayment: number;\r\n }\r\n\r\n /**\r\n * PricingBase entity interface.\r\n */\r\n export interface IPricingBase {\r\n ContractualStartingBalance: number;\r\n EffectiveLeaseBalance: number;\r\n RemainingInvoice: number;\r\n CashPrice: number;\r\n CashPriceMarkup: number;\r\n InitialBalance: number;\r\n InitialCashPrice: number;\r\n TotalLeasePrice: number;\r\n LeaseTermId: number;\r\n PaymentFrequencyId: number;\r\n TermMonths: number;\r\n TotalNumberOfPayments: number;\r\n NumberOfRecurringPayments: number;\r\n RldCashPrice: number;\r\n TotalNetRld: number;\r\n RldCashPriceMarkup: number;\r\n SalesTaxRate: number;\r\n LeaseStatus?: string;\r\n ApprovalLimit: number;\r\n }\r\n\r\n /**\r\n * RetailerFees entity interface.\r\n */\r\n export interface IRetailerFees {\r\n MerchantTransactionTypeName?: string;\r\n TransactionTaxAmount: number;\r\n MerchantTransactionTypeId: number;\r\n TransactionAmount: number;\r\n FeeRuleId: number;\r\n }\r\n\r\n /**\r\n * PaymentDueAtSigning entity interface.\r\n */\r\n export interface IPaymentDueAtSigning {\r\n TotalTax: number;\r\n TotalDueAtSigning: number;\r\n TotalRetailerFees: number;\r\n RetailerFeeTax: number;\r\n RetailerDeliveryFeesTax: number;\r\n RetailerOtherFeesTax: number;\r\n TotalRetailerFeeAmount: number;\r\n InitialPaymentTax: number;\r\n InitialPayment: number;\r\n TotalInitialPayment: number;\r\n TotalRetailerDeliveryFees: number;\r\n TotalRetailerOtherFees: number;\r\n RetailerFees?: IRetailerFees[];\r\n }\r\n\r\n /**\r\n * GetPricing entity interface.\r\n */\r\n export interface IGetPricing {\r\n NinetyDay?: INinethDayPricing;\r\n Term?: IPricingTerms;\r\n Base?: IPricingBase;\r\n PaymentDueAtSigning?: IPaymentDueAtSigning;\r\n }\r\n\r\n /**\r\n * GetPricingInformationResponse entity interface.\r\n */\r\n export interface IGetPricingInformationResponse {\r\n PricingInformation?: IGetPricing;\r\n ProgressiveErrorDetails?: IProgressiveErrorDetails;\r\n CRTMessage?: string;\r\n CRTStatus: boolean;\r\n IsNoContent: boolean;\r\n }\r\n\r\n /**\r\n * MFILeaseLookupByCustomerResponse entity interface.\r\n */\r\n export interface IMFILeaseLookupByCustomerResponse {\r\n LeaseLookupByCustomer?: ILeaseLookupByCustomerResponse;\r\n }\r\n\r\n /**\r\n * MFIGetPaymentEstimateResponse entity interface.\r\n */\r\n export interface IMFIGetPaymentEstimateResponse {\r\n PaymentEstimates?: IPaymentEstimateResponse;\r\n }\r\n\r\n /**\r\n * MFISubmitCartInformationResponse entity interface.\r\n */\r\n export interface IMFISubmitCartInformationResponse {\r\n SubmitCartInformation?: ISubmitCartInformationResponse;\r\n }\r\n\r\n /**\r\n * MFIGetLeaseContractResponse entity interface.\r\n */\r\n export interface IMFIGetLeaseContractResponse {\r\n LeaseContacts?: IGetLeaseContractResponse;\r\n }\r\n\r\n /**\r\n * MFIOrderConfirmationResponse entity interface.\r\n */\r\n export interface IMFIOrderConfirmationResponse {\r\n OrderConfirmation?: IOrderConfirmationResponse;\r\n }\r\n\r\n /**\r\n * MFIDeleteTransactionResponse entity interface.\r\n */\r\n export interface IMFIDeleteTransactionResponse {\r\n Transaction?: IDeleteTransactionResponse;\r\n }\r\n\r\n /**\r\n * MFIGetPricingInformationResponse entity interface.\r\n */\r\n export interface IMFIGetPricingInformationResponse {\r\n PricingInformation?: IGetPricingInformationResponse;\r\n }\r\n\r\n /**\r\n * LeaseLookupByCustomer entity class.\r\n */\r\n export class LeaseLookupByCustomerExtensionClass implements ILeaseLookupByCustomer {\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 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 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;\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[i]) {\r\n if (odataObject.ExtensionProperties[i]['@odata.type']) {\r\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.ExtensionProperties[i] = new EntityClasses[className](odataObject.ExtensionProperties[i]);\r\n }\r\n } else {\r\n this.ExtensionProperties[i] = new EntityClasses.CommercePropertyClass(odataObject.ExtensionProperties[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[i] = undefined;\r\n }\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n /**\r\n * Store entity class.\r\n */\r\n export class StoreExtensionClass implements IStore {\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 ProgressiveMerchantId: 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 MerchantStoreId: 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 SalesAssociate: 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 MerchantApplicationIdentifier: 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 MerchantTerminalId: 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.ProgressiveMerchantId = (odataObject.ProgressiveMerchantId) ? parseInt(odataObject.ProgressiveMerchantId, 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.MerchantStoreId = odataObject.MerchantStoreId;\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.SalesAssociate = odataObject.SalesAssociate;\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.MerchantApplicationIdentifier = odataObject.MerchantApplicationIdentifier;\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.MerchantTerminalId = odataObject.MerchantTerminalId;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * LeaseLookupByCustomerRequest entity class.\r\n */\r\n export class LeaseLookupByCustomerRequestExtensionClass implements ILeaseLookupByCustomerRequest {\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 Store:\r\n IStore;\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 MobilePhoneNumber: 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 Last4SSN: 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 TenderType: 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 TransactionType: 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 if (odataObject.Store === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Store = undefined;\r\n } else if (odataObject.Store['@odata.type'] === null) {\r\n this.Store = new StoreExtensionClass(odataObject.Store);\r\n } else {\r\n var className: string = odataObject.Store['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.Store = new EntityClasses[className](odataObject.Store);\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.MobilePhoneNumber = odataObject.MobilePhoneNumber;\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.Last4SSN = odataObject.Last4SSN;\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.TenderType = odataObject.TenderType;\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.TransactionType = odataObject.TransactionType;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * Address entity class.\r\n */\r\n export class AddressExtensionClass implements IAddress {\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 StreetAddress1: 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 StreetAddress2: 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 City: 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 State: 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 Zip: 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.StreetAddress1 = odataObject.StreetAddress1;\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.StreetAddress2 = odataObject.StreetAddress2;\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.City = odataObject.City;\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.State = odataObject.State;\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.Zip = odataObject.Zip;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * LeaseLookup entity class.\r\n */\r\n export class LeaseLookupExtensionClass implements ILeaseLookup {\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 ApplicationId: 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 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 ApprovalAmount: 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 IsOkToDeliver: boolean;\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 DateOfApplication: Date;\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 InvoiceAmount: 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 MerchantTransactionId: 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 FirstName: 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 LastName: 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 HomePhone: 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 CellPhone: 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 EmailAddress: 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 HomeAddress:\r\n IAddress;\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 InitialPaymentSalesTaxAmount: 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 InitialPaymentPreSalesTax: 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 InitialPaymentTotal: 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 PeriodicPaymentTotal: 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 PayFrequency: 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.ApplicationId = odataObject.ApplicationId;\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.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.ApprovalAmount = (odataObject.ApprovalAmount) ? parseFloat(odataObject.ApprovalAmount) : 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.IsOkToDeliver = odataObject.IsOkToDeliver;\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.DateOfApplication = (odataObject.DateOfApplication instanceof Date) ? odataObject.DateOfApplication\r\n : (odataObject.DateOfApplication) ? jsonLightReadStringPropertyValue(odataObject.DateOfApplication, 'Edm.DateTimeOffset', false) : undefined;\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.InvoiceAmount = (odataObject.InvoiceAmount) ? parseFloat(odataObject.InvoiceAmount) : 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.MerchantTransactionId = odataObject.MerchantTransactionId;\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.FirstName = odataObject.FirstName;\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.LastName = odataObject.LastName;\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.HomePhone = odataObject.HomePhone;\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.CellPhone = odataObject.CellPhone;\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.EmailAddress = odataObject.EmailAddress;\r\n\r\n if (odataObject.HomeAddress === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.HomeAddress = undefined;\r\n } else if (odataObject.HomeAddress['@odata.type'] === undefined) {\r\n this.HomeAddress = new AddressExtensionClass(odataObject.HomeAddress);\r\n } else {\r\n var className: string = odataObject.HomeAddress['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.HomeAddress = new EntityClasses[className](odataObject.HomeAddress);\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.InitialPaymentSalesTaxAmount = (odataObject.InitialPaymentSalesTaxAmount) ? parseFloat(odataObject.InitialPaymentSalesTaxAmount) : 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.InitialPaymentPreSalesTax = (odataObject.InitialPaymentPreSalesTax) ? parseFloat(odataObject.InitialPaymentPreSalesTax) : 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.InitialPaymentTotal = (odataObject.InitialPaymentTotal) ? parseFloat(odataObject.InitialPaymentTotal) : 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.PeriodicPaymentTotal = (odataObject.PeriodicPaymentTotal) ? parseFloat(odataObject.PeriodicPaymentTotal) : 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.PayFrequency = odataObject.PayFrequency;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * Errors entity class.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-extraneous-class\r\n export class ErrorsExtensionClass implements IErrors {\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 }\r\n }\r\n\r\n /**\r\n * ProgressiveErrorDetails entity class.\r\n */\r\n export class ProgressiveErrorDetailsExtensionClass implements IProgressiveErrorDetails {\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 Errors:\r\n IErrors;\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 Type: 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 Title: 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 Status: 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 Detail: 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 Instance: 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 TraceId: 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 ProgressiveErrorCode: 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 if (odataObject.Errors === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Errors = undefined;\r\n } else if (odataObject.Errors['@odata.type'] === undefined) {\r\n this.Errors = new ErrorsExtensionClass(odataObject.Errors);\r\n } else {\r\n var className: string = odataObject.Errors['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.Errors = new EntityClasses[className](odataObject.Errors);\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.Type = odataObject.Type;\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.Title = odataObject.Title;\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.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.Detail = odataObject.Detail;\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.Instance = odataObject.Instance;\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.TraceId = odataObject.TraceId;\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.ProgressiveErrorCode = odataObject.ProgressiveErrorCode;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * LeaseLookupByCustomerResponse entity class.\r\n */\r\n export class LeaseLookupByCustomerResponseExtensionClass implements ILeaseLookupByCustomerResponse {\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 LeaseLookup:\r\n ILeaseLookup;\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 ProgressiveErrorDetails:\r\n IProgressiveErrorDetails;\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 CRTMessage: 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 CRTStatus: boolean;\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 IsNoContent: boolean;\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 if (odataObject.LeaseLookup === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.LeaseLookup = undefined;\r\n } else if (odataObject.LeaseLookup['@odata.type'] === undefined) {\r\n this.LeaseLookup = new LeaseLookupExtensionClass(odataObject.LeaseLookup);\r\n } else {\r\n var className: string = odataObject.LeaseLookup['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.LeaseLookup = new EntityClasses[className](odataObject.LeaseLookup);\r\n }\r\n }\r\n\r\n\r\n if (odataObject.ProgressiveErrorDetails === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ProgressiveErrorDetails = undefined;\r\n } else if (odataObject.ProgressiveErrorDetails['@odata.type'] === undefined) {\r\n this.ProgressiveErrorDetails = new ProgressiveErrorDetailsExtensionClass(odataObject.ProgressiveErrorDetails);\r\n } else {\r\n var className: string = odataObject.ProgressiveErrorDetails['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.ProgressiveErrorDetails = new EntityClasses[className](odataObject.ProgressiveErrorDetails);\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.CRTMessage = odataObject.CRTMessage;\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.CRTStatus = odataObject.CRTStatus;\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.IsNoContent = odataObject.IsNoContent;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * PaymentEstimateRequest entity class.\r\n */\r\n export class PaymentEstimateRequestExtensionClass implements IPaymentEstimateRequest {\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 InvoiceAmount: 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 Deposit: 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 PaymentFrequency: 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 State: 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 Store:\r\n IStore;\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 TenderType: 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 TransactionType: 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.InvoiceAmount = (odataObject.InvoiceAmount) ? parseFloat(odataObject.InvoiceAmount) : 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.Deposit = odataObject.Deposit;\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.PaymentFrequency = odataObject.PaymentFrequency;\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.State = odataObject.State;\r\n\r\n if (odataObject.Store === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Store = undefined;\r\n } else if (odataObject.Store['@odata.type'] === null) {\r\n this.Store = new StoreExtensionClass(odataObject.Store);\r\n } else {\r\n var className: string = odataObject.Store['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.Store = new EntityClasses[className](odataObject.Store);\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.TenderType = odataObject.TenderType;\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.TransactionType = odataObject.TransactionType;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * TermMonthsEstimates entity class.\r\n */\r\n export class TermMonthsEstimatesExtensionClass implements ITermMonthsEstimates {\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 PaymentMonth: 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 CostOfLease: 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 CumulativeAmountPaid: 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 PaymentNumber: 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 PaymentAmount: number;\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.PaymentMonth = odataObject.PaymentMonth;\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.CostOfLease = (odataObject.CostOfLease) ? parseFloat(odataObject.CostOfLease) : 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.CumulativeAmountPaid = (odataObject.CumulativeAmountPaid) ? parseFloat(odataObject.CumulativeAmountPaid) : 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.PaymentNumber = odataObject.PaymentNumber;\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.PaymentAmount = (odataObject.PaymentAmount) ? parseFloat(odataObject.PaymentAmount) : 0;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * PaymentEstimate entity class.\r\n */\r\n export class PaymentEstimateExtensionClass implements IPaymentEstimate {\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 InitialPayment: 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 TermMonthEstimates:\r\n ITermMonthsEstimates[];\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 // 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.InitialPayment = (odataObject.InitialPayment) ? parseFloat(odataObject.InitialPayment) : 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.TermMonthEstimates = undefined;\r\n if (odataObject.TermMonthEstimates) {\r\n this.TermMonthEstimates = [];\r\n for (var i = 0; i < odataObject.TermMonthEstimates.length; i++) {\r\n if (odataObject.TermMonthEstimates[i]) {\r\n if (odataObject.TermMonthEstimates[i]['@odata.type']) {\r\n var className: string = odataObject.TermMonthEstimates[i]['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.TermMonthEstimates[i] = new EntityClasses[className](odataObject.TermMonthEstimates[i]);\r\n }\r\n } else {\r\n this.TermMonthEstimates[i] = new TermMonthsEstimatesExtensionClass(odataObject.TermMonthEstimates[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.TermMonthEstimates[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.Message = odataObject.Message;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * PaymentEstimateResponse entity class.\r\n */\r\n export class PaymentEstimateResponseExtensionClass implements IPaymentEstimateResponse {\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 PaymentEstimates:\r\n IPaymentEstimate;\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 ProgressiveErrorDetails:\r\n IProgressiveErrorDetails;\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 CRTMessage: 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 CRTStatus: boolean;\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 IsNoContent: boolean;\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 if (odataObject.PaymentEstimates === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.PaymentEstimates = undefined;\r\n } else if (odataObject.PaymentEstimates['@odata.type'] === undefined) {\r\n this.PaymentEstimates = new PaymentEstimateExtensionClass(odataObject.PaymentEstimates);\r\n } else {\r\n var className: string = odataObject.PaymentEstimates['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.PaymentEstimates = new EntityClasses[className](odataObject.PaymentEstimates);\r\n }\r\n }\r\n\r\n\r\n if (odataObject.ProgressiveErrorDetails === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ProgressiveErrorDetails = undefined;\r\n } else if (odataObject.ProgressiveErrorDetails['@odata.type'] === undefined) {\r\n this.ProgressiveErrorDetails = new ProgressiveErrorDetailsExtensionClass(odataObject.ProgressiveErrorDetails);\r\n } else {\r\n var className: string = odataObject.ProgressiveErrorDetails['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.ProgressiveErrorDetails = new EntityClasses[className](odataObject.ProgressiveErrorDetails);\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.CRTMessage = odataObject.CRTMessage;\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.CRTStatus = odataObject.CRTStatus;\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.IsNoContent = odataObject.IsNoContent;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * Items entity class.\r\n */\r\n export class ItemsExtensionClass implements IItems {\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 LineNumber: 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 Sku: 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 Model: 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 Description: 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 Type: 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 PriceEach: 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 LineTotal: 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 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 IsNew: boolean;\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.LineNumber = odataObject.LineNumber;\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.Sku = odataObject.Sku;\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.Model = odataObject.Model;\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.Description = odataObject.Description;\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.Type = odataObject.Type;\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.PriceEach = (odataObject.PriceEach) ? parseFloat(odataObject.PriceEach) : 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.LineTotal = (odataObject.LineTotal) ? parseFloat(odataObject.LineTotal) : 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.Quantity = odataObject.Quantity;\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.IsNew = odataObject.IsNew;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * SubmitCartInformationRequest entity class.\r\n */\r\n export class SubmitCartInformationRequestExtensionClass implements ISubmitCartInformationRequest {\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 Store:\r\n IStore;\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 ApplicationId: 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 MerchantTransactionId: 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 Deposit: 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 SalesTax: 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 CartTotal: 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 Items:\r\n IItems[];\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 TenderType: 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 TransactionType: 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 if (odataObject.Store === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Store = undefined;\r\n } else if (odataObject.Store['@odata.type'] === null) {\r\n this.Store = new StoreExtensionClass(odataObject.Store);\r\n } else {\r\n var className: string = odataObject.Store['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.Store = new EntityClasses[className](odataObject.Store);\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.ApplicationId = odataObject.ApplicationId;\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.MerchantTransactionId = odataObject.MerchantTransactionId;\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.Deposit = (odataObject.Deposit) ? parseFloat(odataObject.Deposit) : 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.SalesTax = (odataObject.SalesTax) ? parseFloat(odataObject.SalesTax) : 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.CartTotal = (odataObject.CartTotal) ? parseFloat(odataObject.CartTotal) : 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.Items = undefined;\r\n if (odataObject.Items) {\r\n this.Items = [];\r\n for (var i = 0; i < odataObject.Items.length; i++) {\r\n if (odataObject.Items[i]) {\r\n if (odataObject.Items[i]['@odata.type']) {\r\n var className: string = odataObject.Items[i]['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.Items[i] = new EntityClasses[className](odataObject.Items[i]);\r\n }\r\n } else {\r\n this.Items[i] = new ItemsExtensionClass(odataObject.Items[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.Items[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.TenderType = odataObject.TenderType;\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.TransactionType = odataObject.TransactionType;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * SubmitCartInformation entity class.\r\n */\r\n export class SubmitCartInformationExtensionClass implements ISubmitCartInformation {\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 CartId: 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 // 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.CartId = (odataObject.CartId) ? parseInt(odataObject.CartId, 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.Message = odataObject.Message;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * SubmitCartInformationResponse entity class.\r\n */\r\n export class SubmitCartInformationResponseExtensionClass implements ISubmitCartInformationResponse {\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 SubmitCartInformation:\r\n ISubmitCartInformation;\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 ProgressiveErrorDetails:\r\n IProgressiveErrorDetails;\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 CRTMessage: 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 CRTStatus: boolean;\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 IsNoContent: boolean;\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 if (odataObject.SubmitCartInformation === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.SubmitCartInformation = undefined;\r\n } else if (odataObject.SubmitCartInformation['@odata.type'] === undefined) {\r\n this.SubmitCartInformation = new SubmitCartInformationExtensionClass(odataObject.SubmitCartInformation);\r\n } else {\r\n var className: string = odataObject.SubmitCartInformation['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.SubmitCartInformation = new EntityClasses[className](odataObject.SubmitCartInformation);\r\n }\r\n }\r\n\r\n\r\n if (odataObject.ProgressiveErrorDetails === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ProgressiveErrorDetails = undefined;\r\n } else if (odataObject.ProgressiveErrorDetails['@odata.type'] === undefined) {\r\n this.ProgressiveErrorDetails = new ProgressiveErrorDetailsExtensionClass(odataObject.ProgressiveErrorDetails);\r\n } else {\r\n var className: string = odataObject.ProgressiveErrorDetails['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.ProgressiveErrorDetails = new EntityClasses[className](odataObject.ProgressiveErrorDetails);\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.CRTMessage = odataObject.CRTMessage;\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.CRTStatus = odataObject.CRTStatus;\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.IsNoContent = odataObject.IsNoContent;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * GetLeaseContractRequest entity class.\r\n */\r\n export class GetLeaseContractRequestExtensionClass implements IGetLeaseContractRequest {\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 ApplicationId: 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 TenderType: 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 TransactionType: 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.ApplicationId = odataObject.ApplicationId;\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.TenderType = odataObject.TenderType;\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.TransactionType = odataObject.TransactionType;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * GetLeaseContract entity class.\r\n */\r\n export class GetLeaseContractExtensionClass implements IGetLeaseContract {\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 ESignUrl: 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 // 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.ESignUrl = odataObject.ESignUrl;\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 }\r\n }\r\n\r\n /**\r\n * GetLeaseContractResponse entity class.\r\n */\r\n export class GetLeaseContractResponseExtensionClass implements IGetLeaseContractResponse {\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 LeaseContract:\r\n IGetLeaseContract;\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 ProgressiveErrorDetails:\r\n IProgressiveErrorDetails;\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 CRTMessage: 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 CRTStatus: boolean;\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 IsNoContent: boolean;\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 if (odataObject.LeaseContract === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.LeaseContract = undefined;\r\n } else if (odataObject.LeaseContract['@odata.type'] === undefined) {\r\n this.LeaseContract = new GetLeaseContractExtensionClass(odataObject.LeaseContract);\r\n } else {\r\n var className: string = odataObject.LeaseContract['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.LeaseContract = new EntityClasses[className](odataObject.LeaseContract);\r\n }\r\n }\r\n\r\n\r\n if (odataObject.ProgressiveErrorDetails === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ProgressiveErrorDetails = undefined;\r\n } else if (odataObject.ProgressiveErrorDetails['@odata.type'] === undefined) {\r\n this.ProgressiveErrorDetails = new ProgressiveErrorDetailsExtensionClass(odataObject.ProgressiveErrorDetails);\r\n } else {\r\n var className: string = odataObject.ProgressiveErrorDetails['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.ProgressiveErrorDetails = new EntityClasses[className](odataObject.ProgressiveErrorDetails);\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.CRTMessage = odataObject.CRTMessage;\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.CRTStatus = odataObject.CRTStatus;\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.IsNoContent = odataObject.IsNoContent;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * OrderConfirmationRequest entity class.\r\n */\r\n export class OrderConfirmationRequestExtensionClass implements IOrderConfirmationRequest {\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 Store:\r\n IStore;\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 ApplicationId: 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 CartId: 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 TenderType: 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 TransactionType: 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 if (odataObject.Store === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Store = undefined;\r\n } else if (odataObject.Store['@odata.type'] === null) {\r\n this.Store = new StoreExtensionClass(odataObject.Store);\r\n } else {\r\n var className: string = odataObject.Store['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.Store = new EntityClasses[className](odataObject.Store);\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.ApplicationId = odataObject.ApplicationId;\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.CartId = (odataObject.CartId) ? parseInt(odataObject.CartId, 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.TenderType = odataObject.TenderType;\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.TransactionType = odataObject.TransactionType;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * OrderConfirmation entity class.\r\n */\r\n export class OrderConfirmationExtensionClass implements IOrderConfirmation {\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: number;\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.StatusCode = odataObject.StatusCode;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * OrderConfirmationResponse entity class.\r\n */\r\n export class OrderConfirmationResponseExtensionClass implements IOrderConfirmationResponse {\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 OrderConfirmation:\r\n IOrderConfirmation;\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 ProgressiveErrorDetails:\r\n IProgressiveErrorDetails;\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 CRTMessage: 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 CRTStatus: boolean;\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 IsNoContent: boolean;\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 if (odataObject.OrderConfirmation === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.OrderConfirmation = undefined;\r\n } else if (odataObject.OrderConfirmation['@odata.type'] === null) {\r\n this.OrderConfirmation = new OrderConfirmationExtensionClass(odataObject.OrderConfirmation);\r\n } else {\r\n var className: string = odataObject.OrderConfirmation['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.OrderConfirmation = new EntityClasses[className](odataObject.OrderConfirmation);\r\n }\r\n }\r\n\r\n\r\n if (odataObject.ProgressiveErrorDetails === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ProgressiveErrorDetails = undefined;\r\n } else if (odataObject.ProgressiveErrorDetails['@odata.type'] === null) {\r\n this.ProgressiveErrorDetails = new ProgressiveErrorDetailsExtensionClass(odataObject.ProgressiveErrorDetails);\r\n } else {\r\n var className: string = odataObject.ProgressiveErrorDetails['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.ProgressiveErrorDetails = new EntityClasses[className](odataObject.ProgressiveErrorDetails);\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.CRTMessage = odataObject.CRTMessage;\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.CRTStatus = odataObject.CRTStatus;\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.IsNoContent = odataObject.IsNoContent;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * DeleteTransactionRequest entity class.\r\n */\r\n export class DeleteTransactionRequestExtensionClass implements IDeleteTransactionRequest {\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 ApplicationId: 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 TenderType: 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 TransactionType: 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.ApplicationId = (odataObject.ApplicationId) ? parseInt(odataObject.ApplicationId, 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.TenderType = odataObject.TenderType;\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.TransactionType = odataObject.TransactionType;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * DeleteTransaction entity class.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-extraneous-class\r\n export class DeleteTransactionExtensionClass implements IDeleteTransaction {\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 }\r\n }\r\n\r\n /**\r\n * DeleteTransactionResponse entity class.\r\n */\r\n export class DeleteTransactionResponseExtensionClass implements IDeleteTransactionResponse {\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 Transaction:\r\n IDeleteTransaction;\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 ProgressiveErrorDetails:\r\n IProgressiveErrorDetails;\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 CRTMessage: 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 CRTStatus: boolean;\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 IsNoContent: boolean;\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 if (odataObject.Transaction === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Transaction = undefined;\r\n } else if (odataObject.Transaction['@odata.type'] === undefined) {\r\n this.Transaction = new DeleteTransactionExtensionClass(odataObject.Transaction);\r\n } else {\r\n var className: string = odataObject.Transaction['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.Transaction = new EntityClasses[className](odataObject.Transaction);\r\n }\r\n }\r\n\r\n\r\n if (odataObject.ProgressiveErrorDetails === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ProgressiveErrorDetails = undefined;\r\n } else if (odataObject.ProgressiveErrorDetails['@odata.type'] === undefined) {\r\n this.ProgressiveErrorDetails = new ProgressiveErrorDetailsExtensionClass(odataObject.ProgressiveErrorDetails);\r\n } else {\r\n var className: string = odataObject.ProgressiveErrorDetails['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.ProgressiveErrorDetails = new EntityClasses[className](odataObject.ProgressiveErrorDetails);\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.CRTMessage = odataObject.CRTMessage;\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.CRTStatus = odataObject.CRTStatus;\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.IsNoContent = odataObject.IsNoContent;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * GetPricingInformationRequet entity class.\r\n */\r\n export class GetPricingInformationRequetExtensionClass implements IGetPricingInformationRequet {\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 ApplicationId: 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 TenderType: 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 TransactionType: 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.ApplicationId = odataObject.ApplicationId;\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.TenderType = odataObject.TenderType;\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.TransactionType = odataObject.TransactionType;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * NinethDayPricing entity class.\r\n */\r\n export class NinethDayPricingExtensionClass implements INinethDayPricing {\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 EstimatedTax: 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 LeaseCostToOwn: 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 NinetyDayBuyout: 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 LeaseToOwnTotal: 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 NinetyDayBuyoutMarkup: 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 NinetyDayBuyoutNetRld: number;\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.EstimatedTax = (odataObject.EstimatedTax) ? parseFloat(odataObject.EstimatedTax) : 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.LeaseCostToOwn = (odataObject.LeaseCostToOwn) ? parseFloat(odataObject.LeaseCostToOwn) : 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.NinetyDayBuyout = (odataObject.NinetyDayBuyout) ? parseFloat(odataObject.NinetyDayBuyout) : 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.LeaseToOwnTotal = (odataObject.LeaseToOwnTotal) ? parseFloat(odataObject.LeaseToOwnTotal) : 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.NinetyDayBuyoutMarkup = (odataObject.NinetyDayBuyoutMarkup) ? parseFloat(odataObject.NinetyDayBuyoutMarkup) : 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.NinetyDayBuyoutNetRld = (odataObject.NinetyDayBuyoutNetRld) ? parseFloat(odataObject.NinetyDayBuyoutNetRld) : 0;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * PricingTerms entity class.\r\n */\r\n export class PricingTermsExtensionClass implements IPricingTerms {\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 InvoiceAmount: 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 EstimatedTax: 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 SubTotal: 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 FullTermTotalCostWithEstimatedTaxNoDeposit: 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 LastPayment: 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 LastPaymentEstimatedTax: 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 TotalLastPayment: 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 DepositTax: 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 TotalDeposit: 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 NetDeposit: 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 LeaseCostToOwn: 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 LeaseCostToOwnWithEstimatedTax: 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 LeaseToOwnTotal: 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 PeriodicPayment: 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 RecurringPaymentEstimatedTax: 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 TotalRecurringPayment: number;\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.InvoiceAmount = (odataObject.InvoiceAmount) ? parseFloat(odataObject.InvoiceAmount) : 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.EstimatedTax = (odataObject.EstimatedTax) ? parseFloat(odataObject.EstimatedTax) : 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.SubTotal = (odataObject.SubTotal) ? parseFloat(odataObject.SubTotal) : 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.FullTermTotalCostWithEstimatedTaxNoDeposit = (odataObject.FullTermTotalCostWithEstimatedTaxNoDeposit) ? parseFloat(odataObject.FullTermTotalCostWithEstimatedTaxNoDeposit) : 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.LastPayment = (odataObject.LastPayment) ? parseFloat(odataObject.LastPayment) : 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.LastPaymentEstimatedTax = (odataObject.LastPaymentEstimatedTax) ? parseFloat(odataObject.LastPaymentEstimatedTax) : 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.TotalLastPayment = (odataObject.TotalLastPayment) ? parseFloat(odataObject.TotalLastPayment) : 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.DepositTax = (odataObject.DepositTax) ? parseFloat(odataObject.DepositTax) : 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.TotalDeposit = (odataObject.TotalDeposit) ? parseFloat(odataObject.TotalDeposit) : 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.NetDeposit = (odataObject.NetDeposit) ? parseFloat(odataObject.NetDeposit) : 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.LeaseCostToOwn = (odataObject.LeaseCostToOwn) ? parseFloat(odataObject.LeaseCostToOwn) : 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.LeaseCostToOwnWithEstimatedTax = (odataObject.LeaseCostToOwnWithEstimatedTax) ? parseFloat(odataObject.LeaseCostToOwnWithEstimatedTax) : 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.LeaseToOwnTotal = (odataObject.LeaseToOwnTotal) ? parseFloat(odataObject.LeaseToOwnTotal) : 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.PeriodicPayment = (odataObject.PeriodicPayment) ? parseFloat(odataObject.PeriodicPayment) : 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.RecurringPaymentEstimatedTax = (odataObject.RecurringPaymentEstimatedTax) ? parseFloat(odataObject.RecurringPaymentEstimatedTax) : 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.TotalRecurringPayment = (odataObject.TotalRecurringPayment) ? parseFloat(odataObject.TotalRecurringPayment) : 0;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * PricingBase entity class.\r\n */\r\n export class PricingBaseExtensionClass implements IPricingBase {\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 ContractualStartingBalance: 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 EffectiveLeaseBalance: 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 RemainingInvoice: 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 CashPrice: 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 CashPriceMarkup: 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 InitialBalance: 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 InitialCashPrice: 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 TotalLeasePrice: 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 LeaseTermId: 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 PaymentFrequencyId: 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 TermMonths: 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 TotalNumberOfPayments: 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 NumberOfRecurringPayments: 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 RldCashPrice: 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 TotalNetRld: 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 RldCashPriceMarkup: 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 SalesTaxRate: 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 LeaseStatus: 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 ApprovalLimit: number;\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.ContractualStartingBalance = (odataObject.ContractualStartingBalance) ? parseFloat(odataObject.ContractualStartingBalance) : 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.EffectiveLeaseBalance = (odataObject.EffectiveLeaseBalance) ? parseFloat(odataObject.EffectiveLeaseBalance) : 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.RemainingInvoice = (odataObject.RemainingInvoice) ? parseFloat(odataObject.RemainingInvoice) : 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.CashPrice = (odataObject.CashPrice) ? parseFloat(odataObject.CashPrice) : 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.CashPriceMarkup = (odataObject.CashPriceMarkup) ? parseFloat(odataObject.CashPriceMarkup) : 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.InitialBalance = (odataObject.InitialBalance) ? parseFloat(odataObject.InitialBalance) : 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.InitialCashPrice = (odataObject.InitialCashPrice) ? parseFloat(odataObject.InitialCashPrice) : 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.TotalLeasePrice = (odataObject.TotalLeasePrice) ? parseFloat(odataObject.TotalLeasePrice) : 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.LeaseTermId = odataObject.LeaseTermId;\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.PaymentFrequencyId = odataObject.PaymentFrequencyId;\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.TermMonths = odataObject.TermMonths;\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.TotalNumberOfPayments = odataObject.TotalNumberOfPayments;\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.NumberOfRecurringPayments = odataObject.NumberOfRecurringPayments;\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.RldCashPrice = (odataObject.RldCashPrice) ? parseFloat(odataObject.RldCashPrice) : 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.TotalNetRld = (odataObject.TotalNetRld) ? parseFloat(odataObject.TotalNetRld) : 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.RldCashPriceMarkup = (odataObject.RldCashPriceMarkup) ? parseFloat(odataObject.RldCashPriceMarkup) : 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.SalesTaxRate = (odataObject.SalesTaxRate) ? parseFloat(odataObject.SalesTaxRate) : 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.LeaseStatus = odataObject.LeaseStatus;\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.ApprovalLimit = (odataObject.ApprovalLimit) ? parseFloat(odataObject.ApprovalLimit) : 0;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * RetailerFees entity class.\r\n */\r\n export class RetailerFeesExtensionClass implements IRetailerFees {\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 MerchantTransactionTypeName: 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 TransactionTaxAmount: 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 MerchantTransactionTypeId: 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 TransactionAmount: 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 FeeRuleId: number;\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.MerchantTransactionTypeName = odataObject.MerchantTransactionTypeName;\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.TransactionTaxAmount = (odataObject.TransactionTaxAmount) ? parseFloat(odataObject.TransactionTaxAmount) : 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.MerchantTransactionTypeId = odataObject.MerchantTransactionTypeId;\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.TransactionAmount = (odataObject.TransactionAmount) ? parseFloat(odataObject.TransactionAmount) : 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.FeeRuleId = odataObject.FeeRuleId;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * PaymentDueAtSigning entity class.\r\n */\r\n export class PaymentDueAtSigningExtensionClass implements IPaymentDueAtSigning {\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 TotalTax: 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 TotalDueAtSigning: 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 TotalRetailerFees: 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 RetailerFeeTax: 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 RetailerDeliveryFeesTax: 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 RetailerOtherFeesTax: 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 TotalRetailerFeeAmount: 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 InitialPaymentTax: 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 InitialPayment: 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 TotalInitialPayment: 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 TotalRetailerDeliveryFees: 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 TotalRetailerOtherFees: 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 RetailerFees:\r\n IRetailerFees[];\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.TotalTax = (odataObject.TotalTax) ? parseFloat(odataObject.TotalTax) : 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.TotalDueAtSigning = (odataObject.TotalDueAtSigning) ? parseFloat(odataObject.TotalDueAtSigning) : 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.TotalRetailerFees = (odataObject.TotalRetailerFees) ? parseFloat(odataObject.TotalRetailerFees) : 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.RetailerFeeTax = (odataObject.RetailerFeeTax) ? parseFloat(odataObject.RetailerFeeTax) : 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.RetailerDeliveryFeesTax = (odataObject.RetailerDeliveryFeesTax) ? parseFloat(odataObject.RetailerDeliveryFeesTax) : 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.RetailerOtherFeesTax = (odataObject.RetailerOtherFeesTax) ? parseFloat(odataObject.RetailerOtherFeesTax) : 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.TotalRetailerFeeAmount = (odataObject.TotalRetailerFeeAmount) ? parseFloat(odataObject.TotalRetailerFeeAmount) : 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.InitialPaymentTax = (odataObject.InitialPaymentTax) ? parseFloat(odataObject.InitialPaymentTax) : 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.InitialPayment = (odataObject.InitialPayment) ? parseFloat(odataObject.InitialPayment) : 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.TotalInitialPayment = (odataObject.TotalInitialPayment) ? parseFloat(odataObject.TotalInitialPayment) : 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.TotalRetailerDeliveryFees = (odataObject.TotalRetailerDeliveryFees) ? parseFloat(odataObject.TotalRetailerDeliveryFees) : 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.TotalRetailerOtherFees = (odataObject.TotalRetailerOtherFees) ? parseFloat(odataObject.TotalRetailerOtherFees) : 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.RetailerFees = undefined;\r\n if (odataObject.RetailerFees) {\r\n this.RetailerFees = [];\r\n for (var i = 0; i < odataObject.RetailerFees.length; i++) {\r\n if (odataObject.RetailerFees[i]) {\r\n if (odataObject.RetailerFees[i]['@odata.type']) {\r\n var className: string = odataObject.RetailerFees[i]['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.RetailerFees[i] = new EntityClasses[className](odataObject.RetailerFees[i]);\r\n }\r\n } else {\r\n this.RetailerFees[i] = new RetailerFeesExtensionClass(odataObject.RetailerFees[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.RetailerFees[i] = undefined;\r\n }\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n /**\r\n * GetPricing entity class.\r\n */\r\n export class GetPricingExtensionClass implements IGetPricing {\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 NinetyDay:\r\n INinethDayPricing;\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 Term:\r\n IPricingTerms;\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 Base:\r\n IPricingBase;\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 PaymentDueAtSigning:\r\n IPaymentDueAtSigning;\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 if (odataObject.NinetyDay === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.NinetyDay = undefined;\r\n } else if (odataObject.NinetyDay['@odata.type'] === undefined) {\r\n this.NinetyDay = new NinethDayPricingExtensionClass(odataObject.NinetyDay);\r\n } else {\r\n var className: string = odataObject.NinetyDay['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.NinetyDay = new EntityClasses[className](odataObject.NinetyDay);\r\n }\r\n }\r\n\r\n\r\n if (odataObject.Term === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Term = undefined;\r\n } else if (odataObject.Term['@odata.type'] === undefined) {\r\n this.Term = new PricingTermsExtensionClass(odataObject.Term);\r\n } else {\r\n var className: string = odataObject.Term['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.Term = new EntityClasses[className](odataObject.Term);\r\n }\r\n }\r\n\r\n\r\n if (odataObject.Base === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Base = undefined;\r\n } else if (odataObject.Base['@odata.type'] === undefined) {\r\n this.Base = new PricingBaseExtensionClass(odataObject.Base);\r\n } else {\r\n var className: string = odataObject.Base['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.Base = new EntityClasses[className](odataObject.Base);\r\n }\r\n }\r\n\r\n\r\n if (odataObject.PaymentDueAtSigning === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.PaymentDueAtSigning = undefined;\r\n } else if (odataObject.PaymentDueAtSigning['@odata.type'] === undefined) {\r\n this.PaymentDueAtSigning = new PaymentDueAtSigningExtensionClass(odataObject.PaymentDueAtSigning);\r\n } else {\r\n var className: string = odataObject.PaymentDueAtSigning['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.PaymentDueAtSigning = new EntityClasses[className](odataObject.PaymentDueAtSigning);\r\n }\r\n }\r\n\r\n\r\n }\r\n }\r\n\r\n /**\r\n * GetPricingInformationResponse entity class.\r\n */\r\n export class GetPricingInformationResponseExtensionClass implements IGetPricingInformationResponse {\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 PricingInformation:\r\n IGetPricing;\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 ProgressiveErrorDetails:\r\n IProgressiveErrorDetails;\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 CRTMessage: 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 CRTStatus: boolean;\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 IsNoContent: boolean;\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 if (odataObject.PricingInformation === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.PricingInformation = undefined;\r\n } else if (odataObject.PricingInformation['@odata.type'] === undefined) {\r\n this.PricingInformation = new GetPricingExtensionClass(odataObject.PricingInformation);\r\n } else {\r\n var className: string = odataObject.PricingInformation['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.PricingInformation = new EntityClasses[className](odataObject.PricingInformation);\r\n }\r\n }\r\n\r\n\r\n if (odataObject.ProgressiveErrorDetails === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ProgressiveErrorDetails = undefined;\r\n } else if (odataObject.ProgressiveErrorDetails['@odata.type'] === undefined) {\r\n this.ProgressiveErrorDetails = new ProgressiveErrorDetailsExtensionClass(odataObject.ProgressiveErrorDetails);\r\n } else {\r\n var className: string = odataObject.ProgressiveErrorDetails['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.ProgressiveErrorDetails = new EntityClasses[className](odataObject.ProgressiveErrorDetails);\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.CRTMessage = odataObject.CRTMessage;\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.CRTStatus = odataObject.CRTStatus;\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.IsNoContent = odataObject.IsNoContent;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * MFILeaseLookupByCustomerResponse entity class.\r\n */\r\n export class MFILeaseLookupByCustomerResponseExtensionClass implements IMFILeaseLookupByCustomerResponse {\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 LeaseLookupByCustomer:\r\n ILeaseLookupByCustomerResponse;\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 if (odataObject.LeaseLookupByCustomer === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.LeaseLookupByCustomer = undefined;\r\n } else if (odataObject.LeaseLookupByCustomer['@odata.type'] === undefined) {\r\n this.LeaseLookupByCustomer = new LeaseLookupByCustomerResponseExtensionClass(odataObject.LeaseLookupByCustomer);\r\n } else {\r\n var className: string = odataObject.LeaseLookupByCustomer['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.LeaseLookupByCustomer = new EntityClasses[className](odataObject.LeaseLookupByCustomer);\r\n }\r\n }\r\n\r\n\r\n }\r\n }\r\n\r\n /**\r\n * MFIGetPaymentEstimateResponse entity class.\r\n */\r\n export class MFIGetPaymentEstimateResponseExtensionClass implements IMFIGetPaymentEstimateResponse {\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 PaymentEstimates:\r\n IPaymentEstimateResponse;\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 if (odataObject.PaymentEstimates === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.PaymentEstimates = undefined;\r\n } else if (odataObject.PaymentEstimates['@odata.type'] === undefined) {\r\n this.PaymentEstimates = new PaymentEstimateResponseExtensionClass(odataObject.PaymentEstimates);\r\n } else {\r\n var className: string = odataObject.PaymentEstimates['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.PaymentEstimates = new EntityClasses[className](odataObject.PaymentEstimates);\r\n }\r\n }\r\n\r\n\r\n }\r\n }\r\n\r\n /**\r\n * MFISubmitCartInformationResponse entity class.\r\n */\r\n export class MFISubmitCartInformationResponseExtensionClass implements IMFISubmitCartInformationResponse {\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 SubmitCartInformation:\r\n ISubmitCartInformationResponse;\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 if (odataObject.SubmitCartInformation === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.SubmitCartInformation = undefined;\r\n } else if (odataObject.SubmitCartInformation['@odata.type'] === undefined) {\r\n this.SubmitCartInformation = new SubmitCartInformationResponseExtensionClass(odataObject.SubmitCartInformation);\r\n } else {\r\n var className: string = odataObject.SubmitCartInformation['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.SubmitCartInformation = new EntityClasses[className](odataObject.SubmitCartInformation);\r\n }\r\n }\r\n\r\n\r\n }\r\n }\r\n\r\n /**\r\n * MFIGetLeaseContractResponse entity class.\r\n */\r\n export class MFIGetLeaseContractResponseExtensionClass implements IMFIGetLeaseContractResponse {\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 LeaseContacts:\r\n IGetLeaseContractResponse;\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 if (odataObject.LeaseContacts === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.LeaseContacts = undefined;\r\n } else if (odataObject.LeaseContacts['@odata.type'] === undefined) {\r\n this.LeaseContacts = new GetLeaseContractResponseExtensionClass(odataObject.LeaseContacts);\r\n } else {\r\n var className: string = odataObject.LeaseContacts['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.LeaseContacts = new EntityClasses[className](odataObject.LeaseContacts);\r\n }\r\n }\r\n\r\n\r\n }\r\n }\r\n\r\n /**\r\n * MFIOrderConfirmationResponse entity class.\r\n */\r\n export class MFIOrderConfirmationResponseExtensionClass implements IMFIOrderConfirmationResponse {\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 OrderConfirmation:\r\n IOrderConfirmationResponse;\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 if (odataObject.OrderConfirmation === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.OrderConfirmation = undefined;\r\n } else if (odataObject.OrderConfirmation['@odata.type'] === null) {\r\n this.OrderConfirmation = new OrderConfirmationResponseExtensionClass(odataObject.OrderConfirmation);\r\n } else {\r\n var className: string = odataObject.OrderConfirmation['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.OrderConfirmation = new EntityClasses[className](odataObject.OrderConfirmation);\r\n }\r\n }\r\n\r\n\r\n }\r\n }\r\n\r\n /**\r\n * MFIDeleteTransactionResponse entity class.\r\n */\r\n export class MFIDeleteTransactionResponseExtensionClass implements IMFIDeleteTransactionResponse {\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 Transaction:\r\n IDeleteTransactionResponse;\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 if (odataObject.Transaction === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Transaction = undefined;\r\n } else if (odataObject.Transaction['@odata.type'] === undefined) {\r\n this.Transaction = new DeleteTransactionResponseExtensionClass(odataObject.Transaction);\r\n } else {\r\n var className: string = odataObject.Transaction['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.Transaction = new EntityClasses[className](odataObject.Transaction);\r\n }\r\n }\r\n\r\n\r\n }\r\n }\r\n\r\n /**\r\n * MFIGetPricingInformationResponse entity class.\r\n */\r\n export class MFIGetPricingInformationResponseExtensionClass implements IMFIGetPricingInformationResponse {\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 PricingInformation:\r\n IGetPricingInformationResponse;\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 if (odataObject.PricingInformation === null) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.PricingInformation = undefined;\r\n } else if (odataObject.PricingInformation['@odata.type'] === undefined) {\r\n this.PricingInformation = new GetPricingInformationResponseExtensionClass(odataObject.PricingInformation);\r\n } else {\r\n var className: string = odataObject.PricingInformation['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.PricingInformation = new EntityClasses[className](odataObject.PricingInformation);\r\n }\r\n }\r\n\r\n\r\n }\r\n }\r\n","import Cookies from 'universal-cookie';\r\n\r\nconst cookies = new Cookies();\r\n\r\n// use this function to get cookie\r\nexport function getCookie(cookieName: string): string | undefined {\r\n return cookies.get(cookieName);\r\n}\r\n\r\n// use this function to set cookie\r\nexport function setCookie(cookieName: string, cookieValue: any, options?: any): void {\r\n cookies.set(cookieName, cookieValue, options);\r\n}\r\n\r\n// use this function to remove cookie\r\nexport function removeCookie(cookieName: string, options?: any): void {\r\n cookies.remove(cookieName, options);\r\n}","export enum HeaderLevelAttributes {\r\n EcomFirstName = 'Ecom_CustomerFirstName',\r\n EcomLastName = 'Ecom_CustomerlastName',\r\n EcomPhone = 'Ecom_CustomerPhone',\r\n EcomShippingAddress2 = 'Ecom_shippingAddress2',\r\n EcomBilling = 'Ecom_isBillingSameAsShipping',\r\n EcomCardPayment = 'Ecom_cardPaymentInfo',\r\n EcomPromoCode = 'Ecom_PromoCodes',\r\n EcomCardPrefix = 'Ecom_cardPrefix',\r\n EmailCheckbox = 'email_checkbox',\r\n EcomCashback = 'Ecom_Cashback',\r\n EcomMonthly = 'Ecom_MonthlyAmount',\r\n EcomFinance = 'Ecom_FinanceOption',\r\n EcomPlanId = 'Ecom_FinancePlanId',\r\n EcomFinanceTotal = 'Ecom_FinanceAmount',\r\n EcomProgressiveCartId = 'Ecom_ProgressiveCartId',\r\n EcomProgressiveApplicationId = 'Ecom_ProgressiveApplicationId',\r\n EcomProgressiveInitialPayment = 'Ecom_ProgressiveInitialPayment',\r\n EcomProgressiveTax = 'Ecom_ProgressiveTax',\r\n EcomProgressiveTerm = 'Ecom_ProgressiveTerm',\r\n EcomProgressiveLeaseToOwnCost = 'Ecom_ProgressiveLeaseToOwnCost',\r\n EcomProgressiveTotalMonthLeaseToOwnCost = 'Ecom_ProgressiveTotalMonthLeaseToOwnCost'\r\n}\r\nexport enum LineLevelAttributeName {\r\n EcomRevenueCategory = 'Ecom_RevenueCategory',\r\n EcomShippingMessage = 'Ecom_ShippingMessage',\r\n EcomShippingTitle = 'Ecom_ShippingTitle',\r\n EcomVariantId = 'Ecom_VariantId',\r\n BrandName = 'brandName',\r\n CategoryName = 'categoryName',\r\n EcomProductType = 'Ecom_ProductType',\r\n EcomDeliveryService = 'Ecom_DeliveryService',\r\n EcomProductNameWithBrand = 'Ecom_ProductNameWithBrand',\r\n ATPZipcode = 'Ecom_DSZipCode',\r\n InventLocationId = 'Ecom_InventLocationId',\r\n DeliveryDate = 'Ecom_DeliveryDate',\r\n EcomDSZipCode = 'Ecom_DSZipCode',\r\n EcomDSDeliveryScheduleStatus = 'Ecom_DSDeliveryScheduleStatus',\r\n EcomWillCallDateExists = 'Ecom_WillCallDateExists',\r\n EcomDSZoneLineId = 'Ecom_DSZoneLineId',\r\n EcomDeliveryTime = 'Ecom_DeliveryTime',\r\n EcomStartTime = 'Ecom_StartTime',\r\n EcomEndTime = 'Ecom_EndTime',\r\n EcomDSZone = 'Ecom_DSZone'\r\n}","import * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\n/**\r\n * CheckoutSkeleton Input Action\r\n */\r\nexport class CheckoutSkeletonInput implements Msdyn365.IActionInput {\r\n constructor() {}\r\n\r\n public getCacheKey = () => `CheckoutSkeleton`;\r\n public getCacheObjectType = () => 'CheckoutSkeleton';\r\n public dataCacheType = (): Msdyn365.CacheType => 'application';\r\n}\r\n\r\nexport interface ICheckoutSkeletonData {\r\n showPaymentSkeleton: boolean | undefined;\r\n expressSkeleton: boolean;\r\n expressPhoneNotavailable: boolean;\r\n expressLoaderRunning: boolean;\r\n showDeliverySkeleton: boolean;\r\n showCustomerInfoSkeleton: boolean;\r\n isPaymentApiFailed: boolean;\r\n}\r\n\r\nconst createInput = (args: Msdyn365.ICreateActionContext): Msdyn365.IActionInput => {\r\n return new CheckoutSkeletonInput();\r\n};\r\n\r\n\r\nasync function action(input: CheckoutSkeletonInput, ctx: Msdyn365.IActionContext): Promise {\r\n return { showPaymentSkeleton: true, expressSkeleton: true, expressPhoneNotavailable: true, expressLoaderRunning: true, showDeliverySkeleton: true, showCustomerInfoSkeleton: true, isPaymentApiFailed: false };\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >action,\r\n id: 'CheckoutSkeleton',\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 Msdyn365 from '@msdyn365-commerce/core';\r\nimport { mFIATPInventoryDynamicAsync } from '../actions/CoreProductDataActionExtension.g';\r\nimport {\r\n IMFIATPInventoryDynamicResponse, IMFICartLine, IMFICLDeliveryScheduleParameters\r\n} from '../actions/CoreProductDataServiceEntities.g';\r\n\r\n/**\r\n * MfiAtpInventory Input Action\r\n */\r\nexport class MfiAtpInventoryInput implements Msdyn365.IActionInput {\r\n // MfiAtpInventory: Construct the input needed to run the action\r\n public inventoryType: string;\r\n public weeks: number;\r\n public storeId: string;\r\n public page: string;\r\n public requestedDate: string;\r\n public zipCode: string;\r\n public itemLines: IMFICartLine[];\r\n\r\n constructor(inventoryType: string, weeks: number, storeId: string, page: string, requestedDate: string, zipCode: string, itemLines: IMFICartLine[]) {\r\n this.inventoryType = inventoryType;\r\n this.weeks = weeks;\r\n this.storeId = storeId;\r\n this.page = page;\r\n this.requestedDate = requestedDate;\r\n this.zipCode = zipCode;\r\n this.itemLines = itemLines;\r\n }\r\n\r\n // MfiAtpInventory: 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 = () => `MfiAtpInventory`;\r\n public getCacheObjectType = () => 'MfiAtpInventory';\r\n public dataCacheType = (): Msdyn365.CacheType => 'none';\r\n}\r\n\r\n// MfiAtpInventory: Create a data model here or import one to capture the response of the action\r\nexport interface IMfiAtpInventoryData {\r\n text: string;\r\n}\r\n\r\n\r\n/**\r\n * MfiAtpInventory: Use this function to call your action and process the results as needed\r\n */\r\nexport async function mfiAtpInventoryAction(input: MfiAtpInventoryInput, ctx: Msdyn365.IActionContext): Promise {\r\n // const apiSettings = Msdyn365.msdyn365Commerce.apiSettings;\r\n\r\n const requestBody: IMFICLDeliveryScheduleParameters = {\r\n InventoryType: input.inventoryType,\r\n Weeks: input.weeks,\r\n StoreId: input.storeId,\r\n Page: input.page,\r\n RequestedDate: input.requestedDate,\r\n ZipCode: input.zipCode,\r\n ItemLines: input.itemLines\r\n };\r\n\r\n const response = await mFIATPInventoryDynamicAsync({ callerContext: ctx }, requestBody);\r\n return response;\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >mfiAtpInventoryAction,\r\n // MfiAtpInventory: Give your data action a unique id\r\n id: 'MfiAtpInventory'\r\n // input: createInput\r\n // MfiAtpInventory: Uncomment the below line if this is a meant to be a batched data action\r\n // isBatched: true\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 { IAny, ICommerceApiSettings, ICoreContext, ICreateActionContext, IGeneric, IRequestContext } from '@msdyn365-commerce/core';\r\nimport {\r\n AsyncResult, CartLine, CommerceListLine, ProductDimension,\r\n ProductDimensionType, ProductSearchResult, SimpleProduct\r\n} from '@msdyn365-commerce/retail-proxy';\r\n\r\nimport { ProductDetailsCriteria, InventoryLevels, ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { variantQueryStringName } from '../../Utilities/constants';\r\n// import { parseSearchData } from '@msdyn365-commerce-modules/retail-actions/src/utilities/input-data-parser';\r\n\r\nexport const wrapInResolvedAsyncResult = (input: T | null | undefined): AsyncResult => {\r\n return >{\r\n status: 'SUCCESS',\r\n result: input,\r\n metadata: {}\r\n };\r\n};\r\n\r\nexport const wrapInRejectedAsyncResult = (input: T | null | undefined): AsyncResult => {\r\n return >{\r\n status: 'FAILED',\r\n result: input,\r\n metadata: {}\r\n };\r\n};\r\n\r\n\r\n/**\r\n * Utility function to extract the active productId in the following priority:\r\n * First query param (productId), then UrlToken (itemId), then module config.\r\n * @param inputData - The Action Input data.\r\n * @returns Productid or undefined.\r\n */\r\nexport const getSelectedProductIdFromActionInput = (inputData: ICreateActionContext>): string | undefined => {\r\n const context = inputData.requestContext;\r\n const variantId = context.app.config.queryBasedVariantSelection ? getQueryParamsFromQueryByName(context.url.requestUrl, variantQueryStringName) : undefined;\r\n\r\n if (variantId) {\r\n return variantId;\r\n } else if (context.query?.productId) {\r\n return context.query.productId;\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Exsiting code.\r\n } else if (context.urlTokens && inputData.requestContext.urlTokens.itemId && inputData.requestContext.urlTokens.pageType === 'Product') {\r\n return context.urlTokens.itemId;\r\n } else if (inputData && inputData.config && inputData.config.productId) {\r\n return inputData.config.productId;\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const getQueryParamsFromQueryByName = (inputUrl: URL, queryParamName: string) => {\r\n const urlWithIgnoredCase = new URL(inputUrl.toString().toLocaleLowerCase());\r\n const urlParameters = urlWithIgnoredCase.searchParams;\r\n const value = urlParameters.get(queryParamName.trim().toLocaleLowerCase());\r\n if (!value || Number.isNaN(Number(value))) {\r\n return undefined;\r\n }\r\n return value;\r\n};\r\n/**\r\n * Generates a Image URL based on data return from retail server.\r\n * @param imageUrl The image url returned by Retail Server.\r\n * @param ctx The request context.\r\n * @param apiSettings\r\n */\r\nexport const generateImageUrl = (imageUrl: string | undefined, apiSettings: ICommerceApiSettings): string | undefined => {\r\n if (imageUrl) {\r\n // Images hosted in CMS include schema\r\n if (imageUrl.startsWith('http')) {\r\n return imageUrl;\r\n }\r\n\r\n // Images hosted in Retail Server must be encoded and joined with the base image url\r\n return apiSettings.baseImageUrl + encodeURIComponent(imageUrl);\r\n }\r\n\r\n // D365Commerce.telemetry.warning(`Unable to generate a proper Image URL for Product: ${product.RecordId}`);\r\n return undefined;\r\n\r\n};\r\n\r\n/**\r\n * Represents app configuration for dimensions.\r\n */\r\nexport interface IDimensionsConfig {\r\n dimensionsAsSwatchType?: DimensionTypes[];\r\n dimensionsInProductCard?: DimensionTypes[];\r\n inventoryLevel?: InventoryLevels;\r\n dimensionToPreSelectInProductCard?: DimensionTypes;\r\n}\r\n\r\n/**\r\n * Represents app configuration for dimensions.\r\n */\r\nexport interface IDimensionsApp {\r\n config: IDimensionsConfig;\r\n}\r\n\r\n/**\r\n * Represents product dimension types.\r\n */\r\nexport enum DimensionTypes {\r\n none = 'none',\r\n color = 'color',\r\n configuration = 'configuration',\r\n size = 'size',\r\n style = 'style'\r\n}\r\n\r\n/**\r\n * Defines display configuration types.\r\n */\r\nexport enum DimensionSwatchDisplayTypes {\r\n default = 'default',\r\n productCard = 'productCard'\r\n}\r\n\r\n/**\r\n * Checks if rendering the particular dimensions is allowed.\r\n * @param dimensionType - Dimension to be displayed.\r\n * @param context - Core application context.\r\n * @param displayType - The swatch location, the component from which it comes from.\r\n * @returns Updates the state with new product page url.\r\n */\r\nexport const checkIfShouldDisplayAsSwatch = (\r\n dimensionType: DimensionTypes,\r\n context: ICoreContext,\r\n displayType: DimensionSwatchDisplayTypes = DimensionSwatchDisplayTypes.default): boolean => {\r\n\r\n // Additional checks for the product card since it has a separate config setting.\r\n if (displayType === DimensionSwatchDisplayTypes.productCard) {\r\n const dimensionsToDisplayOnProductCard = context.app.config.dimensionsInProductCard;\r\n if (!ArrayExtensions.hasElements(dimensionsToDisplayOnProductCard) ||\r\n dimensionsToDisplayOnProductCard.includes(DimensionTypes.none) ||\r\n !dimensionsToDisplayOnProductCard.includes(dimensionType)) {\r\n return false;\r\n }\r\n }\r\n\r\n const dimensionsToDisplayAsSwatch = context.app.config.dimensionsAsSwatchType;\r\n return ArrayExtensions.hasElements(dimensionsToDisplayAsSwatch) &&\r\n !dimensionsToDisplayAsSwatch.includes(DimensionTypes.none) &&\r\n dimensionsToDisplayAsSwatch.includes(dimensionType);\r\n};\r\n\r\n/**\r\n * Generates an image URL for a swatch.\r\n * @param imageUrl - The image url returned by Retail Server.\r\n * @param apiSettings - The request context.\r\n * @returns Full image url.\r\n */\r\nexport const generateSwatchImageUrl = (imageUrl: string, apiSettings: ICommerceApiSettings): string => {\r\n if (imageUrl.startsWith('http')) {\r\n return imageUrl;\r\n }\r\n\r\n return apiSettings.baseImageUrl + encodeURIComponent(imageUrl);\r\n};\r\n\r\n/**\r\n * Generates a Image URL for a product based on data return from retail server.\r\n * @param product The Product returned by Retail Server.\r\n * @param ctx The request context.\r\n * @param apiSettings\r\n */\r\nexport const generateProductImageUrl = (\r\n product: SimpleProduct | ProductSearchResult,\r\n apiSettings: ICommerceApiSettings\r\n): string | undefined => {\r\n return generateImageUrl(product.PrimaryImageUrl, apiSettings);\r\n};\r\n\r\n/**\r\n * Creates a CartLine object from the passed data.\r\n * @param product The product.\r\n * @param quantity The quantity.\r\n * @param catalogId The catalog.\r\n */\r\nexport const buildCartLine = (product: SimpleProduct, quantity?: number, catalogId?: number): CartLine => {\r\n return {\r\n CatalogId: catalogId || 0,\r\n Description: product.Description,\r\n\r\n // TODO: Investigate this value and what it represents\r\n EntryMethodTypeValue: 3,\r\n ItemId: product.ItemId,\r\n ProductId: product.RecordId,\r\n Quantity: quantity || 1,\r\n TrackingId: '',\r\n UnitOfMeasureSymbol: product.DefaultUnitOfMeasure\r\n };\r\n};\r\n\r\n/**\r\n * Creates a CommerceListLine (also know as WishlistLine) object from the passed data.\r\n * @param productId The RecordId of the Product to be added.\r\n * @param customerId The account number of the customer.\r\n * @param wishlistId The Id of the commerce list.\r\n */\r\nexport const buildWishlistLine = (productId: number, customerId: string, wishlistId: number): CommerceListLine => {\r\n return {\r\n CommerceListId: wishlistId,\r\n ProductId: productId,\r\n CustomerId: customerId\r\n };\r\n};\r\n\r\n/**\r\n * Utility function to prepare the product details criteria before getting full product:\r\n * @param inputData The Action Input data\r\n */\r\nexport const getProductDetailsCriteriaFromActionInput = (inputData: ICreateActionContext>): ProductDetailsCriteria => {\r\n if (inputData && inputData.config) {\r\n return {\r\n getPrice: !inputData.config.hidePrice,\r\n getRating: !inputData.config.hideRating\r\n };\r\n }\r\n return {\r\n getPrice: true,\r\n getRating: true\r\n };\r\n};\r\n\r\n/**\r\n * Transforms search text into the expected 'search terms' format, expected by refiner APIs.\r\n * @param searchText Free-form text used for searching for products or categories of products.\r\n */\r\nexport const ensureSearchTextIsFormedProperly = (searchText: string): string => {\r\n const prefix = searchText.startsWith('\\'') ? '' : '\\'';\r\n const suffix = searchText.endsWith('\\'') ? '' : '\\'';\r\n return `${prefix}${searchText}${suffix}`;\r\n};\r\n\r\nexport const ensureSafeSearchText = (searchText: string): string => {\r\n return searchText?.replace(/[^\\d\\sA-Za-z]+/g, '');\r\n};\r\n\r\nexport const buildCacheKey = (base: string, apiSettings: ICommerceApiSettings, locale?: string): string => {\r\n return `${base}-chanId:${apiSettings.channelId}-catId:${apiSettings.catalogId}${locale ? `-${locale}` : ''}`;\r\n};\r\n\r\nexport const buildCacheKeyWithUrlTokens = (base: string, requestContext: IRequestContext): string => {\r\n const urlTokens = requestContext.urlTokens;\r\n const defaultCacheKey = buildCacheKey(base, requestContext.apiSettings, requestContext.locale);\r\n return urlTokens ? `${defaultCacheKey}-${urlTokens.itemId}-${urlTokens.recordId}-${urlTokens.pageType}` : defaultCacheKey;\r\n};\r\n\r\n/**\r\n * Generates a key from set of arguments as inputs.\r\n *\r\n * @param args Argument list of pivots to generate key from.\r\n * @param handler Handler function for null/undefined values.\r\n */\r\n\r\ntype TKeyTypes = string | number | boolean | null | undefined;\r\ninterface IGenerateKeyOptions {\r\n separator?: string;\r\n handler?(input: null | undefined): string;\r\n}\r\nexport const generateKey = (args: TKeyTypes[], options?: IGenerateKeyOptions): string => {\r\n const { handler, separator }: IGenerateKeyOptions = { ...{ separator: '-', handler: undefined }, ...(options || {}) };\r\n return args\r\n .map(arg => {\r\n if (arg === null || arg === undefined) {\r\n if (handler) {\r\n return handler(arg);\r\n }\r\n }\r\n return arg;\r\n })\r\n .join(separator);\r\n};\r\n\r\n/**\r\n * Gets the fall back image url for a variant image.\r\n * @param itemId Item id of a product.\r\n * @param apiSettings Api setting from request context.\r\n */\r\nexport const getFallbackImageUrl = (itemId: string | undefined, apiSettings: ICommerceApiSettings): string | undefined => {\r\n if (!itemId) {\r\n return '';\r\n }\r\n\r\n const parsedItemId = itemId.trim().split(' ')[0];\r\n\r\n const productUrl = `Products/${parsedItemId}_000_001.png`;\r\n return generateImageUrl(productUrl, apiSettings);\r\n};\r\n\r\n/**\r\n * Converts retail proxy product dimension type to display dimension type.\r\n * @param productDimensionType - Product dimension type from retail proxy.\r\n * @returns Local dimension type.\r\n */\r\nexport const convertProductDimensionTypeToDimensionTypes = (productDimensionType: ProductDimensionType): DimensionTypes => {\r\n switch (productDimensionType) {\r\n case ProductDimensionType.Color:\r\n return DimensionTypes.color;\r\n case ProductDimensionType.Configuration:\r\n return DimensionTypes.configuration;\r\n case ProductDimensionType.Size:\r\n return DimensionTypes.size;\r\n case ProductDimensionType.Style:\r\n return DimensionTypes.style;\r\n default:\r\n return DimensionTypes.none;\r\n }\r\n};\r\n\r\n/**\r\n * Converts display dimension type to retail proxy product dimension type.\r\n * @param dimensionType - Local dimension type.\r\n * @returns Product dimension type from retail proxy.\r\n */\r\nexport const convertDimensionTypeToProductDimensionType = (dimensionType: DimensionTypes): ProductDimensionType => {\r\n switch (dimensionType) {\r\n case DimensionTypes.color:\r\n return ProductDimensionType.Color;\r\n case DimensionTypes.configuration:\r\n return ProductDimensionType.Configuration;\r\n case DimensionTypes.size:\r\n return ProductDimensionType.Size;\r\n case DimensionTypes.style:\r\n return ProductDimensionType.Style;\r\n default:\r\n return ProductDimensionType.None;\r\n }\r\n};\r\n\r\n/**\r\n * Sets dimensions to url.\r\n * @param inputUrl - Url to update.\r\n * @param productDimensions - Dimensions to set.\r\n */\r\nexport const setDimensionValuesToQuery = (inputUrl: URL, productDimensions: ProductDimension[]): void => {\r\n for (const dimension of productDimensions) {\r\n inputUrl.searchParams.set(\r\n convertProductDimensionTypeToDimensionTypes(dimension.DimensionTypeValue), dimension.DimensionValue?.Value ?? '');\r\n }\r\n\r\n window.history?.replaceState(window.history.state, '', inputUrl.toString()?.replace(inputUrl.host, window.location.host));\r\n};\r\n\r\n/**\r\n * Retrieves dimension value stored in url.\r\n * @param urlParameters - Url parameters.\r\n * @param productDimensionType - The dimension type to retrieve.\r\n * @returns Product dimension item.\r\n */\r\nconst parseDimensionFromUrl = (urlParameters: URLSearchParams, productDimensionType: ProductDimensionType): ProductDimension | undefined => {\r\n const localDimensionType = convertProductDimensionTypeToDimensionTypes(productDimensionType);\r\n const value = urlParameters.get(localDimensionType);\r\n if (!value) {\r\n return undefined;\r\n }\r\n return {\r\n DimensionTypeValue: productDimensionType,\r\n DimensionValue: {\r\n RecordId: 0,\r\n Value: value\r\n }\r\n };\r\n};\r\n\r\n/**\r\n * Retrieves all dimensions from URL.\r\n * @param urlParameters - Url parameters.\r\n * @returns Product dimensions stored in url.\r\n */\r\nconst parseDimensionsFromUrl = (urlParameters: URLSearchParams): ProductDimension[] => {\r\n const dimensionsToParse: ProductDimensionType[] = [\r\n ProductDimensionType.Color,\r\n ProductDimensionType.Configuration,\r\n ProductDimensionType.Size,\r\n ProductDimensionType.Style\r\n ];\r\n const parsedDimensions = dimensionsToParse.map(dimension => parseDimensionFromUrl(urlParameters, dimension));\r\n return ArrayExtensions.validValues(parsedDimensions);\r\n};\r\n\r\n/**\r\n * Utility function to extract the dimension values from input url querystring.\r\n * @param inputUrl - The request url.\r\n * @returns The selected dimension values.\r\n */\r\nexport const getDimensionValuesFromQuery = (inputUrl: URL): ProductDimension[] => {\r\n const urlWithIgnoredCase = new URL(inputUrl.toString().toLocaleLowerCase());\r\n const urlParameters = urlWithIgnoredCase.searchParams;\r\n const dimensions: ProductDimension[] = parseDimensionsFromUrl(urlParameters);\r\n return dimensions;\r\n};\r\n","import MsDyn365, { IActionContext, IAny, ICoreContext, IGeneric } from '@msdyn365-commerce/core';\r\nimport { AttributeValue, CartLine } from '@msdyn365-commerce/retail-proxy';\r\nimport dayjs from 'dayjs';\r\nimport Cookies from 'universal-cookie';\r\nimport { IMFIGetBonusCouponsDetailsResponse } from '../../../actions/BonusItemDataServiceEntities.g';\r\nimport { IMFICartLine, IMFICLDeliveryScheduleParameters } from '../../../actions/CoreProductDataServiceEntities.g';\r\nimport { hasArray } from '../../../Utilities/emtpyChecker';\r\nimport _getDeliveryByMessage from '../../../Utilities/get-delivery-by-message';\r\nimport { _getSoonestDeliveryDate } from '../../../Utilities/product-search-result-utils';\r\nimport { IProductBonusItems } from '../mfrm-cart';\r\nimport { IMfrmCartData } from '../mfrm-cart.data';\r\nimport { IMfrmCartProps } from '../mfrm-cart.props.autogenerated';\r\nimport { IMFIATPInventoryEntityPLP, IMFIATPInventoryPLPResponse } from '../../../actions/BatchCoreProductDataServiceEntities.g';\r\nimport fetchCoreDeliveryListAction, { FetchCoreDeliveryListInput } from '../../../actions/fetch-core-delivery-list.action';\r\nimport { IMFIATPInventoryEntityPLPEx } from '../../../Utilities/get-core-delivery-batch';\r\nimport { DeliveryDateDetails, DeliveryModes } from '../../../Utilities/enum';\r\nimport { changePhoneFormatForAPI, validateZipCode } from '../../../Utilities/checkout-utils';\r\nexport interface IBasketCookieCartInfo {\r\n productId: number;\r\n itemId: string;\r\n quantity: number;\r\n}\r\n\r\nexport interface IBasketCookie {\r\n firstName?: string;\r\n lastName?: string;\r\n email?: string;\r\n phoneNumber?: string;\r\n address1?: string;\r\n address2?: string;\r\n cartId?: string;\r\n selectedDeliveryService?: number;\r\n EmailMeCheckbox?: boolean;\r\n cartDataInfo?: IBasketCookieCartInfo[];\r\n}\r\n\r\nexport interface IProductDetails {\r\n typeOfProduct?: string;\r\n productQuantity?: string[];\r\n quantity?: string;\r\n subTotal?: string;\r\n}\r\n\r\nexport interface ICartProductUrl {\r\n productImageUrl?: string[];\r\n productURL?: string[];\r\n cartUrl?: string;\r\n}\r\n\r\nexport interface IProductDetailsData {\r\n quantity?: number | undefined;\r\n subTotal?: number | undefined;\r\n productQuantity?: string[];\r\n productSize?: string[];\r\n productIDsArray?: string[];\r\n productNameArray?: string[];\r\n productPriceArray?: string[];\r\n variantRecord?: (string | undefined)[];\r\n productCatgoryArray?: (string | undefined)[];\r\n productBrandName?: (string | undefined)[];\r\n productDiscountArray?: (string | undefined)[];\r\n cartProductPriceArray?: string[];\r\n}\r\n\r\nexport const isOneOfChildBonusCoupons = (discountCode: string, appliedCoupon: string) => {\r\n if (MsDyn365.isBrowser) {\r\n const getLocalstorageBonusCoupons = localStorage.getItem('bonusCouponsDetail');\r\n if (getLocalstorageBonusCoupons) {\r\n const bonusCouponsArray: IMFIGetBonusCouponsDetailsResponse[] =\r\n getLocalstorageBonusCoupons && JSON.parse(getLocalstorageBonusCoupons);\r\n // props.data.cartLine.DiscountLines && props.data.cartLine.DiscountLines.map((userDefinePromo) => {\r\n for (const bonusCoupons of bonusCouponsArray) {\r\n // bonusCouponsArray.map((bonusCoupons) => {\r\n if (bonusCoupons.BonusCoupons) {\r\n for (const coupons of bonusCoupons.BonusCoupons) {\r\n // bonusCoupons.BonusCoupons?.map((coupons) => {\r\n if (coupons.BonusCoupon === appliedCoupon && coupons.ChildCoupons) {\r\n for (const childCoupons of coupons.ChildCoupons) {\r\n // coupons.ChildCoupons?.map((childCoupons) => {\r\n if (childCoupons === discountCode) {\r\n return true;\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 return false;\r\n};\r\n// VSI Customization - START\r\nconst getItemLines = (itemId: string | undefined, quantity: number, recordId: number) => {\r\n const itemLines: IMFICartLine = {\r\n ItemId: itemId,\r\n Quantity: quantity,\r\n VariantRecordId: recordId.toString()\r\n };\r\n return itemLines;\r\n};\r\n\r\nconst _callAtpCallProductAndOOM = async (\r\n itemId: string | undefined,\r\n quantity: number,\r\n recordId: number,\r\n zipcode: any,\r\n context: ICoreContext>\r\n) => {\r\n const itemLinesArray = [];\r\n const itemLines = getItemLines(itemId, quantity, recordId);\r\n itemLinesArray.push(itemLines);\r\n const date = new Date();\r\n const currentDate = date.setDate(date.getDate());\r\n const requestBody: IMFICLDeliveryScheduleParameters = {\r\n InventoryType: DeliveryModes.core,\r\n Weeks: context.app.config.weeksPDPforATPCall,\r\n StoreId: '',\r\n Page: 'pdp',\r\n RequestedDate: dayjs(currentDate).format('MM/DD/YYYY'),\r\n ZipCode: zipcode,\r\n ItemLines: itemLinesArray\r\n };\r\n let outOfMarket = '';\r\n const outOfMarketMsg = context.app.config.responseMessageForItemOutOfMarketZip;\r\n const msgOutOfMarket = outOfMarketMsg?.slice(0, 38);\r\n const result = await _getDeliveryByMessage(requestBody, context, false);\r\n const resultmMSg = result?.Message?.slice(12, 50);\r\n if (\r\n msgOutOfMarket === resultmMSg ||\r\n context.app.config.responseMessageForItemOutOfMarketOOZ\r\n .slice(0, 31)\r\n .trim()\r\n .toLowerCase() ===\r\n resultmMSg\r\n ?.slice(0, 31)\r\n .trim()\r\n .toLowerCase()\r\n ) {\r\n outOfMarket = 'yes';\r\n }\r\n const deliveryDetails =\r\n result?.ATPInventoryData && result?.ATPInventoryData.length > 0 ? _getSoonestDeliveryDate(result?.ATPInventoryData) : undefined;\r\n let msg = deliveryDetails\r\n ? deliveryDetails.deliveryByMessage\r\n : context.app.config.defaultDeliveryMessage\r\n ? context.app.config.defaultDeliveryMessage\r\n : '';\r\n if (msg === undefined || msg === '') {\r\n msg = context.app.config.defaultDeliveryMessage;\r\n }\r\n return `${itemId ? itemId : ''},${recordId.toString()},${msg} ,${outOfMarket},${deliveryDetails?.locationId}`;\r\n};\r\n\r\nexport const _coreProductATPCall = async (\r\n props: IMfrmCartProps,\r\n recordId: number,\r\n itemId: string | undefined,\r\n quantity: number\r\n): Promise => {\r\n const { context } = props;\r\n const cookies = new Cookies();\r\n const zipcode = cookies.get('zip_code');\r\n return __._callAtpCallProductAndOOM(itemId, quantity, recordId, zipcode, context);\r\n};\r\n// VSI Customization - End\r\n\r\n/** Skipping customization for _coreProductATPCallCheckForOOM function as it has a broader scope beyond the cart feature. Instead, I made other changes to ensure the code can be easily converted in the future, in adherence to the Open/Closed Principle.*/\r\n\r\nexport const _coreProductATPCallCheckForOOM = async (\r\n context: ICoreContext>,\r\n recordId: number,\r\n itemId: string | undefined,\r\n quantity: number,\r\n updatedZipCode: string\r\n): Promise => {\r\n const cookies = new Cookies();\r\n const zipcode = (validateZipCode(updatedZipCode)) ? updatedZipCode : cookies.get('zip_code');\r\n const itemLinesArray = [];\r\n\r\n const itemLines: IMFICartLine = {\r\n ItemId: itemId,\r\n Quantity: quantity,\r\n VariantRecordId: recordId.toString()\r\n };\r\n\r\n itemLinesArray.push(itemLines);\r\n const date = new Date();\r\n const currentDate = date.setDate(date.getDate());\r\n const requestBody: IMFICLDeliveryScheduleParameters = {\r\n InventoryType: DeliveryModes.core,\r\n Weeks: context.app.config.weeksPDPforATPCall,\r\n StoreId: '',\r\n Page: 'pdp',\r\n RequestedDate: dayjs(currentDate).format('MM/DD/YYYY'),\r\n ZipCode: zipcode,\r\n ItemLines: itemLinesArray\r\n };\r\n let outOfMarket = '';\r\n const outOfMarketMsg = context.app.config.responseMessageForItemOutOfMarketZip;\r\n const msgOutOfMarket = outOfMarketMsg?.slice(0, 38);\r\n const result = await _getDeliveryByMessage(requestBody, context, false);\r\n const resultmMSg = result?.Message?.slice(12, 50);\r\n if (\r\n msgOutOfMarket === resultmMSg ||\r\n context.app.config.responseMessageForItemOutOfMarketOOZ?.slice(0, 31).toLowerCase() === resultmMSg?.slice(0, 31).toLowerCase()\r\n ) {\r\n outOfMarket = 'yes';\r\n }\r\n\r\n const deliveryDetails =\r\n result?.ATPInventoryData && result?.ATPInventoryData.length > 0 ? _getSoonestDeliveryDate(result?.ATPInventoryData) : undefined;\r\n\r\n let msg = deliveryDetails\r\n ? deliveryDetails.deliveryByMessage\r\n : context.app.config.defaultDeliveryMessage\r\n ? context.app.config.defaultDeliveryMessage\r\n : '';\r\n if (msg === undefined || msg === '') {\r\n msg = context.app.config.defaultDeliveryMessage;\r\n }\r\n return `${itemId ? itemId : ''},${recordId.toString()},${msg} ,${outOfMarket},${deliveryDetails?.locationId}`;\r\n};\r\n\r\nconst findIndexOfItemInArray = (cartLines: CartLine[], prodId: string) => {\r\n if (cartLines && cartLines.length) {\r\n for (let c = 0; c < cartLines.length; c++) {\r\n if (cartLines[c].ProductId?.toString() === prodId) {\r\n return c;\r\n }\r\n }\r\n }\r\n return -1;\r\n};\r\nconst arraymove = (arr: CartLine[], fromIndex: number, toIndex: number) => {\r\n const element = arr[fromIndex];\r\n arr.splice(fromIndex, 1);\r\n arr.splice(toIndex, 0, element);\r\n return arr;\r\n};\r\nexport const reshuffleItems = (cartLines: CartLine[]) => {\r\n const cls: CartLine[] = cartLines;\r\n if (MsDyn365.isBrowser) {\r\n const bonusItemsInfoStr = localStorage.getItem('BonusItemProduct');\r\n if (bonusItemsInfoStr && bonusItemsInfoStr.length) {\r\n const bonusItems = JSON.parse(bonusItemsInfoStr);\r\n if (bonusItems && bonusItems.length) {\r\n const testVarStruct = bonusItems;\r\n for (const obj of testVarStruct) {\r\n const deets = obj.BonusItemsDetails;\r\n for (const dt of deets) {\r\n // const coupon = dt.Coupon;\r\n const itms = dt.Items;\r\n for (const it of itms) {\r\n const items = it.BonusItems;\r\n // const qItemId = it.QualifyingItemId;\r\n // const qpId = it.QualifyingProductId;\r\n for (const itm of items) {\r\n // itm.QualifyingItemId = qItemId;\r\n // itm.Coupon = coupon;\r\n // itm.QualifyingProductId = qpId;\r\n for (let c = 0; c < cls.length; c++) {\r\n if (cls[c].ProductId?.toString() === itm.BonusProductId) {\r\n const getLocalStorage = localStorage.getItem('selectedBonasItems');\r\n let selectedBonusItemArray: IProductBonusItems[] = [];\r\n if (getLocalStorage) {\r\n selectedBonusItemArray = JSON.parse(getLocalStorage);\r\n }\r\n let isSelectedManually = false;\r\n if (hasArray(selectedBonusItemArray)) {\r\n for (const sbi of selectedBonusItemArray) {\r\n if (hasArray(sbi.children)) {\r\n for (const childd of sbi.children) {\r\n if (childd.BonusProductId?.toString() === itm.BonusProductId && sbi.parentId) {\r\n const prodIndex = findIndexOfItemInArray(cls, sbi.parentId.toString());\r\n arraymove(cls, c, prodIndex + 1);\r\n isSelectedManually = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (!isSelectedManually) {\r\n const prodIndex = findIndexOfItemInArray(cls, itm.QualifyingProductId);\r\n arraymove(cls, c, prodIndex + 1);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return cls;\r\n};\r\n\r\nexport const getSetBasketCookie = (\r\n method: string,\r\n context: ICoreContext<{\r\n [x: string]: any;\r\n }>,\r\n basketCookieData?: IBasketCookie,\r\n cartLines?: CartLine[]\r\n) => {\r\n const cookie = new Cookies();\r\n if (method === 'get') {\r\n return cookie.get('mfrm_basket_cookie');\r\n } else {\r\n const date = new Date();\r\n const cartSessionExpiration = (context.app && context.app.platform && context.app.platform.cartSessionExpiration) || 0;\r\n try {\r\n if (basketCookieData) {\r\n const cartSessionExpirationDateInDays = parseInt(cartSessionExpiration, 10);\r\n date.setDate(date.getDate() + cartSessionExpirationDateInDays);\r\n if (cartLines) {\r\n const cartDataInfo: IBasketCookieCartInfo[] = [];\r\n for (const cln of cartLines) {\r\n cartDataInfo.push({\r\n productId: cln.ProductId ? cln.ProductId : -1,\r\n itemId: cln.ItemId ? cln.ItemId : '',\r\n quantity: cln.Quantity ? cln.Quantity : 0\r\n });\r\n }\r\n basketCookieData.cartDataInfo = cartDataInfo;\r\n }\r\n /* Update phone format from (xxx) xxx-xxxx to xxx-xxx-xxxx */\r\n if (basketCookieData.phoneNumber) {\r\n const formattedPhoneNo = changePhoneFormatForAPI(basketCookieData.phoneNumber);\r\n basketCookieData.phoneNumber = formattedPhoneNo;\r\n }\r\n cookie.set('mfrm_basket_cookie', basketCookieData, { expires: date });\r\n const cartId = cookie.get('_msdyn365___cart_');\r\n cookie.set('_msdyn365___cart_', cartId, { expires: date });\r\n cookie.set('last_cart_expiry_time', date);\r\n }\r\n } catch (error) {\r\n console.log('Error', error);\r\n }\r\n }\r\n return basketCookieData;\r\n};\r\n\r\nexport const resetBasketCookie = () => {\r\n const cookie = new Cookies();\r\n const date = new Date();\r\n date.setDate(date.getDate() - 1);\r\n cookie.set('mfrm_basket_cookie', {}, { expires: date });\r\n};\r\n\r\nexport const limitedTealiumArray = (arr: any[], limit: number): any[] => {\r\n return arr.length > limit ? arr.slice(0, limit) : arr;\r\n};\r\n\r\nexport const setTealiumCartVariables = (\r\n name: string,\r\n context: ICoreContext<{\r\n [x: string]: any;\r\n }>,\r\n productDetails?: IProductDetails | IProductDetailsData | ICartProductUrl\r\n) => {\r\n const cookie = new Cookies();\r\n const date = new Date();\r\n const cartSessionExpiration = (context.app && context.app.platform && context.app.platform.cartSessionExpiration) || 0;\r\n try {\r\n if (productDetails) {\r\n const cartSessionExpirationDateInDays = parseInt(cartSessionExpiration, 10);\r\n date.setDate(date.getDate() + cartSessionExpirationDateInDays);\r\n cookie.set(`${name}`, productDetails, { expires: date });\r\n }\r\n } catch (error) {\r\n console.log('Error', error);\r\n }\r\n return setTealiumCartVariables;\r\n};\r\n\r\n/** Following function is used to get 'Cart Alert Banner (aka Pencil Banner)' */\r\nexport const getProductAlertBanner = (context: ICoreContext<{ [x: string]: any; }>, productAttributes: AttributeValue[]) => {\r\n const { app : { config: { productAlertBannerAttribute } } } = context;\r\n const alertBannerAttribute = productAlertBannerAttribute?.toLowerCase().trim() || 'plp_ribbon';\r\n return productAttributes.find(attribute => attribute.Name?.toLowerCase().trim() === alertBannerAttribute)?.TextValue;\r\n};\r\n/**\r\n * VSI Customization - Retrieves the list of core delivery messages for cart items Ticket 105989.\r\n*/\r\nexport const getListOfCoreDeliveryMessageCart = async (props: IMfrmCartProps, ctx: IActionContext, cartLines: IMFICartLine[], zipCode?: string): Promise => {\r\n const data: IMFIATPInventoryPLPResponse = await fetchCoreDeliveryListAction(new FetchCoreDeliveryListInput(cartLines, zipCode), ctx);\r\n /**\r\n * The following code extracts a specific message from the provided data object:.\r\n * Data: \"{\\\"Message\\\":\\\"No Zip Code Group found for the postal code 54149\\\"}\"\r\n * The message indicates that no zip code group was found for the given postal code\r\n */\r\n const resultMessage = data?.Message?.slice(12, 50); // \"No Zip Code Group found for the postal code\", is assigned\r\n const outOfMarketMsg = props.context.app.config.responseMessageForItemOutOfMarketZip;\r\n const msgOutOfMarket = outOfMarketMsg?.slice(0, 38); // \"No Zip Code Group found for the postal code\", is assigned\r\n if (msgOutOfMarket === resultMessage || props.context.app.config.responseMessageForItemOutOfMarketOOZ?.slice(0, 31)?.trim()?.toLowerCase() === resultMessage?.slice(0, 31)?.trim()?.toLowerCase()) {\r\n return { outOfMarket: 'yes'};\r\n }\r\n const updatedResponse: IMFIATPInventoryEntityPLPEx[] | undefined = data?.ATPInventoryPLPData?.map((deliveryItem: IMFIATPInventoryEntityPLP, i: number) => {\r\n let deliveryMessage = '';\r\n if (deliveryItem.Available?.toLowerCase() === DeliveryDateDetails.AvailableYes && deliveryItem.ATPQuantity !== undefined && parseInt(deliveryItem.ATPQuantity, 10) > 0) {\r\n const date = new Date();\r\n const today = dayjs(Date.now()).format('D M YY');\r\n const deliveryDate = dayjs(deliveryItem.SlotDate).format('D M YY');\r\n if (today === deliveryDate) {\r\n deliveryMessage = `${DeliveryDateDetails.DeliveryToday} ${dayjs(deliveryItem.SlotDate).format('MMM D')}`;\r\n } else if (deliveryDate === dayjs(date.setDate(date.getDate() + 1)).format('D M YY')) {\r\n deliveryMessage = `${DeliveryDateDetails.DeliveryTomorrow} ${dayjs(deliveryItem.SlotDate).format('MMM D')}`;\r\n } else {\r\n deliveryMessage = `${DeliveryDateDetails.DeliveryBy} ${dayjs(deliveryItem.SlotDate).format('MMM D')}`;\r\n }\r\n } else {\r\n deliveryMessage = ctx.requestContext.app.config.defaultDeliveryMessage ? ctx.requestContext.app.config.defaultDeliveryMessage : '';\r\n }\r\n return { ...deliveryItem, deliveryMessage };\r\n });\r\n return updatedResponse;\r\n};\r\n// TODO: _coreProductATPCall and _coreProductATPCallCheckForOOM are public methods and should be renamed with addditional cleanup\r\nexport const __ = {\r\n _callAtpCallProductAndOOM,\r\n _coreProductATPCall,\r\n _coreProductATPCallCheckForOOM\r\n};","import { ICoreContext } from '@msdyn365-commerce/core-internal/dist/types/interfaces';\r\nimport { getSetDateGroupedProducts, IMFRMDateGroupedProducts } from '../../../Utilities/cart-utils';\r\nimport { hasArray } from '../../../Utilities/emtpyChecker';\r\n\r\nexport const isOneOfTheCustomMessageStates = (context: ICoreContext, stateId?: string) => {\r\n const servicesFromConfigurations = context.request.app.config.deliveryServices;\r\n for (const sc of servicesFromConfigurations) {\r\n if ((sc.serviceName.includes('silver') || sc.serviceName.includes('Silver')) && sc.multipleMessagesBasedOnState && sc.multipleMessagesBasedOnState.length) {\r\n for (const stateObj of sc.multipleMessagesBasedOnState) {\r\n if (stateObj.state === stateId) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n};\r\n\r\nexport const getDeliveryMessageForProduct = (variantID: number) => {\r\n const dateBasedGroupedProducts: IMFRMDateGroupedProducts[] = getSetDateGroupedProducts('get');\r\n if(dateBasedGroupedProducts && hasArray(dateBasedGroupedProducts)) {\r\n for(const dateBasedProduct of dateBasedGroupedProducts) {\r\n if(hasArray(dateBasedProduct.productVariantRecordIds)) {\r\n if(dateBasedProduct.productVariantRecordIds?.includes(variantID)) {\r\n let dateStr = dateBasedProduct.dateStr;\r\n if(dateStr && dateStr.includes('Delivery by')) {\r\n const splitted = dateStr.split('Delivery by ');\r\n if(splitted?.length > 1) {\r\n dateStr = splitted[1];\r\n return dateStr;\r\n }\r\n }\r\n return dateStr;\r\n }\r\n }\r\n }\r\n }\r\n return '';\r\n};"],"names":["callFS","name","detailsObject","FS","global","hasOwnProperty","event","e","console","log","eventFullStoryAPISuccess","async","pathName","objToCall","status","eventFullStoryPriceMismatch","cartLines","tradeIds","PdpPriceArrays","idsArrays","cartPriceArrays","tradeLines","length","forEach","items","_cartLines$find","push","price","variantRecordId","checkCartPrice","find","lines","ProductId","Price","_objectSpread","id","toString","pdp_price","cart_price","tradeAgreement","eventFullStoryFailAPI","_objToCall$error","_objToCall$error2","_objToCall$error3","_objToCall$error4","error","statusCode","message","correlationId","data","CorrelationId","validationError","ValidationResults","ErrorContext","callUtag","callUtagLink","Object","keys","key","utag","link","callUtagView","view","getSetLocalStorage","getSet","valueToSet","returnType","MsDyn365","isBrowser","localStorage","setItem","JSON","stringify","storedValue","getItem","parse","_unused","removeItem","getSetProductData","products","setCoreProductCookie","psp","typeOfProduct","toLowerCase","trim","MFRMProductTypes","core","setCookie","getSetProductSpec","getSetPromoCodeApplyList","getSetPromoCode","getSetGrandTotal","total","getSetBonusItemProd","globalBonusItems","getSetSelectedBonusItem","bonusItemArray","getSetBonusCouponDetail","getCoupons","getSetPrevBonasModalState","previousBonasModal","getSetBonusItemBrandName","bonusItemsBrandName","getSetDateGroupedProducts","getSetExpressFlow","express","getSetWmapCartLines","getSetCartProductPrice","priceDetails","getSetParcelInventoryData","details","getSetDropshipLatestDeliveryMsg","msg","LocalStorageKeys","DropshipLatestDeliveryMsg","getSetParcelLatestDeliveryMsg","ParcelLatestDeliveryMsg","getSetCustomerPhone","phone","CustomerPhone","getSetSelectedDeliveryService","SelectedDeliveryService","getSetCustomerBillingSameDelivery","isSame","CustomerBillingSameDelivery","getSetRecycleFee","fee","RecycleFee","getSetSelectedDeliverySlot","slot","getSetSelectedDeliveryDate","date","getSetCoreProductDeliveryMsg","getSetDefaultDeliverySelected","selected","getSetTimeSlot","getSetDaySlot","getSetServiceName","getSetSelectedServicePrice","getSetCoreShippingMsg","getSetEcomMonthlyAmount","getSetExpressType","value","getSetApplepayCheckoutError","getSetApplepayError","getSetApplepayIFrameError","getSetGetCardApplepayPass","getSetGetCardApplepayFail","getSetLoadExpress","getSetPaypalCheckoutError","getSetPaypalError","getSetPaypalIFrameError","getSetGetCardExpressPass","getSetGetCardExpressFail","getSetExpressAddress","getSetExpressPageLoad","getSetThankyou","getSetEcomFinanceOption","getSetEcomFinancePlanId","getSetCoreProdMsg","getSetBillingAddress","getSetPaymentLoader","getSetLastPaymentConnector","getSetPaymentRadioName","getSetPaymentRadioIndex","getSetSelectedPaymentRadio","getSetPaymentInfoForOCPage","getSetCurrentStep","getSetCheckoutCurrentStep","getSetCartCoreProductInfo","getSetUpdatedEmail","getSetSelectedDeliverySlotZone","zone","addUnitOfMeasureInAddCartLine","actionContext","channelId","promises","filter","cartLine","DefaultUnitOfMeasure","map","productResponse","getByIdAsync","callerContext","queryResultSettings","Paging","Top","UnitOfMeasureSymbol","processCartLine","Promise","all","_isAllSmallParcel","isAllParcel","productspecificationsDetails","dropShip","product","_product$typeOfProduc","productType","validateZipCode","zipcode","test","_isExpressFlow","context","_window$location$path","currentUrl","window","location","pathname","substring","applepayExpressUrl","app","config","expressApplePayCheckouturl","expressCheckouturl","_isAllNonCoreItems","_product$typeOfProduc2","_updateCartLinesWithWarehouseId","checkoutCartState","dynamicInventoryData","selectedTimeSlot","dropShipDefaultWarehouseId","datePicker","_getUpdatedCart","_selectedAtpSlot","cartState","currentCartLines","cart","CartLines","smallParcel","selectedAtpSlot","_dynamicInventoryData","ATPSlots","atpSlot","_startAndEndTimeOfSlo","startAndEndTimeOfSlot","StartTime","EndTime","coreProductWarehouseId","Location1","isSameWareHouseForCore","isSameWareHouseForParcel","updatedCartLines","_cartLineProductSpesi","cartLineProductSpesifications","ItemId","VariantRecordId","smallParcelWarehouseId","InventLocationId","WarehouseId","FulfillmentStoreId","cartOperationDoRetry","updateCartLineInternal","then","checkSmallParcelOutOfStock","zipCode","detailsProduct","Date","currentDate","setDate","getDate","tempProducts","item","_parcelDetails$typeOf","parcelDetails","prod","_item$ProductId","outOfStockSmallParcel","Quantity","_resultData$result","_resultData$result2","requestBody","InventoryType","DeliveryModes","StoreId","Weeks","weeksPDPforATPCall","RequestedDate","dayjs","format","ZipCode","ItemLines","NoOfPriorityDC","resultData","atpInventoryDoRetry","getInventoryQuantityInternal","parcelInventoryData","result","ATPInventoryStatusData","Location","href","origin","inventoryDetails","itemId","productId","quantity","_checkATPSlotsAvailable","props","itemLinesArray","Cookies","get","productSpecification","selectedSlotNotExist","isNotAvailable","_props$data$selectedA","_product$typeOfProduc3","itemLines","selectedATPDate","selectedATPSlotInfo","getHours","inventoryType","weeks","storeId","page","requestedDate","mfiInventoryInput","MfiAtpInventoryInput","mfiAtpInventoryAction","ATPInventoryDynamicData","singleDate","_singleDate$Date","AvailableSlots","includes","telemetry","warning","debug","priceMismatchFSEvent","cartLinesData","getCartProductPriceArray","missingTradeIds","line","_line$PriceLines","PriceLines","getDiffernce","some","itemProduct","cartPrice","productPrice","Math","abs","priceCheck","logTrace","cartId","input","inputSource","trace","Error","_window$DD_LOGS","DD_LOGS","logger","info","stack","_addDefaultDays","days","deliveryDate","newDate","deliveryDateFormatted","AttributeCreate","ecomName","LineLevelAttributeName","DeliveryDate","source","Name","TextValue","undefined","String","assign","ExtensionProperties","TextValueTranslations","getCheckoutAttributeByName","attributeValues","keyValue","currAttribute","_currAttribute$Name","_keyValue$toLowerCase","getProductsCategoryPath","productDetailsData","request","apiSettings","catalogId","revenueCategory","otherRevenueDetail","categoryNameBoxSprings","categoryNameAdjustableBase","getProductIdArray","RecordId","productsCategories","getProductsCategoryPathsAction","GetCategoryPathsInput","revenueCategoryConfig","newProductDetails","checkCategory","getSegments","CategoryPath","categoriesToCheck","CategoryName","foundCategory","categoryItem","category","_category$Segments","Segments","segment","categoryName","getProuductDetailsHandler","attribute","_getCheckoutAttribute","_productTypeInformati","_getCheckoutAttribute2","_getCheckoutAttribute3","_getCheckoutAttribute4","_getCheckoutAttribute5","_getVariant","brandList","outOfStockProductKey","leadTime","brandBackofficeAttributePdp","placeholderImageName","collection","productTypeInformation","attributeValue","getProduct","coreItemShippingType","brandName","parseBrandName","outOfStock","leadTimeVal","brandLeadTime","getBrandLeadTime","_brandList$find","list","brandLeadtime","getDeliveryDateDetails","generateDeliveryDate","_deliveryByMessage","timeValue","daysSpan","split","deliveryByMessage","deliveryByMessageRange","currentYear","year","index","parseInt","numberOfDays","singleDays","flag","findDate","fullDate","formatDeliveryDate","brandAndProductName","productCollection","productTypeAttribute","variantType","_product$Dimensions","dimensionValueCustom","Dimensions","_item$DimensionValue","_item$DimensionValue2","_item$DimensionValue3","DimensionValue","Value","getVariant","replace","imageFallBackUrl","urlFallBackImage","requestContext","imagePrimary","PrimaryImageUrl","MasterProductId","sharedValues","zipCodeError","quantityMessage","primaryImageUrl","fallbackImageUrl","RequestedDeliveryDate","productSepcification","ProducName","urlParam","results","RegExp","exec","getUsaEpayErrorDetails","errorCode","usaEpayErrorMessages","_item$errorCode","exclude","markAsDefault","verifyDeliverService","servicesFromConfigurations","deliveryServices","getDeliveryService","_addDeliveryMode","productAttributes","deliveryMessageManagementValues","generaCartLines","_productAttributes$fi","_attributesList$find","attributesList","elem","getMode","DeliveryMode","getModOfDelivery","extractMonthAndDate","dateString","match","padStart","setAddress","addUpdateAddress","email","firstName","lastName","emailMeCheckbox","address","apt","set","Email","FirstName","LastName","EmailMeCheckbox","Phone","Address","APT","_updateCheckoutTax","_extentionArray$find","_cartState$cart","RecycleFeeAttribute","recycleFeeAttributeValue","extentionArray","_item$Key","Key","DecimalValue","update","GetRecycleFeeCheckoutInput","recycleFee","Number","tax","TaxAmount","getServiceItemsAttributes","isWillCall","willCallDeliveryDate","InventLocation","AttributesArray","ecomDeliverySetDate","slice","dayjsEcomDateDelivery","deliveryDateError","case","deliveryDateErrorWillCall","ecomDeliveryDate","ecomDeliveryDatewillCall","ecomDSDeliveryScheduleStatus","ecomInventLocationId","getCoreProductAttributes","ecomDeliveryDateWillCall","getParcelProductAttributes","productDetails","deliveryMsg","daysParcel","defaultDaysParcel","getModDelivery","ecomDeliveryServiceMode","getDropShipProductAttributes","daysDropShip","ecomDSShippingMessage","getDeliveryMessageForProduct","isSafari","navigator","vendor","indexOf","handleExpressSkeletonCheck","_data$showSkeleton$re","_data$showSkeleton$re2","_data$showSkeleton$re3","_data$showSkeleton$re4","_data$showSkeleton$re5","CheckoutSkeletonInput","showPaymentSkeleton","showSkeleton","expressSkeleton","expressPhoneNotavailable","expressLoaderRunning","showDeliverySkeleton","showCustomerInfoSkeleton","hasCoreProduct","productSpecificationsCookieData","isExpressCheckout","_url$requestUrl$pathn","url","checkoutURl","requestUrl","isExpressPage","_url$requestUrl$pathn2","pageURL","getAddressFromCookies","zipCodeValue","cookies","extraInfo","bCookie","getSetBasketCookie","city","state","address1","address2","AddressTypeValue","City","State","Street","ThreeLetterISORegionName","getProgressiveTotal","deliveryOptions","deliveryStates","_filterCartLine2","_netAmountTotal","getArrayDeliveryService","selectedState","getCookie","ShippingAddress","filterCartLine","_filterCartLine","service","netAmountTotal","ExtendedPrice","toFixed","isPaymentStep","contextCookies","checkoutCurrentStep","deleteProgApplicationTransaction","progressiveLeaseId","ctx","progressiveTenderType","progressiveTransactionType","actionInput","ApplicationId","TenderType","TransactionType","ProgressiveDeleteTransactionAction","ProgressiveDeleteTransactionInput","catch","utagLinkProgressiveApply","event_category","event_action","event_label","event_noninteraction","event_type","_formatPhoneNumber","phoneNumberString","concat","changePhoneFormatForAPI","join","changePhoneFormatForDisplay","phoneArray","changeAddressPhoneFormatForAPI","updatedPhone","isUsaEpayOrder","_getSetPaymentRadioNa","_getSetExpressType","selectedPaymentType","isUSAePay","expressType","removesSpecialCharacterFromString","str","filterAtpSlots","atplSlots","getSelectedSlotZone","getTimeSlot","getStartTime","getEndTime","atpResult","Zone","Available","calculateFinancing","cartTotal","promoMonths","monthlyOfferMessage","_ref","promoFee","parseFloat","roundedPromoFee","floor","totalAmountFinanced","monthlyPayment","ceil","financingMessage","adjustedAmountFinanced","adjustedMonths","variantQueryStringName","callback","_callbackResult","callbackResult","updateCart","newCartObject","Message","updateCartLineDeliverySpecificationsInternal","cartLineDeliverySpecifications","arguments","updateLineDeliverySpecificationsAsync","Id","newCart","errorDetails","LocalizedMessage","substatus","updateCartLinesAsync","addCartLineInternal","addCartLinesAsync","removeCartLinesInternal","cartLineIds","removeCartLinesAsync","Array","isArray","isCached","getATPInventoryStatusInput","GetATPInventoryStatusInput","getATPInventoryStatusAction","DeliveryDateDetails","EyeBrowMessage","EyeBrowAttributeName","cartModuleName","progressiveName","imageUrl","getFallbackImageUrl","fallBackBrandAttribute","attributes","backendAttribute","recordId","_hasArray","productBrandName","hasArray","_bonusItemArray$find","getLocalStorage","checkBrandName","parseBrandNameUnbxd","_bonusItemArray$find2","getBrandNameCheck","_attributes$find2","mod","deliveryMod","_items$shippingInform","_mod$trim","shippingInformation","MOD","newDeliveryServiceArray","serviceProductRecId","childService","childItem","productRectId","getDeliveryServiceWithName","serviceName","willCallMessage","willCallTitle","getDeliveryServiceWithSKU","serviceItems","serviceSku","addKeyInPrice","serviceSKU","FetchCoreDeliveryListInput","constructor","getCacheKey","_this$cartLines","this","sort","a","b","_item$VariantRecordId","getCacheObjectType","dataCacheType","Msdyn365","action","_input$zipCode","atpInput","now","getZipCode","CustomerRequestTime","mFIATPInventoryPLPAsync","productIds","_this$productIds","_this$ChannelId","_this$CatalogId","constructedCacheKey","ChannelId","CatalogId","ids","createGetCategoryPathsInput","inputData","catPaths","productsIter","getCategoryPathsAsync","Sorting","err","getCategoryPathsActionDataAction","createObservableDataAction","args","_this$input","_this$input2","prototype","call","mFIATPInventoryStatusAsync","leaseContract","super","shouldCacheOutput","cacheObjectType","cacheKey","deleteContract","mFIDeleteTransactionAsync","Transaction","IProgressiveDeleteTransactionAction","progressiveQuery","DataServiceQuery","DataServiceEntities","mFIGetLeaseLookupByCustomerAsync","leaseLookupByCustomer","createDataServiceRequestForOperation","bypassCache","returnEntity","createMFIGetLeaseLookupByCustomerInput","callActionOrExecute","mFIGetPaymentEstimatesAsync","paymentEstimate","createMFIGetPaymentEstimatesInput","mFISubmitCartInformationAsync","submitCartInformation","createMFISubmitCartInformationInput","mFIGetLeaseContractAsync","createMFIGetLeaseContractInput","createMFIDeleteTransactionInput","mFIGetPricingInformationAsync","pricingInformation","createMFIGetPricingInformationInput","LeaseLookupByCustomerExtensionClass","odataObject","i","className","substr","lastIndexOf","EntityClasses","AddressExtensionClass","StreetAddress1","StreetAddress2","Zip","LeaseLookupExtensionClass","Status","ApprovalAmount","IsOkToDeliver","DateOfApplication","jsonLightReadStringPropertyValue","InvoiceAmount","MerchantTransactionId","HomePhone","CellPhone","EmailAddress","HomeAddress","InitialPaymentSalesTaxAmount","InitialPaymentPreSalesTax","InitialPaymentTotal","PeriodicPaymentTotal","PayFrequency","ErrorsExtensionClass","ProgressiveErrorDetailsExtensionClass","Errors","Type","Title","Detail","Instance","TraceId","ProgressiveErrorCode","LeaseLookupByCustomerResponseExtensionClass","LeaseLookup","ProgressiveErrorDetails","CRTMessage","CRTStatus","IsNoContent","TermMonthsEstimatesExtensionClass","PaymentMonth","CostOfLease","CumulativeAmountPaid","PaymentNumber","PaymentAmount","PaymentEstimateExtensionClass","InitialPayment","TermMonthEstimates","PaymentEstimateResponseExtensionClass","PaymentEstimates","SubmitCartInformationExtensionClass","CartId","SubmitCartInformationResponseExtensionClass","SubmitCartInformation","GetLeaseContractExtensionClass","ESignUrl","GetLeaseContractResponseExtensionClass","LeaseContract","DeleteTransactionExtensionClass","DeleteTransactionResponseExtensionClass","NinethDayPricingExtensionClass","EstimatedTax","LeaseCostToOwn","NinetyDayBuyout","LeaseToOwnTotal","NinetyDayBuyoutMarkup","NinetyDayBuyoutNetRld","PricingTermsExtensionClass","SubTotal","FullTermTotalCostWithEstimatedTaxNoDeposit","LastPayment","LastPaymentEstimatedTax","TotalLastPayment","DepositTax","TotalDeposit","NetDeposit","LeaseCostToOwnWithEstimatedTax","PeriodicPayment","RecurringPaymentEstimatedTax","TotalRecurringPayment","PricingBaseExtensionClass","ContractualStartingBalance","EffectiveLeaseBalance","RemainingInvoice","CashPrice","CashPriceMarkup","InitialBalance","InitialCashPrice","TotalLeasePrice","LeaseTermId","PaymentFrequencyId","TermMonths","TotalNumberOfPayments","NumberOfRecurringPayments","RldCashPrice","TotalNetRld","RldCashPriceMarkup","SalesTaxRate","LeaseStatus","ApprovalLimit","RetailerFeesExtensionClass","MerchantTransactionTypeName","TransactionTaxAmount","MerchantTransactionTypeId","TransactionAmount","FeeRuleId","PaymentDueAtSigningExtensionClass","TotalTax","TotalDueAtSigning","TotalRetailerFees","RetailerFeeTax","RetailerDeliveryFeesTax","RetailerOtherFeesTax","TotalRetailerFeeAmount","InitialPaymentTax","TotalInitialPayment","TotalRetailerDeliveryFees","TotalRetailerOtherFees","RetailerFees","GetPricingExtensionClass","NinetyDay","Term","Base","PaymentDueAtSigning","GetPricingInformationResponseExtensionClass","PricingInformation","MFILeaseLookupByCustomerResponseExtensionClass","LeaseLookupByCustomer","MFIGetPaymentEstimateResponseExtensionClass","MFISubmitCartInformationResponseExtensionClass","MFIGetLeaseContractResponseExtensionClass","LeaseContacts","MFIDeleteTransactionResponseExtensionClass","MFIGetPricingInformationResponseExtensionClass","cookieName","cookieValue","options","removeCookie","remove","HeaderLevelAttributes","isPaymentApiFailed","Page","mFIATPInventoryDynamicAsync","getSelectedProductIdFromActionInput","_context$query","variantId","queryBasedVariantSelection","getQueryParamsFromQueryByName","query","urlTokens","pageType","inputUrl","queryParamName","URL","toLocaleLowerCase","searchParams","isNaN","generateImageUrl","startsWith","baseImageUrl","encodeURIComponent","DimensionTypes","DimensionSwatchDisplayTypes","parsedItemId","isOneOfChildBonusCoupons","discountCode","appliedCoupon","getLocalstorageBonusCoupons","bonusCouponsArray","bonusCoupons","BonusCoupons","coupons","BonusCoupon","ChildCoupons","childCoupons","_coreProductATPCall","__","_callAtpCallProductAndOOM","_coreProductATPCallCheckForOOM","updatedZipCode","_result$Message2","_context$app$config$r","outOfMarket","outOfMarketMsg","responseMessageForItemOutOfMarketZip","msgOutOfMarket","_getDeliveryByMessage","resultmMSg","responseMessageForItemOutOfMarketOOZ","deliveryDetails","ATPInventoryData","_getSoonestDeliveryDate","defaultDeliveryMessage","locationId","findIndexOfItemInArray","prodId","c","_cartLines$c$ProductI","arraymove","arr","fromIndex","toIndex","element","splice","reshuffleItems","cls","bonusItemsInfoStr","bonusItems","testVarStruct","obj","deets","BonusItemsDetails","dt","itms","Items","it","BonusItems","itm","_cls$c$ProductId","BonusProductId","selectedBonusItemArray","isSelectedManually","sbi","children","childd","_childd$BonusProductI","parentId","prodIndex","QualifyingProductId","method","basketCookieData","cookie","cartSessionExpiration","platform","cartSessionExpirationDateInDays","cartDataInfo","cln","phoneNumber","formattedPhoneNo","expires","resetBasketCookie","limitedTealiumArray","limit","setTealiumCartVariables","getProductAlertBanner","productAlertBannerAttribute","alertBannerAttribute","_attribute$Name","getListOfCoreDeliveryMessageCart","_data$Message","_props$context$app$co","_resultMessage$slice","_data$ATPInventoryPLP","fetchCoreDeliveryListAction","resultMessage","ATPInventoryPLPData","deliveryItem","_deliveryItem$Availab","deliveryMessage","AvailableYes","ATPQuantity","today","SlotDate","DeliveryToday","DeliveryTomorrow","DeliveryBy","_result$Message","getItemLines","isOneOfTheCustomMessageStates","stateId","sc","multipleMessagesBasedOnState","stateObj","variantID","dateBasedGroupedProducts","dateBasedProduct","_dateBasedProduct$pro","productVariantRecordIds","dateStr","splitted"],"sourceRoot":""}