{"version":3,"file":"static/js/bca4328a9fd7627c32bc.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/actions/custom-get-sales-order-confirmation-with-hydrations.action.ts?25a8","webpack://Msdyn365.Commerce.Online/./src/actions/genera-product-list-warehouse-details.action.ts?6951","webpack://Msdyn365.Commerce.Online/./src/actions/genera-product-warehouse-details.action.ts?bf27","webpack://Msdyn365.Commerce.Online/./src/actions/get-alternate-items-collection.action.ts?7762","webpack://Msdyn365.Commerce.Online/./src/actions/get-custom-product-additional-details.action.ts?0d95","webpack://Msdyn365.Commerce.Online/./src/actions/get-custom-product-application.action.ts?0ca7","webpack://Msdyn365.Commerce.Online/./src/actions/getProductInterchangeDetails.ts?a22c","webpack://Msdyn365.Commerce.Online/./src/actions/get-custom-product-interchange.action.ts?80c6","webpack://Msdyn365.Commerce.Online/./src/actions/get-custom-product-spec.action.ts?9abd","webpack://Msdyn365.Commerce.Online/./src/actions/get-product-alternate-item.action.ts?67e4","webpack://Msdyn365.Commerce.Online/./src/actions/getRelatedProductDetails.ts?9e89","webpack://Msdyn365.Commerce.Online/./src/actions/get-related-product-details.action.ts?303c","webpack://Msdyn365.Commerce.Online/./src/actions/getAlternateItemDetails.ts?6150","webpack://Msdyn365.Commerce.Online/./src/actions/getProductAdditionalDetails.ts?41e4","webpack://Msdyn365.Commerce.Online/./src/actions/getProductApplication.ts?c44f","webpack://Msdyn365.Commerce.Online/./src/actions/getProductETADetails.ts?876d","webpack://Msdyn365.Commerce.Online/./src/actions/getProductSpecificationDetails.ts?0057","webpack://Msdyn365.Commerce.Online/./src/actions/getProductWarehouseInfo.action.ts?bebd","webpack://Msdyn365.Commerce.Online/./src/actions/GetListProductsETAInfo.ts?36e8","webpack://Msdyn365.Commerce.Online/./src/actions/product-collection-eta.action.ts?f8da","webpack://Msdyn365.Commerce.Online/./src/actions/product-eta-action.action.ts?1b4e","webpack://Msdyn365.Commerce.Online/./lib/__local__/module-registration.js?8a42","webpack://Msdyn365.Commerce.Online/external var \"React\"?0d3b","webpack://Msdyn365.Commerce.Online/external var \"ReactDOM\"?853b"],"sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n ICommerceApiSettings,\n ICreateActionContext\n} from '@msdyn365-commerce/core';\nimport { CommerceProperty, ProductDeliveryOptions, SalesOrder, SimpleProduct, TransactionType } from '@msdyn365-commerce/retail-proxy';\nimport { getAttributeValuesAsync, getDeliveryOptionsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\nimport {\n getSalesOrderDetailsBySalesIdAsync,\n getSalesOrderDetailsByTransactionIdAsync\n} from '@msdyn365-commerce/retail-proxy/dist/DataActions/SalesOrdersDataActions.g';\nimport {\n ArrayExtensions,\n buildCacheKey,\n getSimpleProducts,\n ObjectExtensions,\n ProductInput,\n QueryResultSettingsProxy\n} from '@msdyn365-commerce-modules/retail-actions';\n\n/**\n * Sales order response interface.\n */\ninterface ISalesOrderWithHydrations {\n salesOrder: SalesOrder;\n products: SimpleProduct[];\n productDeliveryOptions?: ProductDeliveryOptions[];\n}\n\n/**\n * OrderTypes Types of orders.\n */\nexport enum orderTypes {\n salesOrder = 'salesOrder',\n transaction = 'transaction'\n}\n\n/**\n * Calls the Retail API and returns the sales order.\n * @param orderType - OrderType.\n * @param orderId - Unique OrderId for each order.\n * @returns Sales Order.\n */\nconst getSalesOrder = (orderType: string = '', orderId: string = '') => async (\n context: IActionContext\n): Promise => {\n // Local (1) searches the retail server database, and remote (2) searches\n // on the headquarters side. All (3) and none (0) are not supported.\n const localSearch = 1;\n return orderType === orderTypes.salesOrder\n ? getSalesOrderDetailsBySalesIdAsync({ callerContext: context }, orderId)\n : getSalesOrderDetailsByTransactionIdAsync({ callerContext: context }, orderId, localSearch);\n};\n\n/**\n * Calls the Retail API and returns the products.\n * @param productIds - The product ids of the product to retrieve.\n * @param channelId - The channel id for the products.\n * @returns Simple product data.\n */\nconst getProducts = (productIds: (string | number)[] = [], channelId?: number) => async (\n context: IActionContext\n): Promise => {\n const productInputs = productIds.map(\n productId => new ProductInput(productId, context.requestContext.apiSettings, channelId, undefined, context.requestContext)\n );\n return getSimpleProducts(productInputs, context);\n};\n\n/**\n * Action input.\n */\nexport class GetSalesOrderConfirmationWithHydrationsInput implements IActionInput {\n public orderType: string;\n\n public orderId: string;\n\n private readonly apiSettings: ICommerceApiSettings;\n\n constructor(orderType: string, orderId: string, apiSettings: ICommerceApiSettings) {\n this.orderType = orderType;\n this.orderId = orderId;\n this.apiSettings = apiSettings;\n }\n\n /**\n * Get cache key.\n * @returns String.\n */\n public getCacheKey = () => buildCacheKey('SalesOrderConfirmationWithHydrations', this.apiSettings);\n\n /**\n * Get cache object.\n * @returns String.\n */\n public getCacheObjectType = () => `SalesOrderConfirmationWithHydrations-${this.orderType}-${this.orderId}`;\n\n /**\n * Get cache data type.\n * @returns String.\n */\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * Creates the input required to make the retail api call.\n * @param inputData - Actioncontext data.\n * @returns Sales Order Input.\n */\nconst createSalesOrderConfrimationWithHydrationsInput = (inputData: ICreateActionContext) => {\n const { salesId = '', transactionId = '' } = inputData.requestContext.query || {};\n if (salesId) {\n return new GetSalesOrderConfirmationWithHydrationsInput(orderTypes.salesOrder, salesId, inputData.requestContext.apiSettings);\n } else if (transactionId) {\n return new GetSalesOrderConfirmationWithHydrationsInput(\n orderTypes.transaction,\n transactionId,\n inputData.requestContext.apiSettings\n );\n }\n throw new Error('createSalesOrderConfrimationWithHydrationsInput - No salesId or transactionId provided.');\n};\n\n/**\n * Get sales order with hydrations action.\n * @param input - Input for data action.\n * @param context - Action context.\n * @returns Sales order response.\n */\nexport async function getSalesOrderConfirmationWithHydrationsAction(\n input: GetSalesOrderConfirmationWithHydrationsInput,\n context: IActionContext\n): Promise {\n if (!context) {\n throw new Error('getSalesOrderConfirmationWithHydrationsAction - Action context cannot be null/undefined');\n }\n\n const { orderType, orderId } = input;\n\n if (!orderType || !orderId) {\n context.trace('[getSalesOrderConfirmationWithHydrationsAction] No orderType or orderId provided.');\n return {};\n }\n\n const salesOrder = await getSalesOrder(orderType, orderId)(context);\n\n if (!salesOrder) {\n context.trace('[getSalesOrderWithHydrationsAction] No salesOrder found.');\n return {};\n }\n\n // If it is salesInvoice, return salesOrder and empty products\n if (salesOrder.TransactionTypeValue === TransactionType.SalesInvoice) {\n return {\n salesOrder,\n products: []\n };\n }\n\n if (!ArrayExtensions.hasElements(salesOrder.SalesLines)) {\n context.trace('[getSalesOrderWithHydrationsAction] No salesLine found.');\n return {};\n }\n\n const productIds = salesOrder.SalesLines.map(salesLine => salesLine.ProductId ?? '');\n\n if (!ArrayExtensions.hasElements(productIds)) {\n context.trace('[getSalesOrderWithHydrationsAction] No products in saleLines found.');\n return {};\n }\n\n const products = await getProducts(productIds, salesOrder.ChannelId)(context);\n\n if (!ArrayExtensions.hasElements(products)) {\n context.trace('[getSalesOrderWithHydrationsAction] No simple products found.');\n return {};\n }\n if(products)\n {\n for(var i=0; i {\n if (specData.Name === 'Oversized') {\n const isOversized = specData.BooleanValue ? true : false;\n const existingExtensionProp = products[`${i}`].ExtensionProperties;\n const existingProp :CommerceProperty | undefined = existingExtensionProp && existingExtensionProp.length > 0 ? existingExtensionProp.find((ext: CommerceProperty) => ext.Key === 'IsOversized') : undefined;\n if(existingProp === undefined){\n const updatedExistingProp :CommerceProperty = {Key : 'IsOversized', Value:{BooleanValue: isOversized}};\n existingExtensionProp && existingExtensionProp.push(updatedExistingProp);\n products[`${i}`].ExtensionProperties = existingExtensionProp;\n }\n }\n });\n }\n }\n }\n const validProducts = products.filter(product => !ObjectExtensions.isNullOrUndefined(product.RecordId));\n const filterPickup = 4;\n const deliveryOptions = await getDeliveryOptionsAsync(\n { callerContext: context, queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context) },\n validProducts.map(product => product.RecordId),\n {},\n filterPickup\n )\n .then(result => {\n return result;\n })\n .catch((error: Error) => {\n context.trace(error.message);\n context.telemetry.exception(error);\n context.telemetry.debug('[getDeliveryOptionsForCartLineItems]Error executing action');\n throw new Error('[getDeliveryOptionsForCartLineItems]Error executing action');\n });\n\n return {\n salesOrder,\n products,\n deliveryOptions\n };\n}\n\n/**\n * Get sales order with hydrations action.\n * @param id - Unique Id for data action.\n * @param context - Action context.\n * @param input - Input for data action.\n * @returns Sales order response.\n */\nexport const getSalesOrderConfirmationWithHydrationsActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/order-management/get-sales-order-confirmation-with-hydrations',\n action: >getSalesOrderConfirmationWithHydrationsAction,\n input: createSalesOrderConfrimationWithHydrationsInput\n});\n\nexport default getSalesOrderConfirmationWithHydrationsActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n// import {getSelectedProductIdFromActionInput, ProductInput, getSimpleProductsAction } from '@msdyn365-commerce-modules/retail-actions';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport axios from 'axios';\nimport { ProductWarehouses } from './AlternateItemsEntity.g';\n\n/**\n * GeneraProductWarehouseDetails Input Action\n */\nexport class GeneraProductListWarehouseDetailsInput implements Msdyn365.IActionInput {\n public ItemIds: string[];\n\n public channelId: number;\n\n public config: any;\n\n constructor(ItemIds: string[], channelId: number, config: any) {\n this.channelId = channelId;\n this.ItemIds = ItemIds;\n this.config = config;\n }\n\n\n // TODO: Determine if the results of this get action should cache the results and if so provide\n // a cache object type and an appropriate cache key\n public getCacheKey = () => `GeneraProductListWarehouseDetailsInput`;\n public getCacheObjectType = () => 'ProductListWarehouses';\n public dataCacheType = (): Msdyn365.CacheType => 'none';\n}\n\n// TODO: Create a data model here or import one to capture the response of the action\nexport interface IGeneraProductListWarehouseDetailsData {\n warehouseDetails: ProductWarehouses[];\n}\n\n/**\n * TODO: Use this function to create the input required to make the action call\n */\n// const createInput = (inputData: Msdyn365.ICreateActionContext): Msdyn365.IActionInput => {\n// // return new GeneraProductWarehouseDetailsInput();\n// const productId = getSelectedProductIdFromActionInput(inputData);\n// if(productId)\n// {\n// return new GeneraProductListWarehouseDetailsInput(+productId, +inputData.requestContext.apiSettings.channelId, inputData.config);\n\n// }\n// throw new Error('Unable to create SelectedVariantInput, no productId found on module config or query');\n// };\n\n/**\n * TODO: Use this function to call your action and process the results as needed\n */\nexport async function getCurrentProductListWarehouseDetailsAction(input: GeneraProductListWarehouseDetailsInput, ctx: Msdyn365.IActionContext): Promise {\n // const apiSettings = Msdyn365.msdyn365Commerce.apiSettings;\n // TODO: Uncomment the below line to get the value from a service\n // const response = await Msdyn365.sendRequest('/get/example/id/1', 'get');\n let productWarehouseDtl:ProductWarehouses[] = [];\n // const prod:ProductInput[] = new Array();\n // if(input.ItemIds)\n // input.ItemIds.forEach((itemid,idx)=>{\n // prod.push(new ProductInput(itemid,ctx.requestContext.apiSettings));\n // });\n // var prodDtl = await getSimpleProductsAction(prod,ctx);\n const itemIdsFilter:string[] = input.ItemIds.map((itemid,idx)=>{\n return `ItemNumber eq '${itemid}'`;\n });\n var formData = new URLSearchParams();\n formData.append('client_id',ctx.requestContext.app.config.clientId);\n formData.append('grant_type','client_credentials');\n formData.append('resource',ctx.requestContext.app.config.baseUrl);\n formData.append('client_secret',ctx.requestContext.app.config.clientSecret);\n\n var token = await (axios.post(`https://login.microsoftonline.com/${ctx.requestContext.app.config.tenentId}/oauth2/token`, formData).then((res) => { return res.data;}).catch((err)=> {return err;}));\n // const jsObj = `{'_request':{'ItemNumber' : '${ prodDtl[0].ItemId }'}}`;\n const header = { headers: { 'Authorization': `bearer ${token.access_token}` } };\n const prodWarehouseDetails = await (axios.get(`${ctx.requestContext.app.config.axItemWarehouseUrl}?$filter=(${itemIdsFilter.join(' or ')}) and DistributionCenter eq Microsoft.Dynamics.DataEntities.NoYes'Yes'`, header).then((res) => { return res.data;}).catch((err)=> {console.log(\"axios error: \",err); return err;}));\n if(prodWarehouseDetails && prodWarehouseDetails.value)\n {\n productWarehouseDtl = prodWarehouseDetails.value;\n }\n return productWarehouseDtl;\n}\n\nexport default Msdyn365.createObservableDataAction({\n action: >getCurrentProductListWarehouseDetailsAction,\n // TODO: Give your data action a unique id\n id: 'getCurrentProductWarehouseDetailsAction'\n // input: createInput\n // TODO: Uncomment the below line if this is a meant to be a batched data action\n // isBatched: true\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\nimport {getSelectedProductIdFromActionInput, ProductInput, getSimpleProductsAction } from '@msdyn365-commerce-modules/retail-actions';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ProductWarehouses } from './AlternateItemsEntity.g';\nimport { getProductWarehouseInfoAsync } from './getProductWarehouseInfo.action';\n\n/**\n * GeneraProductWarehouseDetails Input Action\n */\nexport class GeneraProductWarehouseDetailsInput implements Msdyn365.IActionInput {\n public productId: number;\n\n public channelId: number;\n\n public config: any;\n\n constructor(productId: number, channelId: number, config: any) {\n this.channelId = channelId;\n this.productId = productId;\n this.config = config;\n }\n\n\n // TODO: Determine if the results of this get action should cache the results and if so provide\n // a cache object type and an appropriate cache key\n public getCacheKey = () => `GeneraProductWarehouseDetailsInput`;\n public getCacheObjectType = () => 'ProductWarehouses';\n public dataCacheType = (): Msdyn365.CacheType => 'none';\n}\n\n// TODO: Create a data model here or import one to capture the response of the action\nexport interface IGeneraProductWarehouseDetailsData {\n warehouseDetails: ProductWarehouses[];\n}\n\n/**\n * TODO: Use this function to create the input required to make the action call\n */\nconst createInput = (inputData: Msdyn365.ICreateActionContext): Msdyn365.IActionInput => {\n // return new GeneraProductWarehouseDetailsInput();\n const productId = getSelectedProductIdFromActionInput(inputData);\n if(productId)\n {\n return new GeneraProductWarehouseDetailsInput(+productId, +inputData.requestContext.apiSettings.channelId, inputData.config);\n\n }\n throw new Error('Unable to create SelectedVariantInput, no productId found on module config or query');\n};\n\n/**\n * TODO: Use this function to call your action and process the results as needed\n */\nexport async function getCurrentProductWarehouseDetailsAction(input: GeneraProductWarehouseDetailsInput, ctx: Msdyn365.IActionContext): Promise {\n // const apiSettings = Msdyn365.msdyn365Commerce.apiSettings;\n // TODO: Uncomment the below line to get the value from a service\n // const response = await Msdyn365.sendRequest('/get/example/id/1', 'get');\n let productWarehouseDtl:ProductWarehouses[] = [];\n const prod:ProductInput[] = new Array();\n prod.push(new ProductInput(input.productId,ctx.requestContext.apiSettings));\n var prodDtl = await getSimpleProductsAction(prod,ctx);\n const prodIds:string[] = [];\n prodIds.push(prodDtl[0].ItemId!);\n const prodWarehouseDetails = await getProductWarehouseInfoAsync({callerContext:ctx,bypassCache: 'get'},ctx,prodIds);\n if(prodWarehouseDetails && prodWarehouseDetails[0].warehouseDetails && prodWarehouseDetails[0].warehouseDetails?.value)\n {\n productWarehouseDtl = prodWarehouseDetails[0].warehouseDetails?.value;\n }\n return productWarehouseDtl;\n}\n\nexport default Msdyn365.createObservableDataAction({\n action: >getCurrentProductWarehouseDetailsAction,\n // TODO: Give your data action a unique id\n id: 'getCurrentProductWarehouseDetailsAction',\n input: createInput\n // TODO: Uncomment the below line if this is a meant to be a batched data action\n // isBatched: true\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ProductSearchCriteria,ProductLookupClause } from '@msdyn365-commerce/retail-proxy';\nimport {IAlternateProduct} from '../themes/adventureworks/views/common/buyboxInterface';\nimport { getByIdsAsync, searchByCriteriaAsync} from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\nimport { ProductAvailabilitiesForSelectedVariantInput, getProductAvailabilitiesForSelectedVariant,\n IProductInventoryInformation } from '@msdyn365-commerce-modules/retail-actions';\n import {getProductEtaAction,ProductEtaActionInput} from './product-eta-action.action';\nimport { getProductInfoAsync } from './getAlternateItemDetails';\nimport { ValueExtensionClass } from './AlternateItemsEntity.g';\n// import { ProductDetailsExtensionClass } from './AlternateItemsEntity.g';\n/**\n * GetAlternateItemsCollection Input Action\n */\nexport class GetAlternateItemsCollectionInput implements Msdyn365.IActionInput {\n // TODO: Construct the input needed to run the action\n public productIds: string[];\n\n public config: any;\n constructor(prodIds: string[],config: any) {\n this.productIds = prodIds;\n this.config = config;\n }\n\n // TODO: Determine if the results of this get action should cache the results and if so provide\n // a cache object type and an appropriate cache key\n public getCacheKey = () => `TODO`;\n public getCacheObjectType = () => 'TODO';\n public dataCacheType = (): Msdyn365.CacheType => 'none';\n}\n\nexport interface IAlternateItems{\n dataAreaId: string;\n ItemId: string;\n AltItemId: string;\n UseAltItemId: string;\n}\n\nexport interface IAlternateProductData {\n ItemId:string;\n currentProd: IAlternateProduct | undefined;\n serviceResp: IAlternateItems[] | undefined;\n}\n\n// TODO: Create a data model here or import one to capture the response of the action\nexport interface IGetAlternateItemsCollectionData {\n respObj: IAlternateProductData[] | undefined;\n}\n\n/**\n * TODO: Use this function to create the input required to make the action call\n */\n// const createInput = (args: Msdyn365.ICreateActionContext): Msdyn365.IActionInput => {\n// return new GetAlternateItemsCollectionInput();\n// };\n\n/**\n * TODO: Use this function to call your action and process the results as needed\n */\nexport async function getProductsAlternateItemsAction(input: GetAlternateItemsCollectionInput, ctx: Msdyn365.IActionContext): Promise {\n // const apiSettings = Msdyn365.msdyn365Commerce.apiSettings;\n const alterItems:IAlternateProductData[] = new Array();\n try{\n if(input.productIds !== null && input.productIds.length > 0)\n {\n const alternateProdDetails: ValueExtensionClass[] = await getProductInfoAsync({ callerContext: ctx, bypassCache: 'get' }, ctx,input.productIds.toString());\n for(let i=0; i < input.productIds.length; i++)\n {\n const item:IAlternateProductData = {ItemId: input.productIds[`${i}`],currentProd:undefined,serviceResp:undefined};\n if(alternateProdDetails)\n {\n const alternateDtls = alternateProdDetails.find(data => data.ItemId === input.productIds[`${i}`]);\n if(alternateDtls)\n {\n const currentAltItems: IAlternateItems[] = [];\n currentAltItems.push({AltItemId: alternateDtls.AltItemId,dataAreaId: alternateDtls.dataAreaId,ItemId: alternateDtls.ItemId,UseAltItemId: alternateDtls.UseAltItemId});\n item.serviceResp = currentAltItems;\n }\n }\n alterItems.push(item);\n }\n if(alterItems && alterItems.length > 0)\n {\n\n const productLookup:ProductLookupClause[] = new Array();\n alterItems.forEach((val:IAlternateProductData)=>{\n if(productLookup.length === 0 || (typeof productLookup.find(x => val.serviceResp && x.ItemId === val.serviceResp[0].AltItemId) === 'undefined'))\n {\n const prodLookup:ProductLookupClause = {\n ItemId : val.serviceResp && val.serviceResp[0].AltItemId};\n productLookup.push(prodLookup);\n }\n });\n // const productLookup:ProductLookupClause[] = new Array();\n // const prodLookup:ProductLookupClause = {\n // ItemId : item.serviceResp?.AltItemId};\n // productLookup.push(prodLookup);\n const criteria:ProductSearchCriteria={\n Context:{CatalogId:ctx.requestContext.apiSettings.catalogId,ChannelId:ctx.requestContext.apiSettings.channelId},\n ItemIds:productLookup\n };\n var prodLists = await searchByCriteriaAsync({callerContext: ctx},criteria);\n if(prodLists && prodLists.length > 0)\n {\n var altSampleProducts = await getByIdsAsync({callerContext: ctx}, ctx.requestContext.apiSettings.channelId, prodLists.map(prod => prod.RecordId));\n alterItems.forEach((val:IAlternateProductData)=>{\n if(val.serviceResp && val.serviceResp !== undefined && val.serviceResp.length > 0)\n {\n const sampleProd = altSampleProducts.find(x => val.serviceResp && x.ItemId === val.serviceResp[0].AltItemId);\n if(sampleProd)\n {\n const alterProdDtl:IAlternateProduct = {productDtl: sampleProd,productAvailibility:null,etaDetails:undefined,inventoryLabel:undefined};\n val.currentProd = alterProdDtl;\n }\n }\n });\n\n for(var item=0; item('/get/example/id/1', 'get');\n return { respObj: alterItems};\n}\n\nexport default Msdyn365.createObservableDataAction({\n action: >getProductsAlternateItemsAction,\n // TODO: Give your data action a unique id\n id: 'GetAlternateItemsCollection'\n // input: createInput\n // TODO: Uncomment the below line if this is a meant to be a batched data action\n // isBatched: true\n});\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 { getSelectedProductIdFromActionInput } from '@msdyn365-commerce-modules/retail-actions';\r\n// import { IAny, ICreateActionContext, IGeneric } from '@msdyn365-commerce/core';\r\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy';\r\n// import {getByIdAsync, searchByCriteriaAsync} from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\nimport { getProductAdditionalDetailsAsync } from './getProductAdditionalDetails';\r\n\r\n/**\r\n * GetCustomProductSpec Input Action\r\n */\r\nexport class GetCustomProductSpecficiationInput implements Msdyn365.IActionInput {\r\n // TODO: Construct the input needed to run the action\r\n public productId: number;\r\n\r\n public channelId: number;\r\n\r\n public config: any;\r\n\r\n constructor(productId: number, channelId: number, config: any) {\r\n this.channelId = channelId;\r\n this.productId = productId;\r\n this.config = config;\r\n }\r\n\r\n // TODO: Determine if the results of this get action should cache the results and if so provide\r\n // a cache object type and an appropriate cache key\r\n public getCacheKey = () => `GetCustomProductAdditionalDetails${this.productId}`;\r\n public getCacheObjectType = () => 'Spec';\r\n public dataCacheType = (): Msdyn365.CacheType => 'none';\r\n}\r\n\r\n// TODO: Create a data model here or import one to capture the response of the action\r\n// export interface IGetCustomProductSpecData {\r\n// text: string;\r\n// }\r\n\r\n/**\r\n * TODO: Use this function to create the input required to make the action call\r\n */\r\nconst createInput = (inputData: Msdyn365.ICreateActionContext): Msdyn365.IActionInput => {\r\n const productId = getSelectedProductIdFromActionInput(inputData);\r\n if (productId) {\r\n return new GetCustomProductSpecficiationInput(+productId, +inputData.requestContext.apiSettings.channelId, inputData.config);\r\n\r\n }\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 * TODO: Use this function to call your action and process the results as needed\r\n */\r\nasync function action(input: GetCustomProductSpecficiationInput, ctx: Msdyn365.IActionContext): Promise {\r\n const prodAttr: AttributeValue[] = new Array();\r\n const response = await getProductAdditionalDetailsAsync({ callerContext: ctx }, input.productId);\r\n if (response && response.length > 0) {\r\n // response = response.sort((x,y) => x.Interchange_Part_Number!.localeCompare(y.Interchange_Part_Number!));\r\n\r\n let attr: AttributeValue = {\r\n KeyName: 'Country Of Origin',\r\n Name: 'Country Of Origin',\r\n TextValue: response[0].CountryLongName === \"\" ? 'N/A' : response[0].CountryLongName\r\n , DataTypeValue: 5\r\n };\r\n prodAttr.push(attr);\r\n attr = {\r\n KeyName: 'Life Cycle Status',\r\n Name: 'Life Cycle Status',\r\n TextValue: response[0].ProductLifeCycleDescription === \"\" ? 'N/A' : response[0].ProductLifeCycleDescription\r\n , DataTypeValue: 5\r\n };\r\n prodAttr.push(attr);\r\n }\r\n else{\r\n let attr: AttributeValue = {\r\n KeyName: 'Country Of Origin',\r\n Name: 'Country Of Origin',\r\n TextValue: 'N/A'\r\n , DataTypeValue: 5\r\n };\r\n prodAttr.push(attr);\r\n attr = {\r\n KeyName: 'Life Cycle Status',\r\n Name: 'Life Cycle Status',\r\n TextValue: 'N/A'\r\n , DataTypeValue: 5\r\n };\r\n prodAttr.push(attr);\r\n }\r\n return prodAttr;\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >action,\r\n id: 'GetCustomProductAdditionalDetails',\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 { getSelectedProductIdFromActionInput } from '@msdyn365-commerce-modules/retail-actions';\r\n// import { IAny, ICreateActionContext, IGeneric } from '@msdyn365-commerce/core';\r\n\r\n// import {getByIdAsync, searchByCriteriaAsync} from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\nimport { getProductApplicationInputAsync } from './getProductApplication';\r\nimport { IProductApplicationEntity } from './AlternateItemsEntity.g';\r\n\r\n/**\r\n * GetCustomProductSpec Input Action\r\n */\r\nexport class GetCustomProductApplicationInput implements Msdyn365.IActionInput {\r\n // TODO: Construct the input needed to run the action\r\n public productId: number;\r\n\r\n public channelId: number;\r\n\r\n public config: any;\r\n\r\n constructor(productId: number, channelId: number, config: any) {\r\n this.channelId = channelId;\r\n this.productId = productId;\r\n this.config = config;\r\n }\r\n\r\n // TODO: Determine if the results of this get action should cache the results and if so provide\r\n // a cache object type and an appropriate cache key\r\n public getCacheKey = () => `GetCustomProductApplication${this.productId}`;\r\n public getCacheObjectType = () => 'Spec';\r\n public dataCacheType = (): Msdyn365.CacheType => 'none';\r\n}\r\n\r\n// TODO: Create a data model here or import one to capture the response of the action\r\n// export interface IGetCustomProductSpecData {\r\n// text: string;\r\n// }\r\n\r\n/**\r\n * TODO: Use this function to create the input required to make the action call\r\n */\r\nconst createInput = (inputData: Msdyn365.ICreateActionContext): Msdyn365.IActionInput => {\r\n const productId = getSelectedProductIdFromActionInput(inputData);\r\n if (productId) {\r\n return new GetCustomProductApplicationInput(+productId, +inputData.requestContext.apiSettings.channelId, inputData.config);\r\n\r\n }\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 * TODO: Use this function to call your action and process the results as needed\r\n */\r\nasync function action(input: GetCustomProductApplicationInput, ctx: Msdyn365.IActionContext): Promise {\r\n const response = await getProductApplicationInputAsync({ callerContext: ctx }, input.productId);\r\n // if (response && response.length > 0) {\r\n // response = response.sort((x,y) => x.Interchange_Part_Number!.localeCompare(y.Interchange_Part_Number!));\r\n\r\n // let attr: AttributeValue = {\r\n // KeyName: 'Country Of Origin',\r\n // Name: 'Country Of Origin',\r\n // TextValue: response[0].CountryLongName\r\n // , DataTypeValue: 5\r\n // };\r\n // prodAttr.push(attr);\r\n // attr = {\r\n // KeyName: 'Life Cycle Status',\r\n // Name: 'Life Cycle Status',\r\n // TextValue: response[0].ProductLifeCycleDescription\r\n // , DataTypeValue: 5\r\n // };\r\n // prodAttr.push(attr);\r\n // }\r\n return response;\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >action,\r\n id: 'GetCustomProductApplication',\r\n input: createInput\r\n});\r\n","import { AsyncResult, callActionOrExecute, DataServiceQuery, IContext, IDataServiceRequest, IQueryResultSettings } from '@msdyn365-commerce/retail-proxy';\r\n// @ts-ignore\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as DataServiceEntities from './AlternateItemsEntity.g';\r\n\r\nfunction getProductInterchangeDetailsQuery(): DataServiceQuery {\r\n return new DataServiceQuery();\r\n }\r\n\r\n\r\nexport function getProductInterchangeDetailsInput (\r\n queryResultSettings: IQueryResultSettings, productId:\r\n number\r\n): IDataServiceRequest {\r\nconst query = getProductInterchangeDetailsQuery().resultSettings(queryResultSettings);\r\nreturn query.createDataServiceRequestForOperation(\r\n 'GetProductInterchangeDetails',\r\n true,\r\n DataServiceEntities.ProductInterchangesEntityExtensionClass\r\n ,\r\n 'true',\r\n { bypassCache: 'get', returnEntity: 'DataServiceEntities.IProductInterchangesEntity' },\r\n {\r\n ProductId: productId\r\n }\r\n);\r\n}\r\n\r\nexport function getProductInterchangeDetailsAsync (\r\n context: IContext, productId:\r\n number\r\n ): AsyncResult {\r\n const request = getProductInterchangeDetailsInput(\r\n context.queryResultSettings || {}, productId);\r\n return callActionOrExecute(request, context.callerContext);\r\n }\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport {getSelectedProductIdFromActionInput } from '@msdyn365-commerce-modules/retail-actions';\n// import { IAny, ICreateActionContext, IGeneric } from '@msdyn365-commerce/core';\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy';\n// import {getByIdAsync, searchByCriteriaAsync} from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\n import {getProductInterchangeDetailsAsync} from './getProductInterchangeDetails';\n\n/**\n * GetCustomProductSpec Input Action\n */\nexport class GetCustomProductInterchangeInput implements Msdyn365.IActionInput {\n // TODO: Construct the input needed to run the action\n public productId: number;\n\n public channelId: number;\n\n public config: any;\n\n constructor(productId: number, channelId: number, config: any) {\n this.channelId = channelId;\n this.productId = productId;\n this.config = config;\n }\n\n // TODO: Determine if the results of this get action should cache the results and if so provide\n // a cache object type and an appropriate cache key\n public getCacheKey = () => `GetCustomProductInte${this.productId}`;\n public getCacheObjectType = () => 'Interchange';\n public dataCacheType = (): Msdyn365.CacheType => 'none';\n}\n\n// TODO: Create a data model here or import one to capture the response of the action\n// export interface IGetCustomProductSpecData {\n// text: string;\n// }\n\n/**\n * TODO: Use this function to create the input required to make the action call\n */\nconst createInput = (inputData: Msdyn365.ICreateActionContext): Msdyn365.IActionInput => {\n const productId = getSelectedProductIdFromActionInput(inputData);\n if(productId)\n {\n return new GetCustomProductInterchangeInput(+productId, +inputData.requestContext.apiSettings.channelId, inputData.config);\n\n }\n throw new Error('Unable to create SelectedVariantInput, no productId found on module config or query');\n};\n\n/**\n * TODO: Use this function to call your action and process the results as needed\n */\nasync function action(input: GetCustomProductInterchangeInput, ctx: Msdyn365.IActionContext): Promise {\n const prodAttr:AttributeValue[] = new Array();\n const response = await getProductInterchangeDetailsAsync({callerContext: ctx},input.productId);\n if(response && response.length > 0)\n {\n // response = response.sort((x,y) => x.Interchange_Part_Number!.localeCompare(y.Interchange_Part_Number!));\n response.forEach(element =>{\n const attr:AttributeValue={AttributeValueId:element.Interchange_Id?+element.Interchange_Id:0,\n KeyName:element.Public_Display_Name,\n Name:element.Public_Display_Name,\n TextValue:element.Interchange_Part_Number\n ,DataTypeValue: 5 };\n prodAttr.push(attr);\n });\n }\n return prodAttr;\n}\n\nexport default Msdyn365.createObservableDataAction({\n action: >action,\n id: 'GetCustomProductInterchange',\n input: createInput\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport {getSelectedProductIdFromActionInput } from '@msdyn365-commerce-modules/retail-actions';\n// import { IAny, ICreateActionContext, IGeneric } from '@msdyn365-commerce/core';\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy';\n// import {getByIdAsync, searchByCriteriaAsync} from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\n import {getProductSpecificationDetailsAsync} from './getProductSpecificationDetails';\n\n/**\n * GetCustomProductSpec Input Action\n */\nexport class GetCustomProductSpecficiationInput implements Msdyn365.IActionInput {\n // TODO: Construct the input needed to run the action\n public productId: number;\n\n public channelId: number;\n\n public config: any;\n\n constructor(productId: number, channelId: number, config: any) {\n this.channelId = channelId;\n this.productId = productId;\n this.config = config;\n }\n\n // TODO: Determine if the results of this get action should cache the results and if so provide\n // a cache object type and an appropriate cache key\n public getCacheKey = () => `GetCustomProductSpecification${this.productId}`;\n public getCacheObjectType = () => 'Spec';\n public dataCacheType = (): Msdyn365.CacheType => 'none';\n}\n\n// TODO: Create a data model here or import one to capture the response of the action\n// export interface IGetCustomProductSpecData {\n// text: string;\n// }\n\n/**\n * TODO: Use this function to create the input required to make the action call\n */\nconst createInput = (inputData: Msdyn365.ICreateActionContext): Msdyn365.IActionInput => {\n const productId = getSelectedProductIdFromActionInput(inputData);\n if(productId)\n {\n return new GetCustomProductSpecficiationInput(+productId, +inputData.requestContext.apiSettings.channelId, inputData.config);\n\n }\n throw new Error('Unable to create SelectedVariantInput, no productId found on module config or query');\n};\n\n/**\n * TODO: Use this function to call your action and process the results as needed\n */\nasync function action(input: GetCustomProductSpecficiationInput, ctx: Msdyn365.IActionContext): Promise {\n const prodAttr:AttributeValue[] = new Array();\n const response = await getProductSpecificationDetailsAsync({callerContext: ctx},input.productId);\n if(response && response.length > 0)\n {\n // response = response.sort((x,y) => x.Interchange_Part_Number!.localeCompare(y.Interchange_Part_Number!));\n response.forEach(element =>{\n const attr:AttributeValue={AttributeValueId:element.Specification_Id?+element.Specification_Id:0,\n KeyName:element.Public_Display_Name,\n Name:element.Public_Display_Name,\n TextValue:element.Product_Attirbute_Value\n ,DataTypeValue: 5 };\n prodAttr.push(attr);\n });\n }\n return prodAttr;\n}\n\nexport default Msdyn365.createObservableDataAction({\n action: >action,\n id: 'GetCustomProductSpecifications',\n input: createInput\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport {getSelectedProductIdFromActionInput,getSimpleProductsAction,ProductInput, DeliveryMode,\n ProductAvailabilitiesForSelectedVariantInput, getProductAvailabilitiesForSelectedVariant,\n IProductInventoryInformation } from '@msdyn365-commerce-modules/retail-actions';\nimport { IAny, ICreateActionContext, IGeneric } from '@msdyn365-commerce/core';\nimport { ProductSearchCriteria,ProductLookupClause,SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport {getByIdAsync, searchByCriteriaAsync} from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\nimport { IAlternateItems } from '../modules/buybox/components/buybox-components';\nimport {IAlternateProduct} from '../themes/adventureworks/views/common/buyboxInterface';\nimport {getProductEtaAction,ProductEtaActionInput} from './product-eta-action.action';\nimport { getProductInfoAsync } from './getAlternateItemDetails';\n/**\n * GetProductAlternateItem Input Action\n */\nexport class GetProductAlternateItemInput implements Msdyn365.IActionInput {\n // TODO: Construct the input needed to run the action\n public productId: number;\n\n public channelId: number;\n\n public config: any;\n\n constructor(productId: number, channelId: number, config: any) {\n this.channelId = channelId;\n this.productId = productId;\n this.config = config;\n }\n\n // TODO: Determine if the results of this get action should cache the results and if so provide\n // a cache object type and an appropriate cache key\n public getCacheKey = () => `TODO`;\n public getCacheObjectType = () => 'TODO';\n public dataCacheType = (): Msdyn365.CacheType => 'none';\n}\n\n// TODO: Create a data model here or import one to capture the response of the action\nexport interface IGetProductAlternateItemData {\n respObj: IGetAlternateItemWithServiceResponse;\n}\n\nexport interface IGetAlternateItemWithServiceResponse {\n product: IAlternateProduct | undefined;\n response: IAlternateItems | undefined;\n}\n\n\n/**\n * TODO: Use this function to create the input required to make the action call\n */\nconst createInput = (inputData: ICreateActionContext>): Msdyn365.IActionInput => {\n const productId = getSelectedProductIdFromActionInput(inputData);\n if(productId)\n {\n return new GetProductAlternateItemInput(+productId, +inputData.requestContext.apiSettings.channelId, inputData.config);\n\n }\n throw new Error('Unable to create SelectedVariantInput, no productId found on module config or query');\n};\n\n/**\n * TODO: Use this function to call your action and process the results as needed\n */\nexport async function getProductAlternateItemAction(input: GetProductAlternateItemInput, ctx: Msdyn365.IActionContext): Promise {\n // const apiSettings = Msdyn365.msdyn365Commerce.apiSettings;\n let proddtl:IGetAlternateItemWithServiceResponse = {product:undefined,response:undefined};\n try{\n const prod:ProductInput[] = new Array();\n prod.push(new ProductInput(input.productId,ctx.requestContext.apiSettings));\n var prodDtl = await getSimpleProductsAction(prod,ctx);\n const prodAlternates = await getProductInfoAsync({ callerContext: ctx, bypassCache: 'get' }, ctx,prodDtl[0].ItemId!);\n let altProduct:SimpleProduct|undefined;\n let alterProdAvailability: IProductInventoryInformation[] | null = null;\n let prodETA;\n if(prodAlternates && prodAlternates.length>0)\n {\n const productLookup:ProductLookupClause[] = new Array();\n const prodLookup:ProductLookupClause = {\n ItemId : prodAlternates[0].AltItemId};\n productLookup.push(prodLookup);\n const criteria:ProductSearchCriteria={\n Context:{CatalogId:ctx.requestContext.apiSettings.catalogId,ChannelId:ctx.requestContext.apiSettings.channelId},\n ItemIds:productLookup\n };\n var prodLists = await searchByCriteriaAsync({callerContext: ctx},criteria);\n if(prodLists && prodLists.length > 0)\n {\n var sampleProd = await getByIdAsync({callerContext: ctx}, prodLists[0].RecordId, ctx.requestContext.apiSettings.channelId);\n altProduct = sampleProd;\n const dt = new ProductAvailabilitiesForSelectedVariantInput(sampleProd.RecordId, ctx.requestContext.apiSettings.channelId);\n alterProdAvailability = await getProductAvailabilitiesForSelectedVariant(dt,ctx);\n const etaProdinpurt = new ProductEtaActionInput(sampleProd.RecordId,ctx.requestContext.apiSettings.channelId,undefined);\n const alterProdEta = await getProductEtaAction(etaProdinpurt,ctx);\n if(alterProdEta)\n {\n prodETA = alterProdEta.etaObj;\n }\n await getProductAvailabilitiesForSelectedVariant(new ProductAvailabilitiesForSelectedVariantInput(input.productId, ctx.requestContext.apiSettings.channelId),ctx);\n }\n\n }\n var altProdDtl:IAlternateProduct | undefined = altProduct? {\n productDtl : altProduct,\n productAvailibility: alterProdAvailability,\n inventoryLabel: alterProdAvailability ? _getInventoryLabel(alterProdAvailability) : undefined,\n etaDetails: prodETA\n }: undefined;\n proddtl = {\n product : altProdDtl,\n response : prodAlternates[0]\n };\n }\n catch(e){\n console.log(e);\n }\n // TODO: Uncomment the below line to get the value from a service\n // const response = await Msdyn365.sendRequest('/get/example/id/1', 'get');\n return { respObj: proddtl };\n}\n\nconst _getInventoryLabel = (productQty : IProductInventoryInformation[]|undefined) => {\n if(productQty)\n {\n const newShippingQuantity = productQty.find(shipping => shipping.deliveryType === DeliveryMode.shipping);\n if(newShippingQuantity)\n {\n return newShippingQuantity.StockLevelLabel;\n }\n }\n return '';\n};\n\nexport default Msdyn365.createObservableDataAction({\n action: >getProductAlternateItemAction,\n // TODO: Give your data action a unique id\n id: 'GetProductAlternateItem',\n input: createInput\n // TODO: Uncomment the below line if this is a meant to be a batched data action\n // isBatched: true\n});\n","import { AsyncResult, callActionOrExecute, DataServiceQuery, IContext, IDataServiceRequest, IQueryResultSettings } from '@msdyn365-commerce/retail-proxy';\r\n// @ts-ignore\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as DataServiceEntities from './AlternateItemsEntity.g';\r\n\r\nfunction getRelatedProductsQuery(): DataServiceQuery {\r\n return new DataServiceQuery();\r\n }\r\n\r\n\r\nexport function getRelatedProductsInput (\r\nqueryResultSettings: IQueryResultSettings, productId:\r\n number\r\n): IDataServiceRequest {\r\n const query = getRelatedProductsQuery().resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation(\r\n 'GetRelatedProducts',\r\n true,\r\n DataServiceEntities.ItemIdsExtensionClass\r\n ,\r\n 'true',\r\n { bypassCache: 'get', returnEntity: 'DataServiceEntities.IItemIds' },\r\n {\r\n ProductId: productId\r\n }\r\n );\r\n}\r\n\r\nexport function getRelatedProductsAsync (\r\ncontext: IContext, productId:\r\n number\r\n): AsyncResult {\r\nconst request = getRelatedProductsInput(\r\n context.queryResultSettings || {}, productId);\r\nreturn callActionOrExecute(request, context.callerContext);\r\n}\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport {getSelectedProductIdFromActionInput, generateProductImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { ProductSearchResult, ProductSearchCriteria, ProductLookupClause } from '@msdyn365-commerce/retail-proxy';\n// import {getByIdAsync, searchByCriteriaAsync} from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\n import {getRelatedProductsAsync} from './getRelatedProductDetails';\n import { searchByCriteriaAsync} from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\n\n/**\n * GetCustomProductSpec Input Action\n */\nexport class GetCustomRelatedProductsInput implements Msdyn365.IActionInput {\n // TODO: Construct the input needed to run the action\n public productId: number;\n\n public channelId: number;\n\n public config: any;\n\n constructor(productId: number, channelId: number, config: any) {\n this.channelId = channelId;\n this.productId = productId;\n this.config = config;\n }\n\n // TODO: Determine if the results of this get action should cache the results and if so provide\n // a cache object type and an appropriate cache key\n public getCacheKey = () => `GetCustomRelatedProducts${this.productId}`;\n public getCacheObjectType = () => 'RelatedProducts';\n public dataCacheType = (): Msdyn365.CacheType => 'none';\n}\n\n// TODO: Create a data model here or import one to capture the response of the action\nexport interface IGetCustomRelatedProductsData {\n text: string;\n}\n\n/**\n * TODO: Use this function to create the input required to make the action call\n */\nconst createInput = (inputData: Msdyn365.ICreateActionContext): Msdyn365.IActionInput => {\n const productId = getSelectedProductIdFromActionInput(inputData);\n if(productId)\n {\n return new GetCustomRelatedProductsInput(+productId, +inputData.requestContext.apiSettings.channelId, inputData.config);\n\n }\n throw new Error('Unable to create SelectedVariantInput, no productId found on module config or query');\n};\n\n/**\n * TODO: Use this function to call your action and process the results as needed\n */\nasync function action(input: GetCustomRelatedProductsInput, ctx: Msdyn365.IActionContext): Promise {\n // const apiSettings = Msdyn365.msdyn365Commerce.apiSettings;\n\n // TODO: Uncomment the below line to get the value from a service\n // const response = await Msdyn365.sendRequest('/get/example/id/1', 'get');\n let prodAttr:ProductSearchResult[] = new Array();\n // const response = await getProductSpecificationDetailsAsync({callerContext: ctx},input.productId);\n // if(response && response.length > 0)\n // {\n // response.forEach(element =>{\n // let attr:AttributeValue={AttributeValueId:element.Specification_Id?+element.Specification_Id:0,\n // KeyName:element.Public_Display_Name,\n // Name:element.Public_Display_Name,\n // TextValue:element.Product_Attirbute_Value\n // ,DataTypeValue: 5 };\n // prodAttr.push(attr);\n // });\n // }\n const response = await getRelatedProductsAsync({callerContext: ctx},input.productId);\n if(response && response.length > 0)\n {\n const productLookup:ProductLookupClause[] = new Array();\n response.forEach(function(itemids,index){\n const prodLookup:ProductLookupClause = {\n ItemId : itemids.ItemId};\n productLookup.push(prodLookup);\n });\n const criteria:ProductSearchCriteria={\n Context:{CatalogId:ctx.requestContext.apiSettings.catalogId,ChannelId:ctx.requestContext.apiSettings.channelId},\n ItemIds:productLookup\n };\n var prodLists = await searchByCriteriaAsync({callerContext: ctx},criteria);\n\n\n if(prodLists.length > 0 )\n {\n const prodLst = prodLists.map(productSearchResult => {\n let newImageUrl = generateProductImageUrl(\n productSearchResult,\n ctx.requestContext.apiSettings\n );\n //const newImageUrl = productSearchResult.PrimaryImageUrl && productSearchResult.PrimaryImageUrl.search('&w=275&h=275&q=80&m=6&f=jpg') == -1 ? productSearchResult.PrimaryImageUrl + '&w=275&h=275&q=80&m=6&f=jpg' : productSearchResult.PrimaryImageUrl\n if (newImageUrl) {\n newImageUrl = decodeURI(newImageUrl);\n // console.log(newImageUrl);\n productSearchResult.PrimaryImageUrl = newImageUrl;\n }\n console.log(productSearchResult.PrimaryImageUrl);\n return (productSearchResult);\n });\n prodAttr = prodLst;\n }\n }\n return prodAttr;\n}\n\nexport default Msdyn365.createObservableDataAction({\n action: >action,\n // TODO: Give your data action a unique id\n id: 'GetRelatedProductDetails',\n input: createInput\n // TODO: Uncomment the below line if this is a meant to be a batched data action\n // isBatched: true\n});\n","\r\n/*!\r\n* Copyright (c) Microsoft Corporation.\r\n* All rights reserved. See LICENSE in the project root for license information.\r\n* THIS FILE IS AN AUTOGENERATED TYPESCRIPT PROXY EXTENSION.\r\n* TO USE THIS FILE, IT MUST BE ADDED TO A D365COMMERCE APPLICATION\r\n*/\r\n// tslint:disable\r\nimport { AsyncResult, callActionOrExecute, DataServiceQuery, IContext, IDataServiceRequest } from '@msdyn365-commerce/retail-proxy';\r\n// @ts-ignore\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as DataServiceEntities from './AlternateItemsEntity.g';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { Buffer } from 'buffer';\r\n\r\nfunction getProductInfoQuery(): DataServiceQuery {\r\n return new DataServiceQuery();\r\n}\r\n\r\n\r\nexport function getProductInfoInput(\r\n apiConfiguration:\r\n DataServiceEntities.IAPIConfiguration,\r\n productIds:\r\n string\r\n): IDataServiceRequest {\r\n const query = getProductInfoQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'GetProductInfo',\r\n true,\r\n DataServiceEntities.ValueExtensionClass\r\n ,\r\n 'false',\r\n { bypassCache: 'get', returnEntity: 'DataServiceEntities.IProductDetails' },\r\n {\r\n apiConfiguration: apiConfiguration,\r\n productIds: productIds\r\n }\r\n );\r\n}\r\n\r\nexport function getProductInfoAsync(\r\n context: IContext,ctx: Msdyn365.IActionContext, productIds:\r\n string\r\n): AsyncResult {\r\n const clientId=Buffer.from(ctx.requestContext.app.config.clientId,'utf8').toString('base64'); btoa(ctx.requestContext.app.config.clientId);\r\n const clientSecret=Buffer.from(ctx.requestContext.app.config.clientSecret,'utf8').toString('base64');\r\n const resource=Buffer.from(ctx.requestContext.app.config.baseUrl,'utf8').toString('base64');\r\n const altItemUrl=Buffer.from(ctx.requestContext.app.config.axAlternateItemUrl,'utf8').toString('base64');\r\n const loginUrl=Buffer.from(`https://login.microsoftonline.com/${ctx.requestContext.app.config.tenentId}/oauth2/token`,'utf8').toString('base64');\r\n const apiConfiguration:DataServiceEntities.IAPIConfiguration = { ClientId: clientId, ClientSecret: clientSecret, Resource: resource, GrantType:'client_credentials', APIUrl:altItemUrl, LoginUrl: loginUrl};\r\n const request = getProductInfoInput(apiConfiguration, productIds);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n","import { AsyncResult, callActionOrExecute, DataServiceQuery, IContext, IDataServiceRequest, IQueryResultSettings } from '@msdyn365-commerce/retail-proxy';\r\n// @ts-ignore\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as DataServiceEntities from './AlternateItemsEntity.g';\r\n\r\nexport function getProductAdditionalDetailsQuery(): DataServiceQuery {\r\n return new DataServiceQuery();\r\n }\r\n\r\nfunction getProductAdditionalDetailsInput (\r\n queryResultSettings: IQueryResultSettings, productId:\r\n number\r\n): IDataServiceRequest {\r\n const query = getProductAdditionalDetailsQuery().resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation(\r\n 'GetProductAdditionalDetails',\r\n true,\r\n DataServiceEntities.ProductAdditionalDetailsExtensionClass\r\n ,\r\n 'true',\r\n { bypassCache: 'get', returnEntity: 'DataServiceEntities.IProductAdditionalDetailsEntity' },\r\n {\r\n ProductId: productId\r\n }\r\n );\r\n}\r\n\r\nexport function getProductAdditionalDetailsAsync (\r\n context: IContext, productId:\r\n number\r\n ): AsyncResult {\r\n const request = getProductAdditionalDetailsInput(\r\n context.queryResultSettings || {}, productId);\r\n return callActionOrExecute(request, context.callerContext);\r\n }","import { AsyncResult, callActionOrExecute, DataServiceQuery, IContext, IDataServiceRequest, IQueryResultSettings } from '@msdyn365-commerce/retail-proxy';\r\n// @ts-ignore\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as DataServiceEntities from './AlternateItemsEntity.g';\r\n\r\nexport function getProductApplicationQuery(): DataServiceQuery {\r\n return new DataServiceQuery();\r\n }\r\n\r\nfunction getProductApplicationInput (\r\n queryResultSettings: IQueryResultSettings, productId:\r\n number\r\n): IDataServiceRequest {\r\n if(!queryResultSettings.Paging)\r\n {\r\n queryResultSettings.Paging = new EntityClasses.PagingInfoClass();\r\n queryResultSettings.Paging.Top = 1000;\r\n }\r\n const query = getProductApplicationQuery().resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation(\r\n 'GetProductApplication',\r\n true,\r\n DataServiceEntities.ProductApplicationExtensionClass\r\n ,\r\n 'true',\r\n { bypassCache: 'get', returnEntity: 'DataServiceEntities.IProductApplicationEntity' },\r\n {\r\n ProductId: productId\r\n }\r\n );\r\n}\r\n\r\nexport function getProductApplicationInputAsync (\r\n context: IContext, productId:\r\n number\r\n ): AsyncResult {\r\n const request = getProductApplicationInput(\r\n context.queryResultSettings || {}, productId);\r\n return callActionOrExecute(request, context.callerContext);\r\n }","\r\n/*!\r\n* Copyright (c) Microsoft Corporation.\r\n* All rights reserved. See LICENSE in the project root for license information.\r\n* THIS FILE IS AN AUTOGENERATED TYPESCRIPT PROXY EXTENSION.\r\n* TO USE THIS FILE, IT MUST BE ADDED TO A D365COMMERCE APPLICATION\r\n*/\r\n// tslint:disable\r\nimport { AsyncResult, callActionOrExecute, DataServiceQuery, IContext, IDataServiceRequest } from '@msdyn365-commerce/retail-proxy';\r\n// @ts-ignore\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as DataServiceEntities from './AlternateItemsEntity.g';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { Buffer } from 'buffer';\r\n\r\nfunction getProductETAInfoQuery(): DataServiceQuery {\r\n return new DataServiceQuery();\r\n}\r\n\r\nexport function getProductETAInfoInput(\r\n apiConfiguration:\r\n DataServiceEntities.IAPIConfiguration,\r\n productIds:\r\n string\r\n): IDataServiceRequest {\r\n const query = getProductETAInfoQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'GetProductETAInfo',\r\n true,\r\n DataServiceEntities.ProductETAInfo\r\n ,\r\n 'false',\r\n { bypassCache: 'get', returnEntity: 'DataServiceEntities.IProductETAInfo' },\r\n {\r\n apiConfiguration: apiConfiguration,\r\n productIds: productIds\r\n }\r\n );\r\n}\r\n\r\nexport function getProductETAInfoAsync(\r\n context: IContext,ctx: Msdyn365.IActionContext, productIds:\r\n string\r\n): AsyncResult {\r\n const clientId=Buffer.from(ctx.requestContext.app.config.clientId,'utf8').toString('base64');\r\n const clientSecret=Buffer.from(ctx.requestContext.app.config.clientSecret,'utf8').toString('base64');\r\n const resource=Buffer.from(ctx.requestContext.app.config.baseUrl,'utf8').toString('base64');\r\n const altItemUrl=Buffer.from(ctx.requestContext.app.config.axUrl,'utf8').toString('base64');\r\n const loginUrl=Buffer.from(`https://login.microsoftonline.com/${ctx.requestContext.app.config.tenentId}/oauth2/token`,'utf8').toString('base64');\r\n const apiConfiguration:DataServiceEntities.IAPIConfiguration = { ClientId: clientId, ClientSecret: clientSecret, Resource: resource, GrantType:'client_credentials', APIUrl: altItemUrl, LoginUrl: loginUrl};\r\n const request = getProductETAInfoInput(apiConfiguration, productIds);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n","import { AsyncResult, callActionOrExecute, DataServiceQuery, IContext, IDataServiceRequest, IQueryResultSettings } from '@msdyn365-commerce/retail-proxy';\r\n// @ts-ignore\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as DataServiceEntities from './AlternateItemsEntity.g';\r\n\r\nexport function getProductSpecificationDetailsQuery(): DataServiceQuery {\r\n return new DataServiceQuery();\r\n }\r\n\r\nfunction getProductSpecificationDetailsInput (\r\n queryResultSettings: IQueryResultSettings, productId:\r\n number\r\n): IDataServiceRequest {\r\n const query = getProductSpecificationDetailsQuery().resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation(\r\n 'GetProductSpecificationDetails',\r\n true,\r\n DataServiceEntities.ProductSpecificationsEntityExtensionClass\r\n ,\r\n 'true',\r\n { bypassCache: 'get', returnEntity: 'DataServiceEntities.IProductSpecificationsEntity' },\r\n {\r\n ProductId: productId\r\n }\r\n );\r\n}\r\n\r\nexport function getProductSpecificationDetailsAsync (\r\n context: IContext, productId:\r\n number\r\n ): AsyncResult {\r\n const request = getProductSpecificationDetailsInput(\r\n context.queryResultSettings || {}, productId);\r\n return callActionOrExecute(request, context.callerContext);\r\n }","import { AsyncResult, callActionOrExecute, DataServiceQuery, IContext, IDataServiceRequest, IQueryResultSettings } from '@msdyn365-commerce/retail-proxy';\r\n// @ts-ignore\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as DataServiceEntities from './AlternateItemsEntity.g';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nfunction getProductWarehouseInfoQuery(): DataServiceQuery {\r\n return new DataServiceQuery();\r\n }\r\n\r\n export function getProductWarehouseInfoInput (\r\n queryResultSettings: IQueryResultSettings, apiConfiguration:\r\n DataServiceEntities.IAPIConfiguration,\r\n productIds:\r\n string[]\r\n ): IDataServiceRequest {\r\n const query = getProductWarehouseInfoQuery().resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation(\r\n 'GetProductWarehouseInfo',\r\n true,\r\n DataServiceEntities.GCProductWiseWarehouseDetailsExtensionClass\r\n ,\r\n 'true',\r\n { bypassCache: 'get', returnEntity: 'DataServiceEntities.IGCProductWiseWarehouseDetails' },\r\n {\r\n apiConfiguration: apiConfiguration,\r\n productIds: productIds\r\n }\r\n );\r\n }\r\n\r\nexport function getProductWarehouseInfoAsync (\r\n context: IContext,\r\n ctx: Msdyn365.IActionContext,\r\n productIds:\r\n string[]\r\n ): AsyncResult {\r\n const clientId=Buffer.from(ctx.requestContext.app.config.clientId,'utf8').toString('base64');\r\n const clientSecret=Buffer.from(ctx.requestContext.app.config.clientSecret,'utf8').toString('base64');\r\n const resource=Buffer.from(ctx.requestContext.app.config.baseUrl,'utf8').toString('base64');\r\n const altItemUrl=Buffer.from(ctx.requestContext.app.config.axItemWarehouseUrl,'utf8').toString('base64');\r\n const loginUrl=Buffer.from(`https://login.microsoftonline.com/${ctx.requestContext.app.config.tenentId}/oauth2/token`,'utf8').toString('base64');\r\n const apiConfiguration:DataServiceEntities.IAPIConfiguration = { ClientId: clientId, ClientSecret: clientSecret, Resource: resource, GrantType:'client_credentials', APIUrl: altItemUrl, LoginUrl: loginUrl};\r\n const request = getProductWarehouseInfoInput(context.queryResultSettings || {},apiConfiguration, productIds);\r\n return callActionOrExecute(request, context.callerContext);\r\n }\r\n","// tslint:disable\r\nimport { AsyncResult, callActionOrExecute, DataServiceQuery, IContext, IDataServiceRequest, IQueryResultSettings } from '@msdyn365-commerce/retail-proxy';\r\n// @ts-ignore\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as DataServiceEntities from './AlternateItemsEntity.g';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { Buffer } from 'buffer';\r\n\r\nfunction getListProductsETAInfoQuery(): DataServiceQuery {\r\n return new DataServiceQuery();\r\n }\r\n\r\n\r\nexport function getListProductsETAInfoInput (\r\n queryResultSettings: IQueryResultSettings, apiConfiguration:\r\n DataServiceEntities.IAPIConfiguration,\r\n productIds:\r\n string[]\r\n): IDataServiceRequest {\r\nconst query = getListProductsETAInfoQuery().resultSettings(queryResultSettings);\r\nreturn query.createDataServiceRequestForOperation(\r\n 'GetListProductsETAInfo',\r\n true,\r\n DataServiceEntities.ProductIdWiseETADetailsExtensionClass\r\n ,\r\n 'true',\r\n { bypassCache: 'get', returnEntity: 'DataServiceEntities.IProductIdWiseETADetails' },\r\n {\r\n apiConfiguration: apiConfiguration,\r\n productIds: productIds\r\n }\r\n);\r\n}\r\n\r\nexport function getListProductsETAInfoAsync (\r\n context: IContext,ctx: Msdyn365.IActionContext,\r\n productIds:\r\n string[]\r\n ): AsyncResult {\r\n const clientId=Buffer.from(ctx.requestContext.app.config.clientId,'utf8').toString('base64');\r\n const clientSecret=Buffer.from(ctx.requestContext.app.config.clientSecret,'utf8').toString('base64');\r\n const resource=Buffer.from(ctx.requestContext.app.config.baseUrl,'utf8').toString('base64');\r\n const altItemUrl=Buffer.from(ctx.requestContext.app.config.axUrl,'utf8').toString('base64');\r\n const loginUrl=Buffer.from(`https://login.microsoftonline.com/${ctx.requestContext.app.config.tenentId}/oauth2/token`,'utf8').toString('base64');\r\n const apiConfiguration:DataServiceEntities.IAPIConfiguration = { ClientId: clientId, ClientSecret: clientSecret, Resource: resource, GrantType:'client_credentials', APIUrl: altItemUrl, LoginUrl: loginUrl};\r\n const request = getListProductsETAInfoInput(\r\n context.queryResultSettings || {}, apiConfiguration, productIds);\r\n return callActionOrExecute(request, context.callerContext);\r\n }","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getListProductsETAInfoAsync } from './GetListProductsETAInfo';\n\nexport interface productETADtl {\n ProductId?: string;\n EtaDate?: string;\n EtaMessage?: string;\n}\n/**\n * ProductCollectionEta Input Action\n */\nexport class ProductCollectionEtaInput implements Msdyn365.IActionInput {\n // TODO: Construct the input needed to run the action\n public productIds: string[];\n\n public config: any;\n constructor(prodIds: string[],config: any) {\n this.productIds = prodIds;\n this.config = config;\n }\n\n // TODO: Determine if the results of this get action should cache the results and if so provide\n // a cache object type and an appropriate cache key\n public getCacheKey = () => `TODO`;\n public getCacheObjectType = () => 'TODO';\n public dataCacheType = (): Msdyn365.CacheType => 'none';\n}\n\n// TODO: Create a data model here or import one to capture the response of the action\nexport interface IProductCollectionEtaData {\n result: productETADtl[];\n}\n\n/**\n * TODO: Use this function to create the input required to make the action call\n */\n// const createInput = (args: Msdyn365.ICreateActionContext): Msdyn365.IActionInput => {\n// return new ProductCollectionEtaInput();\n// };\n\n/**\n * TODO: Use this function to call your action and process the results as needed\n */\nexport async function getProductCollectionEtaAction(input: ProductCollectionEtaInput, ctx: Msdyn365.IActionContext): Promise {\n // const apiSettings = Msdyn365.msdyn365Commerce.apiSettings;\n const etaDtl:productETADtl[] = new Array();\n if(input.productIds !== null && input.productIds.length > 0)\n {\n const productETAinfoList = await getListProductsETAInfoAsync({callerContext: ctx, bypassCache: 'get'},ctx,input.productIds);\n for(let i=0; i < input.productIds.length; i++)\n {\n if(productETAinfoList && productETAinfoList.length > 0)\n {\n const productETA = productETAinfoList.filter(x => x.ItemId === input.productIds[`${i}`])[0].etaInfo;\n if(productETA)\n {etaDtl.push({ProductId:input.productIds[`${i}`],EtaDate:productETA.ETADate,EtaMessage:productETA.ResultMessage});}\n }\n }\n }\n\n // TODO: Uncomment the below line to get the value from a service\n // const response = await Msdyn365.sendRequest('/get/example/id/1', 'get');\n return { result: etaDtl };\n}\n\nexport default Msdyn365.createObservableDataAction({\n action: >getProductCollectionEtaAction,\n // TODO: Give your data action a unique id\n id: 'ProductCollectionEta'\n //input: createInput\n // TODO: Uncomment the below line if this is a meant to be a batched data action\n // isBatched: true\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport {getSelectedProductIdFromActionInput,getSimpleProductsAction,ProductInput } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { IAny, ICreateActionContext, IGeneric } from '@msdyn365-commerce/core';\nimport { getProductETAInfoAsync } from './getProductETADetails';\n// import { ProductInput } from './inputs/product-input';\n/**\n * ProductEtaAction Input Action\n */\nexport class ProductEtaActionInput implements Msdyn365.IActionInput {\n // TODO: Construct the input needed to run the action\n public productId: number;\n\n public channelId: number;\n\n public config: any;\n\n constructor(productId: number, channelId: number, config: any) {\n this.channelId = channelId;\n this.productId = productId;\n this.config = config;\n }\n\n // TODO: Determine if the results of this get action should cache the results and if so provide\n // a cache object type and an appropriate cache key\n public getCacheKey = () => `${this.channelId}-${this.productId}`;\n public getCacheObjectType = () => 'TODO';\n public dataCacheType = (): Msdyn365.CacheType => 'none';\n}\n\n// TODO: Create a data model here or import one to capture the response of the action\nexport interface IProductEtaActionData {\n etaObj: any;\n}\n\n/**\n * TODO: Use this function to create the input required to make the action call\n */\nexport const createGetProductEtaInput = (inputData: ICreateActionContext>): Msdyn365.IActionInput => {\n const productId = getSelectedProductIdFromActionInput(inputData);\n if(productId)\n {\n return new ProductEtaActionInput(+productId, +inputData.requestContext.apiSettings.channelId, inputData.config);\n\n }\n throw new Error('Unable to create SelectedVariantInput, no productId found on module config or query');\n};\n\n/**\n * TODO: Use this function to call your action and process the results as needed\n */\nexport async function getProductEtaAction(input: ProductEtaActionInput, ctx: Msdyn365.IActionContext): Promise {\n // const apiSettings = Msdyn365.msdyn365Commerce.apiSettings;\n const prod:ProductInput[] = new Array();\n prod.push(new ProductInput(input.productId,ctx.requestContext.apiSettings));\n var prodDtl = await getSimpleProductsAction(prod,ctx);\n const prodEta = await getProductETAInfoAsync({callerContext: ctx, bypassCache: 'get'},ctx,prodDtl[0].ItemId!);\n return { etaObj: prodEta };\n}\n\nexport const getProductEtaActionDataAction = Msdyn365.createObservableDataAction({\n action: >getProductEtaAction,\n // TODO: Give your data action a unique id\n id: 'ProductEtaAction',\n input: createGetProductEtaInput\n // TODO: Uncomment the below line if this is a meant to be a batched data action\n // isBatched: true\n});\n\nexport default getProductEtaActionDataAction;","const binding = { modules: {}, dataActions: {} };\n\n const registerActionId = (actionPath) => {\n if (binding.dataActions[actionPath] &&\n binding.dataActions[actionPath].default &&\n binding.dataActions[actionPath].default.prototype &&\n binding.dataActions[actionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[actionPath].default.prototype.id] = binding.dataActions[actionPath];\n } else {\n Object.keys(binding.dataActions[actionPath] || {}).forEach(exportName => {\n if (binding.dataActions[actionPath][exportName] &&\n binding.dataActions[actionPath][exportName].prototype &&\n binding.dataActions[actionPath][exportName].prototype.Action) {\n binding.dataActions[binding.dataActions[actionPath][exportName].prototype.id] = binding.dataActions[actionPath][exportName];\n }\n })\n }\n };\n\n const registerSanitizedActionPath = (sanitizedActionPath, dataAction) => {\n if (process.env.NODE_ENV === 'development') {\n if (!dataAction.default) {\n throw new Error('Data action path does not have a default export');\n }\n if (!(dataAction.default.prototype.id && binding.dataActions[dataAction.default.prototype.id]) || !binding.dataActions[sanitizedActionPath]) {\n binding.dataActions[sanitizedActionPath] = dataAction;\n }\n } else {\n binding.dataActions[sanitizedActionPath] = dataAction;\n if (!binding.dataActions[sanitizedActionPath].default) {\n throw new Error('Data action path ' + sanitizedActionPath + ' does not have a default export');\n }\n binding.dataActions[sanitizedActionPath].default.prototype.RegistrationId = sanitizedActionPath;\n if (binding.dataActions[sanitizedActionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[sanitizedActionPath].default.prototype.id] = sanitizedActionPath;\n }\n }\n };\n \n\n { \n const actionPath = 'actions/custom-get-sales-order-confirmation-with-hydrations.action';\n binding.dataActions[actionPath] = require('partner/actions/custom-get-sales-order-confirmation-with-hydrations.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/genera-product-list-warehouse-details.action';\n binding.dataActions[actionPath] = require('partner/actions/genera-product-list-warehouse-details.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/genera-product-warehouse-details.action';\n binding.dataActions[actionPath] = require('partner/actions/genera-product-warehouse-details.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/get-alternate-items-collection.action';\n binding.dataActions[actionPath] = require('partner/actions/get-alternate-items-collection.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/get-custom-product-additional-details.action';\n binding.dataActions[actionPath] = require('partner/actions/get-custom-product-additional-details.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/get-custom-product-application.action';\n binding.dataActions[actionPath] = require('partner/actions/get-custom-product-application.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/get-custom-product-interchange.action';\n binding.dataActions[actionPath] = require('partner/actions/get-custom-product-interchange.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/get-custom-product-spec.action';\n binding.dataActions[actionPath] = require('partner/actions/get-custom-product-spec.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/get-product-alternate-item.action';\n binding.dataActions[actionPath] = require('partner/actions/get-product-alternate-item.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/get-related-product-details.action';\n binding.dataActions[actionPath] = require('partner/actions/get-related-product-details.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/getProductWarehouseInfo.action';\n binding.dataActions[actionPath] = require('partner/actions/getProductWarehouseInfo.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/product-collection-eta.action';\n binding.dataActions[actionPath] = require('partner/actions/product-collection-eta.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/product-eta-action.action';\n binding.dataActions[actionPath] = require('partner/actions/product-eta-action.action');\n registerActionId(actionPath);\n }\n\n \n window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.packageDataActions = {};\n window.__bindings__.packageDataActions['__local__'] = {\n ...binding.dataActions\n };","module.exports = React;","module.exports = ReactDOM;"],"names":["orderTypes","GetSalesOrderConfirmationWithHydrationsInput","constructor","orderType","orderId","apiSettings","getCacheKey","buildCacheKey","this","getCacheObjectType","dataCacheType","async","getSalesOrderConfirmationWithHydrationsAction","input","context","Error","trace","salesOrder","arguments","length","undefined","getSalesOrderDetailsBySalesIdAsync","callerContext","getSalesOrderDetailsByTransactionIdAsync","getSalesOrder","TransactionTypeValue","TransactionType","SalesInvoice","products","ArrayExtensions","hasElements","SalesLines","productIds","map","salesLine","_salesLine$ProductId","ProductId","channelId","productInputs","productId","ProductInput","requestContext","getSimpleProducts","getProducts","ChannelId","i","attributes","getAttributeValuesAsync","queryResultSettings","QueryResultSettingsProxy","getPagingFromInputDataOrDefaultValue","RecordId","specData","idx","Name","isOversized","BooleanValue","existingExtensionProp","ExtensionProperties","find","ext","Key","updatedExistingProp","Value","push","validProducts","filter","product","ObjectExtensions","isNullOrUndefined","deliveryOptions","getDeliveryOptionsAsync","then","result","catch","error","message","telemetry","exception","debug","getSalesOrderConfirmationWithHydrationsActionDataAction","createObservableDataAction","id","action","inputData","salesId","transactionId","query","transaction","GeneraProductListWarehouseDetailsInput","ItemIds","config","getCurrentProductListWarehouseDetailsAction","ctx","productWarehouseDtl","itemIdsFilter","itemid","formData","URLSearchParams","append","app","clientId","baseUrl","clientSecret","header","headers","axios","tenentId","res","data","err","access_token","prodWarehouseDetails","axItemWarehouseUrl","join","console","log","value","Msdyn365","GeneraProductWarehouseDetailsInput","getCurrentProductWarehouseDetailsAction","_prodWarehouseDetails","prod","Array","prodDtl","getSimpleProductsAction","prodIds","ItemId","getProductWarehouseInfoAsync","bypassCache","_prodWarehouseDetails2","warehouseDetails","getSelectedProductIdFromActionInput","GetAlternateItemsCollectionInput","getProductsAlternateItemsAction","alterItems","alternateProdDetails","getProductInfoAsync","toString","item","currentProd","serviceResp","alternateDtls","currentAltItems","AltItemId","dataAreaId","UseAltItemId","productLookup","forEach","val","x","prodLookup","criteria","Context","CatalogId","catalogId","prodLists","searchByCriteriaAsync","altSampleProducts","getByIdsAsync","sampleProd","alterProdDtl","productDtl","productAvailibility","etaDetails","inventoryLabel","_alterItems$currentPr","prodETA","alterProdAvailability","dt","ProductAvailabilitiesForSelectedVariantInput","getProductAvailabilitiesForSelectedVariant","etaProdinpurt","ProductEtaActionInput","telemetryPageName","alterProdEta","getProductEtaAction","etaObj","respObj","GetCustomProductSpecficiationInput","prodAttr","response","getProductAdditionalDetailsAsync","attr","KeyName","TextValue","CountryLongName","DataTypeValue","ProductLifeCycleDescription","GetCustomProductApplicationInput","getProductApplicationInputAsync","getProductInterchangeDetailsInput","DataServiceQuery","resultSettings","createDataServiceRequestForOperation","DataServiceEntities","returnEntity","GetCustomProductInterchangeInput","request","callActionOrExecute","getProductInterchangeDetailsAsync","element","AttributeValueId","Interchange_Id","Public_Display_Name","Interchange_Part_Number","getProductSpecificationDetailsAsync","Specification_Id","Product_Attirbute_Value","GetProductAlternateItemInput","getProductAlternateItemAction","proddtl","prodAlternates","altProduct","getByIdAsync","_getInventoryLabel","e","productQty","newShippingQuantity","shipping","deliveryType","DeliveryMode","StockLevelLabel","getRelatedProductsInput","GetCustomRelatedProductsInput","getRelatedProductsAsync","itemids","index","productSearchResult","newImageUrl","generateProductImageUrl","decodeURI","PrimaryImageUrl","getProductInfoInput","apiConfiguration","Buffer","from","btoa","ClientId","ClientSecret","Resource","GrantType","APIUrl","axAlternateItemUrl","LoginUrl","getProductAdditionalDetailsInput","getProductApplicationInput","Paging","EntityClasses","Top","getProductETAInfoInput","getProductETAInfoAsync","axUrl","getProductSpecificationDetailsInput","getProductWarehouseInfoInput","getListProductsETAInfoInput","ProductCollectionEtaInput","getProductCollectionEtaAction","etaDtl","productETAinfoList","getListProductsETAInfoAsync","productETA","etaInfo","EtaDate","ETADate","EtaMessage","ResultMessage","createGetProductEtaInput","getProductEtaActionDataAction","binding","modules","dataActions","registerActionId","actionPath","default","prototype","Object","keys","exportName","Action","require","window","__bindings__","_objectSpread","packageDataActions","module","exports","React","ReactDOM"],"sourceRoot":""}