{"version":3,"file":"static/js/4666e12b9de5ab84abe9.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/actions/get-product-unit-of-measure-options.action.ts?bc1e","webpack://Msdyn365.Commerce.Online/./src/modules/dlvry-recently-viewed-products/actions/get-full-products-by-ids.ts?52f9","webpack://Msdyn365.Commerce.Online/./src/modules/dlvry-recently-viewed-products/dlvry-recently-viewed-products.props.autogenerated.ts?7d65","webpack://Msdyn365.Commerce.Online/./src/modules/dlvry-recently-viewed-products/dlvry-recently-viewed-products.tsx?51fb","webpack://Msdyn365.Commerce.Online/./src/modules/dlvry-recently-viewed-products/dlvry-recently-viewed-products.view.tsx?6632","webpack://Msdyn365.Commerce.Online/./src/shared-utils/attributes/on-buy-access-validator.ts?4b31","webpack://Msdyn365.Commerce.Online/./src/shared-utils/cookie-utilities.ts?6237","webpack://Msdyn365.Commerce.Online/./lib/dlvry-recently-viewed-products/module-registration.js?e066","webpack://Msdyn365.Commerce.Online/external var \"React\"?0d3b","webpack://Msdyn365.Commerce.Online/external var \"ReactDOM\"?853b"],"sourcesContent":["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}","/*!\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 { generateProductImageUrl } from '@msdyn365-commerce-modules/retail-actions';\r\nimport {\r\n CacheType,\r\n createObservableDataAction,\r\n IAction,\r\n IActionContext,\r\n IActionInput,\r\n IAny,\r\n ICreateActionContext,\r\n IGeneric,\r\n getCatalogId\r\n} from '@msdyn365-commerce/core';\r\n// @ts-ignore - unused import\r\nimport { AsyncResult, ProductSearchCriteria, ProductSearchResult } from '@msdyn365-commerce/retail-proxy';\r\nimport { searchByCriteriaAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\nimport { GetCookie } from '../../../shared-utils/cookie-utilities';\r\n\r\nexport interface IFullProductsSearchResultsWithCount {\r\n products: ProductSearchResult[];\r\n count: number;\r\n}\r\n\r\n/**\r\n * GetFullProductsByIds Action Input\r\n */\r\nexport class GetFullProductsByIdsInput implements IActionInput {\r\n public maxRecentlyViewedItemsCount: number;\r\n\r\n constructor(maxRecentlyViewedItemsCount: number) {\r\n this.maxRecentlyViewedItemsCount = maxRecentlyViewedItemsCount;\r\n }\r\n public getCacheKey = () => 'FullProductSearchResultByIds';\r\n public getCacheObjectType = () => 'FullProductSearchResultByIds';\r\n public dataCacheType = (): CacheType => 'none';\r\n}\r\n\r\nconst createInput = (inputData: ICreateActionContext>, maxRecentlyViewedItemsCount: number): GetFullProductsByIdsInput => {\r\n return new GetFullProductsByIdsInput(maxRecentlyViewedItemsCount);\r\n};\r\n\r\nexport async function getFullProductsByIds(\r\n input: GetFullProductsByIdsInput,\r\n ctx: IActionContext\r\n): Promise {\r\n //let productSearchResults: ProductSearchResult[];\r\n //let promise: AsyncResult;\r\n const searchCriteriaInput: ProductSearchCriteria = {};\r\n searchCriteriaInput.Context = {\r\n ChannelId: ctx.requestContext.apiSettings.channelId,\r\n CatalogId: getCatalogId(ctx.requestContext)\r\n };\r\n searchCriteriaInput.IncludeAttributes = true;\r\n const cookieName: string = '_i365___recently_viewed_products';\r\n const cookieValue = GetCookie(ctx.requestContext.cookies, cookieName);\r\n const productIds = (cookieValue && cookieValue.split(',').map(x => +x)) || [0];\r\n searchCriteriaInput.Ids = productIds;\r\n const promise = searchByCriteriaAsync(\r\n {\r\n callerContext: ctx\r\n },\r\n searchCriteriaInput\r\n );\r\n\r\n const productSearchResults = await promise;\r\n\r\n const mappedProducts = productSearchResults.map(productSearchResult => {\r\n const newImageUrl = generateProductImageUrl(productSearchResult, ctx.requestContext.apiSettings);\r\n\r\n if (newImageUrl) {\r\n productSearchResult.PrimaryImageUrl = newImageUrl;\r\n }\r\n\r\n return productSearchResult;\r\n });\r\n\r\n const refinedProductSearchResult = refineProductSearchResults(\r\n ctx,\r\n productIds.reverse(),\r\n input.maxRecentlyViewedItemsCount,\r\n mappedProducts\r\n );\r\n\r\n refinedProductSearchResult.forEach(x => {\r\n x.Price = 0;\r\n x.BasePrice = 0;\r\n x.MaxVariantPrice = 0;\r\n x.MinVariantPrice = 0;\r\n });\r\n\r\n return {\r\n products: refinedProductSearchResult,\r\n count: promise.metadata.count || 0\r\n };\r\n}\r\n\r\nfunction refineProductSearchResults(\r\n context: IActionContext,\r\n productIds: number[],\r\n maxRecentlyViewedItemsCount: number,\r\n productSearchResult: ProductSearchResult[]\r\n): ProductSearchResult[] {\r\n const newproductSearchResult: ProductSearchResult[] = [];\r\n const pathName = context.requestContext.url.requestUrl.pathname;\r\n const splitPathName = pathName.split('/') || [];\r\n const lastPathName = splitPathName[splitPathName.length - 1] || '';\r\n const isPdp = (lastPathName && lastPathName.indexOf('.p')) || -1;\r\n if (isPdp !== -1) {\r\n const productId = lastPathName.split('.');\r\n const index = productIds.indexOf(Number(productId[0]));\r\n if (index !== -1) {\r\n productIds.splice(index, 1);\r\n }\r\n }\r\n if (productIds.length > maxRecentlyViewedItemsCount) {\r\n productIds.splice(maxRecentlyViewedItemsCount, productIds.length - maxRecentlyViewedItemsCount);\r\n }\r\n productIds.map(id => {\r\n const productById = productSearchResult.filter(product => product.RecordId === id) || [];\r\n productById.length > 0 && newproductSearchResult.push(productById[0]);\r\n });\r\n return newproductSearchResult;\r\n}\r\n\r\nexport default createObservableDataAction({\r\n id: '@msdyn365-commerce-modules/search-result-container/get-full-products-by-ids',\r\n action: >getFullProductsByIds,\r\n input: createInput\r\n});\r\n","/**\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. See License.txt in the project root for license information.\r\n * IDlvryRecentlyViewedProducts contentModule Interface Properties\r\n * THIS FILE IS AUTO-GENERATED - MANUAL MODIFICATIONS WILL BE LOST\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport const enum layout {\r\n carousel = 'carousel',\r\n grid = 'grid'\r\n}\r\n\r\nexport interface IDlvryRecentlyViewedProductsConfig extends Msdyn365.IModuleConfig {\r\n productCollection: Msdyn365.IProductList;\r\n heading?: IHeadingData;\r\n layout?: layout;\r\n imageSettings?: Msdyn365.IImageSettings;\r\n className?: string;\r\n}\r\n\r\nexport interface IDlvryRecentlyViewedProductsResources {\r\n priceFree: string;\r\n ratingAriaLabel: string;\r\n flipperNext: string;\r\n flipperPrevious: string;\r\n originalPriceText: string;\r\n currentPriceText: string;\r\n addToCartText: string;\r\n updateCartText: string;\r\n removeFromCartText: string;\r\n outOfStockText: string;\r\n productsAddedToCart: string;\r\n productsRemovedFromCart: string;\r\n productsUpdatedInCart: string;\r\n toastErrorHeader: string;\r\n toastGoToCart: string;\r\n toastNoAccessToProduct: string;\r\n addToOrderTemplateHeader: string;\r\n noOrderTemplatesMessage: string;\r\n noOrderTemplatesDescription: string;\r\n createAnOrderTemplateButtonText: string;\r\n createNewOrderTemplateButtonText: string;\r\n cancelOrderTemplateCreationButtonText: string;\r\n selectTemplatesText: string;\r\n addToTemplateButtonText: string;\r\n lineItemsText: string;\r\n createOrderTemplateHeader: string;\r\n orderTemplateTitle: string;\r\n orderTemplateNameAriaLabel: string;\r\n createOrderTemplateDescription: string;\r\n defaultOrderTemplateName: string;\r\n createOrderTemplateButtonText: string;\r\n cancelNewOrderTemplateCreationButtonText: string;\r\n viewOrderTemplateButtonText: string;\r\n continueShoppingButtonText: string;\r\n itemAddedToOrderTemplateHeaderItemOneText: string;\r\n itemAddedToOrderTemplateHeaderItemFormatText: string;\r\n itemAddedToOrderTemplateHeaderMessageText: string;\r\n duplicatedProductsHeader: string;\r\n duplicatedProductsDescription: string;\r\n updateQuantityButtonText: string;\r\n cancelDuplicateItemsButtonText: string;\r\n addToOrderTemplateButtonText: string;\r\n addToOrderTemplateButtonTooltip: string;\r\n priceErrorText: string;\r\n}\r\n\r\nexport const enum HeadingTag {\r\n h1 = 'h1',\r\n h2 = 'h2',\r\n h3 = 'h3',\r\n h4 = 'h4',\r\n h5 = 'h5',\r\n h6 = 'h6'\r\n}\r\n\r\nexport interface IHeadingData {\r\n text: string;\r\n tag?: HeadingTag;\r\n}\r\n\r\nexport interface IDlvryRecentlyViewedProductsProps extends Msdyn365.IModule {\r\n resources: IDlvryRecentlyViewedProductsResources;\r\n config: IDlvryRecentlyViewedProductsConfig;\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\nimport {\r\n format,\r\n Heading,\r\n IComponentNodeProps,\r\n IModuleProps,\r\n INodeProps,\r\n ISingleSlideCarouselProps,\r\n NodeTag,\r\n SingleSlideCarousel\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport { ProductComponent } from '../../themes/dlvry-adventureworks/views/components/product.component';\r\nimport {\r\n getPriceForProductSearchResult,\r\n PriceForProductSearchResultInput,\r\n OrderTemplate,\r\n QueryResultSettingsProxy,\r\n GetOrderTemplatesInput,\r\n getOrderTemplates\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\nimport { ProductList, ProductSearchResult, SimpleProduct, UnitOfMeasureConversion } from '@msdyn365-commerce/retail-proxy';\r\nimport classnames from 'classnames';\r\nimport { IDlvryRecentlyViewedProductsData } from './dlvry-recently-viewed-products.data';\r\nimport { IDlvryRecentlyViewedProductsProps, layout } from './dlvry-recently-viewed-products.props.autogenerated';\r\nimport { GetFullProductsByIdsInput } from './actions/get-full-products-by-ids';\r\nimport PQueue from 'p-queue';\r\nimport { getByIdsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\nimport { getProductUnitOfMeasureOptionsAsync } from '../../actions/get-product-unit-of-measure-options.action';\r\nimport { onBuyHasAccessValidator } from '../../shared-utils/attributes/on-buy-access-validator';\r\n\r\nexport interface IProductCollectionViewProps extends IDlvryRecentlyViewedProductsProps<{}> {\r\n heading?: React.ReactNode;\r\n ProductCollectionContainer: IModuleProps;\r\n SingleSlideCarouselComponentProps: INodeProps;\r\n GridComponentProps: INodeProps;\r\n products: IProductComponentViewProps[];\r\n isCarousel: boolean;\r\n}\r\n\r\nexport interface IProductCollectionState {\r\n orderTemplates: OrderTemplate[] | undefined;\r\n retrievingActivePrices: boolean;\r\n simpleProducts: SimpleProduct[];\r\n unitConversions: UnitOfMeasureConversion[];\r\n}\r\n\r\nexport interface IProductComponentViewProps {\r\n ProductContainer: INodeProps;\r\n productComponent: React.ReactNode;\r\n}\r\n\r\n/**\r\n * ProductCollection component\r\n */\r\nclass ProductCollection extends React.PureComponent, IProductCollectionState> {\r\n\r\n private readonly _cartQueue: PQueue;\r\n\r\n constructor(props: IDlvryRecentlyViewedProductsProps) {\r\n super(props);\r\n this.state = {\r\n orderTemplates: undefined,\r\n retrievingActivePrices: true,\r\n simpleProducts: [],\r\n unitConversions: []\r\n };\r\n this._cartQueue = new PQueue({ concurrency: 1 });\r\n }\r\n\r\n public async componentDidMount(): Promise {\r\n void this._getActivePrices();\r\n void this._getSimpleProducts();\r\n void this._getUnitConversions();\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { heading, className } = this.props.config;\r\n const { fullProductsSearchResultsWithCount } = this.props.data;\r\n const { resources } = this.props;\r\n const isCarousel = this.props.config.layout === layout.carousel;\r\n const headingComponent = heading && (\r\n \r\n );\r\n\r\n const productCollectionViewProps = {\r\n ...this.props,\r\n heading: headingComponent,\r\n SingleSlideCarouselComponentProps: {\r\n tag: SingleSlideCarousel,\r\n className: '',\r\n flipperPrevLabel: resources.flipperPrevious,\r\n flipperNextLabel: resources.flipperNext,\r\n parentId: this.props.id\r\n } as IComponentNodeProps,\r\n ProductCollectionContainer: {\r\n moduleProps: this.props,\r\n className: classnames('ms-product-collection', className)\r\n },\r\n GridComponentProps: {\r\n tag: 'ul' as NodeTag,\r\n className: 'ms-product-collection__items'\r\n },\r\n isCarousel: isCarousel,\r\n // tslint:disable-next-line: max-line-length\r\n products:\r\n fullProductsSearchResultsWithCount &&\r\n fullProductsSearchResultsWithCount.result &&\r\n fullProductsSearchResultsWithCount.result.products.length > 0 &&\r\n fullProductsSearchResultsWithCount.result.products.map((item: ProductSearchResult, index: number) =>\r\n this._getProduct(item, index)\r\n )\r\n };\r\n return this.props.renderView(productCollectionViewProps) as React.ReactElement;\r\n }\r\n\r\n private _retrieveOrderTemplates: () => Promise = async () => {\r\n return this.state.orderTemplates || this._onUpdateOrderTemplates();\r\n };\r\n\r\n private _onUpdateOrderTemplates: (newOrderTemplate?: ProductList) => Promise = async (newOrderTemplate) => {\r\n let newOrderTemplates;\r\n\r\n if (newOrderTemplate) {\r\n newOrderTemplates = [...(this.state.orderTemplates ? this.state.orderTemplates : [])];\r\n\r\n // Add new order template if it doesn't exist\r\n if (newOrderTemplates.every(x => x.productList.Id !== newOrderTemplate.Id)) {\r\n newOrderTemplates.splice(0, 0, new OrderTemplate(newOrderTemplate, [], 0));\r\n }\r\n } else {\r\n // Refresh order templates incase new order template was created\r\n const queryResultSettings = QueryResultSettingsProxy.fromInputData({\r\n requestContext: this.props.context.request,\r\n config: this.props.config\r\n }).QueryResultSettings;\r\n const input = new GetOrderTemplatesInput('', queryResultSettings);\r\n newOrderTemplates = (await getOrderTemplates(input, this.props.context.actionContext)).map(x => new OrderTemplate(x, [], 0));\r\n }\r\n\r\n this.setState({ orderTemplates: newOrderTemplates });\r\n return newOrderTemplates;\r\n };\r\n\r\n private _getProduct = (product: ProductSearchResult, index: number): IProductComponentViewProps | null => {\r\n if (!product || !product.Name) {\r\n this.props.telemetry.trace('[product-collection] Product or product name is null');\r\n return null;\r\n }\r\n const { imageSettings } = this.props.config;\r\n const resources = this.props.resources;\r\n return {\r\n ProductContainer: {\r\n tag: 'li' as NodeTag,\r\n className: 'ms-product-collection__item',\r\n role: 'listitem',\r\n key: index\r\n },\r\n productComponent: (\r\n x.RecordId === product.RecordId),\r\n unitConversions: this.state.unitConversions.filter(x => x.ProductRecordId === product.RecordId)\r\n }}\r\n cartQueue={this._cartQueue}\r\n buyAlwaysAdd\r\n disableBuyButton={this.state.retrievingActivePrices}\r\n showPrice={!this.state.retrievingActivePrices}\r\n retrieveOrderTemplates={this._retrieveOrderTemplates}\r\n onUpdateOrderTemplates={this._onUpdateOrderTemplates}\r\n addToCartText={resources.addToCartText}\r\n updateCartText={resources.updateCartText}\r\n removeFromCartText={resources.removeFromCartText}\r\n outOfStockText={resources.outOfStockText}\r\n priceErrorText={resources.priceErrorText}\r\n toastStrings={{\r\n errorHeader: resources.toastErrorHeader,\r\n productsAddedToCart: resources.productsAddedToCart,\r\n productsRemovedFromCart: resources.productsRemovedFromCart,\r\n productsUpdatedInCart: resources.productsUpdatedInCart,\r\n goToCart: resources.toastGoToCart,\r\n noAccessToProduct: resources.toastNoAccessToProduct\r\n }}\r\n addToOrderTemplateResources={{\r\n addToOrderTemplateHeader: resources.addToOrderTemplateHeader,\r\n noOrderTemplatesMessage: resources.noOrderTemplatesMessage,\r\n noOrderTemplatesDescription: resources.noOrderTemplatesDescription,\r\n createAnOrderTemplateButtonText: resources.createAnOrderTemplateButtonText,\r\n createNewOrderTemplateButtonText: resources.createNewOrderTemplateButtonText,\r\n cancelOrderTemplateCreationButtonText: resources.cancelOrderTemplateCreationButtonText,\r\n selectTemplatesText: resources.selectTemplatesText,\r\n addToTemplateButtonText: resources.addToTemplateButtonText,\r\n lineItemsText: resources.lineItemsText,\r\n createOrderTemplateHeader: resources.createOrderTemplateHeader,\r\n orderTemplateTitle: resources.orderTemplateTitle,\r\n orderTemplateNameAriaLabel: resources.orderTemplateNameAriaLabel,\r\n createOrderTemplateDescription: resources.createOrderTemplateDescription,\r\n defaultOrderTemplateName: resources.defaultOrderTemplateName,\r\n createOrderTemplateButtonText: resources.createOrderTemplateButtonText,\r\n cancelNewOrderTemplateCreationButtonText: resources.cancelNewOrderTemplateCreationButtonText,\r\n viewOrderTemplateButtonText: resources.viewOrderTemplateButtonText,\r\n continueShoppingButtonText: resources.continueShoppingButtonText,\r\n itemAddedToOrderTemplateHeaderItemOneText: resources.itemAddedToOrderTemplateHeaderItemOneText,\r\n itemAddedToOrderTemplateHeaderItemFormatText: resources.itemAddedToOrderTemplateHeaderItemFormatText,\r\n itemAddedToOrderTemplateHeaderMessageText: resources.itemAddedToOrderTemplateHeaderMessageText,\r\n priceFree: resources.priceFree,\r\n originalPriceText: resources.originalPriceText,\r\n currentPriceText: resources.currentPriceText,\r\n duplicatedProductsHeader: resources.duplicatedProductsHeader,\r\n duplicatedProductsDescription: resources.duplicatedProductsDescription,\r\n updateQuantityButtonText: resources.updateQuantityButtonText,\r\n cancelDuplicateItemsButtonText: resources.cancelDuplicateItemsButtonText,\r\n addToOrderTemplateButtonText: resources.addToOrderTemplateButtonText,\r\n addToOrderTemplateButtonTooltip: resources.addToOrderTemplateButtonTooltip\r\n }}\r\n onBuyValidate={(product) => onBuyHasAccessValidator(\r\n this.props.context,\r\n this.props.data.customerInformation.result,\r\n product,\r\n this.props.resources.toastNoAccessToProduct\r\n )}\r\n />\r\n )\r\n };\r\n };\r\n\r\n private _getActivePrices = async (): Promise => {\r\n const { context } = this.props;\r\n const fullProductsSearchResultsWithCount = await this.props.data.fullProductsSearchResultsWithCount;\r\n const maxRecentlyViewedItemsCount = this.props.context.app.config.maxRecentlyViewedItemsCount;\r\n\r\n const productsList = fullProductsSearchResultsWithCount.products ?? [];\r\n const products = await getPriceForProductSearchResult(new PriceForProductSearchResultInput(productsList), context.actionContext);\r\n fullProductsSearchResultsWithCount.products = products;\r\n context.actionContext.update(new GetFullProductsByIdsInput(maxRecentlyViewedItemsCount), fullProductsSearchResultsWithCount);\r\n\r\n this.setState({ retrievingActivePrices: false });\r\n };\r\n\r\n private _getSimpleProducts = async(): Promise => {\r\n const { context } = this.props;\r\n const fullProductsSearchResultsWithCount = await this.props.data.fullProductsSearchResultsWithCount;\r\n const simpleProducts = await getByIdsAsync({ callerContext: context.actionContext },\r\n context.request.apiSettings.channelId,\r\n fullProductsSearchResultsWithCount.products.map(x => x.RecordId));\r\n this.setState({ simpleProducts });\r\n };\r\n\r\n private _getUnitConversions = async(): Promise => {\r\n const { actionContext, request, app } = this.props.context;\r\n\r\n if (!request.user.isAuthenticated || app.config.unitOfMeasureConversions !== true) {\r\n return;\r\n }\r\n\r\n const products = (await this.props.data.fullProductsSearchResultsWithCount).products;\r\n const ids = products.map(x => x.RecordId);\r\n\r\n if (!ids || ids.length === 0) {\r\n return;\r\n }\r\n\r\n const conversions = await getProductUnitOfMeasureOptionsAsync({ callerContext: actionContext }, ids);\r\n\r\n this.setState({ unitConversions: conversions });\r\n };\r\n}\r\n\r\nexport default ProductCollection;\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 { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IProductCollectionViewProps, IProductComponentViewProps } from './dlvry-recently-viewed-products';\r\n\r\nconst ProductCollectionView: React.FC = props => {\r\n const { heading, ProductCollectionContainer, products, SingleSlideCarouselComponentProps, GridComponentProps, isCarousel } = props;\r\n if (products) {\r\n return (\r\n \r\n {heading}\r\n {isCarousel ? _renderCarousel(SingleSlideCarouselComponentProps, products) : _renderGrid(GridComponentProps, products)}\r\n \r\n );\r\n }\r\n return null;\r\n};\r\n\r\nconst _renderCarousel = (carouselContainer: INodeProps, items: IProductComponentViewProps[]): JSX.Element => {\r\n return {items && items.map(_renderProduct)};\r\n};\r\n\r\nconst _renderGrid = (gridContainer: INodeProps, items: IProductComponentViewProps[]): JSX.Element => {\r\n return {items && items.map(_renderProduct)};\r\n};\r\n\r\nconst _renderProduct = (product: IProductComponentViewProps): JSX.Element => {\r\n const { ProductContainer, productComponent } = product;\r\n\r\n return {productComponent};\r\n};\r\n\r\nexport default ProductCollectionView;\r\n","import { ICoreContext } from '@msdyn365-commerce/core';\r\nimport { ProductSearchResultExt } from \"../../modules/dlvry-search-result-container/components\";\r\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\r\nimport { hasAccessToBuy } from '.';\r\n\r\nexport interface OnBuyHasAccessValidatorResult {\r\n isValid: boolean;\r\n message?: string;\r\n}\r\n\r\nexport async function onBuyHasAccessValidator(\r\n context: ICoreContext,\r\n customer: Customer | undefined,\r\n product: ProductSearchResultExt,\r\n validationMessage: string | undefined\r\n): Promise {\r\n if (!product || !product.AttributeValues) {\r\n return { isValid: true };\r\n }\r\n\r\n const hasAccess = hasAccessToBuy(context, customer, product.AttributeValues);\r\n\r\n return {\r\n isValid: hasAccess,\r\n message: hasAccess ? undefined : validationMessage\r\n };\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 { ICookieValue, ICookieContext } from '@msdyn365-commerce/core';\r\n\r\nexport const GetCookie = (cookies: ICookieContext, cookieName: string): string | undefined => {\r\n const marketCookie = cookies.get(cookieName) as ICookieValue | undefined;\r\n\r\n if (marketCookie && marketCookie.value && marketCookie.value.length > 0) {\r\n return marketCookie.value;\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const SetCookie = (cookies: ICookieContext, value: string, cookieName: string, exp: number): void => {\r\n if (value) {\r\n cookies.set(cookieName, value, { path: '/', maxAge: exp });\r\n }\r\n};\r\n","const binding = { modules: {}, dataActions: {} };\n\n const registerActionId = (actionPath) => {\n if (binding.dataActions[actionPath] &&\n binding.dataActions[actionPath].default &&\n binding.dataActions[actionPath].default.prototype &&\n binding.dataActions[actionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[actionPath].default.prototype.id] = binding.dataActions[actionPath];\n } else {\n Object.keys(binding.dataActions[actionPath] || {}).forEach(exportName => {\n if (binding.dataActions[actionPath][exportName] &&\n binding.dataActions[actionPath][exportName].prototype &&\n binding.dataActions[actionPath][exportName].prototype.Action) {\n binding.dataActions[binding.dataActions[actionPath][exportName].prototype.id] = binding.dataActions[actionPath][exportName];\n }\n })\n }\n };\n\n const registerSanitizedActionPath = (sanitizedActionPath, dataAction) => {\n if (process.env.NODE_ENV === 'development') {\n if (!dataAction.default) {\n throw new Error('Data action path does not have a default export');\n }\n if (!(dataAction.default.prototype.id && binding.dataActions[dataAction.default.prototype.id]) || !binding.dataActions[sanitizedActionPath]) {\n binding.dataActions[sanitizedActionPath] = dataAction;\n }\n } else {\n binding.dataActions[sanitizedActionPath] = dataAction;\n if (!binding.dataActions[sanitizedActionPath].default) {\n throw new Error('Data action path ' + sanitizedActionPath + ' does not have a default export');\n }\n binding.dataActions[sanitizedActionPath].default.prototype.RegistrationId = sanitizedActionPath;\n if (binding.dataActions[sanitizedActionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[sanitizedActionPath].default.prototype.id] = sanitizedActionPath;\n }\n }\n };\n \n\n (binding.modules['dlvry-recently-viewed-products'] = {\n c: () => require('partner/modules/dlvry-recently-viewed-products/dlvry-recently-viewed-products.tsx'),\n $type: 'contentModule',\n da: [{name:'cart', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action', runOn: 0},{name:'customerInformation', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer', runOn: 0},{name:'fullProductsSearchResultsWithCount', path:'modules/dlvry-recently-viewed-products/actions/get-full-products-by-ids', runOn: 1}],\n \n iNM: false,\n ns: '__local__',\n n: 'dlvry-recently-viewed-products',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/dlvry-recently-viewed-products'\n });\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action';\n let dataAction = require('@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = 'modules/dlvry-recently-viewed-products/actions/get-full-products-by-ids';\n let dataAction = require('partner/modules/dlvry-recently-viewed-products/actions/get-full-products-by-ids');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n \n window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.dataActions = {\n ...window.__bindings__.dataActions || {},\n ...binding.dataActions\n };\n export const viewDictionary = {};\n viewDictionary['__local__|__local__|modules|dlvry-recently-viewed-products|dlvry-recently-viewed-products'] = {\n c: () => require('partner/modules/dlvry-recently-viewed-products/dlvry-recently-viewed-products.view.tsx'),\n cn: '__local__-__local__-dlvry-recently-viewed-products'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","module.exports = React;","module.exports = ReactDOM;"],"names":["getProductUnitOfMeasureOptionsInput","queryResultSettings","productIds","query","DataServiceQuery","resultSettings","top","createDataServiceRequestForOperation","Entities","bypassCache","returnEntity","async","getProductUnitOfMeasureOptionsAsync","context","request","callActionOrExecute","callerContext","GetFullProductsByIdsInput","constructor","maxRecentlyViewedItemsCount","getCacheKey","getCacheObjectType","dataCacheType","this","getFullProductsByIds","input","ctx","searchCriteriaInput","Context","ChannelId","requestContext","apiSettings","channelId","CatalogId","getCatalogId","IncludeAttributes","cookieValue","GetCookie","cookies","split","map","x","Ids","promise","searchByCriteriaAsync","mappedProducts","productSearchResult","newImageUrl","generateProductImageUrl","PrimaryImageUrl","refinedProductSearchResult","newproductSearchResult","splitPathName","url","requestUrl","pathname","lastPathName","length","indexOf","productId","index","Number","splice","id","productById","filter","product","RecordId","push","refineProductSearchResults","reverse","forEach","Price","BasePrice","MaxVariantPrice","MinVariantPrice","products","count","metadata","createObservableDataAction","action","createInput","inputData","layout","HeadingTag","ProductCollection","React","props","super","_retrieveOrderTemplates","state","orderTemplates","_onUpdateOrderTemplates","newOrderTemplates","newOrderTemplate","every","productList","Id","OrderTemplate","QueryResultSettingsProxy","fromInputData","config","QueryResultSettings","GetOrderTemplatesInput","getOrderTemplates","actionContext","setState","_getProduct","Name","telemetry","trace","imageSettings","resources","ProductContainer","tag","className","role","key","productComponent","ProductComponent","freePriceText","priceFree","originalPriceText","currentPriceText","ratingAriaLabel","format","AverageRating","typeName","data","cart","result","customerInformation","simpleProduct","simpleProducts","find","unitConversions","ProductRecordId","cartQueue","_cartQueue","buyAlwaysAdd","disableBuyButton","retrievingActivePrices","showPrice","retrieveOrderTemplates","onUpdateOrderTemplates","addToCartText","updateCartText","removeFromCartText","outOfStockText","priceErrorText","toastStrings","errorHeader","toastErrorHeader","productsAddedToCart","productsRemovedFromCart","productsUpdatedInCart","goToCart","toastGoToCart","noAccessToProduct","toastNoAccessToProduct","addToOrderTemplateResources","addToOrderTemplateHeader","noOrderTemplatesMessage","noOrderTemplatesDescription","createAnOrderTemplateButtonText","createNewOrderTemplateButtonText","cancelOrderTemplateCreationButtonText","selectTemplatesText","addToTemplateButtonText","lineItemsText","createOrderTemplateHeader","orderTemplateTitle","orderTemplateNameAriaLabel","createOrderTemplateDescription","defaultOrderTemplateName","createOrderTemplateButtonText","cancelNewOrderTemplateCreationButtonText","viewOrderTemplateButtonText","continueShoppingButtonText","itemAddedToOrderTemplateHeaderItemOneText","itemAddedToOrderTemplateHeaderItemFormatText","itemAddedToOrderTemplateHeaderMessageText","duplicatedProductsHeader","duplicatedProductsDescription","updateQuantityButtonText","cancelDuplicateItemsButtonText","addToOrderTemplateButtonText","addToOrderTemplateButtonTooltip","onBuyValidate","onBuyHasAccessValidator","_getActivePrices","_fullProductsSearchRe","fullProductsSearchResultsWithCount","app","productsList","getPriceForProductSearchResult","PriceForProductSearchResultInput","update","_getSimpleProducts","getByIdsAsync","_getUnitConversions","user","isAuthenticated","unitOfMeasureConversions","ids","conversions","undefined","PQueue","concurrency","render","heading","isCarousel","carousel","headingComponent","Heading","headingTag","text","productCollectionViewProps","_objectSpread","SingleSlideCarouselComponentProps","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","ProductCollectionContainer","moduleProps","classnames","GridComponentProps","item","renderView","_renderCarousel","carouselContainer","items","Node","Object","assign","_renderProduct","_renderGrid","gridContainer","Module","customer","validationMessage","AttributeValues","isValid","hasAccess","hasAccessToBuy","message","cookieName","marketCookie","get","value","SetCookie","exp","set","path","maxAge","binding","modules","dataActions","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","Error","prototype","RegistrationId","c","require","$type","da","name","runOn","iNM","ns","n","p","pdp","md","window","__bindings__","viewDictionary","cn","module","exports","ReactDOM"],"sourceRoot":""}