{"version":3,"file":"static/js/3a5a028e0886bfea334b.bundle.js","mappings":"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","sources":["webpack://mattressfirm/./src/Utilities/get-page-path.ts?590a","webpack://mattressfirm/./src/themes/mattressfirm/views/product-collection.view.tsx?e9f1","webpack://mattressfirm/./lib/product-collection/module-registration.js?36d3","webpack://mattressfirm/./src/modules/product-collection/product-collection.tsx?4008","webpack://mattressfirm/./src/modules/product-collection/product-collection.view.tsx?5d36","webpack://mattressfirm/external var \"React\"?0d3b","webpack://mattressfirm/external var \"ReactDOM\"?853b"],"sourcesContent":["import MsDyn365 from '@msdyn365-commerce/core';\r\n\r\nexport const getPagePath = (): string => {\r\n return MsDyn365.isBrowser\r\n ? window.location.href.split(location.host)[1].includes('?')\r\n ? window.location.href.split(location.host)[1].split('?')[0]\r\n : window.location.href.split(location.host)[1]\r\n : '';\r\n};","import get from 'lodash/get';\r\nimport * as React from 'react';\r\nimport { useInView } from 'react-intersection-observer';\r\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { IProductCollectionViewProps, IProductComponentViewProps } from '@msdyn365-commerce-modules/product-collection';\r\nimport { INodeProps, Module, Node, getTelemetryObject, NodeTag } from '@msdyn365-commerce-modules/utilities';\r\nimport MsDyn365 from '@msdyn365-commerce/core';\r\nimport { AttributeValue, CommerceProperty, ProductSearchResult } from '@msdyn365-commerce/retail-proxy';\r\nimport { IPriceComponentResources } from '@msdyn365-commerce/components';\r\nimport { GetCategoryPathsInput, getProductsCategoryPathsAction } from '../../../actions/get-mfrm-products-category-paths.action';\r\nimport { getBrandNameCheck } from '../../../Utilities/get-product-brand';\r\nimport { IProductCollectionProps } from '../definition-extensions/product-collection.ext.props.autogenerated';\r\nimport { hasArray } from '../../../Utilities/emtpyChecker';\r\nimport { getPagePath } from '../../../Utilities/get-page-path';\r\nimport ProductComponent from './components/product.component';\r\nimport classnames from 'classnames';\r\n\r\ninterface IFetchedCategoryIds {\r\n productId?: number | undefined;\r\n categoryId?: number | undefined;\r\n categoryName?: string | undefined;\r\n brand: string | undefined;\r\n variantID: string | undefined;\r\n}\r\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\r\n// tslint:disable:cyclomatic-complexity\r\nconst getProductsCategories = async (\r\n props: IProductCollectionViewProps & IProductCollectionProps<{}>,\r\n products: IProductComponentViewProps[] | undefined\r\n): Promise => {\r\n if (products && products.length > 0) {\r\n const productIds: number[] = [];\r\n const catalogId = props.context.actionContext.requestContext.apiSettings.catalogId;\r\n for (let productPricesIter = 0; productPricesIter < products.length; productPricesIter++) {\r\n const prodId = get(products[productPricesIter].productComponent, 'props.data.product.RecordId');\r\n productIds.push(prodId);\r\n }\r\n if (!hasArray(productIds)) {\r\n return [];\r\n }\r\n const productsCategories = await getProductsCategoryPathsAction(\r\n new GetCategoryPathsInput(props.context.request, catalogId, productIds),\r\n props.context.actionContext\r\n );\r\n const categoryIds: IFetchedCategoryIds[] = [];\r\n for (let productCategoriesIter = 0; productCategoriesIter < productsCategories.length; productCategoriesIter++) {\r\n if (\r\n productsCategories[productCategoriesIter] &&\r\n productsCategories[productCategoriesIter].CategoryPath &&\r\n productsCategories[productCategoriesIter].CategoryPath!.length > 0\r\n ) {\r\n const catPath = productsCategories[productCategoriesIter].CategoryPath;\r\n const catPathSegments = catPath![0].Segments;\r\n if (catPathSegments && catPathSegments.length > 0) {\r\n const catId = catPathSegments.length > 0 ? catPathSegments[catPathSegments.length - 1].CategoryId : -1;\r\n const catName = catPathSegments.length > 0 ? catPathSegments[catPathSegments.length - 1].CategoryName : '';\r\n const collectionProductAttributes: AttributeValue[] = get(\r\n products[productCategoriesIter].productComponent,\r\n 'props.data.product.AttributeValues'\r\n );\r\n let variantId: string | undefined;\r\n const configVendorNamePlp = props.context.app.config.brandBackofficeAttributePlp;\r\n const configVendorNamePdp = props.context.app.config.brandBackofficeAttributePdp;\r\n let brandName: string | undefined = getBrandNameCheck(collectionProductAttributes, configVendorNamePlp);\r\n if (!brandName) {\r\n brandName = getBrandNameCheck(collectionProductAttributes, configVendorNamePdp);\r\n }\r\n if (!brandName) {\r\n brandName = undefined;\r\n }\r\n const eProps: CommerceProperty[] = get(\r\n products[productCategoriesIter].productComponent,\r\n 'props.data.product.ExtensionProperties'\r\n );\r\n if (eProps && eProps.length > 0) {\r\n for (let ePropsIter = 0; ePropsIter < eProps.length; ePropsIter++) {\r\n if (eProps[ePropsIter].Key === 'RetailVariantId') {\r\n variantId = eProps[ePropsIter].Value?.StringValue === 'null' ? undefined : eProps[ePropsIter].Value?.StringValue;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n categoryIds.push({\r\n productId: productsCategories[productCategoriesIter].ProductId,\r\n categoryId: catId,\r\n categoryName: catName,\r\n brand: brandName,\r\n variantID: variantId\r\n });\r\n }\r\n }\r\n }\r\n return categoryIds;\r\n }\r\n return [];\r\n};\r\n\r\nconst callTelium = (\r\n props: IProductCollectionViewProps & IProductCollectionProps<{}>,\r\n categoryID: IFetchedCategoryIds[],\r\n productIDList: number[]\r\n): void => {\r\n const { products } = props;\r\n const categoryListArray = categoryID.filter(item1 => productIDList.some(item2 => item1.productId === item2));\r\n const categoryList: string[] = [];\r\n const brandNameArr: (string | undefined)[] = [];\r\n const productVariantArr: (string | undefined)[] = [];\r\n categoryListArray.forEach((item: IFetchedCategoryIds) => {\r\n categoryList.push(item.categoryName!);\r\n brandNameArr.push(item.brand);\r\n productVariantArr.push(item.variantID);\r\n });\r\n const listName = props.config.productRecommendationImpressionListName\r\n ? `${props.config.productRecommendationImpressionListName}`\r\n : undefined;\r\n const pagePath = getPagePath();\r\n const productNameArr: string[] = [];\r\n const productIdArr: string[] = [];\r\n const productPositionArr: number[] = [];\r\n const productPriceArr: number[] = [];\r\n const productListArray =\r\n products &&\r\n products.filter((item1, index) => {\r\n return productIDList.some(item2 => {\r\n const productID = get(item1.productComponent, 'props.data.product.RecordId');\r\n if (productID === item2) {\r\n productPositionArr.push(index + 1);\r\n }\r\n return productID === item2; // return the ones with equal id\r\n });\r\n });\r\n productListArray &&\r\n productListArray.forEach((item: IProductComponentViewProps, index: number) => {\r\n const { productComponent } = item;\r\n productNameArr.push(get(productComponent, 'props.data.product.Name'));\r\n productIdArr.push(get(productComponent, 'props.data.product.ItemId'));\r\n productPriceArr.push(get(productComponent, 'props.data.product.Price'));\r\n });\r\n // @ts-ignore\r\n if ('utag' in window) {\r\n // @ts-ignore\r\n // tslint:disable-next-line: object-literal-key-quotes\r\n utag.link({\r\n event: 'product-impression',\r\n event_category: 'ecommerce',\r\n event_action: 'product impression',\r\n enhanced_action: 'product_impression',\r\n event_label: `${pagePath}`,\r\n event_noninteraction: 'true',\r\n product_impression_list_name: [`${listName}`],\r\n product_impression_position: productPositionArr,\r\n product_impression_id: productIdArr,\r\n product_impression_name: productNameArr,\r\n product_impression_category: categoryList,\r\n product_impression_brand: brandNameArr,\r\n product_impression_variant: productVariantArr,\r\n product_impression_price: productPriceArr\r\n });\r\n }\r\n};\r\n\r\nconst callTeliumOnClick = (\r\n props: IProductCollectionViewProps & IProductCollectionProps<{}>,\r\n categoryID: IFetchedCategoryIds[],\r\n product: IProductComponentViewProps\r\n): void => {\r\n const { productComponent } = product;\r\n const { heading } = props;\r\n const productHeading = get(heading, 'props.text');\r\n const productName = get(productComponent, 'props.data.product.Name');\r\n const productPositionArr: number[] = [];\r\n const productRecordID = get(productComponent, 'props.data.product.RecordId');\r\n const categoryListArr: string[] = [];\r\n const brandNameArr: (string | undefined)[] = [];\r\n const productVariantArr: (string | undefined)[] = [];\r\n const pagePath = getPagePath();\r\n const productId = get(productComponent, 'props.data.product.ItemId');\r\n categoryID?.forEach((item, index) => {\r\n if (productRecordID === item.productId) {\r\n productPositionArr.push(index + 1);\r\n categoryListArr.push(item.categoryName!);\r\n brandNameArr.push(item.brand);\r\n productVariantArr.push(item.variantID);\r\n }\r\n });\r\n // @ts-ignore\r\n if ('utag' in window) {\r\n // @ts-ignore\r\n // tslint:disable-next-line: object-literal-key-quotes\r\n utag.link({\r\n event: 'product-click',\r\n enhanced_action: 'product_click',\r\n event_category: 'ecommerce',\r\n event_action: 'product click',\r\n event_label: `${productId}: ${productName}`,\r\n event_noninteraction: 'false',\r\n product_list_name: [`${productHeading}-${pagePath}`],\r\n product_position: productPositionArr,\r\n product_id: [`${productId}`],\r\n product_name: [`${productName}`],\r\n product_category: categoryListArr,\r\n product_brand: brandNameArr,\r\n product_variant: productVariantArr\r\n });\r\n }\r\n const singlePosition = productPositionArr[0];\r\n // @ts-ignore\r\n if ('utag' in window) {\r\n // @ts-ignore\r\n // tslint:disable-next-line: object-literal-key-quotes\r\n utag.link({\r\n event: 'product-recommendations',\r\n event_category: productHeading,\r\n event_action: singlePosition,\r\n event_label: productName,\r\n event_noninteraction: 'false'\r\n });\r\n }\r\n};\r\n\r\nconst getSkipProductValue = (props: IProductCollectionViewProps, teliumCall: number): number => {\r\n let skipProducts: number = 0;\r\n const viewPortCode = getViewport(props);\r\n if (viewPortCode === 'xs' || viewPortCode === 'sm' || viewPortCode === 'md') {\r\n skipProducts = 1;\r\n } else if (viewPortCode === 'lg') {\r\n if (MsDyn365.isBrowser && window.innerWidth) {\r\n if (window.innerWidth >= 1070 && window.innerWidth < 1112) {\r\n skipProducts = 2;\r\n } else {\r\n skipProducts = 3;\r\n }\r\n }\r\n } else if (viewPortCode === 'xl') {\r\n if (teliumCall === 2) {\r\n skipProducts = 1;\r\n } else {\r\n skipProducts = 3;\r\n }\r\n }\r\n return skipProducts;\r\n};\r\n\r\nconst getViewport = (props: IProductCollectionViewProps): GridSize => {\r\n const { context } = props;\r\n // always render in mobile viewport on a mobile device\r\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\r\n return 'xs';\r\n }\r\n if (MsDyn365.isBrowser && window.innerWidth) {\r\n const gridSettings = context.request.gridSettings;\r\n if (gridSettings) {\r\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\r\n return 'xs';\r\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\r\n return 'sm';\r\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\r\n return 'md';\r\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\r\n return 'lg';\r\n } else {\r\n return 'xl';\r\n }\r\n }\r\n }\r\n\r\n return 'lg';\r\n};\r\n\r\nconst ProductCollectionView: React.FC> = props => {\r\n const { heading, ProductCollectionContainer, products, SingleSlideCarouselComponentProps, GridComponentProps } = props;\r\n const layoutType = props.config.layout;\r\n\r\n const [productIDList, setproductIDList] = React.useState([]);\r\n const [categoryID, setCategoryID] = React.useState([]);\r\n const [teliumCall, setteliumCall] = React.useState(0);\r\n React.useEffect(() => {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n getProductsCategories(props, products).then(result => {\r\n // tslint:disable-next-line: no-floating-promises\r\n setCategoryID(result);\r\n });\r\n }, []);\r\n\r\n const handleProductId = (productID: number): void => {\r\n setproductIDList(prevArray => [...prevArray, productID]);\r\n };\r\n const _renderCarousel = (carouselContainer: INodeProps, items: (IProductComponentViewProps | undefined)[]): JSX.Element => {\r\n return {items && items.map(item => _renderProduct(item))};\r\n };\r\n const _renderGrid = (gridContainer: INodeProps, items: (IProductComponentViewProps | undefined)[]): JSX.Element => {\r\n return {items && items.map(item => _renderProduct(item))};\r\n };\r\n\r\n const _renderProduct = (product: IProductComponentViewProps | undefined): JSX.Element | null => {\r\n if (!product) {\r\n return null;\r\n }\r\n const { ProductContainer, productComponent } = product;\r\n const [ref, inView] = useInView({\r\n triggerOnce: true\r\n });\r\n\r\n React.useEffect(() => {\r\n if (MsDyn365.isBrowser && productComponent && inView) {\r\n const productID = get(productComponent, 'props.data.product.RecordId');\r\n handleProductId(productID);\r\n }\r\n }, [inView]);\r\n\r\n return (\r\n // tslint:disable-next-line: jsx-no-lambda react-this-binding-issue\r\n callTeliumOnClick(props, categoryID, product)} {...ProductContainer}>\r\n
{productComponent}
\r\n
\r\n );\r\n };\r\n const skipProductsVal = getSkipProductValue(props, teliumCall);\r\n if (productIDList.length > skipProductsVal) {\r\n if (categoryID.length > 0) {\r\n callTelium(props, categoryID, productIDList);\r\n setproductIDList([]);\r\n setteliumCall(teliumCall + 1);\r\n }\r\n }\r\n // Use customized configuration for product component in case of Cart page\r\n const updatedProducts = props.config.displayShopNow ? _getProductsList(props) : products;\r\n\r\n let layout;\r\n if (layoutType === 'carousel') {\r\n layout = _renderCarousel(SingleSlideCarouselComponentProps, updatedProducts);\r\n } else if (layoutType === 'simple product') {\r\n layout = _renderSimpleCarousel(SingleSlideCarouselComponentProps, updatedProducts, props);\r\n } else if (layoutType === 'grid') {\r\n layout = _renderGrid(GridComponentProps, updatedProducts);\r\n } else {\r\n layout = _renderGrid(GridComponentProps, updatedProducts);\r\n }\r\n if (updatedProducts) {\r\n return (\r\n \r\n {heading}\r\n {layout}\r\n \r\n );\r\n }\r\n props.context.telemetry.warning('Product collection content is empty, module wont render.');\r\n return null;\r\n};\r\n/* VSI Customization - START */\r\nconst _getProductsList = (props: IProductCollectionViewProps & IProductCollectionProps<{}>): (IProductComponentViewProps | undefined)[] => {\r\n const { config: { productCollection } } = props;\r\n const products = productCollection.products;\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- product check for safety.\r\n const updatedProducts = products?.map(\r\n (item: ProductSearchResult, index: number) => {\r\n const getProductData = _getProduct(item, index, props);\r\n return !ObjectExtensions.isNullOrUndefined(getProductData) ? getProductData : undefined;\r\n }\r\n );\r\n const productsList = updatedProducts?.filter(item => item !== undefined);\r\n return productsList;\r\n};\r\n\r\nconst _getProduct = (product: ProductSearchResult, index: number, props: IProductCollectionViewProps & IProductCollectionProps<{}>): IProductComponentViewProps | null => {\r\n if (!product || !product.Name) {\r\n props.telemetry.trace('[product-collection] Product or product name is null');\r\n return null;\r\n }\r\n const { context, resources, id, typeName, friendlyName, telemetry,\r\n config: { imageSettings, allowBackNavigation, displayShopNow },\r\n slots: { quickview: quickviewSlot } } = props;\r\n\r\n const breaCrumbType = context.app.config.breadcrumbType;\r\n const priceResources: IPriceComponentResources = {\r\n priceRangeSeparator: resources.priceRangeSeparator\r\n };\r\n const telemetryContent = getTelemetryObject(context.request.telemetryPageName!,\r\n friendlyName,\r\n telemetry);\r\n const reviewTotalRatings = Number(product.TotalRatings);\r\n const reviewCount = 1;\r\n const reviewCountAriaLabelValue = reviewTotalRatings > reviewCount ? resources.ratingCountAriaLabel : resources.ratingCountAriaLabelSingleUser;\r\n const allowBack = allowBackNavigation && (breaCrumbType === 'back' || breaCrumbType === 'categoryAndBack');\r\n const isPriceMinMaxEnabled = props.data.featureState.result?.find(\r\n featureState => featureState.Name === 'Dynamics.AX.Application.RetailSearchPriceRangeFeature');\r\n\r\n return {\r\n ProductContainer: {\r\n tag: 'li' as NodeTag,\r\n className: classnames('ms-product-collection__item', displayShopNow ? 'msc-product__with-cta' : ''),\r\n role: 'listitem',\r\n key: index\r\n },\r\n productComponent: (\r\n \r\n )\r\n };\r\n};\r\n/* VSI Customization - END */\r\nconst _renderSimpleCarousel = (carouselContainer: INodeProps, items: (IProductComponentViewProps | undefined)[], props: IProductCollectionViewProps & IProductCollectionProps<{}>): JSX.Element => {\r\n return (\r\n \r\n {items && items.map(item => _renderSimpleProduct(item, props))}\r\n \r\n );\r\n};\r\n\r\nconst _renderSimpleProduct = (product: IProductComponentViewProps | undefined, props: IProductCollectionViewProps & IProductCollectionProps<{}>): JSX.Element | null => {\r\n if (!product) {\r\n return null;\r\n }\r\n const { ProductContainer, productComponent } = product;\r\n return {productComponent};\r\n};\r\n\r\nexport default ProductCollectionView;\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['product-collection'] = {\n c: () => require('@msdyn365-commerce-modules/product-collection/dist/lib/modules/product-collection/product-collection'),\n $type: 'containerModule',\n da: [{name:'featureState', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'product-collection',\n p: 'product-collection',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/product-collection/dist/lib/modules/product-collection'\n });\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state');\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__|themes|mattressfirm|views|product-collection'] = {\n c: () => require('partner/themes/mattressfirm/views/product-collection.view.tsx'),\n cn: '__local__-__local__-product-collection'\n };\nviewDictionary['@msdyn365-commerce-modules|product-collection|modules|product-collection|product-collection'] = {\n c: () => require('@msdyn365-commerce-modules/product-collection/dist/lib/modules/product-collection/product-collection.view.js'),\n cn: '@msdyn365-commerce-modules-product-collection-product-collection'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IProductsDimensionsAvailabilities } from '@msdyn365-commerce/commerce-entities';\nimport { IPriceComponentResources, ProductComponent } from '@msdyn365-commerce/components';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getCatalogId, getUrlSync, ICoreContext } from '@msdyn365-commerce/core';\nimport { ProductPrice, ProductSearchResult } from '@msdyn365-commerce/retail-proxy';\nimport {\n ArrayExtensions,\n DimensionAvailabilitiesForProductSearchResultInput,\n DimensionTypes,\n DimensionSwatchDisplayTypes,\n getDimensionAvailabilitiesForProductSearchResultAction,\n getPriceForProductSearchResult,\n IDimensionsApp,\n ObjectExtensions,\n PriceForProductSearchResultInput,\n ProductPriceForSelectedProductsInput,\n validateCatalogId,\n getProductPriceForSelectedProducts\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getTelemetryObject,\n IComponentNodeProps,\n IModuleProps,\n INodeProps,\n ISingleSlideCarouselProps,\n ITelemetryContent,\n NodeTag,\n SingleSlideCarousel\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IProductCollectionData } from './product-collection.data';\nimport { IProductCollectionProps, layout } from './product-collection.props.autogenerated';\n\nexport interface IProductCollectionViewProps extends IProductCollectionProps {\n heading?: React.ReactNode;\n ProductCollectionContainer: IModuleProps;\n SingleSlideCarouselComponentProps: INodeProps;\n GridComponentProps: INodeProps;\n products: IProductComponentViewProps[];\n isCarousel: boolean;\n productPrices?: ProductPrice[];\n seeAllButton?: React.ReactNode;\n}\n\nexport interface IProductComponentViewProps {\n ProductContainer: INodeProps;\n productComponent: React.ReactNode;\n}\nexport interface IProductComponentState {\n products: ProductSearchResult[];\n productPrices: ProductPrice[];\n productsDimensionAvailabilities?: IProductsDimensionsAvailabilities[][];\n}\n\n/**\n * ProductCollection component.\n */\nclass ProductCollection extends React.PureComponent, IProductComponentState> {\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly productPrices: ProductPrice[];\n\n constructor(props: IProductCollectionProps) {\n super(props);\n this.productPrices = [];\n this.state = {\n products: this.props.config.productCollection.products || [],\n productPrices: this.productPrices || []\n };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public async componentDidMount(): Promise {\n if (this.props.config.enableAffiliationBasedPricing && this.props.context.actionContext.requestContext.user.isAuthenticated) {\n await this._getActivePrice();\n }\n }\n\n public render(): JSX.Element | null {\n const { heading, className, shouldDisplaySeeAllButton } = this.props.config;\n const { resources } = this.props;\n const recommendation = this.props.config.productCollection.recommendationListId;\n const discountIds = this.props.config.productCollection.discountIds;\n\n // Initialize state in case if the products were not found during initial module render\n // eslint-disable-next-line @typescript-eslint/no-floating-promises -- Initialize data if not there.\n this.initProductState(this.props.config.productCollection);\n\n const products = this.state.products;\n const productPrices = this.state.productPrices;\n\n const isCarousel = this.props.config.layout === layout.carousel;\n const headingLabel = heading ? heading.text : '';\n const headingComponent = heading && (\n \n );\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- product check for safety.\n const updatedProducts = products?.map((item: ProductSearchResult, index: number) => {\n const getProductData = this._getProduct(item, index, productPrices ? productPrices.at(index) : undefined);\n return !ObjectExtensions.isNullOrUndefined(getProductData) ? getProductData : undefined;\n });\n\n const productCollectionViewProps = {\n ...this.props,\n heading: headingComponent,\n SingleSlideCarouselComponentProps: {\n tag: SingleSlideCarousel,\n className: '',\n flipperPrevLabel: `${headingLabel} ${resources.flipperPrevious}`,\n flipperNextLabel: `${headingLabel} ${resources.flipperNext}`,\n parentId: this.props.id,\n telemetryContent: this.telemetryContent\n } as IComponentNodeProps,\n ProductCollectionContainer: {\n moduleProps: this.props,\n className: classnames('ms-product-collection', className)\n },\n GridComponentProps: {\n tag: 'ul' as NodeTag,\n className: 'ms-product-collection__items'\n },\n isCarousel,\n\n products:\n ArrayExtensions.hasElements(updatedProducts) &&\n updatedProducts.filter(item => {\n return item !== undefined;\n }),\n productPrices: this.productPrices,\n seeAllButton:\n (recommendation || discountIds) && shouldDisplaySeeAllButton && ArrayExtensions.hasElements(updatedProducts)\n ? this._getSeeAllButton(headingLabel, recommendation, discountIds)\n : undefined\n };\n return this.props.renderView(productCollectionViewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n /**\n * Get products dimension availabilities.\n * @param products - Products.\n * @returns Promise.\n */\n private readonly _getProductsDimensionsAvailabilities = async (products: ProductSearchResult[]): Promise => {\n const context = this.props.context as ICoreContext;\n const dimensionsToDisplayOnProductCard = context.app.config.dimensionsInProductCard;\n const dimensionsToDisplayAsSwatch = context.app.config.dimensionsAsSwatchType;\n const validProducts = ArrayExtensions.validValues(products);\n if (\n ArrayExtensions.hasElements(validProducts) &&\n ArrayExtensions.hasElements(dimensionsToDisplayOnProductCard) &&\n !dimensionsToDisplayOnProductCard.includes(DimensionTypes.none) &&\n ArrayExtensions.hasElements(dimensionsToDisplayAsSwatch) &&\n !dimensionsToDisplayAsSwatch.includes(DimensionTypes.none)\n ) {\n const productsDimensionAvailabilities = await getDimensionAvailabilitiesForProductSearchResultAction(\n new DimensionAvailabilitiesForProductSearchResultInput(\n validProducts,\n this.props.context as ICoreContext,\n DimensionSwatchDisplayTypes.productCard\n ),\n this.props.context.actionContext\n );\n\n if (ArrayExtensions.hasElements(productsDimensionAvailabilities)) {\n this.setState({ productsDimensionAvailabilities });\n }\n }\n };\n\n /**\n * Helper method to initialize products state.\n * @param productCollection - List of products.\n */\n private readonly initProductState = async (productCollection: Msdyn365.IProductList) => {\n let products = this.state.products;\n let productPrices = this.state.productPrices;\n const productCollectionProducts = productCollection.products;\n if (!ArrayExtensions.hasElements(products) && ArrayExtensions.hasElements(productCollectionProducts)) {\n products = productCollectionProducts;\n this.setState({ products });\n } else if (\n ArrayExtensions.hasElements(products) &&\n ArrayExtensions.hasElements(productCollectionProducts) &&\n !ArrayExtensions.equals(products, productCollectionProducts)\n ) {\n products = productCollectionProducts;\n this.setState({ products });\n } else if (productCollectionProducts === undefined && ArrayExtensions.hasElements(this.state.products)) {\n products = [];\n this.setState({ products: products });\n }\n\n if (Msdyn365.msdyn365Commerce.isBrowser && !ArrayExtensions.hasElements(this.state.productsDimensionAvailabilities)) {\n await this._getProductsDimensionsAvailabilities(products);\n }\n\n if (this.props.config.productCollection.listType === 'promotional') {\n productPrices = await getProductPriceForSelectedProducts(\n new ProductPriceForSelectedProductsInput(products.map(p => p.RecordId)),\n this.props.context.actionContext\n );\n this.setState({ productPrices: productPrices });\n }\n };\n\n private readonly _getProduct = (\n product: ProductSearchResult,\n index: number,\n productPrice?: ProductPrice\n ): IProductComponentViewProps | null => {\n if (!product || !product.Name) {\n this.props.telemetry.trace('[product-collection] Product or product name is null');\n return null;\n }\n const telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n const { imageSettings, allowBackNavigation } = this.props.config;\n const resources = this.props.resources;\n const breaCrumbType = this.props.context.app.config.breadcrumbType;\n const allowBack = allowBackNavigation && (breaCrumbType === 'back' || breaCrumbType === 'categoryAndBack');\n const quickviewSlot =\n this.props.slots && this.props.slots.quickview && this.props.slots.quickview.length > 0 ? this.props.slots.quickview[0] : null;\n const productComparisonButtonSlot = ArrayExtensions.hasElements(this.props.slots.productComparisonButton)\n ? this.props.slots.productComparisonButton[0]\n : null;\n\n const reviewCount = 1;\n const reviewTotalRatings = Number(product.TotalRatings);\n const reviewCountAriaLabelValue =\n reviewTotalRatings > reviewCount ? resources.ratingCountAriaLabel : resources.ratingCountAriaLabelSingleUser;\n const isPriceMinMaxEnabled = this.props.data.featureState.result?.find(\n featureState => featureState.Name === 'Dynamics.AX.Application.RetailSearchPriceRangeFeature'\n );\n const priceResources: IPriceComponentResources = {\n priceRangeSeparator: resources.priceRangeSeparator\n };\n return {\n ProductContainer: {\n tag: 'li' as NodeTag,\n className: 'ms-product-collection__item',\n role: 'listitem',\n key: index\n },\n productComponent: (\n \n ArrayExtensions.hasElements(dimensionAvailability) &&\n dimensionAvailability[0].masterProductId === (product.MasterProductId ?? product.RecordId)\n )}\n />\n )\n };\n };\n\n /**\n * Get the active price for products.\n */\n private readonly _getActivePrice = async (): Promise => {\n const productsList = this.state.products;\n const products = await getPriceForProductSearchResult(\n new PriceForProductSearchResultInput(productsList),\n this.props.context.actionContext\n );\n if (Msdyn365.msdyn365Commerce.isBrowser) {\n await this._getProductsDimensionsAvailabilities(products);\n }\n\n this.setState({ products });\n };\n\n /**\n * Get the see all button.\n * @param headingLabel - Heading label.\n * @param recommendation - Recommendation.\n * @param discountIds - Discount Ids.\n * @returns IProductComponentSeeAllViewProps - Product component see all view props.\n */\n private readonly _getSeeAllButton = (headingLabel: string, recommendation?: string, discountIds?: string[]): React.ReactNode => {\n if (!Msdyn365.msdyn365Commerce.isBrowser) {\n return null;\n }\n\n if (!recommendation && !discountIds) {\n return null;\n }\n\n const catalogId = getCatalogId(this.props.context.request);\n validateCatalogId(catalogId);\n const searchPageLink = getUrlSync('search', this.props.context.actionContext);\n if (!searchPageLink) {\n return null;\n }\n\n const url = new URL(searchPageLink, window.location.href);\n\n if (discountIds) {\n // see all button for promotion page\n url.searchParams.set('discountIds', discountIds.toString());\n url.searchParams.set('title', headingLabel);\n url.searchParams.set('catalogid', `${catalogId}`);\n } else if (recommendation) {\n // See all button for recommendation\n url.searchParams.set('recommendation', recommendation);\n url.searchParams.set('title', headingLabel);\n url.searchParams.set('catalogid', `${catalogId}`);\n }\n\n return (\n \n {this.props.resources.seeAllButtonText}\n \n );\n };\n}\n\nexport default ProductCollection;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IProductCollectionViewProps, IProductComponentViewProps } from './product-collection';\n\nconst ProductCollectionView: React.FC = props => {\n const {\n heading,\n ProductCollectionContainer,\n products,\n SingleSlideCarouselComponentProps,\n GridComponentProps,\n isCarousel,\n seeAllButton\n } = props;\n\n if (products) {\n return (\n \n {heading}\n {seeAllButton}\n {isCarousel ? _renderCarousel(SingleSlideCarouselComponentProps, products) : _renderGrid(GridComponentProps, products)}\n \n );\n }\n props.context.telemetry.error('Product collection content is empty, module wont render.');\n return null;\n};\n\nconst _renderCarousel = (carouselContainer: INodeProps, items: IProductComponentViewProps[]): JSX.Element => {\n return {items && items.map(_renderProduct)};\n};\n\nconst _renderGrid = (gridContainer: INodeProps, items: IProductComponentViewProps[]): JSX.Element => {\n return {items && items.map(_renderProduct)};\n};\n\nconst _renderProduct = (product: IProductComponentViewProps): JSX.Element => {\n const { ProductContainer, productComponent } = product;\n\n return {productComponent};\n};\n\nexport default ProductCollectionView;\n","module.exports = React;","module.exports = ReactDOM;"],"names":["getPagePath","MsDyn365","isBrowser","window","location","href","split","host","includes","getViewport","props","context","request","device","Type","innerWidth","gridSettings","xs","w","sm","md","lg","_getProductsList","config","productCollection","products","updatedProducts","map","item","index","getProductData","_getProduct","ObjectExtensions","isNullOrUndefined","undefined","filter","product","_props$data$featureSt","Name","telemetry","trace","resources","id","typeName","friendlyName","imageSettings","allowBackNavigation","displayShopNow","slots","quickview","quickviewSlot","breaCrumbType","app","breadcrumbType","priceResources","priceRangeSeparator","telemetryContent","getTelemetryObject","telemetryPageName","reviewCountAriaLabelValue","Number","TotalRatings","ratingCountAriaLabel","ratingCountAriaLabelSingleUser","allowBack","isPriceMinMaxEnabled","data","featureState","result","find","ProductContainer","tag","className","classnames","role","key","productComponent","React","ProductComponent","freePriceText","priceFree","originalPriceText","currentPriceText","ratingAriaLabel","quickViewButton","IsEnabled","shopNowBtnText","shopNowButtonText","_renderSimpleCarousel","carouselContainer","items","Node","Object","assign","_renderSimpleProduct","heading","ProductCollectionContainer","SingleSlideCarouselComponentProps","GridComponentProps","layoutType","layout","productIDList","setproductIDList","categoryID","setCategoryID","teliumCall","setteliumCall","async","length","productIds","catalogId","actionContext","requestContext","apiSettings","productPricesIter","prodId","get","push","hasArray","productsCategories","getProductsCategoryPathsAction","GetCategoryPathsInput","categoryIds","productCategoriesIter","CategoryPath","catPathSegments","Segments","catId","CategoryId","catName","CategoryName","collectionProductAttributes","variantId","configVendorNamePlp","brandBackofficeAttributePlp","configVendorNamePdp","brandBackofficeAttributePdp","brandName","getBrandNameCheck","eProps","ePropsIter","Key","_eProps$ePropsIter$Va","_eProps$ePropsIter$Va2","Value","StringValue","productId","ProductId","categoryId","categoryName","brand","variantID","getProductsCategories","then","_renderGrid","gridContainer","_renderProduct","ref","inView","useInView","triggerOnce","productID","prevArray","handleProductId","onClick","callTeliumOnClick","productHeading","productName","productPositionArr","productRecordID","categoryListArr","brandNameArr","productVariantArr","pagePath","forEach","utag","link","event","enhanced_action","event_category","event_action","event_label","event_noninteraction","product_list_name","product_position","product_id","product_name","product_category","product_brand","product_variant","singlePosition","skipProductsVal","getSkipProductValue","skipProducts","viewPortCode","callTelium","categoryListArray","item1","some","item2","categoryList","listName","productRecommendationImpressionListName","productNameArr","productIdArr","productPriceArr","productListArray","product_impression_list_name","product_impression_position","product_impression_id","product_impression_name","product_impression_category","product_impression_brand","product_impression_variant","product_impression_price","_renderCarousel","Module","warning","binding","modules","dataActions","c","require","$type","da","name","path","runOn","iNM","ns","n","p","pdp","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","Error","prototype","RegistrationId","__bindings__","_objectSpread","viewDictionary","cn","ProductCollection","constructor","super","handleHeadingChange","this","text","target","value","_getProductsDimensionsAvailabilities","dimensionsToDisplayOnProductCard","dimensionsInProductCard","dimensionsToDisplayAsSwatch","dimensionsAsSwatchType","validProducts","ArrayExtensions","validValues","hasElements","DimensionTypes","none","productsDimensionAvailabilities","getDimensionAvailabilitiesForProductSearchResultAction","DimensionAvailabilitiesForProductSearchResultInput","DimensionSwatchDisplayTypes","productCard","setState","initProductState","state","productPrices","productCollectionProducts","equals","Msdyn365","listType","getProductPriceForSelectedProducts","ProductPriceForSelectedProductsInput","RecordId","productPrice","_this$props$data$feat","_this$state$productsD","productComparisonButtonSlot","productComparisonButton","dimensionAvailabilities","dimensionAvailability","_product$MasterProduc","masterProductId","MasterProductId","_getActivePrice","productsList","getPriceForProductSearchResult","PriceForProductSearchResultInput","_getSeeAllButton","headingLabel","recommendation","discountIds","getCatalogId","validateCatalogId","searchPageLink","getUrlSync","url","URL","searchParams","set","toString","Button","title","seeAllButtonText","enableAffiliationBasedPricing","user","isAuthenticated","render","shouldDisplaySeeAllButton","recommendationListId","isCarousel","headingComponent","editProps","onEdit","at","productCollectionViewProps","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","moduleProps","seeAllButton","renderView","error","module","exports","ReactDOM"],"sourceRoot":""}