{"version":3,"file":"static/js/ed603211d0ffadc54be7.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/actions/add-counting-list-line.action.ts?0dd8","webpack://Msdyn365.Commerce.Online/./src/actions/create-counting-list.action.ts?fe16","webpack://Msdyn365.Commerce.Online/./src/actions/get-auto-suggest-suggestions-filtered.action.ts?1a25","webpack://Msdyn365.Commerce.Online/./src/actions/entities/brand-scheme-entity.ts?2274","webpack://Msdyn365.Commerce.Online/./src/actions/get-brand-scheme.action.ts?f140","webpack://Msdyn365.Commerce.Online/./src/actions/get-by-ids-dlvry.action.ts?0e9c","webpack://Msdyn365.Commerce.Online/./src/actions/get-cached-active-prices.action.ts?d35a","webpack://Msdyn365.Commerce.Online/./src/actions/get-counting-list-products.action.ts?d5c7","webpack://Msdyn365.Commerce.Online/./src/actions/get-counting-list.action.ts?32b8","webpack://Msdyn365.Commerce.Online/./src/actions/get-counting-lists.action.ts?5a21","webpack://Msdyn365.Commerce.Online/./src/actions/entities/extended-customer.ts?39f4","webpack://Msdyn365.Commerce.Online/./src/actions/get-extended-customer.action.ts?ae2e","webpack://Msdyn365.Commerce.Online/./src/actions/get-inventory-configuration.action.ts?33d1","webpack://Msdyn365.Commerce.Online/./src/actions/get-organization-address.action.ts?ada4","webpack://Msdyn365.Commerce.Online/./src/actions/get-organization-customer.ts?79c2","webpack://Msdyn365.Commerce.Online/./src/actions/entities/retail-configuration-parameter.ts?c004","webpack://Msdyn365.Commerce.Online/./src/actions/get-pickup-dlv-mode.action.ts?0829","webpack://Msdyn365.Commerce.Online/./src/actions/get-product-unit-of-measure-options.action.ts?bc1e","webpack://Msdyn365.Commerce.Online/./src/actions/entities/ship-carrier-address.ts?a906","webpack://Msdyn365.Commerce.Online/./src/actions/get-ship-carrier-address.action.ts?3eaa","webpack://Msdyn365.Commerce.Online/./src/actions/get-upcoming-order-entry-deadline.action.ts?7c19","webpack://Msdyn365.Commerce.Online/./src/actions/update-calc-cart-lines.action.ts?a07a","webpack://Msdyn365.Commerce.Online/./src/actions/update-counting-list-lines.action.ts?d102","webpack://Msdyn365.Commerce.Online/./src/actions/update-counting-list.action.ts?66ec","webpack://Msdyn365.Commerce.Online/./src/actions/entities/validate-alcohol-license.ts?763b","webpack://Msdyn365.Commerce.Online/./src/actions/validate-alcohol-license.action.ts?c46b","webpack://Msdyn365.Commerce.Online/./src/modules/dlvry-search-result-container/actions/refiner-utils.ts?04ba","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":["import * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport { AsyncResult, DataServiceQuery, IContext, IDataServiceRequest, callActionOrExecute } from '@msdyn365-commerce/retail-proxy';\r\n\r\nexport function createAddCountingListLineInput(productListId: string, countingListLine: Entities.ProductListLine): IDataServiceRequest {\r\n const query = new DataServiceQuery(\"DlvryProductLists\", \"DlvryProductList\");\r\n return query.createDataServiceRequestForOperation('AddCountingListLine', true, EntityClasses.ProductListLineClass, 'false', { bypassCache: 'get', returnEntity: 'Entities.ProductListLine' }, { productListId: productListId, countingListLine: countingListLine });\r\n}\r\n\r\nexport function addCountingListLineAsync(context: IContext, productListId: string, countingListLine: Entities.ProductListLine): AsyncResult {\r\n const request = createAddCountingListLineInput(productListId, countingListLine);\r\n return callActionOrExecute(request, context.callerContext);\r\n}","import { AsyncResult, DataServiceQuery, IContext, IDataServiceRequest, callActionOrExecute } from '@msdyn365-commerce/retail-proxy';\r\nimport * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\n\r\nexport function createCreateCountingListInput(\r\n fromDate: Date | undefined,\r\n toDate: Date | undefined,\r\n productListIds: string[],\r\n productList: Entities.ProductList\r\n): IDataServiceRequest {\r\n const query = new DataServiceQuery('DlvryProductLists', 'DlvryProductList');\r\n return query.createDataServiceRequestForOperation(\r\n 'CreateCountingList',\r\n true,\r\n EntityClasses.ProductListClass,\r\n 'false',\r\n { bypassCache: 'get', returnEntity: 'Entities.ProductList' },\r\n { fromDate: fromDate || null, toDate: toDate || null, productListIds: productListIds, productList: productList }\r\n );\r\n}\r\n\r\nexport function createCountingListAsync(\r\n context: IContext,\r\n fromDate: Date | undefined,\r\n toDate: Date | undefined,\r\n productListIds: string[],\r\n productList: Entities.ProductList\r\n): AsyncResult {\r\n const request = createCreateCountingListInput(fromDate, toDate, productListIds, productList);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Autosuggestions } from '@msdyn365-commerce/commerce-entities';\r\nimport {\r\n CacheType,\r\n createObservableDataAction,\r\n getCatalogId,\r\n IAction,\r\n IActionContext,\r\n IActionInput,\r\n ICreateActionContext\r\n} from '@msdyn365-commerce/core';\r\nimport { SearchSuggestion, SearchSuggestionCriteria } from '@msdyn365-commerce/retail-proxy';\r\nimport { getSearchSuggestionsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\r\nimport { generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { addAlcoholRefiner, addAllAttributeRefiners, addOrUpdateZeroPriceRefiner, shouldFilterAlcohol } from '../modules/dlvry-search-result-container/actions/refiner-utils';\r\n\r\nexport enum SuggestionType {\r\n Category = 'ScopedCategory',\r\n Keyword = 'Keyword',\r\n Product = 'Product',\r\n None = 'None'\r\n}\r\n\r\n/**\r\n * Input class for auto suggest search input.\r\n */\r\nexport class AutoSuggestInput implements IActionInput {\r\n public searchQuery?: string;\r\n\r\n public topResultsCount?: number;\r\n\r\n public suggestionType?: string;\r\n\r\n public hitPrefix?: string;\r\n\r\n public hitSuffix?: string;\r\n\r\n public constructor(searchText?: string, top?: number, suggestionType?: string, hitPrefix?: string, hitSuffix?: string) {\r\n this.searchQuery = searchText;\r\n this.topResultsCount = top;\r\n this.suggestionType = suggestionType;\r\n this.hitPrefix = hitPrefix;\r\n this.hitSuffix = hitSuffix;\r\n }\r\n\r\n public getCacheKey = () => 'AutoSuggestSearchSuggestions';\r\n\r\n public getCacheObjectType = () => 'AutoSuggestSearchSuggestions';\r\n\r\n public dataCacheType = (): CacheType => 'none';\r\n}\r\n\r\nconst createInput = (inputData: ICreateActionContext) => {\r\n return new AutoSuggestInput();\r\n};\r\n\r\n/**\r\n * Calls the Retail API and returns a auto-suggest suggestions.\r\n * @param input\r\n * @param ctx\r\n */\r\nexport async function getSearchSuggestionsAction(input: AutoSuggestInput, ctx: IActionContext): Promise {\r\n // If no input is provided fail out\r\n if (!input || !input.searchQuery) {\r\n throw new Error('[getSearchSuggestionsAction]No valid Input was provided, failing');\r\n }\r\n\r\n const autosuggest: Autosuggestions = {};\r\n\r\n const autoSuggestPromises = [_getAutoSuggest(input, autosuggest, ctx)];\r\n return Promise.all(autoSuggestPromises).then(() => {\r\n return autosuggest;\r\n });\r\n}\r\n\r\nasync function _getAutoSuggest(input: AutoSuggestInput, autosuggest: Autosuggestions, ctx: IActionContext): Promise {\r\n const catalogId = getCatalogId(ctx.requestContext);\r\n const searchCriteria: SearchSuggestionCriteria = {\r\n ProductSearchCriteria: {\r\n SearchCondition: input.searchQuery && input.searchQuery.length > 0 ? input.searchQuery : '',\r\n Context: {\r\n ChannelId: +ctx.requestContext.apiSettings.channelId,\r\n CatalogId: catalogId\r\n },\r\n Refinement: addOrUpdateZeroPriceRefiner(ctx)\r\n },\r\n HitPrefix: input.hitPrefix,\r\n HitSuffix: input.hitSuffix,\r\n SuggestionType: input.suggestionType\r\n };\r\n\r\n if (shouldFilterAlcohol(ctx)) {\r\n await addAlcoholRefiner(ctx, searchCriteria.ProductSearchCriteria!);\r\n }\r\n\r\n await addAllAttributeRefiners(ctx, searchCriteria.ProductSearchCriteria!);\r\n\r\n const searchSuggestions = await getSearchSuggestionsAsync(\r\n { callerContext: ctx, queryResultSettings: { Paging: { Top: input.topResultsCount } } },\r\n searchCriteria\r\n );\r\n\r\n if (searchSuggestions && searchSuggestions.length > 0) {\r\n // Generate image url\r\n searchSuggestions.map(\r\n (item: SearchSuggestion) =>\r\n (item.ImageUrl = item.ImageUrl ? generateImageUrl(item.ImageUrl, ctx.requestContext.apiSettings) : '')\r\n );\r\n\r\n autosuggest.AllSearchResults = searchSuggestions;\r\n } else {\r\n ctx.telemetry.error(\r\n `[getSearchSuggestionsAction] unable to get availabilites for search with suggestion type ${searchCriteria.SuggestionType}`\r\n );\r\n }\r\n}\r\n\r\nexport const getSearchSuggestionsActionDataAction = createObservableDataAction({\r\n id: '@msdyn365-commerce-modules/search/get-auto-suggest-suggestions',\r\n action: >getSearchSuggestionsAction,\r\n input: createInput\r\n});\r\n\r\nexport default getSearchSuggestionsActionDataAction;\r\n","import { CommerceProperty, jsonLightReadStringPropertyValue } from \"@msdyn365-commerce/retail-proxy\";\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\n\r\nexport interface IBrandSchemeEntity {\r\n BrandSchemeId: string;\r\n BrandSchemeName?: string;\r\n CanConnectProduct?: number;\r\n CanConnectProductOwner?: number;\r\n FromDate?: Date;\r\n ToDate?: Date;\r\n Sequence?: number;\r\n ImageUrl?: string;\r\n DataAreaId?: string;\r\n RecId?: number;\r\n RecVersion?: number;\r\n ExtensionProperties?: CommerceProperty[];\r\n}\r\n\r\n/**\r\n * BrandSchemeEntity entity class.\r\n */\r\nexport class BrandSchemeEntityExtensionClass implements IBrandSchemeEntity {\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 BrandSchemeId: 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 BrandSchemeName: 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 CanConnectProduct: 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 CanConnectProductOwner: 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 FromDate: 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 ToDate: 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 Sequence: 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 ImageUrl: 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 DataAreaId: 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 RecId: 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 RecVersion: 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.BrandSchemeId = odataObject.BrandSchemeId;\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.BrandSchemeName = odataObject.BrandSchemeName;\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.CanConnectProduct = odataObject.CanConnectProduct;\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.CanConnectProductOwner = odataObject.CanConnectProductOwner;\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.FromDate = (odataObject.FromDate instanceof Date) ? odataObject.FromDate\r\n : (odataObject.FromDate) ? jsonLightReadStringPropertyValue(odataObject.FromDate, '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.ToDate = (odataObject.ToDate instanceof Date) ? odataObject.ToDate\r\n : (odataObject.ToDate) ? jsonLightReadStringPropertyValue(odataObject.ToDate, '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.Sequence = odataObject.Sequence;\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.ImageUrl = odataObject.ImageUrl;\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.DataAreaId = odataObject.DataAreaId;\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.RecId = (odataObject.RecId) ? parseInt(odataObject.RecId, 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.RecVersion = odataObject.RecVersion;\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","import { IActionContext } from \"@msdyn365-commerce/core\";\r\nimport { callActionOrExecute, DataServiceQuery, IDataServiceRequest } from \"@msdyn365-commerce/retail-proxy\";\r\nimport { BrandSchemeEntityExtensionClass, IBrandSchemeEntity } from \"./entities/brand-scheme-entity\";\r\n\r\n// @ts-ignore\r\nfunction brandSchemeQuery(brandSchemeId?: string): DataServiceQuery {\r\n const key = (brandSchemeId) ? { BrandSchemeId: brandSchemeId } : null;\r\n return new DataServiceQuery(\"BrandScheme\", \"BrandSchemeEntity\", BrandSchemeEntityExtensionClass, key);\r\n}\r\n\r\nexport function createGetBrandSchemeByIdInput(brandSchemeId: string): IDataServiceRequest {\r\n const query = brandSchemeQuery();\r\n return query.createDataServiceRequestForOperation('GetBrandSchemeById', false, BrandSchemeEntityExtensionClass, 'false', { bypassCache: 'none', returnEntity: 'DataServiceEntities.IBrandSchemeEntity' }, { brandSchemeId: brandSchemeId });\r\n}\r\n\r\nexport async function getBrandSchemeByIdAsync(context: IActionContext, brandSchemeId: string): Promise {\r\n const request = createGetBrandSchemeByIdInput(brandSchemeId);\r\n const result = await callActionOrExecute(request, context);\r\n return result;\r\n}\r\n","import { IActionContext } from '@msdyn365-commerce/core';\r\nimport { generateProductImageUrl } from '@msdyn365-commerce-modules/retail-actions';\r\nimport {\r\n callActionOrExecute,\r\n DataServiceQuery,\r\n IContext,\r\n IDataServiceRequest,\r\n IQueryResultSettings\r\n} from '@msdyn365-commerce/retail-proxy';\r\nimport * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as Types from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nfunction getByIdsDlvryQuery(): DataServiceQuery {\r\n return new DataServiceQuery();\r\n}\r\n\r\nexport function getByIdsDlvryInput(\r\n queryResultSettings: IQueryResultSettings,\r\n productIds: number[],\r\n channelId: number,\r\n inventLocationId: string | null\r\n): IDataServiceRequest {\r\n const query = getByIdsDlvryQuery().resultSettings(queryResultSettings);\r\n const request = query.createDataServiceRequestForOperation(\r\n 'GetByIdsDlvry',\r\n true, Entities.SimpleProductClass,\r\n 'true',\r\n { bypassCache: 'get', returnEntity: 'Entities.SimpleProductClass' },\r\n {\r\n productIds: productIds,\r\n channelId: channelId,\r\n inventLocationId: inventLocationId\r\n }\r\n );\r\n return request;\r\n}\r\n\r\nexport async function getByIdsDlvryAsync(context: IContext, productIds: number[], channelId: number, inventLocationId: string | null): Promise {\r\n const request = getByIdsDlvryInput(context.queryResultSettings || {}, productIds, channelId, inventLocationId);\r\n const products = await callActionOrExecute(request, context.callerContext);\r\n\r\n // Prepend the base image url to each image\r\n products.forEach(product => {\r\n try {\r\n const newImageUrl = generateProductImageUrl(product, context.callerContext.requestContext.apiSettings as any);\r\n\r\n if (newImageUrl) {\r\n product.PrimaryImageUrl = newImageUrl;\r\n }\r\n } catch {\r\n (context.callerContext as IActionContext).trace('[getByIdsDlvryAsync] Unable to update ImageURL for Product');\r\n }\r\n });\r\n\r\n return products;\r\n}","import { callActionOrExecute, DataServiceQuery, IContext, IDataServiceRequest, IQueryResultSettings } from \"@msdyn365-commerce/retail-proxy\";\r\nimport * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as Types from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nfunction getCachedActivePricesQuery(): DataServiceQuery {\r\n return new DataServiceQuery();\r\n}\r\n\r\nexport function getCachedActivePricesInput(\r\n queryResultSettings: IQueryResultSettings,\r\n projectDomain: Types.ProjectionDomain,\r\n productIds: number[],\r\n activeDate: Date,\r\n customerId: string | null,\r\n includeSimpleDiscountsInContextualPrice: boolean,\r\n includeVariantPriceRange: boolean,\r\n includeAttainablePricesAndDiscounts: boolean): IDataServiceRequest {\r\n const query = getCachedActivePricesQuery().resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation(\r\n 'GetCachedActivePrices',\r\n true,\r\n Entities.ProductPriceClass,\r\n 'true',\r\n { bypassCache: 'get', returnEntity: 'Entities.ProductPriceClass' },\r\n {\r\n projectDomain: projectDomain,\r\n productIds: productIds,\r\n activeDate: activeDate,\r\n customerId: customerId,\r\n includeSimpleDiscountsInContextualPrice: includeSimpleDiscountsInContextualPrice,\r\n includeVariantPriceRange: includeVariantPriceRange,\r\n includeAttainablePricesAndDiscounts: includeAttainablePricesAndDiscounts\r\n }\r\n );\r\n}\r\n\r\n/**\r\n * @deprecated Price caching is no longer in use.\r\n */\r\nexport async function getCachedActivePricesAsync(\r\n context: IContext,\r\n projectDomain: Types.ProjectionDomain,\r\n productIds: number[],\r\n activeDate: Date,\r\n customerId: string | null,\r\n includeSimpleDiscountsInContextualPrice: boolean,\r\n includeVariantPriceRange: boolean,\r\n includeAttainablePricesAndDiscounts: boolean): Promise {\r\n const request = getCachedActivePricesInput(\r\n context.queryResultSettings || {},\r\n projectDomain,\r\n productIds,\r\n activeDate,\r\n customerId,\r\n includeSimpleDiscountsInContextualPrice,\r\n includeVariantPriceRange,\r\n includeAttainablePricesAndDiscounts);\r\n const result = await callActionOrExecute(request, context.callerContext);\r\n return result;\r\n}","import { AsyncResult, DataServiceQuery, IContext, IDataServiceRequest, IQueryResultSettings, callActionOrExecute } from \"@msdyn365-commerce/retail-proxy\";\r\nimport { SimpleProductClass } from \"@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g\";\r\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nexport function getCountingListProductsInput(\r\n queryResultSettings: IQueryResultSettings,\r\n channelId: number,\r\n productIds: number[],\r\n inventLocationId: string | null | undefined,\r\n catalogId: number\r\n): IDataServiceRequest {\r\n const query = new DataServiceQuery();\r\n query.resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation(\r\n 'GetCountingListProducts',\r\n true, SimpleProductClass,\r\n 'true',\r\n { bypassCache: 'none', returnEntity: 'SimpleProduct' },\r\n {\r\n channelId: channelId,\r\n inventLocationId: inventLocationId,\r\n productIds: productIds,\r\n catalogId: catalogId\r\n }\r\n );\r\n}\r\n\r\nexport function getCountingListProductsAsync(\r\n context: IContext,\r\n channelId: number,\r\n productIds: number[],\r\n inventLocationId: string | null | undefined,\r\n catalogId: number\r\n): AsyncResult {\r\n const request = getCountingListProductsInput(\r\n context.queryResultSettings || {}, channelId, productIds, inventLocationId, catalogId);\r\n return callActionOrExecute(request, context.callerContext);\r\n}","import { createObservableDataAction, IAction, IActionContext } from '@msdyn365-commerce/core';\r\nimport {\r\n AsyncResult,\r\n CacheType,\r\n DataServiceQuery,\r\n IActionInput,\r\n IContext,\r\n IDataServiceRequest,\r\n callActionOrExecute\r\n} from '@msdyn365-commerce/retail-proxy';\r\nimport * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\n\r\nexport class GetCountingListInput implements IActionInput {\r\n public shouldCacheOutput = (): boolean => false;\r\n\r\n public getCacheKey = () => 'get-counting-list';\r\n public getCacheObjectType = () => 'counting-list';\r\n public dataCacheType = (): CacheType => 'request';\r\n}\r\n\r\nconst createInput = (): GetCountingListInput => {\r\n return new GetCountingListInput();\r\n};\r\n\r\nexport function createGetCountingListInput(productListId: string): IDataServiceRequest {\r\n const query = new DataServiceQuery('DlvryProductLists', 'DlvryProductList');\r\n return query.createDataServiceRequestForOperation(\r\n 'GetCountingList',\r\n true,\r\n EntityClasses.ProductListClass,\r\n 'false',\r\n { bypassCache: 'getAndPut', returnEntity: 'Entities.ProductList' },\r\n { productListId: productListId }\r\n );\r\n}\r\n\r\nexport function getCountingListAsync(context: IContext, productListId: string): AsyncResult {\r\n const request = createGetCountingListInput(productListId);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n\r\nexport async function getCountingListAsyncAction(input: GetCountingListInput, context: IActionContext): Promise {\r\n if (!context.requestContext.user.isAuthenticated) {\r\n throw new Error('Unable to get counting list. User is not authenticated.');\r\n }\r\n\r\n if (!context.requestContext.query?.id) {\r\n throw new Error('Failed to get counting list id from the query.');\r\n }\r\n\r\n const countingList = await getCountingListAsync({ callerContext: context }, context.requestContext.query.id);\r\n\r\n return countingList;\r\n}\r\n\r\nexport const getCountingList = createObservableDataAction({\r\n id: 'dlvry/get-counting-list',\r\n action: >getCountingListAsyncAction,\r\n input: createInput\r\n});\r\n\r\nexport default getCountingList;\r\n","import { createObservableDataAction, IAction, IActionContext } from '@msdyn365-commerce/core';\r\nimport {\r\n AsyncResult,\r\n CacheType,\r\n DataServiceQuery,\r\n IActionInput,\r\n IContext,\r\n IDataServiceRequest,\r\n IQueryResultSettings,\r\n callActionOrExecute\r\n} from '@msdyn365-commerce/retail-proxy';\r\nimport * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\n\r\nexport class GetCountingListsInput implements IActionInput {\r\n public shouldCacheOutput = (): boolean => false;\r\n\r\n public getCacheKey = () => 'get-counting-lists';\r\n public getCacheObjectType = () => 'counting-lists';\r\n public dataCacheType = (): CacheType => 'request';\r\n}\r\n\r\nconst createInput = (): GetCountingListsInput => {\r\n return new GetCountingListsInput();\r\n};\r\n\r\nexport function createGetCountingListsInput(\r\n queryResultSettings: IQueryResultSettings,\r\n customerId: string,\r\n countingListId: string\r\n): IDataServiceRequest {\r\n const query = new DataServiceQuery('DlvryProductLists', 'DlvryProductList');\r\n return query.createDataServiceRequestForOperation(\r\n 'GetCountingLists',\r\n true,\r\n EntityClasses.ProductListClass,\r\n 'true',\r\n {\r\n bypassCache: 'none',\r\n returnEntity: 'Entities.ProductList'\r\n },\r\n {\r\n customerId,\r\n countingListId\r\n }\r\n );\r\n}\r\n\r\nexport function getCountingListsAsync(context: IContext, customerId: string, countingListId?: string): AsyncResult {\r\n const request = createGetCountingListsInput(context.queryResultSettings || {}, customerId, countingListId || '');\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n\r\nexport async function getCountingListsAsyncAction(input: GetCountingListsInput, context: IActionContext): Promise {\r\n if (!context.requestContext.user.isAuthenticated) {\r\n throw new Error('Unable to get counting lists. User is not authenticated.');\r\n }\r\n\r\n const countingLists = await getCountingListsAsync(\r\n { callerContext: context },\r\n context.requestContext.user.customerAccountNumber || '',\r\n ''\r\n );\r\n\r\n return countingLists;\r\n}\r\n\r\nexport const getCountingLists = createObservableDataAction({\r\n id: 'dlvry/get-counting-lists',\r\n action: >getCountingListsAsyncAction,\r\n input: createInput\r\n});\r\n\r\nexport default getCountingLists;\r\n","import * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\n/**\r\n * ExtendedCustomer entity interface.\r\n */\r\nexport interface IExtendedCustomer {\r\n AccountNum?: string;\r\n SalesCalendarId?: string;\r\n OrderEntryDeadlineGroupId?: string;\r\n PurchOrderFormNumFixed?: string;\r\n CustomerRefFixed?: string;\r\n DataAreaId?: string;\r\n RecId?: number;\r\n RecVersion?: number;\r\n ExtensionProperties?: Entities.CommerceProperty[];\r\n}\r\n\r\n/**\r\n * ExtendedCustomer entity class.\r\n */\r\nexport class ExtendedCustomerExtensionClass implements IExtendedCustomer {\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 AccountNum: 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 SalesCalendarId: 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 OrderEntryDeadlineGroupId: 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 PurchOrderFormNumFixed: 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 CustomerRefFixed: 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 DataAreaId: 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 RecId: 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 RecVersion: 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.AccountNum = odataObject.AccountNum;\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.SalesCalendarId = odataObject.SalesCalendarId;\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.OrderEntryDeadlineGroupId = odataObject.OrderEntryDeadlineGroupId;\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.PurchOrderFormNumFixed = odataObject.PurchOrderFormNumFixed;\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.CustomerRefFixed = odataObject.CustomerRefFixed;\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.DataAreaId = odataObject.DataAreaId;\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.RecId = (odataObject.RecId) ? parseInt(odataObject.RecId, 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.RecVersion = odataObject.RecVersion;\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] =\r\n 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","import { callActionOrExecute, DataServiceQuery, IContext, IDataServiceRequest } from \"@msdyn365-commerce/retail-proxy\";\r\nimport { ExtendedCustomerExtensionClass, IExtendedCustomer } from \"./entities/extended-customer\";\r\n\r\nfunction getExtendedCustomerQuery(): DataServiceQuery {\r\n return new DataServiceQuery();\r\n}\r\n\r\nexport function getExtendedCustomerInput(): IDataServiceRequest {\r\n const query = getExtendedCustomerQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'GetExtendedCustomer',\r\n false,\r\n ExtendedCustomerExtensionClass,\r\n 'false',\r\n { bypassCache: 'get', returnEntity: 'IExtendedCustomer' },\r\n { }\r\n );\r\n}\r\n\r\nexport async function getExtendedCustomerAsync(context: IContext): Promise {\r\n const request = getExtendedCustomerInput();\r\n const result = await callActionOrExecute(request, context.callerContext);\r\n return result;\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 { ChannelInventoryConfiguration } from '@msdyn365-commerce/retail-proxy';\r\nimport { getInventoryConfigurationAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\r\n\r\n/**\r\n * GetInventoryConfiguration Input Action\r\n */\r\nexport class GetInventoryConfigurationInput implements Msdyn365.IActionInput {\r\n constructor() {}\r\n\r\n public getCacheKey = () => '';\r\n public getCacheObjectType = () => 'ChannelInventoryConfiguration';\r\n public dataCacheType = (): Msdyn365.CacheType => 'application';\r\n}\r\n\r\nconst createInput = (args: Msdyn365.ICreateActionContext): Msdyn365.IActionInput => {\r\n return new GetInventoryConfigurationInput();\r\n};\r\n\r\nasync function action(input: GetInventoryConfigurationInput, ctx: Msdyn365.IActionContext): Promise {\r\n const channelInventoryConfiguration = getInventoryConfigurationAsync({ callerContext: ctx });\r\n return channelInventoryConfiguration;\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >>action,\r\n id: 'src/actions/get-inventory-configuration',\r\n input: createInput\r\n});\r\n","import { createObservableDataAction, IActionContext, IAction, ICreateActionContext, IGeneric, IAny, ICommerceApiSettings } from '@msdyn365-commerce/core';\r\nimport { CacheType, callActionOrExecute, Customer, Address, DataServiceQuery, IActionInput, IDataServiceRequest } from \"@msdyn365-commerce/retail-proxy\";\r\nimport * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\n\r\nexport class GetOrganizationCustomerAddressInput implements IActionInput {\r\n private readonly user: string | undefined;\r\n private readonly query: DataServiceQuery;\r\n\r\n constructor(apiSettings: ICommerceApiSettings, user: string) {\r\n this.user = user;\r\n\r\n this.query = new DataServiceQuery();\r\n }\r\n\r\n public getDataServiceRequest = (): IDataServiceRequest => {\r\n return this.query.createDataServiceRequestForOperation(\r\n 'GetOrganizationCustomer',\r\n false,\r\n Entities.CustomerClass,\r\n 'false',\r\n {\r\n bypassCache: 'get',\r\n returnEntity: 'Entities.CustomerClass'\r\n },\r\n {}\r\n );\r\n };\r\n\r\n public shouldCacheOutput = (): boolean => false;\r\n\r\n public getCacheKey = () => `OrganizationCustomerAddress-${this.user}`;\r\n public getCacheObjectType = () => 'OrganizationCustomer';\r\n public dataCacheType = (): CacheType => 'request';\r\n}\r\n\r\nconst createGetAddressInput = (inputData: ICreateActionContext>): GetOrganizationCustomerAddressInput => {\r\n const { user } = inputData.requestContext;\r\n return new GetOrganizationCustomerAddressInput(inputData.requestContext.apiSettings, user.customerAccountNumber ?? \"\");\r\n};\r\n\r\nexport const getOrganizationCustomerAddressAction = async (input: GetOrganizationCustomerAddressInput, ctx: IActionContext): Promise => {\r\n if (!ctx.requestContext.user.isAuthenticated) {\r\n return [];\r\n }\r\n var customer = await callActionOrExecute(input.getDataServiceRequest(), ctx);\r\n return customer.Addresses || [];\r\n};\r\n\r\nexport const getOrganizationCustomerAddress = createObservableDataAction({\r\n id: '@msdyn365-commerce-modules/retail-actions/get-address',\r\n action: >getOrganizationCustomerAddressAction,\r\n input: <(args: ICreateActionContext) => IActionInput>createGetAddressInput\r\n});\r\n\r\nexport default getOrganizationCustomerAddress;\r\n","import { createObservableDataAction, IActionContext, IAction, ICreateActionContext, IGeneric, IAny, ICommerceApiSettings } from '@msdyn365-commerce/core';\r\nimport { CacheType, callActionOrExecute, Customer, DataServiceQuery, IActionInput, IDataServiceRequest } from \"@msdyn365-commerce/retail-proxy\";\r\nimport * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\n\r\nexport class GetOrganizationCustomerInput implements IActionInput {\r\n private readonly user: string | undefined;\r\n private readonly query: DataServiceQuery;\r\n\r\n constructor(apiSettings: ICommerceApiSettings, user: string) {\r\n this.user = user;\r\n\r\n this.query = new DataServiceQuery();\r\n }\r\n\r\n public getDataServiceRequest = (): IDataServiceRequest => {\r\n return this.query.createDataServiceRequestForOperation(\r\n 'GetOrganizationCustomer',\r\n false,\r\n Entities.CustomerClass,\r\n 'false',\r\n {\r\n bypassCache: 'get',\r\n returnEntity: 'Entities.CustomerClass'\r\n },\r\n {}\r\n );\r\n };\r\n\r\n public shouldCacheOutput = (): boolean => false;\r\n\r\n public getCacheKey = () => `OrganizationCustomer-${this.user}`;\r\n public getCacheObjectType = () => 'OrganizationCustomer';\r\n public dataCacheType = (): CacheType => 'request';\r\n}\r\n\r\nconst createInput = (inputData: ICreateActionContext>): GetOrganizationCustomerInput => {\r\n const { user } = inputData.requestContext;\r\n return new GetOrganizationCustomerInput(inputData.requestContext.apiSettings, user.customerAccountNumber ?? \"\");\r\n};\r\n\r\nexport const getOrganizationCustomerAction = async (input: GetOrganizationCustomerInput, ctx: IActionContext): Promise => {\r\n if (!ctx.requestContext.user.isAuthenticated) {\r\n return {};\r\n }\r\n var customer = await callActionOrExecute(input.getDataServiceRequest(), ctx);\r\n return customer;\r\n};\r\n\r\nexport const getOrganizationCustomer = createObservableDataAction({\r\n id: 'src/actions/get-organization-customer',\r\n action: >getOrganizationCustomerAction,\r\n input: createInput\r\n});\r\n\r\nexport default getOrganizationCustomer;\r\n","import { CommerceProperty } from \"@msdyn365-commerce/retail-proxy\";\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\n\r\nexport interface IRetailConfigurationParameter {\r\n RecId?: number;\r\n Name?: string;\r\n Value?: string;\r\n}\r\n\r\nexport class RetailConfigurationParameterExtensionClass implements IRetailConfigurationParameter {\r\n public Name?: string;\r\n public Value?: string;\r\n public RecId?: number;\r\n\r\n public ExtensionProperties: CommerceProperty[];\r\n\r\n constructor(odataObject?: any) {\r\n odataObject = odataObject || {};\r\n\r\n this.Name = odataObject.Name;\r\n this.Value = odataObject.Value;\r\n this.RecId = (odataObject.RecId) ? parseInt(odataObject.RecId, 10) : 0;\r\n\r\n // @ts-ignore\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] =\r\n 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}","import { IActionContext, createObservableDataAction, IAction, ICommerceApiSettings, IGeneric, IAny, ICreateActionContext } from \"@msdyn365-commerce/core\";\r\nimport { CacheType, callActionOrExecute, DataServiceQuery, IActionInput, IDataServiceRequest } from \"@msdyn365-commerce/retail-proxy\";\r\nimport { RetailConfigurationParameterExtensionClass, IRetailConfigurationParameter } from \"./entities/retail-configuration-parameter\";\r\n\r\nexport class GetPickupDlvModeInput implements IActionInput {\r\n private readonly query: DataServiceQuery;\r\n\r\n constructor(apiSettings: ICommerceApiSettings) {\r\n this.query = new DataServiceQuery();\r\n }\r\n\r\n public getDataServiceRequest = (): IDataServiceRequest => {\r\n return this.query.createDataServiceRequestForOperation(\r\n 'GetPickupDlvMode',\r\n false,\r\n RetailConfigurationParameterExtensionClass,\r\n 'false',\r\n { bypassCache: 'get', returnEntity: 'RetailConfigurationParameterExtensionClass' },\r\n {}\r\n );\r\n };\r\n public shouldCacheOutput = (): boolean => false;\r\n\r\n public getCacheKey = () => `PickupDlvMode`;\r\n public getCacheObjectType = () => 'PickupDlvMode';\r\n public dataCacheType = (): CacheType => 'request';\r\n}\r\n\r\nconst createInput = (inputData: ICreateActionContext>): GetPickupDlvModeInput => {\r\n return new GetPickupDlvModeInput(inputData.requestContext.apiSettings);\r\n};\r\n\r\nexport const getPickupDlvModeAction = async (input: any, ctx: IActionContext): Promise => {\r\n const result = await callActionOrExecute(input.getDataServiceRequest(), ctx);\r\n return result;\r\n};\r\n\r\nexport const getPickupDlvMode = createObservableDataAction({\r\n id: 'src/actions/get-pickup-dlv-mode',\r\n action: >getPickupDlvModeAction,\r\n input: createInput\r\n});\r\n\r\nexport default getPickupDlvMode;","import { callActionOrExecute, DataServiceQuery, IContext, IDataServiceRequest, IQueryResultSettings } from \"@msdyn365-commerce/retail-proxy\";\r\nimport * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as Types from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nfunction getProductUnitOfMeasureOptionsQuery(): DataServiceQuery {\r\n return new DataServiceQuery();\r\n}\r\n\r\n\r\nexport function getProductUnitOfMeasureOptionsInput(\r\n queryResultSettings: IQueryResultSettings, productIds:\r\n number[]\r\n): IDataServiceRequest {\r\n const query = getProductUnitOfMeasureOptionsQuery().resultSettings(queryResultSettings);\r\n query.top(10000);\r\n return query.createDataServiceRequestForOperation(\r\n 'GetProductUnitOfMeasureOptions',\r\n true, Entities.UnitOfMeasureConversionClass,\r\n 'true',\r\n { bypassCache: 'none', returnEntity: 'Entities.UnitOfMeasureConversion' },\r\n {\r\n productIds: productIds\r\n }\r\n );\r\n}\r\n\r\nexport async function getProductUnitOfMeasureOptionsAsync(context: IContext, productIds: number[]): Promise {\r\n const request = getProductUnitOfMeasureOptionsInput(\r\n context.queryResultSettings || {}, productIds);\r\n const conversions = await callActionOrExecute(request, context.callerContext);\r\n return conversions;\r\n}","import { CommerceProperty } from \"@msdyn365-commerce/retail-proxy\";\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\n\r\nexport interface IShipCarrierAddress {\r\n CustAccount?: string;\r\n DlvModeId?: string;\r\n DlvTermId?: string;\r\n Location?: number;\r\n ShipCarrierAccount?: string;\r\n ShipCarrierAccountCode?: string;\r\n ShipCarrierBlindShipment?: number;\r\n ShipCarrierId?: string;\r\n ShipCarrierResidentialDest?: number;\r\n DataAreaId?: string;\r\n RecId?: number;\r\n RecVersion?: number;\r\n ExtensionProperties?: CommerceProperty[];\r\n}\r\n\r\n/**\r\n * ShipCarrierAddress entity class.\r\n */\r\nexport class ShipCarrierAddressExtensionClass implements IShipCarrierAddress {\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 CustAccount: 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 DlvModeId: 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 DlvTermId: 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 Location: 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 ShipCarrierAccount: 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 ShipCarrierAccountCode: 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 ShipCarrierBlindShipment: 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 ShipCarrierId: 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 ShipCarrierResidentialDest: 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 DataAreaId: 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 RecId: 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 RecVersion: 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.CustAccount = odataObject.CustAccount;\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.DlvModeId = odataObject.DlvModeId;\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.DlvTermId = odataObject.DlvTermId;\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.Location = (odataObject.Location) ? parseInt(odataObject.Location, 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.ShipCarrierAccount = odataObject.ShipCarrierAccount;\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.ShipCarrierAccountCode = odataObject.ShipCarrierAccountCode;\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.ShipCarrierBlindShipment = odataObject.ShipCarrierBlindShipment;\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.ShipCarrierId = odataObject.ShipCarrierId;\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.ShipCarrierResidentialDest = odataObject.ShipCarrierResidentialDest;\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.DataAreaId = odataObject.DataAreaId;\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.RecId = (odataObject.RecId) ? parseInt(odataObject.RecId, 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.RecVersion = odataObject.RecVersion;\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] =\r\n 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","import { IActionContext } from \"@msdyn365-commerce/core\";\r\nimport { callActionOrExecute, DataServiceQuery, IDataServiceRequest } from \"@msdyn365-commerce/retail-proxy\";\r\nimport { ShipCarrierAddressExtensionClass, IShipCarrierAddress } from \"./entities/ship-carrier-address\";\r\n\r\nfunction shipCarrierAddressQuery(): DataServiceQuery {\r\n return new DataServiceQuery();\r\n}\r\n\r\nexport function getShipCarrierAddressInput(location: number): IDataServiceRequest {\r\n const query = shipCarrierAddressQuery();\r\n return query.createDataServiceRequestForOperation('GetShipCarrierAddress',\r\n false,\r\n ShipCarrierAddressExtensionClass,\r\n 'false',\r\n { bypassCache: 'get', returnEntity: 'IShipCarrierAddress' },\r\n {\r\n location: location\r\n });\r\n}\r\n\r\nexport async function getShipCarrierAddressAsync(context: IActionContext, location: number): Promise {\r\n const request = getShipCarrierAddressInput(location);\r\n const result = await callActionOrExecute(request, context);\r\n return result;\r\n}\r\n","import { AsyncResult, callActionOrExecute, DataServiceQuery, IContext, IDataServiceRequest } from \"@msdyn365-commerce/retail-proxy\";\r\n\r\nfunction getUpcomingOrderEntryDeadlineQuery(): DataServiceQuery {\r\n return new DataServiceQuery();\r\n}\r\n\r\nexport function getUpcomingOrderEntryDeadlineInput(callerTime: Date): IDataServiceRequest {\r\n const query = getUpcomingOrderEntryDeadlineQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'GetUpcomingOrderEntryDeadline',\r\n true,\r\n ''\r\n ,\r\n 'false',\r\n { bypassCache: 'get', returnEntity: '' },\r\n {\r\n callerTime: callerTime\r\n }\r\n );\r\n}\r\n\r\nexport function getUpcomingOrderEntryDeadlineAsync(context: IContext, callerTime: Date): AsyncResult {\r\n const request = getUpcomingOrderEntryDeadlineInput(callerTime);\r\n return callActionOrExecute(request, context.callerContext);\r\n}","import { AsyncResult, Cart, DataServiceQuery, IContext, IDataServiceRequest, callActionOrExecute } from '@msdyn365-commerce/retail-proxy';\r\nimport * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nfunction updateCalcCartLinesQuery(): DataServiceQuery {\r\n return new DataServiceQuery();\r\n}\r\n\r\n/**\r\n * An enumeration used to indicate which combination of calculations should be\r\n * performed when returning the cart.\r\n */\r\nexport enum CalculationModes {\r\n /**\r\n * No calculations are performed.\r\n * This value must be checked directly and not used with HasFlags method.\r\n */\r\n None = 0,\r\n /**\r\n * Prices are calculated.\r\n */\r\n Prices = 1,\r\n /**\r\n * Discounts are calculated.\r\n */\r\n Discounts = 2,\r\n /**\r\n * Charges are calculated.\r\n */\r\n Charges = 4,\r\n /**\r\n * Taxes are calculated.\r\n */\r\n Taxes = 8,\r\n /**\r\n * Totals are calculated and rounded.\r\n */\r\n Totals = 16, // 0x00000010\r\n /**\r\n * Deposit and prepayments are calculated.\r\n */\r\n Deposit = 32, // 0x00000020\r\n /**\r\n * Amount due (balance due) is calculated.\r\n */\r\n AmountDue = 64, // 0x00000040\r\n /**\r\n * All calculations are performed.\r\n */\r\n All = 127 // 0x0000007F\r\n}\r\n\r\nexport function updateCalcCartLinesInput(\r\n id: string,\r\n cartLines: Entities.CartLine[],\r\n calculationModes: CalculationModes,\r\n cartVersion: number | null\r\n): IDataServiceRequest {\r\n const query = updateCalcCartLinesQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'UpdateCalcCartLines',\r\n true,\r\n 'CartClass',\r\n 'false',\r\n { bypassCache: 'get', returnEntity: 'Cart' },\r\n {\r\n id: id,\r\n cartLines: cartLines,\r\n calculationModes: calculationModes,\r\n cartVersion: cartVersion\r\n }\r\n );\r\n}\r\n\r\nexport function updateCalcCartLinesAsync(\r\n context: IContext,\r\n id: string,\r\n cartLines: Entities.CartLine[],\r\n calculationModes: CalculationModes,\r\n cartVersion: number | null\r\n): AsyncResult {\r\n const request = updateCalcCartLinesInput(id, cartLines, calculationModes, cartVersion);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n","import { AsyncResult, DataServiceQuery, IContext, IDataServiceRequest, IQueryResultSettings, callActionOrExecute } from \"@msdyn365-commerce/retail-proxy\";\r\nimport * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\n\r\nexport function createUpdateCountingListLinesInput(queryResultSettings: IQueryResultSettings, productListLines: Entities.ProductListLine[]): IDataServiceRequest {\r\n const query = new DataServiceQuery(\"DlvryProductLists\", \"DlvryProductList\");\r\n return query.createDataServiceRequestForOperation('UpdateCountingListLines', true, EntityClasses.ProductListLineClass, 'true', { bypassCache: 'get', returnEntity: 'Entities.ProductListLine' }, { productListLines: productListLines });\r\n}\r\n\r\nexport function updateCountingListLinesAsync(context: IContext, productListLines: Entities.ProductListLine[]): AsyncResult {\r\n const request = createUpdateCountingListLinesInput(\r\n context.queryResultSettings || {}, productListLines);\r\n return callActionOrExecute(request, context.callerContext);\r\n}","import * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport { AsyncResult, DataServiceQuery, IContext, IDataServiceRequest, callActionOrExecute } from '@msdyn365-commerce/retail-proxy';\r\n\r\nexport function createUpdateCountingListInput(productList: Entities.ProductList): IDataServiceRequest {\r\n const query = new DataServiceQuery(\"DlvryProductLists\", \"DlvryProductList\");\r\n return query.createDataServiceRequestForOperation('UpdateCountingList', true, EntityClasses.ProductListClass, 'false', { bypassCache: 'get', returnEntity: 'Entities.ProductList' }, { productList: productList });\r\n}\r\n\r\n\r\nexport function updateCountingListAsync(context: IContext, productList: Entities.ProductList): AsyncResult {\r\n const request = createUpdateCountingListInput(productList);\r\n return callActionOrExecute(request, context.callerContext);\r\n}","import * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\n\r\n/**\r\n * AlcoholLicenseValidationDetails entity interface.\r\n */\r\nexport interface IAlcoholLicenseValidationDetails {\r\n Message?: string;\r\n LicenseNeeded?: number;\r\n ProductId?: number;\r\n}\r\n\r\n/**\r\n * AlcoholValidationCriteria entity interface.\r\n */\r\nexport interface IAlcoholValidationCriteria {\r\n ProductIds: number[];\r\n CatalogId: number;\r\n}\r\n\r\n/**\r\n * ValidateAlcoholLicenseResult entity interface.\r\n */\r\nexport interface IValidateAlcoholLicenseResult {\r\n ValidationResult?: boolean;\r\n CustomerLicense?: number;\r\n Details?: IAlcoholLicenseValidationDetails[];\r\n}\r\n\r\n/**\r\n * AlcoholValidationCriteria entity class.\r\n */\r\nexport class AlcoholValidationCriteriaExtensionClass implements IAlcoholValidationCriteria {\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 ProductIds: 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 CatalogId: 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.CatalogId = odataObject.CatalogId;\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.ProductIds = undefined;\r\n if (odataObject.ProductIds) {\r\n this.ProductIds = [];\r\n for (var i = 0; i < odataObject.ProductIds.length; i++) {\r\n if (odataObject.ProductIds[i]) {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ProductIds[i] =\r\n parseInt(odataObject.ProductIds[i], 10);\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.ProductIds[i] = undefined;\r\n }\r\n }\r\n }\r\n\r\n }\r\n}\r\n\r\n/**\r\n * AlcoholLicenseValidationDetails entity class.\r\n */\r\nexport class AlcoholLicenseValidationDetailsExtensionClass implements IAlcoholLicenseValidationDetails {\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Message: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public LicenseNeeded: 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 ProductId: 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.Message = odataObject.Message;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.LicenseNeeded = odataObject.LicenseNeeded;\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.ProductId = (odataObject.ProductId) ? parseInt(odataObject.ProductId, 10) : 0;\r\n }\r\n}\r\n\r\n/**\r\n * ValidateAlcoholLicenseResult entity class.\r\n */\r\nexport class ValidateAlcoholLicenseResultExtensionClass implements IValidateAlcoholLicenseResult {\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 ValidationResult: 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 CustomerLicense: 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 Details: IAlcoholLicenseValidationDetails[];\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.ValidationResult = odataObject.ValidationResult;\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.CustomerLicense = odataObject.CustomerLicense;\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.Details = undefined;\r\n if (odataObject.Details) {\r\n this.Details = [];\r\n for (var i = 0; i < odataObject.Details.length; i++) {\r\n if (odataObject.Details[i]) {\r\n if (odataObject.Details[i]['@odata.type']) {\r\n var className: string = odataObject.Details[i]['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\r\n if (EntityClasses[className]) {\r\n this.Details[i] = new EntityClasses[className](odataObject.Details[i]);\r\n }\r\n } else {\r\n this.Details[i] = new AlcoholLicenseValidationDetailsExtensionClass(odataObject.Details[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.Details[i] = undefined;\r\n }\r\n }\r\n }\r\n\r\n }\r\n}","import { IActionContext } from '@msdyn365-commerce/core';\r\nimport { DataServiceQuery, IDataServiceRequest, callActionOrExecute } from \"@msdyn365-commerce/retail-proxy\";\r\nimport { ValidateAlcoholLicenseResultExtensionClass, IValidateAlcoholLicenseResult, IAlcoholValidationCriteria } from './entities/validate-alcohol-license';\r\n\r\nfunction validateAlcoholLicenseQuery(): DataServiceQuery {\r\n return new DataServiceQuery();\r\n}\r\n\r\nexport function validateAlcoholLicenseInput(validationCriteria: IAlcoholValidationCriteria): IDataServiceRequest {\r\n const query = validateAlcoholLicenseQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'ValidateAlcoholLicense',\r\n true,\r\n ValidateAlcoholLicenseResultExtensionClass,\r\n 'false',\r\n { bypassCache: 'get', returnEntity: 'IValidateAlcoholLicenseResult' },\r\n {\r\n validationCriteria: validationCriteria\r\n }\r\n );\r\n}\r\n\r\nexport async function validateAlcoholLicenseAsync(ctx: IActionContext, validationCriteria: IAlcoholValidationCriteria): Promise {\r\n const request = validateAlcoholLicenseInput(validationCriteria);\r\n const result = await callActionOrExecute(request, ctx);\r\n return result;\r\n}\r\n","import { IActionContext } from '@msdyn365-commerce/core';\r\nimport { AttributeDataType, CustomerAttribute, ProductRefinerSource, ProductRefinerValue, ProductSearchCriteria } from '@msdyn365-commerce/retail-proxy';\r\n// @ts-ignore\r\nimport { getCustomer, GetCustomerInput } from '@msdyn365-commerce-modules/retail-actions';\r\nimport getOrganizationCustomer, { GetOrganizationCustomerInput } from '../../../actions/get-organization-customer';\r\n\r\n// Pre populated with ids from STAGE for local development\r\nconst AlcoholGroupAttributeId = 5637155076;\r\n\r\nfunction isGodmodeEnabled(context: IActionContext): boolean {\r\n const godmode = context.requestContext.url.requestUrl.searchParams.get('godmode')?.toLowerCase();\r\n\r\n return godmode === '1' || godmode === 'true';\r\n}\r\n\r\nexport function shouldFilterAlcohol(context: IActionContext): boolean {\r\n const doAlcoholFiltering = context.requestContext.url.requestUrl.searchParams.get('alcohol')?.toLowerCase() !== 'false';\r\n const alcoholRefinerRecordId = Number(context.requestContext.app.config?.alcoholRefinerRecordId);\r\n\r\n return doAlcoholFiltering && !isNaN(alcoholRefinerRecordId) && alcoholRefinerRecordId > 0;\r\n}\r\n\r\nexport async function getAlcoholRefiners(context: IActionContext): Promise {\r\n let alcoholGroupAttributeId = Number(context.requestContext.app.config?.alcoholRefinerRecordId);\r\n\r\n if (isNaN(alcoholGroupAttributeId) || alcoholGroupAttributeId === 0) {\r\n alcoholGroupAttributeId = AlcoholGroupAttributeId;\r\n }\r\n\r\n const result: ProductRefinerValue[] = [];\r\n const alcoholRefiner: ProductRefinerValue = {\r\n DataTypeValue: 5,\r\n LeftValueBoundString: '0',\r\n RefinerRecordId: alcoholGroupAttributeId,\r\n RefinerSourceValue: 1,\r\n RightValueBoundString: '0',\r\n UnitText: ''\r\n };\r\n\r\n result.push(alcoholRefiner);\r\n\r\n try {\r\n let alcoholLicenseValue = 0;\r\n\r\n if (context.requestContext.user.isAuthenticated) {\r\n // Get Customer attributes\r\n // const customer = await getCustomer(new GetCustomerInput(context.requestContext.apiSettings, context.requestContext.user.customerAccountNumber), context);\r\n const customer = await getOrganizationCustomer(new GetOrganizationCustomerInput(context.requestContext.apiSettings, context.requestContext.user.customerAccountNumber!), context);\r\n const alcoholLicense = Number(customer.Attributes?.find(x => x.RecordId === alcoholGroupAttributeId)?.AttributeValue?.StringValue);\r\n\r\n if (isNaN(alcoholLicense)) {\r\n // Throw NaN error\r\n console.warn('Alcohol license value is missing or not a number.');\r\n } else {\r\n alcoholLicenseValue = alcoholLicense;\r\n }\r\n } else {\r\n // If user is not logged in show all products\r\n alcoholLicenseValue = 3;\r\n }\r\n\r\n // TODO: Verify we can do ranges like this on text attributes\r\n // If we can do range on text attributes use this:\r\n //alcoholRefiner.RightValueBoundString = alcoholLicense?.AttributeValue?.StringValue ?? '0';\r\n\r\n // Add a refiner for each alcohol group\r\n Array(alcoholLicenseValue).fill(0).forEach((_, index) => {\r\n result.push({\r\n ...alcoholRefiner,\r\n LeftValueBoundString: (index + 1).toString(),\r\n RightValueBoundString: (index + 1).toString()\r\n });\r\n });\r\n } catch (error) {\r\n console.warn('Failed to get customer attributes for alcohol license or parse value of attribute. No alcohol license applied to search.', error);\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport async function addAlcoholRefiner(context: IActionContext, searchCriteriaInput: ProductSearchCriteria): Promise {\r\n let alcoholGroupAttributeId = Number(context.requestContext.app.config?.alcoholRefinerRecordId);\r\n\r\n if (isNaN(alcoholGroupAttributeId) || alcoholGroupAttributeId === 0) {\r\n alcoholGroupAttributeId = AlcoholGroupAttributeId;\r\n }\r\n\r\n if (searchCriteriaInput.Refinement!.some(x => x.RefinerRecordId === alcoholGroupAttributeId)) {\r\n // Remove existing, shouldn't be here\r\n searchCriteriaInput.Refinement = searchCriteriaInput.Refinement!.filter(x => x.RefinerRecordId !== alcoholGroupAttributeId);\r\n }\r\n\r\n const refiners = await getAlcoholRefiners(context);\r\n\r\n searchCriteriaInput.Refinement = searchCriteriaInput.Refinement!.concat(refiners);\r\n\r\n return Promise.resolve();\r\n}\r\n\r\nexport function addOrUpdateZeroPriceRefiner(context: IActionContext, refiners?: ProductRefinerValue[]): ProductRefinerValue[] {\r\n // Check criteria for allowing user to see zero price products. Example:\r\n // - Has ?godmode=true in url\r\n const allowZeroPriceProducts = isGodmodeEnabled(context);\r\n\r\n if (!allowZeroPriceProducts) {\r\n const result = refiners ? [...refiners] : [];\r\n\r\n // Make sure we don't show zero price products\r\n const priceRefiner = result.find(x => x.RefinerRecordId === 0);\r\n\r\n if (priceRefiner) {\r\n // There is a price refiner, make sure it has a min value of 0.01 or more\r\n if (!priceRefiner.LeftValueBoundString || Number(priceRefiner.LeftValueBoundString) < 0.01) {\r\n priceRefiner.LeftValueBoundString = '0.01';\r\n }\r\n } else {\r\n // No price refiner, add one\r\n result.push({\r\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.ProductRefinerValue',\r\n Count: 0,\r\n DataTypeValue: 1,\r\n LeftValueBoundString: '0.01',\r\n ExtensionProperties: [],\r\n RefinerRecordId: 0,\r\n RefinerSourceValue: 3,\r\n RightValueBoundString: '1000000000',\r\n RowNumber: 0,\r\n UnitText: context.requestContext.channel?.Currency\r\n } as any);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n return refiners || [];\r\n}\r\n\r\nexport async function getAttributeRefiners(context: IActionContext, customerAttributes: CustomerAttribute[] | undefined, attributeRecordId: number, friendlyName?: string): Promise {\r\n const result: ProductRefinerValue[] = [];\r\n const refiner: ProductRefinerValue = {\r\n DataTypeValue: 5,\r\n LeftValueBoundString: '0',\r\n RefinerRecordId: attributeRecordId,\r\n RefinerSourceValue: 1,\r\n RightValueBoundString: '0',\r\n UnitText: ''\r\n };\r\n\r\n result.push(refiner);\r\n\r\n try {\r\n let attributeValue = 0;\r\n\r\n if (context.requestContext.user.isAuthenticated) {\r\n const attribute = Number(customerAttributes?.find(x => x.RecordId === attributeRecordId)?.AttributeValue?.StringValue);\r\n\r\n if (isNaN(attribute)) {\r\n // Throw NaN error\r\n if (friendlyName) {\r\n console.warn(`${friendlyName} attribute value is missing or not a number.`);\r\n } else {\r\n console.warn(`Attribute with record id ${attributeRecordId} is missing a value or not a number.`);\r\n }\r\n } else {\r\n attributeValue = attribute;\r\n }\r\n } else {\r\n // If user is not logged in show all products\r\n attributeValue = 1;\r\n }\r\n\r\n if (attributeValue !== 0) {\r\n result.push({\r\n ...refiner,\r\n LeftValueBoundString: attributeValue.toString(),\r\n RightValueBoundString: attributeValue.toString()\r\n });\r\n }\r\n } catch (error) {\r\n if (friendlyName) {\r\n console.warn(`Failed to get ${friendlyName} customer attribute or parse value of attribute. No filter applied to search.`, error);\r\n } else {\r\n console.warn(`Failed to get customer attribute (record id: ${attributeRecordId}) or parse value of attribute. No filter applied to search.`, error);\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport async function getAttributeRefinersEqualOrLessThan(\r\n context: IActionContext,\r\n customerAttributes: CustomerAttribute[] | undefined,\r\n attributeRecordId: number,\r\n maxValue: number,\r\n friendlyName?: string\r\n): Promise {\r\n const result: ProductRefinerValue[] = [];\r\n const refiner: ProductRefinerValue = {\r\n DataTypeValue: 5,\r\n LeftValueBoundString: '0',\r\n RefinerRecordId: attributeRecordId,\r\n RefinerSourceValue: 1,\r\n RightValueBoundString: '0',\r\n UnitText: ''\r\n };\r\n\r\n result.push(refiner);\r\n\r\n try {\r\n let attributeValue = 0;\r\n\r\n if (context.requestContext.user.isAuthenticated) {\r\n const attribute = Number(customerAttributes?.find(x => x.RecordId === attributeRecordId)?.AttributeValue?.StringValue);\r\n\r\n if (isNaN(attribute)) {\r\n // Throw NaN error\r\n if (friendlyName) {\r\n console.warn(`${friendlyName} attribute value is missing or not a number.`);\r\n } else {\r\n console.warn(`Attribute with record id ${attributeRecordId} is missing a value or not a number.`);\r\n }\r\n } else {\r\n attributeValue = attribute;\r\n }\r\n } else {\r\n // If user is not logged in show all products\r\n attributeValue = maxValue;\r\n }\r\n\r\n for (let i = 0; i <= attributeValue; i++) {\r\n if (i === 0) {\r\n // Skip 0 since it's already added\r\n continue;\r\n }\r\n result.push({\r\n ...refiner,\r\n LeftValueBoundString: i.toString(),\r\n RightValueBoundString: i.toString()\r\n });\r\n }\r\n } catch (error) {\r\n if (friendlyName) {\r\n console.warn(`Failed to get ${friendlyName} customer attribute or parse value of attribute. No filter applied to search.`, error);\r\n } else {\r\n console.warn(`Failed to get customer attribute (record id: ${attributeRecordId}) or parse value of attribute. No filter applied to search.`, error);\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport async function getForsvaretRefiner(context: IActionContext, customerAttributes: CustomerAttribute[] | undefined): Promise {\r\n const forsvaretAttributeId = context.requestContext.app.config?.forsvaretAttributeRecordId;\r\n\r\n if (!forsvaretAttributeId || !context.requestContext.user.isAuthenticated) {\r\n return;\r\n }\r\n\r\n try {\r\n const attribute = customerAttributes?.find(x => x.RecordId === Number(forsvaretAttributeId))?.AttributeValue?.IntegerValue;\r\n\r\n if (!attribute || isNaN(attribute) || attribute === 0) {\r\n return;\r\n }\r\n\r\n return {\r\n DataTypeValue: AttributeDataType.Integer,\r\n LeftValueBoundString: attribute.toString(),\r\n RefinerRecordId: Number(forsvaretAttributeId),\r\n RefinerSourceValue: ProductRefinerSource.Attribute,\r\n RightValueBoundString: attribute.toString(),\r\n UnitText: ''\r\n };\r\n } catch (error) {\r\n console.error('Failed to get forsvaret attribute', error);\r\n return;\r\n }\r\n}\r\n\r\nexport async function getSvalbardRefiner(context: IActionContext, customerAttributes: CustomerAttribute[] | undefined): Promise {\r\n if (!context.requestContext.user.isAuthenticated) {\r\n return;\r\n }\r\n\r\n const svalbardAttributeId = context.requestContext.app.config?.svalbardAttributeRecordId;\r\n const blockedSvalbardAttributeId = context.requestContext.app.config?.blockedSvalbardAttributeRecordId;\r\n\r\n // Both config needs to be set to something\r\n if (!svalbardAttributeId || !blockedSvalbardAttributeId) {\r\n return;\r\n }\r\n\r\n // Both config needs to be numbers. This allows users to prepend values with a character to temporarily disable the refiner\r\n if (isNaN(svalbardAttributeId) || isNaN(blockedSvalbardAttributeId)) {\r\n return;\r\n }\r\n\r\n try {\r\n const attribute = customerAttributes?.find(x => x.RecordId === Number(svalbardAttributeId))?.AttributeValue?.IntegerValue;\r\n\r\n // Check if attribute is set, is a number and above 0\r\n if (!attribute || isNaN(attribute) || attribute <= 0) {\r\n return;\r\n }\r\n\r\n // Add refiner so that only products that isn't blocked for svalbard is shown since customer attribute is set to 1 or more\r\n return {\r\n DataTypeValue: AttributeDataType.Integer,\r\n LeftValueBoundString: '0',\r\n RefinerRecordId: Number(blockedSvalbardAttributeId),\r\n RefinerSourceValue: ProductRefinerSource.Attribute,\r\n RightValueBoundString: '0',\r\n UnitText: ''\r\n };\r\n } catch (error) {\r\n console.error('Failed to get svalbard attribute(s)', error);\r\n return;\r\n }\r\n}\r\n\r\nexport async function addAttributeRefiner(\r\n context: IActionContext,\r\n customerAttributes: CustomerAttribute[] | undefined,\r\n searchCriteriaInput: ProductSearchCriteria,\r\n attributeRecordId: number,\r\n keepExisting = false\r\n): Promise {\r\n if (searchCriteriaInput.Refinement!.some(x => x.RefinerRecordId === attributeRecordId)) {\r\n if (keepExisting) {\r\n return;\r\n }\r\n\r\n // Remove existing, shouldn't be here\r\n searchCriteriaInput.Refinement = searchCriteriaInput.Refinement!.filter(x => x.RefinerRecordId !== attributeRecordId);\r\n }\r\n\r\n const refiners = await getAttributeRefiners(context, customerAttributes, attributeRecordId);\r\n\r\n searchCriteriaInput.Refinement = searchCriteriaInput.Refinement!.concat(refiners);\r\n}\r\n\r\nexport async function addAttributeRefinerEqualOrLessThan(\r\n context: IActionContext,\r\n customerAttributes: CustomerAttribute[] | undefined,\r\n searchCriteriaInput: ProductSearchCriteria,\r\n attributeRecordId: number,\r\n maxValue: number,\r\n keepExisting = false\r\n): Promise {\r\n if (searchCriteriaInput.Refinement!.some(x => x.RefinerRecordId === attributeRecordId)) {\r\n if (keepExisting) {\r\n return;\r\n }\r\n\r\n // Remove existing, shouldn't be here\r\n searchCriteriaInput.Refinement = searchCriteriaInput.Refinement!.filter(x => x.RefinerRecordId !== attributeRecordId);\r\n }\r\n\r\n const refiners = await getAttributeRefinersEqualOrLessThan(context, customerAttributes, attributeRecordId, maxValue);\r\n\r\n searchCriteriaInput.Refinement = searchCriteriaInput.Refinement!.concat(refiners);\r\n}\r\n\r\nexport async function addAllAttributeRefiners(context: IActionContext, searchCriteriaInput: ProductSearchCriteria): Promise {\r\n const godmode = isGodmodeEnabled(context);\r\n\r\n if (godmode) {\r\n return;\r\n }\r\n\r\n let customerAttributes: CustomerAttribute[] | undefined = [];\r\n\r\n if (context.requestContext.user.isAuthenticated) {\r\n const { apiSettings, user: { customerAccountNumber } } = context.requestContext;\r\n const customer = await getOrganizationCustomer(new GetOrganizationCustomerInput(apiSettings, customerAccountNumber!), context);\r\n customerAttributes = customer.Attributes;\r\n }\r\n\r\n const attributeRecordIds: string[] = [\r\n context.requestContext.app.config?.tobaccoRefinerRecordId,\r\n context.requestContext.app.config?.cocacolaRefinerRecordId,\r\n context.requestContext.app.config?.bamaRefinerRecordId,\r\n context.requestContext.app.config?.dutyFreeSugarRefinerRecordId,\r\n context.requestContext.app.config?.norturaRefinerRecordId\r\n ];\r\n\r\n for (const attributeRecordId of attributeRecordIds) {\r\n const id = Number(attributeRecordId);\r\n\r\n // Make sure it's a number and above 0\r\n if (!isNaN(id) && id > 0) {\r\n await addAttributeRefiner(context, customerAttributes, searchCriteriaInput, id);\r\n }\r\n }\r\n\r\n const transitRefiner = Number(context.requestContext.app.config?.transitRefinerRecordId);\r\n\r\n if (!isNaN(transitRefiner) && transitRefiner > 0) {\r\n await addAttributeRefinerEqualOrLessThan(context, customerAttributes, searchCriteriaInput, transitRefiner, 2, true);\r\n }\r\n\r\n const forsvaretRefiner = await getForsvaretRefiner(context, customerAttributes);\r\n\r\n if (forsvaretRefiner) {\r\n searchCriteriaInput.Refinement!.push(forsvaretRefiner);\r\n }\r\n\r\n const svalbardRefiner = await getSvalbardRefiner(context, customerAttributes);\r\n\r\n if (svalbardRefiner) {\r\n searchCriteriaInput.Refinement!.push(svalbardRefiner);\r\n }\r\n}\r\n\r\nexport async function getAllAttributeRefiners(context: IActionContext) {\r\n const godmode = isGodmodeEnabled(context);\r\n\r\n if (godmode) {\r\n return [];\r\n }\r\n\r\n let customerAttributes: CustomerAttribute[] | undefined = [];\r\n\r\n if (context.requestContext.user.isAuthenticated) {\r\n const { apiSettings, user: { customerAccountNumber } } = context.requestContext;\r\n const customer = await getOrganizationCustomer(new GetOrganizationCustomerInput(apiSettings, customerAccountNumber!), context);\r\n customerAttributes = customer.Attributes;\r\n }\r\n\r\n const attributeRecordIds: string[] = [\r\n context.requestContext.app.config?.tobaccoRefinerRecordId,\r\n context.requestContext.app.config?.cocacolaRefinerRecordId,\r\n context.requestContext.app.config?.bamaRefinerRecordId,\r\n context.requestContext.app.config?.dutyFreeSugarRefinerRecordId,\r\n context.requestContext.app.config?.norturaRefinerRecordId\r\n ];\r\n\r\n const result: ProductRefinerValue[] = [];\r\n\r\n for (const attributeRecordId of attributeRecordIds) {\r\n const id = Number(attributeRecordId);\r\n\r\n // Make sure it's a number and above 0\r\n if (!isNaN(id) && id > 0) {\r\n const refiners = await getAttributeRefiners(context, customerAttributes, id);\r\n result.push(...refiners);\r\n }\r\n }\r\n\r\n const transitRefinerId = Number(context.requestContext.app.config?.transitRefinerRecordId);\r\n\r\n if (!isNaN(transitRefinerId) && transitRefinerId > 0) {\r\n result.push(...await getAttributeRefinersEqualOrLessThan(context, customerAttributes, transitRefinerId, 2));\r\n }\r\n\r\n const forsvaretRefiner = await getForsvaretRefiner(context, customerAttributes);\r\n\r\n if (forsvaretRefiner) {\r\n result.push(forsvaretRefiner);\r\n }\r\n\r\n const svalbardRefiner = await getSvalbardRefiner(context, customerAttributes);\r\n\r\n if (svalbardRefiner) {\r\n result.push(svalbardRefiner);\r\n }\r\n\r\n return result;\r\n}","const binding = { modules: {}, dataActions: {} };\n\n const registerActionId = (actionPath) => {\n if (binding.dataActions[actionPath] &&\n binding.dataActions[actionPath].default &&\n binding.dataActions[actionPath].default.prototype &&\n binding.dataActions[actionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[actionPath].default.prototype.id] = binding.dataActions[actionPath];\n } else {\n Object.keys(binding.dataActions[actionPath] || {}).forEach(exportName => {\n if (binding.dataActions[actionPath][exportName] &&\n binding.dataActions[actionPath][exportName].prototype &&\n binding.dataActions[actionPath][exportName].prototype.Action) {\n binding.dataActions[binding.dataActions[actionPath][exportName].prototype.id] = binding.dataActions[actionPath][exportName];\n }\n })\n }\n };\n\n const registerSanitizedActionPath = (sanitizedActionPath, dataAction) => {\n if (process.env.NODE_ENV === 'development') {\n if (!dataAction.default) {\n throw new Error('Data action path does not have a default export');\n }\n if (!(dataAction.default.prototype.id && binding.dataActions[dataAction.default.prototype.id]) || !binding.dataActions[sanitizedActionPath]) {\n binding.dataActions[sanitizedActionPath] = dataAction;\n }\n } else {\n binding.dataActions[sanitizedActionPath] = dataAction;\n if (!binding.dataActions[sanitizedActionPath].default) {\n throw new Error('Data action path ' + sanitizedActionPath + ' does not have a default export');\n }\n binding.dataActions[sanitizedActionPath].default.prototype.RegistrationId = sanitizedActionPath;\n if (binding.dataActions[sanitizedActionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[sanitizedActionPath].default.prototype.id] = sanitizedActionPath;\n }\n }\n };\n \n\n { \n const actionPath = 'actions/add-counting-list-line.action';\n binding.dataActions[actionPath] = require('partner/actions/add-counting-list-line.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/create-counting-list.action';\n binding.dataActions[actionPath] = require('partner/actions/create-counting-list.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/get-auto-suggest-suggestions-filtered.action';\n binding.dataActions[actionPath] = require('partner/actions/get-auto-suggest-suggestions-filtered.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/get-brand-scheme.action';\n binding.dataActions[actionPath] = require('partner/actions/get-brand-scheme.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/get-by-ids-dlvry.action';\n binding.dataActions[actionPath] = require('partner/actions/get-by-ids-dlvry.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/get-cached-active-prices.action';\n binding.dataActions[actionPath] = require('partner/actions/get-cached-active-prices.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/get-counting-list-products.action';\n binding.dataActions[actionPath] = require('partner/actions/get-counting-list-products.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/get-counting-list.action';\n binding.dataActions[actionPath] = require('partner/actions/get-counting-list.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/get-counting-lists.action';\n binding.dataActions[actionPath] = require('partner/actions/get-counting-lists.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/get-extended-customer.action';\n binding.dataActions[actionPath] = require('partner/actions/get-extended-customer.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/get-inventory-configuration.action';\n binding.dataActions[actionPath] = require('partner/actions/get-inventory-configuration.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/get-organization-address.action';\n binding.dataActions[actionPath] = require('partner/actions/get-organization-address.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/get-pickup-dlv-mode.action';\n binding.dataActions[actionPath] = require('partner/actions/get-pickup-dlv-mode.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/get-product-unit-of-measure-options.action';\n binding.dataActions[actionPath] = require('partner/actions/get-product-unit-of-measure-options.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/get-ship-carrier-address.action';\n binding.dataActions[actionPath] = require('partner/actions/get-ship-carrier-address.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/get-upcoming-order-entry-deadline.action';\n binding.dataActions[actionPath] = require('partner/actions/get-upcoming-order-entry-deadline.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/update-calc-cart-lines.action';\n binding.dataActions[actionPath] = require('partner/actions/update-calc-cart-lines.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/update-counting-list-lines.action';\n binding.dataActions[actionPath] = require('partner/actions/update-counting-list-lines.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/update-counting-list.action';\n binding.dataActions[actionPath] = require('partner/actions/update-counting-list.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/validate-alcohol-license.action';\n binding.dataActions[actionPath] = require('partner/actions/validate-alcohol-license.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":["createAddCountingListLineInput","productListId","countingListLine","DataServiceQuery","createDataServiceRequestForOperation","EntityClasses","bypassCache","returnEntity","addCountingListLineAsync","context","request","callActionOrExecute","callerContext","createCreateCountingListInput","fromDate","toDate","productListIds","productList","createCountingListAsync","SuggestionType","AutoSuggestInput","constructor","searchText","top","suggestionType","hitPrefix","hitSuffix","getCacheKey","getCacheObjectType","dataCacheType","this","searchQuery","topResultsCount","async","getSearchSuggestionsAction","input","ctx","Error","autosuggest","autoSuggestPromises","_getAutoSuggest","Promise","all","then","catalogId","getCatalogId","requestContext","searchCriteria","ProductSearchCriteria","SearchCondition","length","Context","ChannelId","apiSettings","channelId","CatalogId","Refinement","addOrUpdateZeroPriceRefiner","HitPrefix","HitSuffix","shouldFilterAlcohol","addAlcoholRefiner","addAllAttributeRefiners","searchSuggestions","getSearchSuggestionsAsync","queryResultSettings","Paging","Top","map","item","ImageUrl","generateImageUrl","AllSearchResults","telemetry","error","getSearchSuggestionsActionDataAction","createObservableDataAction","id","action","inputData","BrandSchemeEntityExtensionClass","odataObject","BrandSchemeId","BrandSchemeName","CanConnectProduct","CanConnectProductOwner","FromDate","Date","jsonLightReadStringPropertyValue","undefined","ToDate","Sequence","DataAreaId","RecId","parseInt","RecVersion","ExtensionProperties","i","className","substr","lastIndexOf","concat","createGetBrandSchemeByIdInput","brandSchemeId","key","brandSchemeQuery","getBrandSchemeByIdAsync","getByIdsDlvryInput","productIds","inventLocationId","resultSettings","Entities","getByIdsDlvryAsync","products","forEach","product","newImageUrl","generateProductImageUrl","PrimaryImageUrl","_unused","trace","getCachedActivePricesInput","projectDomain","activeDate","customerId","includeSimpleDiscountsInContextualPrice","includeVariantPriceRange","includeAttainablePricesAndDiscounts","getCachedActivePricesAsync","getCountingListProductsInput","query","SimpleProductClass","getCountingListProductsAsync","GetCountingListInput","shouldCacheOutput","createGetCountingListInput","getCountingListAsync","getCountingListAsyncAction","_context$requestConte","user","isAuthenticated","getCountingList","createInput","GetCountingListsInput","createGetCountingListsInput","countingListId","getCountingListsAsync","getCountingListsAsyncAction","customerAccountNumber","getCountingLists","ExtendedCustomerExtensionClass","AccountNum","SalesCalendarId","OrderEntryDeadlineGroupId","PurchOrderFormNumFixed","CustomerRefFixed","getExtendedCustomerInput","getExtendedCustomerAsync","GetInventoryConfigurationInput","Msdyn365","getInventoryConfigurationAsync","args","GetOrganizationCustomerAddressInput","getDataServiceRequest","getOrganizationCustomerAddressAction","Addresses","getOrganizationCustomerAddress","_user$customerAccount","GetOrganizationCustomerInput","getOrganizationCustomerAction","getOrganizationCustomer","RetailConfigurationParameterExtensionClass","Name","Value","GetPickupDlvModeInput","getPickupDlvModeAction","getPickupDlvMode","getProductUnitOfMeasureOptionsInput","getProductUnitOfMeasureOptionsAsync","ShipCarrierAddressExtensionClass","CustAccount","DlvModeId","DlvTermId","Location","ShipCarrierAccount","ShipCarrierAccountCode","ShipCarrierBlindShipment","ShipCarrierId","ShipCarrierResidentialDest","getShipCarrierAddressInput","location","getShipCarrierAddressAsync","getUpcomingOrderEntryDeadlineInput","callerTime","getUpcomingOrderEntryDeadlineAsync","CalculationModes","updateCalcCartLinesInput","cartLines","calculationModes","cartVersion","updateCalcCartLinesAsync","createUpdateCountingListLinesInput","productListLines","updateCountingListLinesAsync","createUpdateCountingListInput","updateCountingListAsync","AlcoholLicenseValidationDetailsExtensionClass","Message","LicenseNeeded","ProductId","ValidateAlcoholLicenseResultExtensionClass","ValidationResult","CustomerLicense","Details","validateAlcoholLicenseInput","validationCriteria","validateAlcoholLicenseAsync","AlcoholGroupAttributeId","isGodmodeEnabled","godmode","url","requestUrl","searchParams","get","toLowerCase","_context$requestConte2","_context$requestConte3","doAlcoholFiltering","alcoholRefinerRecordId","Number","app","config","isNaN","getAlcoholRefiners","_context$requestConte4","alcoholGroupAttributeId","result","alcoholRefiner","DataTypeValue","LeftValueBoundString","RefinerRecordId","RefinerSourceValue","RightValueBoundString","UnitText","push","alcoholLicenseValue","_customer$Attributes","customer","alcoholLicense","Attributes","find","x","RecordId","AttributeValue","StringValue","console","warn","Array","fill","_","index","_objectSpread","toString","searchCriteriaInput","_context$requestConte5","some","filter","refiners","resolve","priceRefiner","_context$requestConte6","Count","RowNumber","channel","Currency","getAttributeRefiners","customerAttributes","attributeRecordId","friendlyName","refiner","attributeValue","_customerAttributes$f","attribute","getAttributeRefinersEqualOrLessThan","maxValue","_customerAttributes$f2","getForsvaretRefiner","_context$requestConte7","forsvaretAttributeId","forsvaretAttributeRecordId","_customerAttributes$f3","IntegerValue","AttributeDataType","Integer","ProductRefinerSource","Attribute","getSvalbardRefiner","_context$requestConte8","_context$requestConte9","svalbardAttributeId","svalbardAttributeRecordId","blockedSvalbardAttributeId","blockedSvalbardAttributeRecordId","_customerAttributes$f4","addAttributeRefiner","keepExisting","arguments","_context$requestConte10","_context$requestConte11","_context$requestConte12","_context$requestConte13","_context$requestConte14","_context$requestConte15","attributeRecordIds","tobaccoRefinerRecordId","cocacolaRefinerRecordId","bamaRefinerRecordId","dutyFreeSugarRefinerRecordId","norturaRefinerRecordId","transitRefiner","transitRefinerRecordId","addAttributeRefinerEqualOrLessThan","forsvaretRefiner","svalbardRefiner","getAllAttributeRefiners","_context$requestConte16","_context$requestConte17","_context$requestConte18","_context$requestConte19","_context$requestConte20","_context$requestConte21","transitRefinerId","binding","modules","dataActions","registerActionId","actionPath","default","prototype","Object","keys","exportName","Action","require","window","__bindings__","packageDataActions","module","exports","React","ReactDOM"],"sourceRoot":""}