{"version":3,"file":"static/js/5.6d973a95ff95b7cc0906.chunk.js","mappings":"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","sources":["webpack://Citta2.0/./src/components/price-component.tsx?ed26","webpack://Citta2.0/./src/data-actions/pdp-enquiry/submit-pdp-enquiry-form-data.ts?9564","webpack://Citta2.0/./src/actions/utilities/utils.ts?cb7c","webpack://Citta2.0/./src/actions/get-selected-variant-v29.ts?793f","webpack://Citta2.0/./src/modules/citta-buybox/components/citta-buybox-find-in-store.tsx?333f","webpack://Citta2.0/./src/modules/citta-buybox/citta-buybox.tsx?0c39","webpack://Citta2.0/./src/modules/citta-buybox/citta-buybox.view.tsx?586e","webpack://Citta2.0/./src/modules/citta-enquire-form/citta-enquire-form.tsx?4786","webpack://Citta2.0/./src/modules/citta-enquire-form/citta-enquire-form.view.tsx?c1aa","webpack://Citta2.0/./src/modules/citta-header/components/logo.tsx?d610","webpack://Citta2.0/./src/modules/citta-header/components/nav-icon.tsx?2883","webpack://Citta2.0/./src/modules/citta-header/components/citta-header-preferred-store.tsx?31a1","webpack://Citta2.0/./src/modules/citta-header/citta-header.tsx?01c9","webpack://Citta2.0/./src/modules/citta-header/citta-header.view.tsx?4656","webpack://Citta2.0/./src/modules/citta-media-gallery/utils/get-valid-product-images.ts?8597","webpack://Citta2.0/./src/modules/citta-media-gallery/citta-media-gallery.tsx?192b","webpack://Citta2.0/./src/modules/citta-media-gallery/citta-media-gallery.view.tsx?a3eb","webpack://Citta2.0/./src/modules/citta-promo-banner/components/close-button.tsx?7ba2","webpack://Citta2.0/./src/modules/citta-promo-banner/components/links.tsx?a64a","webpack://Citta2.0/./src/modules/citta-promo-banner/components/text.tsx?2035","webpack://Citta2.0/./src/modules/citta-promo-banner/citta-promo-banner.tsx?f097","webpack://Citta2.0/./src/modules/citta-promo-banner/citta-promo-banner.view.tsx?4353","webpack://Citta2.0/./src/modules/citta-wishlist-items/components/citta-wishlist-items-dimensions.tsx?42bc","webpack://Citta2.0/./src/modules/citta-wishlist-items/components/wishlist-item.tsx?cb43","webpack://Citta2.0/./src/modules/citta-wishlist-items/components/citta-wishlist-items-status-message.tsx?e2b6","webpack://Citta2.0/./src/modules/citta-wishlist-items/citta-wishlist-items.tsx?878b","webpack://Citta2.0/./src/modules/citta-wishlist-items/citta-wishlist-items.view.tsx?20f3","webpack://Citta2.0/./src/modules/super-media-gallery/super-media-gallery.props.autogenerated.ts?e220","webpack://Citta2.0/./src/modules/super-media-gallery/utils/helper.ts?b8ed","webpack://Citta2.0/./src/modules/super-media-gallery/utils/get-valid-product-images.ts?50a8","webpack://Citta2.0/./src/modules/super-media-gallery/super-media-gallery.tsx?4f69","webpack://Citta2.0/./src/modules/super-media-gallery/super-media-gallery.view.tsx?4d69","webpack://Citta2.0/./src/themes/citta/utilities/quantity/Quantity.tsx?4279","webpack://Citta2.0/./src/themes/citta/views/components/layBuyPriceBreakdown.tsx?147b","webpack://Citta2.0/./src/themes/citta/views/buybox.view.tsx?10fd","webpack://Citta2.0/./src/components/citta-notify-me/notify-me.tsx?1aee","webpack://Citta2.0/./src/themes/citta/views/components/add-to-cart.component.tsx?7134","webpack://Citta2.0/./src/themes/citta/views/components/afterpay_info.tsx?049f","webpack://Citta2.0/./src/themes/citta/views/components/buybox-find-in-store.tsx?ca0e","webpack://Citta2.0/./src/shared-utils/utilities.ts?3b7d","webpack://Citta2.0/./src/components/citta-dropdown/Dropdown.tsx?19db","webpack://Citta2.0/./src/components/citta-dropdown/DropdownItem.tsx?1c51","webpack://Citta2.0/./src/components/citta-dropdown/DropdownMenu.tsx?9d9a","webpack://Citta2.0/./src/components/citta-button/Button.tsx?7e09","webpack://Citta2.0/./src/components/citta-dropdown/DropdownProvider.tsx?b6f4","webpack://Citta2.0/./src/components/citta-dropdown/UncontrolledDropdown.tsx?004c","webpack://Citta2.0/./src/components/citta-dropdown/DropdownToggle.tsx?e5a5","webpack://Citta2.0/./src/components/citta-buybox/utilities.ts?0124","webpack://Citta2.0/./src/components/citta-buybox/rich-select/RichSelect.tsx?e43a","webpack://Citta2.0/./src/components/citta-buybox/dropdown/dropdown.tsx?d495","webpack://Citta2.0/./src/themes/citta/views/components/buybox-product-configure.tsx?ca59","webpack://Citta2.0/./src/themes/citta/views/components/buybox-small-components.tsx?19f8","webpack://Citta2.0/./src/themes/citta/views/components/cart-icon.component.tsx?a3df","webpack://Citta2.0/./src/themes/citta/views/components/sidebar.tsx?30ee","webpack://Citta2.0/./src/themes/citta/views/header.view.tsx?b6f0","webpack://Citta2.0/./src/themes/citta/views/components/product-collection-component.tsx?595b","webpack://Citta2.0/./src/themes/citta/views/product-collection.view.tsx?2634","webpack://Citta2.0/./src/modules/bulk-purchase/bulk-purchase.tsx?9fd5","webpack://Citta2.0/./src/modules/bulk-purchase/bulk-purchase.view.tsx?feac","webpack://Citta2.0/./src/common/buybox-components.tsx?42b4","webpack://Citta2.0/./src/common/buybox-product-configure.tsx?139c","webpack://Citta2.0/./src/common/buyboxInterface.ts?9d60","webpack://Citta2.0/./src/common/dropdown/dropdown.tsx?f1d3","webpack://Citta2.0/./src/common/dropdown/dropdown.props.ts?7676","webpack://Citta2.0/./src/common/utilities/error-utilities.ts?bb69","webpack://Citta2.0/./src/modules/buybox/components/buybox-find-in-store.tsx?3ef8","webpack://Citta2.0/./src/modules/buybox/buybox.tsx?e22d","webpack://Citta2.0/./src/modules/buybox/buybox.view.tsx?376b","webpack://Citta2.0/./src/modules/quickview/utilities/helper.ts?f31d","webpack://Citta2.0/./src/modules/quickview/utilities/get-valid-product-images.ts?78b7","webpack://Citta2.0/./src/modules/quickview/quickview.tsx?4080","webpack://Citta2.0/./src/modules/quickview/utilities/get-product-details.ts?5cc2","webpack://Citta2.0/./src/modules/quickview/quickview.view.tsx?ee5b","webpack://Citta2.0/./src/modules/recently-viewed/base/recently-viewed-product-item.ts?4982","webpack://Citta2.0/./src/modules/recently-viewed/base/recently-viewed-item.ts?54c9","webpack://Citta2.0/./src/modules/recently-viewed/recently-viewed-state.ts?c73b","webpack://Citta2.0/./src/modules/recently-viewed/recently-viewed-manager.ts?a2a8","webpack://Citta2.0/./src/checkout-errors/checkout-errors.ts?a9e0","webpack://Citta2.0/./src/common/error.tsx?096f","webpack://Citta2.0/./src/modules/header/components/header-preferred-store.tsx?ee9c","webpack://Citta2.0/./src/modules/header/components/logo.tsx?f27e","webpack://Citta2.0/./src/modules/header/components/nav-icon.tsx?2475","webpack://Citta2.0/./src/modules/header/header.tsx?e91a","webpack://Citta2.0/./src/modules/header/header.view.tsx?cf0f","webpack://Citta2.0/./src/modules/media-gallery/media-gallery.tsx?24d7","webpack://Citta2.0/./src/modules/media-gallery/media-gallery.view.tsx?5061","webpack://Citta2.0/./src/modules/media-gallery/utils/helper.ts?b895","webpack://Citta2.0/./src/modules/media-gallery/utils/get-valid-product-images.ts?a364","webpack://Citta2.0/./src/modules/product-collection/product-collection.tsx?4008","webpack://Citta2.0/./src/modules/product-collection/product-collection.view.tsx?5d36","webpack://Citta2.0/./src/modules/ratings-histogram/component/components.tsx?f324","webpack://Citta2.0/./src/modules/ratings-histogram/ratings-histogram.tsx?f6bc","webpack://Citta2.0/./src/modules/ratings-histogram/ratings-histogram.view.tsx?5bff","webpack://Citta2.0/./src/modules/wishlist-items/components/wishlist-items-dimensions.tsx?15c5","webpack://Citta2.0/./src/modules/wishlist-items/components/wishlist-item.tsx?d2da","webpack://Citta2.0/./src/modules/wishlist-items/components/wishlist-items-status-message.tsx?cdb3","webpack://Citta2.0/./src/modules/wishlist-items/wishlist-items.tsx?df8b","webpack://Citta2.0/./src/modules/wishlist-items/wishlist-items.view.tsx?4d80"],"sourcesContent":["import { __assign } from \"tslib\";\r\nimport { msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nvar PriceComponentActions = {};\r\nvar Price = function (props: any) {\r\n if (props.data.price.CustomerContextualPrice === undefined) {\r\n return null;\r\n }\r\n return (React.createElement(\"span\", { className: classnames('msc-price', props.className) }, showStrikethroughPricing(props) ? renderCurrentPriceWithOriginalPrice(props) : renderCurrentPrice(props)));\r\n};\r\nvar showStrikethroughPricing = function (props: any) {\r\n var originalPrice = getOriginalPrice(props);\r\n if (originalPrice && props.data.price.CustomerContextualPrice) {\r\n return originalPrice > props.data.price.CustomerContextualPrice;\r\n }\r\n return false;\r\n};\r\nvar getOriginalPrice = function (props: any) {\r\n return Math.max(props.data.price.BasePrice || 0, props.data.price.TradeAgreementPrice || 0, props.data.price.AdjustedPrice || 0);\r\n};\r\nvar renderCurrentPrice = function (props: any) {\r\n var initialPrice = formatCurrency(props, props.data.price.CustomerContextualPrice);\r\n return (React.createElement(\"span\", { className: 'msc-price__actual', itemProp: 'price' }, initialPrice));\r\n};\r\nvar formatCurrency = function (props: any, price: any) {\r\n if (price === undefined) {\r\n return undefined;\r\n }\r\n if (price === 0 && props.freePriceText) {\r\n return props.freePriceText;\r\n }\r\n let returnPrice = `$${price}`;\r\n try {\r\n var formatter = new Intl.NumberFormat(props.context.cultureFormatter.locale, {\r\n style: 'currency',\r\n currency: props.context.cultureFormatter.currencyCode,\r\n currencyDisplay: 'narrowSymbol'\r\n });\r\n returnPrice = formatter.format(price)\r\n\r\n } catch {}\r\n return returnPrice;\r\n};\r\nvar renderCurrentPriceWithOriginalPrice = function (props: any) {\r\n var originalPrice = getOriginalPrice(props);\r\n var initialPrice = formatCurrency(props, originalPrice);\r\n return (React.createElement(React.Fragment, null,\r\n React.createElement(\"span\", { className: 'sr-only' },\r\n ' ',\r\n props.originalPriceText,\r\n ' ',\r\n initialPrice,\r\n ' ',\r\n props.currentPriceText,\r\n ' ',\r\n renderCurrentPrice(props)),\r\n React.createElement(\"span\", { className: 'msc-price__strikethrough', \"aria-hidden\": 'true' }, initialPrice),\r\n React.createElement(\"span\", { \"aria-hidden\": 'true' }, renderCurrentPrice(props)),\r\n props.savingsText && React.createElement(\"span\", { className: 'msc-price__savings' }, props.savingsText)));\r\n};\r\n\r\nconst PriceComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\r\n 'Product',\r\n { component: msdyn365Commerce.createComponent('Price', __assign({ component: Price }, PriceComponentActions)) }\r\n);\r\n\r\nexport default PriceComponent","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput } from '@msdyn365-commerce/core';\r\nimport { createProductEnquiryAsync } from '../generated/DataActionExtension.g';\r\nimport { IDXC_ProductEnquiryResponse } from '../generated/DataServiceEntities.g';\r\n\r\n/**\r\n * SubmitContactFormDataActionInput Input Action\r\n */\r\n\r\nexport class SubmitPdpEnquiryFormDataActionInput implements IActionInput {\r\n public firstName: string;\r\n public lastName: string;\r\n public email: string;\r\n public phone: string;\r\n public storeName: string;\r\n public product: string;\r\n public enquiry: string;\r\n public customisations: string;\r\n public fabricType: string;\r\n public fabricColour: string;\r\n public consultationType: string;\r\n public channelId: string;\r\n public subscribeNewsletter: number;\r\n\r\n // Construct the input needed to run the action\r\n constructor(\r\n firstName: string,\r\n lastName: string,\r\n email: string,\r\n phone: string,\r\n storeName: string,\r\n product: string,\r\n enquiry: string,\r\n customisations: string,\r\n fabricType: string,\r\n fabricColour: string,\r\n consultationType: string,\r\n channelId: string,\r\n subscribeNewsletter: number) {\r\n this.firstName = firstName;\r\n this.lastName = lastName;\r\n this.email = email;\r\n this.phone = phone;\r\n this.storeName = storeName;\r\n this.product = product;\r\n this.enquiry = enquiry;\r\n this.customisations = customisations;\r\n this.fabricType = fabricType;\r\n this.fabricColour = fabricColour;\r\n this.consultationType = consultationType;\r\n this.channelId = channelId;\r\n this.subscribeNewsletter = subscribeNewsletter;\r\n }\r\n\r\n // TODO: Determine if the results of this get action should cache the results and if so provide\r\n // a cache object type and an appropriate cache key\r\n public getCacheKey = () => 'ContactForm2020';\r\n public getCacheObjectType = () => 'ContactForm';\r\n public dataCacheType = (): CacheType => 'request';\r\n}\r\n\r\n/**\r\n * TODO: Use this function to create the input required to make the action call\r\n */\r\nconst createInput = (args: SubmitPdpEnquiryFormDataActionInput): IActionInput => {\r\n return args;\r\n};\r\n\r\n/**\r\n * TODO: Use this function to call your action and process the results as needed\r\n */\r\nexport async function submitPdpEnquiryFormAction(\r\n input: SubmitPdpEnquiryFormDataActionInput,\r\n ctx: IActionContext\r\n): Promise {\r\n // Input only needs token\r\n let result: IDXC_ProductEnquiryResponse = {success: false};\r\n try {\r\n result = await createProductEnquiryAsync(\r\n { callerContext: ctx },\r\n input.firstName,\r\n input.lastName,\r\n input.email,\r\n input.phone,\r\n input.storeName,\r\n input.product,\r\n input.enquiry,\r\n input.customisations,\r\n input.fabricType,\r\n input.fabricColour,\r\n input.consultationType,\r\n input.channelId,\r\n input.subscribeNewsletter);\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n return Array.isArray(result) ? result[0] : result;\r\n}\r\n\r\nexport const ISubmitPdpEnquiryFormDataActionAction = createObservableDataAction({\r\n action: >submitPdpEnquiryFormAction,\r\n input: createInput\r\n});\r\n","/* tslint:disable */\r\nimport { parseSearchData } from './input-data-parser';\r\nexport const wrapInResolvedAsyncResult = (input: any) => {\r\n return {\r\n status: 'SUCCESS',\r\n result: input,\r\n metadata: {}\r\n };\r\n};\r\nexport const wrapInRejectedAsyncResult = (input: any) => {\r\n return {\r\n status: 'FAILED',\r\n result: input,\r\n metadata: {}\r\n };\r\n};\r\nexport const buildQueryResultSettings = (inputData: any) => {\r\n try {\r\n const searchInputData = parseSearchData(inputData);\r\n const search = searchInputData.q;\r\n if (!search) {\r\n throw new Error('Query string ?q={searchText} is needed for search actions.');\r\n }\r\n const top = (searchInputData.maxItems && Number(searchInputData.maxItems)) || searchInputData.top;\r\n return { Paging: { Top: top, Skip: searchInputData.skip } };\r\n }\r\n catch (e) {\r\n return {};\r\n }\r\n};\r\n/**\r\n * Utility function to extract the active productId in the following priority:\r\n * First query param (productId), then UrlToken (itemId), then module config\r\n * @param inputData The Action Input data\r\n */\r\nexport const getSelectedProductIdFromActionInput = (inputData: any) => {\r\n if (inputData && inputData.requestContext && inputData.requestContext.query && inputData.requestContext.query.productId) {\r\n return inputData.requestContext.query.productId;\r\n }\r\n else if (inputData && inputData.requestContext && inputData.requestContext.urlTokens && inputData.requestContext.urlTokens.itemId) {\r\n return inputData.requestContext.urlTokens.itemId;\r\n }\r\n else if (inputData && inputData.config && inputData.config.productId) {\r\n return inputData.config.productId;\r\n }\r\n return undefined;\r\n};\r\n/**\r\n * Generates a Image URL based on data return from retail server\r\n * @param imageUrl The image url returned by Retail Server\r\n * @param ctx The request context\r\n */\r\nexport const generateImageUrl = (imageUrl: any, apiSettings: any) => {\r\n if (imageUrl) {\r\n // Images hosted in CMS include schema\r\n if (imageUrl.startsWith('http')) {\r\n return imageUrl;\r\n }\r\n // Images hosted in Retail Server must be encoded and joined with the base image url\r\n return apiSettings.baseImageUrl + encodeURIComponent(imageUrl);\r\n }\r\n else {\r\n // d365Commerce.telemetry.warning(`Unable to generate a proper Image URL for Product: ${product.RecordId}`);\r\n return undefined;\r\n }\r\n};\r\n/**\r\n *\r\n * Generates a Image URL for a product based on data return from retail server\r\n * @param product The Product returned by Retail Server\r\n * @param ctx The request context\r\n */\r\nexport const generateProductImageUrl = (product: any, apiSettings: any) => {\r\n return generateImageUrl(product.PrimaryImageUrl, apiSettings);\r\n};\r\n/**\r\n * Creates a CartLine object from the passed data\r\n * @param product The product\r\n * @param quantity The quantity\r\n * @param catalogId The catalog\r\n */\r\nexport const buildCartLine = (product: any, quantity: any, catalogId: any) => {\r\n return {\r\n CatalogId: catalogId || 0,\r\n Description: product.Description,\r\n // TODO: Investigate this value and what it represents\r\n EntryMethodTypeValue: 3,\r\n ItemId: product.ItemId,\r\n ProductId: product.RecordId,\r\n Quantity: quantity || 1,\r\n TrackingId: '',\r\n UnitOfMeasureSymbol: product.DefaultUnitOfMeasure\r\n };\r\n};\r\n/**\r\n * Creates a CommerceListLine (also know as WishlistLine) object from the passed data\r\n * @param productId The RecordId of the Product to be added\r\n * @param customerId The account number of the customer\r\n * @param wishlistId The Id of the commerce list\r\n */\r\nexport const buildWishlistLine = (productId: any, customerId: any, wishlistId: any) => {\r\n return {\r\n CommerceListId: wishlistId,\r\n ProductId: productId,\r\n CustomerId: customerId\r\n };\r\n};\r\n/**\r\n * Utility function to prepare the product details criteria before getting full product:\r\n * @param inputData The Action Input data\r\n */\r\nexport const getProductDetailsCriteriaFromActionInput = (inputData: any) => {\r\n if (inputData && inputData.config) {\r\n return {\r\n getPrice: !inputData.config.hidePrice,\r\n getRating: !inputData.config.hideRating\r\n };\r\n }\r\n return {\r\n getPrice: true,\r\n getRating: true\r\n };\r\n};\r\n/**\r\n * Transforms search text into the expected 'search terms' format, expected by refiner APIs.\r\n * @param searchText free-form text used for searching for products or categories of products\r\n */\r\nexport const ensureSearchTextIsFormedProperly = (searchText: any) => {\r\n const prefix = searchText.startsWith(`'`) ? '' : `'`;\r\n const suffix = searchText.endsWith(`'`) ? '' : `'`;\r\n return `${prefix}${searchText}${suffix}`;\r\n};\r\nexport const ensureSafeSearchText = (searchText: any) => {\r\n return searchText.replace(/[^0-9a-zA-Z\\s]+/g, '');\r\n};\r\nexport const buildCacheKey = (base: any, apiSettings: any, locale: any) => {\r\n return `${base}-chanId:${apiSettings.channelId}-catId:${apiSettings.catalogId}${locale ? `-${locale}` : ''}`;\r\n};\r\nexport const buildCacheKeyWithUrlTokens = (base: any, requestContext: any) => {\r\n const urlTokens = requestContext.urlTokens;\r\n const defaultCacheKey = buildCacheKey(base, requestContext.apiSettings, requestContext.locale);\r\n return urlTokens\r\n ? `${defaultCacheKey}-${urlTokens.itemId}-${urlTokens.recordId}-${urlTokens.pageType}`\r\n : defaultCacheKey;\r\n};\r\nexport const generateKey = (args: any, options: any) => {\r\n // @ts-ignore\r\n const { handler, separator } = { ...{ separator: '-', handler: undefined }, ...(options || {}) };\r\n return args\r\n .map((arg: any) => {\r\n if (arg === null || arg === undefined) {\r\n if (handler) {\r\n return handler(arg);\r\n }\r\n }\r\n return arg;\r\n })\r\n .join(separator);\r\n};\r\n/**\r\n * Gets the fall back image url for a variant image.\r\n * @param itemId Item id of a product.\r\n * @param apiSettings Api setting from request context.\r\n */\r\nexport const getFallbackImageUrl = (itemId: any, apiSettings: any) => {\r\n if (!itemId) {\r\n return '';\r\n }\r\n const productUrl = `Products/${itemId}_000_001.png`;\r\n return generateImageUrl(productUrl, apiSettings);\r\n};\r\n//# sourceMappingURL=utils.js.map","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput, IAny, ICreateActionContext, IGeneric } from '@msdyn365-commerce/core';\r\nimport { BypassCache } from '@msdyn365-commerce/retail-proxy';\r\nimport { getByIdAsync, getVariantsByDimensionValuesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\nimport { ProductDimension, SimpleProduct } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nimport { generateProductImageUrl, getSelectedProductIdFromActionInput } from './utilities/utils';\r\n\r\n/**\r\n * Get selected variant action input class.\r\n */\r\nexport class SelectedVariantInput implements IActionInput {\r\n public productId: number;\r\n\r\n public channelId: number;\r\n\r\n public matchingDimensionValues: ProductDimension[];\r\n\r\n public bypassCache? : BypassCache;\r\n \r\n\r\n constructor(productId: number, channelId: number, matchingDimensionValues?: ProductDimension[], bypassCache? : any) {\r\n this.productId = productId;\r\n this.channelId = channelId;\r\n this.matchingDimensionValues = matchingDimensionValues || [];\r\n this.bypassCache = bypassCache;\r\n }\r\n\r\n public getCacheKey = () => 'SelectedVariant';\r\n\r\n public getCacheObjectType = () => 'SimpleProduct';\r\n\r\n public dataCacheType = (): CacheType => 'none';\r\n}\r\n\r\n/**\r\n * CreateInput method for the getSelectedVariant data action.\r\n * @param inputData The input data passed to the createInput method.\r\n */\r\nconst createInput = (inputData: ICreateActionContext>): SelectedVariantInput => {\r\n const productId = getSelectedProductIdFromActionInput(inputData);\r\n\r\n if (productId) {\r\n return new SelectedVariantInput(+productId, +inputData.requestContext.apiSettings.channelId, []);\r\n }\r\n throw new Error('Unable to create SelectedVariantInput, no productId found on module config or query');\r\n\r\n};\r\n\r\n/**\r\n * Action method for the getSelectedVariant data aciton.\r\n * @param input The action input class.\r\n * @param ctx The action context.\r\n */\r\nasync function getSelectedVariantAction(input: SelectedVariantInput, ctx: IActionContext): Promise {\r\n let product: SimpleProduct | null = null;\r\n\r\n const response = await getByIdAsync({ callerContext: ctx, bypassCache: input.bypassCache }, input.productId, input.channelId);\r\n\r\n const baseProduct: SimpleProduct = Array.isArray(response) ? response[0] : response;\r\n\r\n // Need to dereference this before editing it. Otherwise we might not\r\n // properly get the mobx events because if things aren't properly observable\r\n // they won't fire when you set them, and then if you don't deref the value in\r\n // the cache will match the value when you try to save it, so it won't detect any\r\n // changes there either\r\n product = { ...baseProduct };\r\n\r\n if (product) {\r\n let baseProductHadUnmatchedDimension: boolean = false;\r\n if (product.Dimensions) {\r\n product.Dimensions.map(dimension => {\r\n const matchedTargetDimension = input.matchingDimensionValues.find(\r\n targetDimension => targetDimension.DimensionTypeValue === dimension.DimensionTypeValue\r\n );\r\n\r\n if (matchedTargetDimension) {\r\n dimension.DimensionValue = matchedTargetDimension.DimensionValue;\r\n } else {\r\n baseProductHadUnmatchedDimension = true;\r\n }\r\n });\r\n }\r\n\r\n if (!baseProductHadUnmatchedDimension && input.matchingDimensionValues.length > 0) {\r\n const variants = await getVariantsByDimensionValuesAsync(\r\n { callerContext: ctx, bypassCache: input.bypassCache, queryResultSettings: {} },\r\n baseProduct.RecordId,\r\n input.channelId,\r\n input.matchingDimensionValues\r\n );\r\n\r\n if (variants && variants.length > 0) {\r\n product = variants[0];\r\n }\r\n }\r\n\r\n const newImageUrl = generateProductImageUrl(product, ctx.requestContext.apiSettings);\r\n\r\n if (newImageUrl) {\r\n product.PrimaryImageUrl = newImageUrl;\r\n }\r\n }\r\n\r\n return product;\r\n}\r\n\r\n/**\r\n * The complete getSelectedVariant data action.\r\n */\r\nexport const getSelectedVariantActionDataAction = createObservableDataAction({\r\n id: '@msdyn365-commerce-modules/retail-actions/get-selected-variant-v29',\r\n action: >getSelectedVariantAction,\r\n input: createInput\r\n});\r\n\r\nexport default getSelectedVariantActionDataAction;\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\n/* eslint-disable no-duplicate-imports */\r\nimport {\r\n AddToCartBehavior,\r\n IAddToCartFailureResult,\r\n IAddToCartResources,\r\n ItemSuccessfullyAddedToCartNotification,\r\n PriceComponent\r\n} from '@msdyn365-commerce/components';\r\nimport { getUrlSync, ICoreContext, IImageSettings } from '@msdyn365-commerce/core';\r\nimport { ICartActionResult } from '@msdyn365-commerce/global-state';\r\nimport { DeliveryOption, FeatureState, OrgUnitLocation, ProductAvailableQuantity, ProductDimension } from '@msdyn365-commerce/retail-proxy';\r\nimport { NotificationsManager } from '@msdyn365-commerce-modules/notifications-core';\r\nimport {\r\n ArrayExtensions,\r\n DeliveryMode,\r\n IProductInventoryInformation,\r\n isAggregatedInventory\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\nimport { getTelemetryObject, Heading, INodeProps, IPopupProps, Popup } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { BuyboxErrorBlock } from '@msdyn365-commerce-modules/buybox';\r\nimport { IBuyboxCallbacks, IBuyboxState } from '@msdyn365-commerce-modules/buybox';\r\nimport { getConfigureErrors, getGenericError } from '@msdyn365-commerce-modules/buybox';\r\nimport { ICittaBuyboxData } from '../citta-buybox.data';\r\nimport { ICittaBuyboxProps, ICittaBuyboxResources } from '../citta-buybox.props.autogenerated';\r\n\r\nconst modalCloseButtonReference: React.RefObject = React.createRef();\r\n\r\n/**\r\n * FindinStore failure Interface.\r\n */\r\nexport interface IFindInStoreFailureResult {\r\n missingDimensions?: ProductDimension[];\r\n}\r\n\r\n/**\r\n * BuyBoxFindinStore View Props Interface.\r\n */\r\nexport interface IBuyboxFindInStoreViewProps {\r\n storeSelector?: React.ReactNode;\r\n heading?: React.ReactNode;\r\n description?: React.ReactNode;\r\n errors?: React.ReactNode;\r\n button?: React.ReactNode;\r\n productPickupOptionList?: React.ReactNode;\r\n\r\n modal?: React.ReactNode;\r\n\r\n ContainerProps: INodeProps;\r\n\r\n openFindInStoreDialog(): Promise;\r\n}\r\n\r\n/**\r\n * On click find store handler.\r\n * @param props -Buybox data.\r\n * @param state -Buybox state.\r\n * @param callbacks -Buybox callbacks.\r\n * @returns Find in store.\r\n */\r\nconst onClickFindInStoreHandler = (props: ICittaBuyboxProps, state: IBuyboxState, callbacks: IBuyboxCallbacks) => async () => {\r\n await findInStoreOnClick(props, state, callbacks);\r\n};\r\n\r\n/**\r\n * Inventory settings based on the inventory policy for aggregated availability.\r\n */\r\ninterface IInventorySettingsProps {\r\n isSectionDisabled: boolean;\r\n description: string;\r\n buttonText: string;\r\n}\r\n\r\n/**\r\n * The function defines the settings values for a given inventory configuration.\r\n * @param context - The context.\r\n * @param isStockCheck - Flag to enable inventory validation.\r\n * @param productAvailability - The product inventory information.\r\n * @param buyboxResources - The buybox string resources.\r\n * @param isLoading - Is loading.\r\n * @returns Boolean.\r\n */\r\nfunction getFindInStoreInventorySettings(\r\n context: ICoreContext,\r\n isStockCheck: boolean,\r\n productAvailability: IProductInventoryInformation[] | undefined,\r\n buyboxResources: ICittaBuyboxResources,\r\n isLoading?: boolean\r\n): IInventorySettingsProps {\r\n // If shouldValidateAggregation is true then is required to check for the product inventory, based on this the messaging will change\r\n // and the find in store button will be ensbled or disabled\r\n\r\n let isSectionDisabled: boolean;\r\n let buttonText;\r\n let description: string;\r\n\r\n let pickupInventory: IProductInventoryInformation | undefined;\r\n\r\n if (!isStockCheck || isLoading) {\r\n return {\r\n isSectionDisabled: false,\r\n buttonText: buyboxResources.findInStoreLinkText,\r\n description: buyboxResources.findInStoreDescriptionText\r\n };\r\n }\r\n\r\n if (productAvailability) {\r\n pickupInventory = productAvailability.find(pickup => pickup.deliveryType === DeliveryMode.pickup);\r\n }\r\n\r\n // If aggregated is enabled, then we need to validate the inventor check for find in store.\r\n // If an individual is selected, then we will always show a find in store button.\r\n if (isAggregatedInventory(context.actionContext)) {\r\n if (productAvailability && pickupInventory?.IsProductAvailable) {\r\n isSectionDisabled = false;\r\n buttonText = buyboxResources.findInStoreLinkText;\r\n description = buyboxResources.findInStoreDescriptionText;\r\n } else {\r\n isSectionDisabled = true;\r\n buttonText = buyboxResources.findInStoreNotAvailableTextButton;\r\n description = buyboxResources.findInStoreNotAvailableDescription;\r\n }\r\n } else {\r\n isSectionDisabled = false;\r\n buttonText = buyboxResources.findInStoreLinkText;\r\n description = buyboxResources.findInStoreDescriptionText;\r\n }\r\n\r\n return {\r\n isSectionDisabled,\r\n description,\r\n buttonText\r\n };\r\n}\r\n\r\n/**\r\n * Method to check if we have atleast one common delivery code between product and channel.\r\n * @param productdeliveryOptions - Product DeliveryOption List.\r\n * @param storePickUpOptionList - Channel DeliveryOption List.\r\n * @returns Boolean flag.\r\n */\r\nconst matchDeliveryOptions = (\r\n productdeliveryOptions: DeliveryOption[] | undefined,\r\n storePickUpOptionList: string[] | undefined\r\n): boolean => {\r\n const deliveryOption: string[] = [];\r\n productdeliveryOptions?.map(delivery => {\r\n const pickup = storePickUpOptionList?.find(deliveryCode => deliveryCode === delivery.Code);\r\n if (pickup) {\r\n deliveryOption.push(pickup);\r\n }\r\n return deliveryOption;\r\n });\r\n\r\n return ArrayExtensions.hasElements(deliveryOption);\r\n};\r\n\r\nexport function getBuyboxFindInStore(\r\n props: ICittaBuyboxProps,\r\n state: IBuyboxState,\r\n callbacks: IBuyboxCallbacks\r\n): IBuyboxFindInStoreViewProps | undefined {\r\n const {\r\n data,\r\n slots: { storeSelector },\r\n resources: {\r\n priceFree,\r\n originalPriceText,\r\n currentPriceText,\r\n findInStoreHeaderText,\r\n buyBoxGoToCartText,\r\n buyBoxContinueShoppingText,\r\n closeNotificationLabel,\r\n buyBoxSingleItemText,\r\n buyBoxMultiLineItemFormatText,\r\n buyBoxHeaderMessageText,\r\n descriptionTextToShowAllPickupOptions\r\n },\r\n context: {\r\n request: { channel: { PickupDeliveryModeCode } = { PickupDeliveryModeCode: undefined } }\r\n }\r\n } = props;\r\n\r\n const multiplePickupStoreSwitchName = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\r\n const product = data?.product?.result;\r\n const price = data?.productPrice?.result;\r\n const cart = data?.cart?.result;\r\n const deliveryOptions = data?.deliveryOptions?.result;\r\n const productAvailability = data.productAvailableQuantity?.result;\r\n const retailMulitplePickupMFeatureState = data?.featureState?.result?.find(\r\n (featureState: FeatureState) => featureState.Name === multiplePickupStoreSwitchName\r\n )?.IsEnabled;\r\n const channelDeliveryOptionConfig = data?.channelDeliveryOptionConfig?.result;\r\n\r\n const missingDimensions = product?.Dimensions?.filter(dimension => !dimension.DimensionValue?.Value);\r\n\r\n const {\r\n errorState: { configureErrors, quantityError, otherError, errorHost },\r\n modalOpen,\r\n quantity\r\n } = state;\r\n\r\n const { isSectionDisabled, buttonText, description } = getFindInStoreInventorySettings(\r\n props.context,\r\n props.context.app.config.enableStockCheck,\r\n productAvailability,\r\n props.resources,\r\n props.data.productAvailableQuantity.status === 'LOADING' || ArrayExtensions.hasElements(missingDimensions)\r\n );\r\n\r\n if (!product || !ArrayExtensions.hasElements(storeSelector)) {\r\n return undefined;\r\n }\r\n\r\n if (!deliveryOptions || !deliveryOptions.DeliveryOptions) {\r\n return undefined;\r\n }\r\n\r\n // If no delivery options present on the product, or none of the delivery options\r\n // match the PickupDeliveryModeCode, that means the item cannot be used for BOPIS\r\n if (retailMulitplePickupMFeatureState && channelDeliveryOptionConfig) {\r\n if (!matchDeliveryOptions(deliveryOptions.DeliveryOptions, channelDeliveryOptionConfig?.PickupDeliveryModeCodes)) {\r\n return undefined;\r\n }\r\n } else if (\r\n !PickupDeliveryModeCode ||\r\n !deliveryOptions.DeliveryOptions.find((option: DeliveryOption) => option.Code === PickupDeliveryModeCode)\r\n ) {\r\n return undefined;\r\n }\r\n\r\n const dialogStrings = {\r\n goToCartText: buyBoxGoToCartText,\r\n continueShoppingText: buyBoxContinueShoppingText,\r\n closeNotificationLabel,\r\n headerItemOneText: buyBoxSingleItemText,\r\n headerItemFormatText: buyBoxMultiLineItemFormatText,\r\n headerMessageText: buyBoxHeaderMessageText,\r\n freePriceText: priceFree,\r\n originalPriceText,\r\n currentPriceText\r\n };\r\n\r\n const priceComponent = price ? (\r\n \r\n ) : (\r\n ''\r\n );\r\n\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=240&h=240&m=6', w: 0, h: 0 },\r\n lg: { q: 'w=240&h=240&m=6', w: 0, h: 0 },\r\n xl: { q: 'w=240&h=240&m=6', w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n\r\n const popupProps: IPopupProps = {\r\n context: props.context,\r\n className: 'ms-buybox',\r\n id: props.id,\r\n typeName: props.typeName,\r\n data: { product: props.data.product?.result, price: props.data.productPrice?.result },\r\n dialogStrings,\r\n imageSettings: defaultImageSettings,\r\n gridSettings: props.context.request.gridSettings,\r\n productQuantity: quantity,\r\n priceComponent,\r\n navigationUrl: getUrlSync('cart', props.context.actionContext),\r\n modalOpen,\r\n setModalOpen: callbacks.changeModalOpen\r\n };\r\n const renderModalPopup = ;\r\n\r\n return {\r\n ContainerProps: {\r\n className: 'ms-buybox__find-in-store'\r\n },\r\n\r\n storeSelector: storeSelector[0],\r\n\r\n openFindInStoreDialog: onClickFindInStoreHandler(props, state, callbacks),\r\n\r\n heading: ,\r\n\r\n description:

{description}

,\r\n productPickupOptionList:\r\n retailMulitplePickupMFeatureState && !isSectionDisabled ? (\r\n <>\r\n

{descriptionTextToShowAllPickupOptions}

\r\n
    \r\n {deliveryOptions.DeliveryOptions.map((item: DeliveryOption) => {\r\n return (\r\n
  • \r\n {item.Description}\r\n
  • \r\n );\r\n })}\r\n
\r\n \r\n ) : null,\r\n errors: (\r\n \r\n ),\r\n\r\n button: (\r\n \r\n {buttonText}\r\n \r\n ),\r\n\r\n modal: renderModalPopup\r\n };\r\n}\r\n\r\n/**\r\n * Handler for find in store button.\r\n * @param props - BuyBox data.\r\n * @param state - BuyBox state.\r\n * @param callbacks - BuyBox callbacks.\r\n * @returns - Promise.\r\n */\r\nasync function findInStoreOnClick(props: ICittaBuyboxProps, state: IBuyboxState, callbacks: IBuyboxCallbacks): Promise {\r\n const {\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager },\r\n cart: { result: cart },\r\n productAvailableQuantity: { result: productAvailableQuantity }\r\n },\r\n resources,\r\n context,\r\n modules\r\n } = props;\r\n\r\n const { selectedProduct, quantity } = state;\r\n\r\n let dataProduct = props.data.product.result;\r\n const multiplePickupStoreSwitchName = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\r\n const retailMulitplePickupMFeatureState = props.data?.featureState?.result?.find(\r\n (featureState: FeatureState) => featureState.Name === multiplePickupStoreSwitchName\r\n )?.IsEnabled;\r\n\r\n if (selectedProduct) {\r\n dataProduct = (await selectedProduct) || dataProduct;\r\n }\r\n\r\n if (!dataProduct || !storeSelectorStateManager) {\r\n return;\r\n }\r\n\r\n const product = dataProduct;\r\n\r\n const missingDimensions =\r\n product.Dimensions &&\r\n product.Dimensions.filter((dimension: ProductDimension) => !(dimension.DimensionValue && dimension.DimensionValue.Value));\r\n\r\n let storeSelectorId: string = '';\r\n if (modules && Object.keys(modules).length > 0 && modules.storeSelector && modules.storeSelector.length > 0) {\r\n storeSelectorId = modules.storeSelector[0].id;\r\n }\r\n\r\n if (missingDimensions && missingDimensions.length > 0) {\r\n if (callbacks.updateErrorState) {\r\n callbacks.updateErrorState({\r\n errorHost: 'FINDINSTORE',\r\n configureErrors: getConfigureErrors(missingDimensions, resources)\r\n });\r\n }\r\n } else {\r\n storeSelectorStateManager\r\n .openDialog({\r\n product,\r\n id: storeSelectorId,\r\n parentElementRef: modalCloseButtonReference,\r\n deliveryOptions: retailMulitplePickupMFeatureState ? props.data.deliveryOptions.result : undefined,\r\n onLocationSelected: async (orgUnitLocation: OrgUnitLocation, deliveryMode: string) => {\r\n if (!cart) {\r\n return Promise.resolve();\r\n }\r\n\r\n const behavior = props.context?.app?.config?.addToCartBehavior;\r\n\r\n return cart\r\n .addProductToCart({ product, count: quantity, location: orgUnitLocation, deliveryMode })\r\n .then((result: ICartActionResult) => {\r\n if (result.status === 'FAILED' && result.substatus === 'MAXQUANTITY') {\r\n callbacks.changeModalOpen(false);\r\n let productAvailability: ProductAvailableQuantity | undefined;\r\n if (state.productAvailableQuantity) {\r\n productAvailability = state.productAvailableQuantity.ProductAvailableQuantity;\r\n } else if (productAvailableQuantity && ArrayExtensions.hasElements(productAvailableQuantity)) {\r\n const shippingInventory = productAvailableQuantity.find(\r\n shipping => shipping.deliveryType === DeliveryMode.pickup\r\n );\r\n productAvailability = shippingInventory?.ProductAvailableQuantity;\r\n } else {\r\n productAvailability = undefined;\r\n }\r\n const failureResult: IAddToCartFailureResult = {\r\n failureReason: 'CARTACTIONFAILED',\r\n cartActionResult: { status: result.status, substatus: result.substatus }\r\n };\r\n callbacks.updateErrorState({\r\n errorHost: 'ADDTOCART',\r\n configureErrors: {},\r\n otherError: getGenericError(\r\n failureResult,\r\n cart,\r\n resources,\r\n context,\r\n product,\r\n productAvailability,\r\n orgUnitLocation\r\n )\r\n });\r\n } else {\r\n callbacks.updateErrorState({\r\n configureErrors: {}\r\n });\r\n const navigationUrl = getUrlSync('cart', context.actionContext);\r\n if (behavior === undefined || behavior === AddToCartBehavior.goToCart) {\r\n if (result.status === 'SUCCESS' && navigationUrl) {\r\n window.location.assign(navigationUrl);\r\n }\r\n } else if (behavior === AddToCartBehavior.showModal) {\r\n callbacks.changeModalOpen(true);\r\n } else if (behavior === AddToCartBehavior.showNotification) {\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=240&h=240&m=6', w: 0, h: 0 },\r\n lg: { q: 'w=240&h=240&m=6', w: 0, h: 0 },\r\n xl: { q: 'w=240&h=240&m=6', w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n const telemetryContent = getTelemetryObject(\r\n props.context.request.telemetryPageName!,\r\n props.friendlyName,\r\n props.telemetry\r\n );\r\n const dialogStrings: IAddToCartResources = {\r\n goToCartText: resources.buyBoxGoToCartText,\r\n continueShoppingText: resources.buyBoxContinueShoppingText,\r\n closeNotificationLabel: resources.closeNotificationLabel,\r\n headerItemOneText: resources.buyBoxSingleItemText,\r\n headerItemFormatText: resources.buyBoxMultiLineItemFormatText,\r\n headerMessageText: resources.buyBoxHeaderMessageText,\r\n freePriceText: resources.priceFree,\r\n originalPriceText: resources.originalPriceText,\r\n currentPriceText: resources.currentPriceText,\r\n addedQuantityText: resources.addedQuantityText\r\n };\r\n const notification = new ItemSuccessfullyAddedToCartNotification(\r\n props.context,\r\n dialogStrings,\r\n defaultImageSettings,\r\n props.context.request.gridSettings,\r\n product,\r\n props.data.productPrice?.result,\r\n quantity,\r\n navigationUrl,\r\n telemetryContent,\r\n props.id,\r\n props.typeName\r\n );\r\n NotificationsManager.instance().addNotification(notification);\r\n }\r\n }\r\n })\r\n .catch((error: Error) => {\r\n if (props.telemetry) {\r\n props.telemetry.exception(error);\r\n props.telemetry.debug('Unable to add product to cart');\r\n }\r\n });\r\n }\r\n })\r\n .catch((error: Error) => {\r\n if (props.telemetry) {\r\n props.telemetry.error(error.message);\r\n props.telemetry.debug('Unable to find in store');\r\n }\r\n });\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\n/* eslint-disable no-duplicate-imports */\r\nimport { ProductDimensionFull } from '@msdyn365-commerce/commerce-entities';\r\nimport { getCatalogId, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core-internal';\r\nimport {\r\n ProductDeliveryOptions,\r\n ProductDimensionValue,\r\n ProductDimensionValueInventoryAvailability,\r\n ProductPrice,\r\n ReleasedProductType,\r\n SimpleProduct\r\n} from '@msdyn365-commerce/retail-proxy';\r\n\r\nimport { BulkPurchase } from '@msdyn365-commerce-modules/bulk-purchase';\r\nimport {\r\n ArrayExtensions,\r\n DeliveryMode,\r\n FinitePromiseQueue,\r\n FinitePromiseQueueError,\r\n getDeliveryOptionsForSelectedVariant,\r\n GetDeliveryOptionsForSelectedVariantInput,\r\n getDimensionsForSelectedVariant,\r\n GetDimensionsForSelectedVariantInput,\r\n getInventoryLevelCodeFromDimensionValue,\r\n getPriceForSelectedVariant,\r\n getProductAvailabilitiesForSelectedVariant,\r\n IDimensionsApp,\r\n InventoryLevelValues,\r\n IProductInventoryInformation,\r\n IPromiseQueue,\r\n PriceForSelectedVariantInput,\r\n ProductAvailabilitiesForSelectedVariantInput,\r\n SelectedVariantInput\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\n\r\nimport getSelectedVariantV29 from '../../actions/get-selected-variant-v29'\r\nimport { Button, getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n getBuyboxAddToCart,\r\n getBuyBoxInventoryLabel,\r\n getBuyboxKeyInPrice,\r\n getBuyboxProductAddToOrderTemplate,\r\n getBuyboxProductAddToWishlist,\r\n getBuyboxProductComparisonButton,\r\n getBuyboxProductDescription,\r\n getBuyboxProductPrice,\r\n getBuyboxProductQuantity,\r\n getBuyboxProductRating,\r\n getBuyboxProductTitle,\r\n getBuyboxProductUnitOfMeasure,\r\n getBuyboxShopSimilarButton,\r\n getQuantityLimitsMessages,\r\n RetailDefaultOrderQuantityLimitsFeatureName\r\n} from '@msdyn365-commerce-modules/buybox';\r\nimport { getBuyboxProductConfigure } from '@msdyn365-commerce-modules/buybox';\r\nimport {\r\n IBuyboxAddToCartViewProps,\r\n IBuyboxAddToOrderTemplateViewProps,\r\n IBuyboxAddToWishlistViewProps,\r\n IBuyboxCallbacks,\r\n IBuyboxCommonData,\r\n IBuyboxExtentedProps,\r\n IBuyboxKeyInPriceViewProps,\r\n IBuyboxProductConfigureViewProps,\r\n IBuyboxProductQuantityViewProps,\r\n IBuyboxShopSimilarLookViewProps,\r\n IBuyboxState,\r\n IErrorState,\r\n ShopSimiliarButtonType\r\n} from '@msdyn365-commerce-modules/buybox';\r\nimport { ICittaBuyboxData } from './citta-buybox.data';\r\nimport { ICittaBuyboxProps, ICittaBuyboxResources } from './citta-buybox.props.autogenerated';\r\nimport { getBuyboxFindInStore, IBuyboxFindInStoreViewProps } from './components/citta-buybox-find-in-store';\r\n\r\nexport interface IBuyboxViewProps extends ICittaBuyboxProps {\r\n state: IBuyboxState;\r\n ModuleProps: IModuleProps;\r\n ProductInfoContainerProps: INodeProps;\r\n MediaGalleryContainerProps: INodeProps;\r\n callbacks: IBuyboxCallbacks;\r\n mediaGallery?: React.ReactNode;\r\n title?: React.ReactNode;\r\n description?: React.ReactNode;\r\n rating?: React.ReactNode;\r\n price?: React.ReactNode;\r\n productComparisonButton?: React.ReactNode;\r\n bulkPurchaseLink?: React.ReactNode;\r\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps;\r\n addToWishlist?: IBuyboxAddToWishlistViewProps;\r\n max: number | undefined;\r\n addToCart: IBuyboxAddToCartViewProps;\r\n findInStore?: IBuyboxFindInStoreViewProps;\r\n quantity?: IBuyboxProductQuantityViewProps;\r\n configure?: IBuyboxProductConfigureViewProps;\r\n inventoryLabel?: React.ReactNode;\r\n stock?:React.ReactNode;\r\n shopSimilarLook?: IBuyboxShopSimilarLookViewProps;\r\n shopSimilarDescription?: IBuyboxShopSimilarLookViewProps;\r\n quantityLimitsMessages: React.ReactNode;\r\n telemetryContent?: ITelemetryContent;\r\n keyInPrice?: IBuyboxKeyInPriceViewProps;\r\n unitOfMeasure?: React.ReactNode;\r\n}\r\n\r\n/**\r\n * Buybox Module.\r\n */\r\nclass Buybox extends React.PureComponent, IBuyboxState> {\r\n /**\r\n * A queue of tasks of processing the changes in the dimensions.\r\n * Limit to two processes:\r\n * 1 - for the current process, which is under execution at the moment.\r\n * 2 - next process, which will process the latest version of data.\r\n * @remark Enqueueing new promises will discard the previous ones (except the one which is under processing).\r\n */\r\n private readonly dimensionUpdateQueue: IPromiseQueue = new FinitePromiseQueue(2);\r\n\r\n private dimensions: { [id: number]: string } = {};\r\n\r\n private readonly buyboxCallbacks: IBuyboxCallbacks = {\r\n updateQuantity: (newQuantity: number): boolean => {\r\n const errorState = { ...this.state.errorState };\r\n errorState.quantityError = undefined;\r\n errorState.otherError = undefined;\r\n\r\n this.setState({ quantity: newQuantity, errorState });\r\n return true;\r\n },\r\n updateErrorState: (newErrorState: IErrorState): void => {\r\n this.setState({ errorState: newErrorState });\r\n },\r\n updateSelectedProduct: (\r\n newSelectedProduct: Promise,\r\n newInventory: IProductInventoryInformation | undefined,\r\n newPrice: ProductPrice | undefined,\r\n newDeliveryOptions: ProductDeliveryOptions | undefined\r\n ): void => {\r\n this.setState({\r\n selectedProduct: newSelectedProduct,\r\n productAvailableQuantity: newInventory,\r\n productDeliveryOptions: newDeliveryOptions\r\n });\r\n this._updatePrice(newPrice);\r\n },\r\n dimensionSelectedAsync: async (selectedDimensionId: number, selectedDimensionValueId: string): Promise => {\r\n this.dimensions[selectedDimensionId] = selectedDimensionValueId;\r\n return this.dimensionUpdateQueue\r\n .enqueue(async () => {\r\n return this._updateDimensions();\r\n })\r\n .catch((error: unknown) => {\r\n // Ignore discarded processes.\r\n if (error !== FinitePromiseQueueError.ProcessWasDiscardedFromTheQueue) {\r\n throw error;\r\n }\r\n });\r\n },\r\n getDropdownName: (dimensionType: number, resources: ICittaBuyboxResources): string => {\r\n return this._getDropdownName(dimensionType, resources);\r\n },\r\n changeModalOpen: (isModalOpen: boolean): void => {\r\n this.setState({ modalOpen: isModalOpen });\r\n },\r\n changeUpdatingDimension: (isUpdatingDimension: boolean): void => {\r\n this.setState({ isUpdatingDimension });\r\n },\r\n\r\n /**\r\n * Update isUpdatingDeliveryOptions state.\r\n *\r\n * @param isUpdatingDeliveryOptions - The status of updating delivery options.\r\n */\r\n changeUpdatingDeliveryOptions: (isUpdatingDeliveryOptions: boolean): void => {\r\n this.setState({ isUpdatingDeliveryOptions });\r\n },\r\n\r\n updateKeyInPrice: (customPrice: number): void => {\r\n // Remove custom amount error when updating the custom price\r\n const errorState = { ...this.state.errorState };\r\n errorState.customAmountError = undefined;\r\n\r\n this.setState({ isPriceKeyedIn: true, keyInPriceAmount: customPrice, errorState });\r\n this._updatePrice(this.state.productPrice, customPrice);\r\n }\r\n };\r\n\r\n private readonly telemetryContent: ITelemetryContent;\r\n\r\n public constructor(props: ICittaBuyboxProps, state: IBuyboxState) {\r\n super(props);\r\n const isB2B = props.context?.request?.app?.platform?.enableDefaultOrderQuantityLimits === 'b2b';\r\n const eoqCount = isB2B ? props.data?.product?.result?.Behavior?.MultipleOfQuantity : 1;\r\n this.state = {\r\n errorState: {\r\n configureErrors: {}\r\n },\r\n quantity: eoqCount || 1,\r\n min: undefined,\r\n max: undefined,\r\n selectedProduct: undefined,\r\n productPrice: undefined,\r\n productDeliveryOptions: undefined,\r\n\r\n modalOpen: false,\r\n isUpdatingDimension: false,\r\n isUpdatingDeliveryOptions: false\r\n };\r\n this.telemetryContent = getTelemetryObject(props.context.request.telemetryPageName!, props.friendlyName, props.telemetry);\r\n }\r\n\r\n public async componentDidMount(): Promise {\r\n const {\r\n data: {\r\n product: { result: product },\r\n productPrice\r\n }\r\n } = this.props;\r\n\r\n productPrice.then(async result => {\r\n this._updatePrice(result);\r\n });\r\n\r\n if (product) {\r\n // Check if the product is service or not by product type\r\n if (product.ItemTypeValue === ReleasedProductType.Service) {\r\n this.setState({ isServiceItem: true });\r\n }\r\n await this._updateQuantitiesInState(product);\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const {\r\n slots: { mediaGallery, productComparisonButton },\r\n data: {\r\n product: { result: product }\r\n },\r\n config: { className = '' }\r\n } = this.props;\r\n\r\n const { max } = this.state;\r\n\r\n if (!product) {\r\n this.props.context.telemetry.error('Product content is empty, module wont render');\r\n return null;\r\n }\r\n\r\n const props = this.props as IBuyboxExtentedProps;\r\n const defaultMinimumKeyInPrice = 10;\r\n const defaultMaximumKeyInPrice = 100;\r\n\r\n const context = this.props.context as ICoreContext;\r\n const inventoryLevel = context.app.config.inventoryLevel;\r\n const dimensionValuesWithInventory = ArrayExtensions.flatten(\r\n ArrayExtensions.validValues(this.props.data.productDimensions.result?.map(value => value.dimensionValuesWithInventory))\r\n );\r\n const hasAvailableProducts =\r\n !ArrayExtensions.hasElements(dimensionValuesWithInventory) ||\r\n dimensionValuesWithInventory.some((value: unknown) => {\r\n const inventoryLevelCode = getInventoryLevelCodeFromDimensionValue(\r\n value as ProductDimensionValueInventoryAvailability,\r\n inventoryLevel\r\n );\r\n return inventoryLevelCode !== InventoryLevelValues.outOfStock;\r\n });\r\n\r\n const viewProps: IBuyboxViewProps = {\r\n ...(this.props as ICittaBuyboxProps),\r\n state: this.state,\r\n mediaGallery: mediaGallery && mediaGallery.length > 0 ? mediaGallery[0] : undefined,\r\n ModuleProps: {\r\n moduleProps: this.props,\r\n className: classnames('ms-buybox', className)\r\n },\r\n ProductInfoContainerProps: {\r\n className: 'ms-buybox__content'\r\n },\r\n MediaGalleryContainerProps: {\r\n className: 'ms-buybox__media-gallery'\r\n },\r\n telemetryContent: this.telemetryContent,\r\n callbacks: this.buyboxCallbacks,\r\n title: getBuyboxProductTitle(props),\r\n description: getBuyboxProductDescription(props),\r\n bulkPurchaseLink: this._renderBuyboxBulkPurchaseLink(),\r\n unitOfMeasure: getBuyboxProductUnitOfMeasure(props),\r\n configure: getBuyboxProductConfigure(props, this.state, this.buyboxCallbacks),\r\n findInStore: getBuyboxFindInStore(this.props, this.state, this.buyboxCallbacks),\r\n price: getBuyboxProductPrice(props, this.state),\r\n addToCart: getBuyboxAddToCart(\r\n props,\r\n this.state,\r\n this.buyboxCallbacks,\r\n defaultMinimumKeyInPrice,\r\n defaultMaximumKeyInPrice,\r\n undefined,\r\n hasAvailableProducts\r\n ),\r\n productComparisonButton: ArrayExtensions.hasElements(productComparisonButton)\r\n ? getBuyboxProductComparisonButton(\r\n productComparisonButton[0],\r\n product,\r\n getCatalogId(this.props.context.request),\r\n this.state\r\n )\r\n : undefined,\r\n addToOrderTemplate: getBuyboxProductAddToOrderTemplate(props, this.state, this.buyboxCallbacks),\r\n addToWishlist: getBuyboxProductAddToWishlist(props, this.state, this.buyboxCallbacks),\r\n rating: !props.context.app.config.hideRating && getBuyboxProductRating(props),\r\n quantity: product.IsGiftCard ? undefined : getBuyboxProductQuantity(props, this.state, this.buyboxCallbacks),\r\n inventoryLabel: getBuyBoxInventoryLabel(props),\r\n stock: this._getBuyBoxStock(),\r\n shopSimilarLook:\r\n this.props.config.enableShopSimilarLooks && !product.IsGiftCard\r\n ? getBuyboxShopSimilarButton(props, ShopSimiliarButtonType.Looks)\r\n : undefined,\r\n shopSimilarDescription:\r\n this.props.config.enableShopSimilarDescription && !product.IsGiftCard\r\n ? getBuyboxShopSimilarButton(props, ShopSimiliarButtonType.Description)\r\n : undefined,\r\n keyInPrice:\r\n this.props.config.enableKeyInPrice && this.state.isCustomPriceSelected\r\n ? getBuyboxKeyInPrice(props, this.state, this.buyboxCallbacks)\r\n : undefined,\r\n quantityLimitsMessages: getQuantityLimitsMessages(props, this.state),\r\n max\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n\r\n private _getBuyBoxStock(): React.ReactNode{\r\n const {\r\n data: { productAvailableQuantity: { result: productAvailableQuantity} },\r\n } = this.props;\r\n const defaultOrderQuantityLimitsFeatureConfig = this.props.context?.request?.app?.platform?.enableDefaultOrderQuantityLimits;\r\n if(!productAvailableQuantity || !productAvailableQuantity.length) {\r\n return undefined;\r\n }\r\n if(productAvailableQuantity &&\r\n productAvailableQuantity.length&&\r\n productAvailableQuantity[0]&&productAvailableQuantity[0].ProductAvailableQuantity.AvailableQuantity && defaultOrderQuantityLimitsFeatureConfig === 'b2b') {\r\n return (
On hand:
{ productAvailableQuantity[0].ProductAvailableQuantity.AvailableQuantity}
);\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Handles anchor click event and scrolls to the given bulk purchase module.\r\n * @param bulkPurchaseModule - Bulk purchase module.\r\n * @returns Handler.\r\n */\r\n private readonly _onBulkPurchaseLinkClick = (bulkPurchaseModule: Element) => () => {\r\n const boundingRect = bulkPurchaseModule.getBoundingClientRect();\r\n window.scrollTo(boundingRect.left, boundingRect.top);\r\n };\r\n\r\n private _renderBuyboxBulkPurchaseLink(): React.ReactNode {\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- Temporary switch for the feature which is under development.\r\n if (!this.props.context.app.config.isBulkPurchaseEnabled) {\r\n return null;\r\n }\r\n\r\n if (!msdyn365Commerce.isBrowser) {\r\n return null;\r\n }\r\n\r\n const bulkPurchaseModules = Array.from(document.getElementsByClassName(BulkPurchase.className));\r\n\r\n if (!ArrayExtensions.hasElements(bulkPurchaseModules)) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {this.props.resources.bulkPurchaseLinkText}\r\n \r\n );\r\n }\r\n\r\n private _updatePrice(newPrice: ProductPrice | undefined, customPrice: number | undefined = this.state.keyInPriceAmount): void {\r\n if (this.state.isCustomPriceSelected && newPrice) {\r\n newPrice.CustomerContextualPrice = customPrice;\r\n }\r\n this.setState({ productPrice: newPrice });\r\n }\r\n\r\n \r\n private readonly _updateDimensionValue = (productDimensionFull: ProductDimensionFull, newValueId: string | undefined): ProductDimensionValue | undefined => {\r\n if (newValueId && productDimensionFull.DimensionValues) {\r\n return productDimensionFull.DimensionValues.find(dimension => dimension.RecordId === +newValueId);\r\n }\r\n\r\n return undefined;\r\n };\r\n\r\n private readonly _updateDimensions = async (): Promise => {\r\n const {\r\n data: {\r\n product: { result: product },\r\n productDimensions: { result: productDimensions }\r\n },\r\n context: {\r\n actionContext,\r\n request: {\r\n apiSettings: {\r\n channelId\r\n }\r\n }\r\n }\r\n } = this.props;\r\n\r\n if (!product || !productDimensions) {\r\n return;\r\n }\r\n\r\n const dimensionsToUpdate: { [id: number]: string } = { ...this.dimensions };\r\n this.setState({ isUpdatingDimension: true, isUpdatingDeliveryOptions: true });\r\n\r\n // Step 1: Clear error state to display relevant errors\r\n if (this.state.errorState.otherError || this.state.errorState.quantityError) {\r\n const clearErrorState = { ...this.state.errorState };\r\n clearErrorState.otherError = undefined;\r\n if (this.state.errorState.errorHost === 'ADDTOCART') {\r\n clearErrorState.quantityError = undefined;\r\n clearErrorState.errorHost = undefined;\r\n }\r\n this.setState({ errorState: clearErrorState });\r\n }\r\n\r\n // Step 2: Clear any errors indicating the dimension wasn't selected\r\n for (const key of Object.keys(dimensionsToUpdate)) {\r\n if (this.state.errorState.configureErrors[key]) {\r\n const errorState = { ...this.state.errorState };\r\n errorState.configureErrors[key] = undefined;\r\n\r\n this.setState({ errorState });\r\n }\r\n }\r\n\r\n // Step 3, Build the actually selected dimensions, prioritizing the information in state\r\n // over the information in data\r\n const mappedDimensions = productDimensions.map(dimension => {\r\n return {\r\n DimensionTypeValue: dimension.DimensionTypeValue,\r\n DimensionValue: this._updateDimensionValue(dimension, dimensionsToUpdate[dimension.DimensionTypeValue]) || dimension.DimensionValue,\r\n ExtensionProperties: dimension.ExtensionProperties\r\n };\r\n }).filter(dimension => {\r\n return dimension && dimension.DimensionValue;\r\n });\r\n\r\n const selectedProduct = new Promise(async (resolve, reject) => {\r\n const newProduct = (await getSelectedVariantV29(\r\n new SelectedVariantInput(\r\n product.MasterProductId ? product.MasterProductId : product.RecordId,\r\n channelId,\r\n mappedDimensions\r\n ),\r\n actionContext\r\n ));\r\n if (newProduct) {\r\n await getDimensionsForSelectedVariant(\r\n new GetDimensionsForSelectedVariantInput(\r\n newProduct.MasterProductId ? newProduct.MasterProductId : newProduct.RecordId,\r\n channelId,\r\n mappedDimensions\r\n ),\r\n actionContext\r\n );\r\n }\r\n\r\n resolve(newProduct);\r\n });\r\n this.setState({ selectedProduct });\r\n const variantProduct = await selectedProduct;\r\n\r\n if (variantProduct) {\r\n // Step 5. Use these dimensions hydrate the inventory. Wrap this in a promise\r\n // so that places like add to cart can await it\r\n const newAvailableQuantity = await getProductAvailabilitiesForSelectedVariant(\r\n new ProductAvailabilitiesForSelectedVariantInput(\r\n variantProduct.RecordId,\r\n channelId\r\n ),\r\n actionContext\r\n );\r\n\r\n const newShippingQuantity = newAvailableQuantity?.find(shipping => shipping.deliveryType === DeliveryMode.shipping);\r\n const isCustompriceSelected = variantProduct && variantProduct.Dimensions && variantProduct.Dimensions.find(dimension => dimension.DimensionTypeValue === 4 && dimension.DimensionValue && dimension.DimensionValue.Value === 'Custom');\r\n if (isCustompriceSelected) {\r\n this.setState({ isCustomPriceSelected: true });\r\n } else {\r\n // Remove custom amount error when unselect the custom amount\r\n const errorState = { ...this.state.errorState };\r\n errorState.customAmountError = undefined;\r\n\r\n this.setState({ isCustomPriceSelected: false, isPriceKeyedIn: false, errorState });\r\n }\r\n\r\n if (newShippingQuantity) {\r\n this.setState({ productAvailableQuantity: newShippingQuantity });\r\n } else {\r\n this.setState({ productAvailableQuantity: undefined });\r\n }\r\n\r\n // Step 6. Use these dimensions hydrate the product price.\r\n const newPrice = await getPriceForSelectedVariant(\r\n new PriceForSelectedVariantInput(\r\n variantProduct.RecordId,\r\n channelId\r\n ),\r\n actionContext\r\n );\r\n\r\n if (newPrice) {\r\n this._updatePrice(newPrice);\r\n }\r\n\r\n const RetailMulitplePickupMFeatureState = this.props.data.featureState.result?.find(featureState => featureState.Name === 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature');\r\n\r\n // Step 7. Use these dimensions hydrate the product delivery options.\r\n const newDeliveryOptions = await getDeliveryOptionsForSelectedVariant(\r\n new GetDeliveryOptionsForSelectedVariantInput(\r\n variantProduct.RecordId,\r\n channelId,\r\n undefined,\r\n undefined,\r\n RetailMulitplePickupMFeatureState?.IsEnabled\r\n ),\r\n actionContext\r\n );\r\n\r\n if (newDeliveryOptions) {\r\n this.setState({ productDeliveryOptions: newDeliveryOptions });\r\n }\r\n\r\n await this._updateQuantitiesInState(variantProduct);\r\n }\r\n };\r\n\r\n\r\n private async _updateQuantitiesInState(product: SimpleProduct): Promise {\r\n const isOrderQuantityLimitsFeatureEnabled = await this._isOrderQuantityLimitsFeatureEnabled();\r\n const isB2B = this.props.context?.request?.app?.platform?.enableDefaultOrderQuantityLimits === 'b2b';\r\n const eoqCount = isB2B ? this.props.data?.product?.result?.Behavior?.MultipleOfQuantity : 1;\r\n if (isOrderQuantityLimitsFeatureEnabled && product) {\r\n isB2B? this.setState({\r\n quantity: eoqCount || 1,\r\n min: product.Behavior?.MinimumQuantity || 1,\r\n\r\n // If max by feature in default order settings is not defined then use max from site settings or default max 10.\r\n max:\r\n product.Behavior?.MaximumQuantity && product.Behavior?.MaximumQuantity > 0\r\n ? product.Behavior?.MaximumQuantity\r\n : this.props.context.app.config.maxQuantityForCartLineItem || 10\r\n })\r\n :\r\n this.setState({\r\n min: product.Behavior?.MinimumQuantity || 1,\r\n\r\n // If max by feature in default order settings is not defined then use max from site settings or default max 10.\r\n max:\r\n product.Behavior?.MaximumQuantity && product.Behavior?.MaximumQuantity > 0\r\n ? product.Behavior?.MaximumQuantity\r\n : this.props.context.app.config.maxQuantityForCartLineItem || 10\r\n });\r\n } else {\r\n this.setState({\r\n min: 1,\r\n max: this.props.context.app.config.maxQuantityForCartLineItem || 10\r\n });\r\n }\r\n }\r\n\r\n private readonly _getDropdownName = (dimensionType: number, resources: ICittaBuyboxResources): string => {\r\n const isGiftCard = this.props.data.product.result?.IsGiftCard;\r\n\r\n switch (dimensionType) {\r\n case 1: // ProductDimensionType.Color\r\n return resources.productDimensionTypeColor;\r\n case 2: // ProductDimensionType.Configuration\r\n return resources.productDimensionTypeConfiguration;\r\n case 3: // ProductDimensionType.Size\r\n return resources.productDimensionTypeSize;\r\n case 4: // ProductDimensionType.Style\r\n return isGiftCard ? resources.productDimensionTypeAmount : resources.productDimensionTypeStyle;\r\n default:\r\n return '';\r\n }\r\n };\r\n\r\n private async _isOrderQuantityLimitsFeatureEnabled(): Promise {\r\n const defaultOrderQuantityLimitsFeatureConfig = this.props.context?.request?.app?.platform?.enableDefaultOrderQuantityLimits;\r\n if (defaultOrderQuantityLimitsFeatureConfig === 'none') {\r\n return false;\r\n }\r\n\r\n const featureStatuses = await this.props.data.featureState;\r\n const isFeatureEnabledInHq = featureStatuses?.find(\r\n featureState => featureState.Name === RetailDefaultOrderQuantityLimitsFeatureName\r\n )?.IsEnabled;\r\n if (!isFeatureEnabledInHq) {\r\n return false;\r\n }\r\n\r\n if (defaultOrderQuantityLimitsFeatureConfig === 'all') {\r\n return true;\r\n }\r\n let customerInfo;\r\n try {\r\n customerInfo = await this.props.data.customerInformation;\r\n } catch (error) {\r\n /* @ts-ignore */\r\n this.props.telemetry.information(error);\r\n this.props.telemetry.debug('Unable to receive Customer Information. May be user is not authorized');\r\n return false;\r\n }\r\n\r\n return (\r\n customerInfo &&\r\n ((defaultOrderQuantityLimitsFeatureConfig === 'b2b' && customerInfo.IsB2b) ||\r\n (defaultOrderQuantityLimitsFeatureConfig === 'b2c' && !customerInfo.IsB2b))\r\n );\r\n }\r\n}\r\n\r\nexport default Buybox;\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\n/* eslint-disable no-duplicate-imports */\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { reaction } from 'mobx';\r\nimport {\r\n IBuyboxProductConfigureDropdownViewProps,\r\n IBuyboxProductConfigureViewProps,\r\n IBuyboxProductQuantityViewProps,\r\n IBuyboxState,\r\n // IBuyboxProps,\r\n IBuyboxCallbacks,\r\n // IBuyboxViewProps\r\n} from '@msdyn365-commerce-modules/buybox';\r\nimport PriceComponent from '../../components/price-component';\r\n\r\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy';\r\n// import { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport { getRichTextHtml } from '@msdyn365-commerce/core';\r\nimport { ICittaBuyboxData } from './citta-buybox.data';\r\nimport AfterPayInfo from '../../themes/citta/views/components/afterpay_info';\r\n\r\nimport Sidebar from '../../themes/citta/views/components/sidebar';\r\nimport { getBuyboxFindInStore } from '../../themes/citta/views/components/buybox-find-in-store';\r\n\r\nimport { getBuyboxProductConfigure } from '../../themes/citta/views/components/buybox-product-configure';\r\n// import LaybuyPriceBreakdown from '../../themes/citta/views/components/layBuyPriceBreakdown';\r\nimport { getBuyboxAddToCart, getBuyboxplacebackorderAddToCart, getBuyboxProductAddToWishlist, getBuyboxProductDescription } from '../../themes/citta/views/components/buybox-small-components';\r\n\r\nimport getAttributesForSelectedVariant, { AttributesForSelectedVariantInput } from '../../data-actions/accordion/get-attributes-for-selected-variant';\r\n\r\n\r\n\r\nimport { ICittaBuyboxProps as IBuyboxExtentionProps, ICittaBuyboxResources as IBuyboxExtentionResources } from './citta-buybox.props.autogenerated';\r\nimport { Quantity } from '../../themes/citta/utilities/quantity';\r\n\r\nimport { IBuyboxViewProps } from './citta-buybox';\r\nimport { IBuyboxProps } from '../../themes/citta/definition-extensions/buybox.ext.props.autogenerated';\r\n\r\nimport Button from 'reactstrap/lib/Button';\r\nexport interface IbuyboxState{\r\n buttonText: string\r\n}\r\nexport class BuyboxView extends React.PureComponent & IBuyboxExtentionProps,IbuyboxState> {\r\n public state:IbuyboxState = {\r\n buttonText: 'SHARE'\r\n }\r\n \r\n public componentDidMount() {\r\n setTimeout(function () {\r\n var containerEl = document.getElementsByClassName(\"msc-ss-carousel-vert-slide\")[0];\r\n var elements = document.getElementsByClassName(\"msc-ss-carousel-vert-item\");\r\n\r\n if (elements) {\r\n for (var i = 0; i < elements.length; i++) {\r\n elements[i].addEventListener('click', (e: any) => {\r\n containerEl.scrollTo({ left: e.target.parentNode.closest(\".msc-ss-carousel-vert-item\").offsetLeft - 5, behavior: 'smooth' })\r\n })\r\n\r\n }\r\n }\r\n }, 3000);\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const props = this.props;\r\n\r\n // @ts-ignore: Compiler not recognizing condition check for function params\r\n reaction(\r\n () => (props.data.product.result ? props.data.product.result.RecordId : null),\r\n () => {\r\n if (props.context && props.data.product.result) {\r\n const actionInput = new AttributesForSelectedVariantInput(\r\n props.data.product.result.RecordId,\r\n // @ts-ignore\r\n +props.context.actionContext.requestContext.apiSettings.channelId,\r\n props.data.product.result\r\n );\r\n\r\n getAttributesForSelectedVariant(actionInput, props.context.actionContext).catch(error => {\r\n props.telemetry.warning('Unable to update attributes for Product');\r\n props.telemetry.error(error);\r\n });\r\n }\r\n }\r\n );\r\n const configure= getBuyboxProductConfigure(props, props.state,props.callbacks);\r\n const { ModuleProps, MediaGalleryContainerProps, ProductInfoContainerProps, quantity, title, rating, callbacks, state, resources, slots, stock } = props;\r\n const { productPrice } = props.data;\r\n\r\n const ChannelCountryRegionISOCode = props.data.channelConfiguration && props.data.channelConfiguration.result && props.data.channelConfiguration.result.ChannelCountryRegionISOCode;\r\n const prodPrice = productPrice && productPrice.result && productPrice.result.CustomerContextualPrice || 0;\r\n const productID = productPrice && productPrice.result && productPrice.result.ItemId || '';\r\n const isEnquireNow = productID.startsWith('CUS') || productID.startsWith('FWL') || productID.startsWith('EJP');\r\n // const laybuyImageUrl = props.config.laybuyImageUrl ? props.config.laybuyImageUrl : 'https://files-ap-prod.cms.commerce.dynamics.com/cms/api/tstpxgfmq/binary/MB3JAm';\r\n const afterpayImage = props.config.afterpayImage ? props.config.afterpayImage : 'https://files-ap-prod.cms.commerce.dynamics.com/cms/api/hdrzssjspt/binary/MFsJR';\r\n const afterpaydesktopImg = props.config.afterpaydesktopImg ? props.config.afterpaydesktopImg : 'https://images-ap-prod.cms.commerce.dynamics.com/cms/api/hdrzssjspt/imageFileData/MFsHS';\r\n const afterpaymobileImg = props.config.afterpaymobileImg ? props.config.afterpaymobileImg : 'https://images-ap-prod.cms.commerce.dynamics.com/cms/api/hdrzssjspt/imageFileData/MFsHV';\r\n const price = productPrice && _getBuyboxProductPrice(props, productPrice.result);\r\n const hidePayLaterOptions = props.config.hidePayLaterOptions;\r\n const hideInStoreOptions = props.config.hideInStoreOptions;\r\n if (slots.giftCard) {\r\n return (\r\n \r\n {slots.giftCard}\r\n \r\n );\r\n }\r\n\r\n const productAttributes = props.data && props.data.productAttributes && props.data.productAttributes.result;\r\n const imageOrientationProperty = productAttributes &&\r\n props.data?.productAttributes?.result?.filter(p => p.Name?.toLowerCase() === 'image orientation');\r\n const imageOrientation = imageOrientationProperty && imageOrientationProperty[0] ? imageOrientationProperty[0].TextValue! : 'portrait';\r\n\r\n const adjustedPrice = productPrice.result?.AdjustedPrice || 0;\r\n return (\r\n \r\n \r\n
\r\n {props.mediaGallery}\r\n
\r\n
\r\n \r\n {title}\r\n
{price}
\r\n {adjustedPrice < 2000 &&\r\n ChannelCountryRegionISOCode && (\r\n (isEnquireNow || hidePayLaterOptions) ?
:\r\n \r\n {ChannelCountryRegionISOCode && !isEnquireNow &&\r\n \r\n }\r\n {/* hidden the laybuy sidebar but still keep the code here */}\r\n {/* {!isEnquireNow && ChannelCountryRegionISOCode === 'NZ' &&\r\n \r\n } */}\r\n )}\r\n {ChannelCountryRegionISOCode && (
{getBuyboxProductDescription(props)}
)}\r\n\r\n {ChannelCountryRegionISOCode && _renderTextBlock(props.slots.textBlocks)}\r\n {ChannelCountryRegionISOCode && slots.productAttributeLink}\r\n {ChannelCountryRegionISOCode && rating}\r\n {ChannelCountryRegionISOCode && quantity && _renderQuantity(quantity, callbacks, props, state, resources)}\r\n {ChannelCountryRegionISOCode && configure && _renderConfigure(configure, props, state, callbacks)}\r\n {ChannelCountryRegionISOCode && configure && _renderSku(configure, props)}\r\n {ChannelCountryRegionISOCode && _renderEOQ(props)}\r\n {ChannelCountryRegionISOCode && _renderOriginPrice(props, productPrice)}\r\n {ChannelCountryRegionISOCode && stock}\r\n {hideInStoreOptions ?
: (ChannelCountryRegionISOCode === 'NZ' &&_renderBuyboxFindInStore(props, state, callbacks))}\r\n {ChannelCountryRegionISOCode && _renderCartAndWishlistDiv(props, state, callbacks)}\r\n {ChannelCountryRegionISOCode &&
\r\n {slots.productAttributeCompantionProduct}\r\n {this._renderSelectedURL(props)}\r\n
}\r\n {ChannelCountryRegionISOCode && _renderFreeShippingMessage(props, productAttributes)}\r\n {ChannelCountryRegionISOCode === 'NZ' && slots.freightCharges}\r\n {ChannelCountryRegionISOCode && slots.productEOQ}\r\n\r\n {ChannelCountryRegionISOCode && slots.accordion}\r\n {ChannelCountryRegionISOCode && slots.productPDFSpecification}\r\n {ChannelCountryRegionISOCode && slots.lightbox}\r\n {ChannelCountryRegionISOCode && slots.pageLink}\r\n {ChannelCountryRegionISOCode && props.shopSimilarLook && _renderShopSimilarItem(props.shopSimilarLook)}\r\n \r\n \r\n );\r\n }\r\n\r\n\r\n _changeText = ()=>{\r\n this.setState ({buttonText:'LINK COPIED'});\r\n setTimeout(()=>this.setState({buttonText: 'SHARE'}), 1500)\r\n }\r\n _renderSelectedURL = (props: IBuyboxViewProps & IBuyboxExtentionProps) => {\r\n /*eslint-disable-line prefer-template*/\r\n const selectedRecordId = `${props.data.product.result?.RecordId}.p`;\r\n let selectedURL = '';\r\n if(typeof window !== \"undefined\"){\r\n let replaceID = window.document.URL.split('/').pop()||'';\r\n selectedURL = window.document.URL.replace(replaceID, selectedRecordId)\r\n }\r\n return (\r\n {navigator.clipboard.writeText(selectedURL).then(this._changeText)}}\r\n className={'ms-buybox__share-button btn-primary'}\r\n >\r\n {this.state.buttonText}\r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nconst _renderFreeShippingMessage = (props: IBuyboxViewProps & IBuyboxExtentionProps, productAttributes: AttributeValue[] | undefined) => {\r\n const freightItemAttr = productAttributes && productAttributes.find(attr => attr.Name === \"Freight Item\");\r\n if ((freightItemAttr && freightItemAttr.BooleanValue) || !props.config.freeShippingMessage) {\r\n return undefined;\r\n }\r\n /* @ts-ignore */\r\n const categoryPaths = props.data.categoryPaths && props.data.categoryPaths.result && props.data.categoryPaths.result;\r\n if (categoryPaths && categoryPaths[2] && categoryPaths[2].Name === \"Furniture\") {\r\n return undefined;\r\n }\r\n return (\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nconst _renderOriginPrice = (props:any, productPrice:any) => {\r\n const defaultOrderQuantityLimitsFeatureConfig = props.context?.request?.app?.platform?.enableDefaultOrderQuantityLimits;\r\n const originalPrice = Math.max(productPrice && productPrice.result && productPrice.result.BasePrice || 0, productPrice && productPrice.result && productPrice.result.TradeAgreementPrice || 0, productPrice && productPrice.result && productPrice.result.AdjustedPrice || 0);\r\n if(!originalPrice) {\r\n return undefined;\r\n }\r\n if(originalPrice && defaultOrderQuantityLimitsFeatureConfig === 'b2b'){\r\n return (
RRP:
${originalPrice.toFixed(2)}
);\r\n }\r\n return undefined\r\n}\r\n\r\nconst _renderEOQ = (props:any) => {\r\n const defaultOrderQuantityLimitsFeatureConfig = props.context?.request?.app?.platform?.enableDefaultOrderQuantityLimits;\r\n const eoq = props.data?.product?.result?.Behavior?.MultipleOfQuantity;\r\n if(!eoq) {\r\n return undefined\r\n } \r\n if(eoq && defaultOrderQuantityLimitsFeatureConfig === 'b2b'){\r\n return(\r\n
EOQ:
{eoq}
\r\n )\r\n }\r\n return undefined\r\n\r\n} \r\n\r\n\r\nconst _getBuyboxProductPrice = (props: any, productPrice: any) => {\r\n const { id, typeName, context, resources } = props;\r\n return productPrice && (React.createElement(PriceComponent, { id: id, typeName: typeName, context: context, data: { price: productPrice }, freePriceText: resources.priceFree, originalPriceText: resources.originalPriceText, currentPriceText: resources.currentPriceText }));\r\n}\r\n\r\nconst _renderTextBlock = (textBlocks: React.ReactNode[]): JSX.Element | undefined => {\r\n if (!textBlocks || textBlocks.length === 0) {\r\n return undefined;\r\n }\r\n\r\n return (\r\n <>\r\n {textBlocks[0]}\r\n \r\n );\r\n};\r\n\r\n\r\nconst _renderCartAndWishlistDiv = (props: IBuyboxViewProps & IBuyboxProps, state: IBuyboxState, callbacks: IBuyboxCallbacks): JSX.Element | undefined => {\r\n if (!props.addToWishlist) {\r\n return undefined;\r\n }\r\n const addToCart = getBuyboxAddToCart(props, state, callbacks);\r\n const placebackorder = getBuyboxplacebackorderAddToCart(props, state, callbacks);\r\n const addToWishList = getBuyboxProductAddToWishlist(props, state, callbacks);\r\n const estimatedDateProperty = props.data.productAvailableQuantity\r\n && props.data.productAvailableQuantity.result && props.data.productAvailableQuantity.result[0].ProductAvailableQuantity\r\n && props.data.productAvailableQuantity.result[0].ProductAvailableQuantity.ExtensionProperties\r\n && props.data.productAvailableQuantity.result[0].ProductAvailableQuantity.ExtensionProperties.find((property => property.Key === 'EstimatedDate'));\r\n\r\n const estimatedDateValue = estimatedDateProperty && estimatedDateProperty.Value && estimatedDateProperty.Value.StringValue;\r\n\r\n let estimatedDate = \"\";\r\n if (estimatedDateValue == undefined) {\r\n estimatedDate = \"\";\r\n } else {\r\n estimatedDate = estimatedDateValue;\r\n }\r\n const HSOConfigprop = props.data.channelConfiguration.result\r\n && props.data.channelConfiguration.result.ExtensionProperties\r\n && props.data.channelConfiguration.result!.ExtensionProperties.find((property => property.Key === 'HSOConfig'));\r\n\r\n let HSOConfig = HSOConfigprop && HSOConfigprop.Value && HSOConfigprop.Value.IntegerValue;\r\n if (HSOConfig == undefined) {\r\n HSOConfig = 0;\r\n }\r\n\r\n const StockThresholdprop = props.data.productAvailableQuantity\r\n && props.data.productAvailableQuantity.result && props.data.productAvailableQuantity.result[0].ProductAvailableQuantity\r\n && props.data.productAvailableQuantity.result[0].ProductAvailableQuantity.ExtensionProperties\r\n && props.data.productAvailableQuantity.result[0].ProductAvailableQuantity.ExtensionProperties.find((property => property.Key === 'StockThreshold'));\r\n\r\n const StockThresholdpropval = StockThresholdprop && StockThresholdprop.Value && StockThresholdprop.Value.IntegerValue;\r\n let StockThreshold = 0;\r\n if (StockThresholdpropval != undefined) {\r\n StockThreshold = StockThresholdpropval;\r\n }\r\n\r\n const onhandpropval = props.data.productAvailableQuantity\r\n && props.data.productAvailableQuantity.result && props.data.productAvailableQuantity.result[0].ProductAvailableQuantity\r\n && props.data.productAvailableQuantity.result[0].ProductAvailableQuantity.AvailableQuantity\r\n let onhand = 0;\r\n if (onhandpropval != undefined) {\r\n onhand = Number(onhandpropval);\r\n }\r\n\r\n // return (\r\n //
\r\n // {estimatedDateValue ?\r\n //
Expected in Stock: {estimatedDateValue}
: null}\r\n // {addToCart && addToCart.errorBlock}\r\n // {addToWishList?.errorBlock}\r\n //
\r\n // {addToCart && addToCart.button}\r\n // {addToWishList?.button}\r\n //
\r\n //
\r\n // );\r\n\r\n if (HSOConfig === 0) {\r\n return (\r\n
\r\n {estimatedDateValue ?\r\n
Expected in Stock: {estimatedDateValue}
: null}\r\n {addToCart && addToCart.errorBlock}\r\n {addToWishList?.errorBlock}\r\n
\r\n {addToCart && addToCart.button}\r\n {addToWishList?.button}\r\n
\r\n
\r\n );\r\n } else {\r\n\r\n if (StockThreshold == 0) {\r\n return (\r\n
\r\n {estimatedDateValue ?\r\n
Expected in Stock: {estimatedDateValue}
: null}\r\n {addToCart && addToCart.errorBlock}\r\n {addToWishList?.errorBlock}\r\n
\r\n {addToCart && addToCart.button}\r\n {addToWishList?.button}\r\n
\r\n
\r\n );\r\n\r\n } else {\r\n if (onhand >= StockThreshold) {\r\n return (\r\n
\r\n {estimatedDateValue ?\r\n
Expected in Stock: {estimatedDateValue}
: null}\r\n {addToCart && addToCart.errorBlock}\r\n {addToWishList?.errorBlock}\r\n
\r\n {addToCart && addToCart.button}\r\n {addToWishList?.button}\r\n
\r\n
\r\n );\r\n\r\n } else {\r\n if (estimatedDate == \"\") {\r\n return (\r\n
\r\n {addToCart && addToCart.errorBlock}\r\n {addToWishList?.errorBlock}\r\n
\r\n {/* */}\r\n {addToCart && addToCart.button}\r\n {addToWishList?.button}\r\n
\r\n
\r\n );\r\n }\r\n else {\r\n return (\r\n
\r\n {estimatedDateValue ?\r\n
Expected in Stock: {estimatedDateValue}
: null}\r\n
\r\n {placebackorder && placebackorder.button}\r\n
\r\n
\r\n );\r\n }\r\n }\r\n\r\n }\r\n }\r\n};\r\n\r\nconst _renderBuyboxFindInStore = (props: IBuyboxViewProps & IBuyboxProps, state: IBuyboxState, callbacks: IBuyboxCallbacks): JSX.Element | null => {\r\n const findInStore = getBuyboxFindInStore(props, state, callbacks);\r\n const { productPrice } = props.data;\r\n const uomSet = productPrice && productPrice.result && productPrice.result.UnitOfMeasure || '';\r\n let AvailabilitypProductTitleisSet = false;\r\n if (uomSet == 'SET4' || uomSet == 'SET6') {\r\n AvailabilitypProductTitleisSet = true;\r\n }\r\n return (\r\n findInStore ? (\r\n \r\n {findInStore.storeSelector}\r\n {findInStore.heading}\r\n {findInStore.description}\r\n {findInStore.errors}\r\n {AvailabilitypProductTitleisSet ?

Availability: Please contact your local store for product availability.

: findInStore.button}\r\n {findInStore.modal}\r\n
) : null\r\n );\r\n};\r\n\r\n\r\n\r\n\r\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps, props: IBuyboxViewProps & IBuyboxExtentionProps, state: IBuyboxState, callbacks: IBuyboxCallbacks): JSX.Element | null => {\r\n const { ContainerProps } = configure;\r\n const dropdowns = getBuyboxProductConfigure(props, state, callbacks);\r\n if (dropdowns) {\r\n return (\r\n \r\n {dropdowns.dropdowns.map(_renderConfigureDropdown)}\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n};\r\n\r\n\r\n\r\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\r\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n {errors}\r\n \r\n {select}\r\n \r\n );\r\n};\r\n\r\n\r\n\r\nconst _renderQuantity = (quantityComponent: IBuyboxProductQuantityViewProps, callbacks: IBuyboxCallbacks, props: IBuyboxProps, state: IBuyboxState, extentionResources: IBuyboxExtentionResources): JSX.Element | null => {\r\n const { ContainerProps, LabelContainerProps, heading, errors } = quantityComponent;\r\n\r\n const {\r\n resources,\r\n context: {\r\n app: {\r\n config: {\r\n maxQuantityForCartLineItem\r\n }\r\n }\r\n }\r\n } = props;\r\n\r\n const\r\n {\r\n quantity,\r\n } = state;\r\n\r\n const isProductAvailable: boolean = props.data.productAvailableQuantity.result && props.data.productAvailableQuantity.result[0] &&\r\n props.data.productAvailableQuantity.result[0].IsProductAvailable || false;\r\n \r\n const HSOConfigprop = props.data.channelConfiguration.result\r\n && props.data.channelConfiguration.result.ExtensionProperties\r\n && props.data.channelConfiguration.result!.ExtensionProperties.find((property => property.Key === 'HSOConfig'));\r\n\r\n let HSOConfig = HSOConfigprop && HSOConfigprop.Value && HSOConfigprop.Value.IntegerValue;\r\n if (HSOConfig == undefined) {\r\n HSOConfig = 0;\r\n }\r\n\r\n if (isProductAvailable) {\r\n const maxQuantity = props.data.productAvailableQuantity.result &&\r\n props.data.productAvailableQuantity.result[0] &&\r\n props.data.productAvailableQuantity.result[0].ProductAvailableQuantity.AvailableQuantity || maxQuantityForCartLineItem;\r\n\r\n const onChange = (newValue: number) => {\r\n if (callbacks.updateQuantity) {\r\n callbacks.updateQuantity(newValue);\r\n }\r\n };\r\n const isB2B = props.context?.request?.app?.platform?.enableDefaultOrderQuantityLimits === 'b2b';\r\n const eoqQuantity = isB2B ? props.data?.product?.result?.Behavior?.MultipleOfQuantity : 1;\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n {errors}\r\n \r\n\r\n \r\n \r\n );\r\n }\r\n else if (HSOConfig == 1) {\r\n const estimatedDateProperty = props.data.productAvailableQuantity\r\n && props.data.productAvailableQuantity.result && props.data.productAvailableQuantity.result[0].ProductAvailableQuantity\r\n && props.data.productAvailableQuantity.result[0].ProductAvailableQuantity.ExtensionProperties\r\n && props.data.productAvailableQuantity.result[0].ProductAvailableQuantity.ExtensionProperties.find((property => property.Key === 'EstimatedDate'));\r\n const estimatedDateValue = estimatedDateProperty && estimatedDateProperty.Value && estimatedDateProperty.Value.StringValue;\r\n let estimatedDate = \"\";\r\n if (estimatedDateValue == undefined) {\r\n estimatedDate = \"\";\r\n } else {\r\n estimatedDate = estimatedDateValue;\r\n }\r\n const StockThresholdprop = props.data.productAvailableQuantity\r\n && props.data.productAvailableQuantity.result && props.data.productAvailableQuantity.result[0].ProductAvailableQuantity\r\n && props.data.productAvailableQuantity.result[0].ProductAvailableQuantity.ExtensionProperties\r\n && props.data.productAvailableQuantity.result[0].ProductAvailableQuantity.ExtensionProperties.find((property => property.Key === 'StockThreshold'));\r\n const StockThresholdpropval = StockThresholdprop && StockThresholdprop.Value && StockThresholdprop.Value.IntegerValue;\r\n let StockThreshold = 0;\r\n if (StockThresholdpropval != undefined) {\r\n StockThreshold = StockThresholdpropval;\r\n }\r\n const onhandpropval = props.data.productAvailableQuantity\r\n && props.data.productAvailableQuantity.result && props.data.productAvailableQuantity.result[0].ProductAvailableQuantity\r\n && props.data.productAvailableQuantity.result[0].ProductAvailableQuantity.AvailableQuantity\r\n let onhand = 0;\r\n if (onhandpropval != undefined) {\r\n onhand = Number(onhandpropval);\r\n }\r\n if (StockThreshold != 0 && onhand < StockThreshold && estimatedDate != \"\") {\r\n const maxQuantity = props.data.productAvailableQuantity.result &&\r\n props.data.productAvailableQuantity.result[0] &&\r\n props.data.productAvailableQuantity.result[0].ProductAvailableQuantity.AvailableQuantity || maxQuantityForCartLineItem;\r\n const onChange = (newValue: number) => {\r\n if (callbacks.updateQuantity) {\r\n callbacks.updateQuantity(newValue);\r\n }\r\n };\r\n const isB2B = props.context?.request?.app?.platform?.enableDefaultOrderQuantityLimits === 'b2b';\r\n const eoqQuantity = isB2B ? props.data?.product?.result?.Behavior?.MultipleOfQuantity : 1;\r\n return (\r\n \r\n \r\n {heading}\r\n {errors}\r\n \r\n \r\n \r\n );\r\n }\r\n }\r\n return ;\r\n};\r\n\r\nconst _renderSku = (configure: IBuyboxProductConfigureViewProps, props: IBuyboxViewProps & IBuyboxExtentionProps): JSX.Element | null => {\r\n const { ContainerProps } = configure;\r\n const { slots } = props;\r\n if (slots) {\r\n return (\r\n \r\n {slots.productSKU}\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\n\r\n\r\nconst _renderShopSimilarItem = (shopSimilarItem: any) => {\r\n const { ContainerProps, errors, input } = shopSimilarItem;\r\n return (React.createElement(Node, Object.assign({}, ContainerProps),\r\n errors,\r\n input));\r\n};\r\n\r\nexport default BuyboxView;\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 { Button, Modal, ModalBody, ModalHeader } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport { ICittaEnquireFormData } from './citta-enquire-form.data';\r\nimport { ICittaEnquireFormProps } from './citta-enquire-form.props.autogenerated';\r\nimport { submitPdpEnquiryFormAction, SubmitPdpEnquiryFormDataActionInput } from '../../data-actions/pdp-enquiry/submit-pdp-enquiry-form-data';\r\n\r\nexport interface ICittaEnquireFormViewProps extends ICittaEnquireFormProps {\r\n ModalItem: React.ReactNode;\r\n EnquireButton: React.ReactNode;\r\n}\r\n\r\ninterface ICittaEnquireFormState {\r\n isOpen: boolean;\r\n responseReceived: boolean;\r\n design: string;\r\n name: string;\r\n lastName: string;\r\n emailAddress: string;\r\n phoneNumber: string;\r\n storePickerValue: string;\r\n storePickerText: string;\r\n enquiryMessage: string;\r\n upholstery: string;\r\n dError: boolean;\r\n nError: boolean;\r\n lNError: boolean;\r\n eAError: boolean;\r\n pHError: boolean;\r\n pCError: boolean;\r\n reqError: boolean;\r\n eAValError: boolean;\r\n enquiryMessageError: boolean;\r\n cHError: boolean;\r\n nLSError: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * CittaEnquireForm component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass CittaEnquireForm extends React.PureComponent, ICittaEnquireFormState> {\r\n private response: boolean = false;\r\n\r\n private _designInputRef: React.RefObject;\r\n private _nameInputRef: React.RefObject;\r\n private _lastNameInputRef: React.RefObject;\r\n private _emailAddressInputRef: React.RefObject;\r\n private _phoneNumberInputRef: React.RefObject;\r\n private _enquiryMessageInputRef: React.RefObject;\r\n private _productTypePickerSelectRef: React.RefObject;\r\n private _storePickerSelectRef: React.RefObject;\r\n private _upholsteryInputRef: React.RefObject;\r\n private requiredErrorMessage: string | undefined;\r\n private eAValidationErrorMessage: string | undefined;\r\n\r\n private designValue: boolean = false;\r\n private nameValue: boolean = false;\r\n private lastNameValue: boolean = false;\r\n private emailAddressValue: boolean = false;\r\n private phoneNumberValue: boolean = false;\r\n private formInputValues: boolean = false;\r\n\r\n constructor(props: ICittaEnquireFormProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isOpen: false,\r\n responseReceived: false,\r\n design: props.config.productDesign || '',\r\n name: '',\r\n lastName: '',\r\n emailAddress: '',\r\n phoneNumber: '',\r\n enquiryMessage: '',\r\n storePickerValue: '',\r\n storePickerText: '',\r\n upholstery: '',\r\n dError: false,\r\n cHError: false,\r\n lNError: false,\r\n eAError: false,\r\n pHError: false,\r\n nError: false,\r\n reqError: false,\r\n pCError: false,\r\n eAValError: false,\r\n enquiryMessageError: false,\r\n nLSError: false\r\n }\r\n\r\n this._designInputRef = React.createRef();\r\n this._nameInputRef = React.createRef();\r\n this._lastNameInputRef = React.createRef();\r\n this._emailAddressInputRef = React.createRef();\r\n this._phoneNumberInputRef = React.createRef();\r\n this._enquiryMessageInputRef = React.createRef();\r\n this._productTypePickerSelectRef = React.createRef();\r\n this._storePickerSelectRef = React.createRef();\r\n this._upholsteryInputRef = React.createRef();\r\n\r\n this._closeModal = this._closeModal.bind(this);\r\n this._openModal = this._openModal.bind(this);\r\n this._handleSend = this._handleSend.bind(this);\r\n }\r\n \r\n public render(): JSX.Element | null {\r\n const viewProps: ICittaEnquireFormViewProps = {\r\n ... this.props,\r\n ModalItem: this._renderEnquiremodal(),\r\n EnquireButton: this._renderEnquireButton()\r\n };\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n\r\n private _closeModal(): void {\r\n this.setState(prevState => ({\r\n isOpen: !prevState.isOpen\r\n }));\r\n }\r\n private _openModal(): void {\r\n this.setState(prevState => ({\r\n isOpen: !prevState.isOpen,\r\n responseReceived: false\r\n }));\r\n }\r\n\r\n private _renderEnquireButton(): JSX.Element {\r\n return (\r\n \r\n )\r\n }\r\n\r\n private _renderAlert(className: string): JSX.Element {\r\n const inputBoxErrors = (this.state.nError || this.state.lNError || this.state.eAError || this.state.pHError || this.state.cHError || this.state.enquiryMessageError);\r\n if (inputBoxErrors) {\r\n this.requiredErrorMessage = this.props.resources.requiredTextErrorMessage;\r\n }\r\n if (this.state.emailAddress !== '' && this.state.eAValError) {\r\n this.eAValidationErrorMessage = this.props.resources.eAValidationErrorMessage;\r\n }\r\n\r\n const reqError = this.state.reqError;\r\n const eAValError = this.state.eAValError;\r\n return (\r\n <>\r\n {reqError && (\r\n \r\n {\r\n this.requiredErrorMessage &&\r\n <>\r\n \r\n )}\r\n {eAValError && (\r\n \r\n {\r\n this.eAValidationErrorMessage &&\r\n <>\r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n private handleChange = (inputText: string) => (e: React.ChangeEvent) => {\r\n const value = e.target.value;\r\n switch (inputText) {\r\n case 'designInput': {\r\n this.setState({ design: value, reqError: false, dError: false, eAValError: false, nLSError: false });\r\n break;\r\n }\r\n case 'nameInput': {\r\n this.setState({ name: value, reqError: false, nError: false, eAValError: false, nLSError: false });\r\n break;\r\n }\r\n case 'lastNameInput': {\r\n this.setState({ lastName: value, reqError: false, lNError: false, eAValError: false, nLSError: false });\r\n break;\r\n }\r\n case 'emailAddress': {\r\n this.setState({ emailAddress: value, reqError: false, eAError: false, eAValError: false, nLSError: false });\r\n break;\r\n }\r\n case 'phoneNumber': {\r\n this.setState({ phoneNumber: value, reqError: false, pHError: false, eAValError: false, nLSError: false });\r\n break;\r\n }\r\n case 'upholstery': {\r\n this.setState({ upholstery: value, reqError: false, eAValError: false, nLSError: false });\r\n break;\r\n }\r\n default: null;\r\n }\r\n }\r\n\r\n private onChangeSelect = (e: React.ChangeEvent) => {\r\n const text = e.target.options[e.target.options.selectedIndex].textContent;\r\n this.setState({ storePickerValue: e.target.value || '', storePickerText: text || '' });\r\n };\r\n\r\n private isEmailValid = (email: string): boolean => {\r\n const regex = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return regex.test(email);\r\n };\r\n\r\n private handleMessageChange = (e: React.ChangeEvent) => {\r\n const value = e.target.value;\r\n this.setState({ enquiryMessage: value, reqError: false, eAValError: false, nLSError: false });\r\n }\r\n\r\n private _renderEnquiremodal(): JSX.Element {\r\n const { config, resources } = this.props;\r\n const cittaStoresList: string = this.props.context.app.config.cittaStoresList || 'Città BLOC,000010|Città Grey Lynn,000012|Città Hamilton,000013|Città Merivale,000016|Città Wellington,000017|Città Wellington Thorndon,000018|Città Newmarket,000041|Città Takapuna,000044';\r\n const cittaStores: string[] = cittaStoresList.split('|');\r\n // const colors = this._getDimensionValues(this.props.data.productDimensions || [], this.colorProductDimensionTypeValue);\r\n // const sizes = this._getDimensionValues(this.props.data.productDimensions || [], this.sizeProductDimensionTypeValue);\r\n\r\n return (\r\n
\r\n \r\n {config.modalHeader || 'enquire in-store'}\r\n \r\n
\r\n {this.state.responseReceived && this.response\r\n ?
\r\n

{resources.responseSuccessMessage}

\r\n
: null}\r\n {this.state.responseReceived && !this.response ?
\r\n

{resources.responseErrorMessage}

\r\n
: null}\r\n {!this.state.responseReceived ?
\r\n
\r\n {this.state.dError ? this._renderAlert('contact-form-design') : ''}\r\n
\r\n
\r\n {this.state.nError ? this._renderAlert('contact-form-name') : ''}\r\n
\r\n
\r\n {this.state.lNError ? this._renderAlert('contact-form-name') : ''}\r\n
\r\n
\r\n {this.state.eAError || this.state.eAValError ? this._renderAlert('contact-form-emailaddress') : ''}\r\n
\r\n
\r\n {this.state.pHError ? this._renderAlert('contact-form-phonenumber') : ''}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/* {sizes && (\r\n
\r\n \r\n
\r\n {\r\n sizes.map((size, index) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n })\r\n }\r\n
\r\n {this.state.cHError ? this._renderAlert('contact-form-customizations') : ''}\r\n
\r\n )}\r\n {colors && (\r\n
\r\n
\r\n
\r\n
\r\n )} */}\r\n
\r\n {this.state.enquiryMessageError ? this._renderAlert('enquire-form-message') : ''}\r\n
\r\n
\r\n \r\n {resources.enquireSendButtonText}\r\n \r\n\r\n Store Locations\r\n
\r\n
\r\n : null}\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n // tslint:disable-next-line: cyclomatic-complexity\r\n private async _handleSend(e: React.MouseEvent | React.KeyboardEvent | React.FormEvent): Promise {\r\n this.designValue = (this._designInputRef && this._designInputRef.current && this._designInputRef.current.value) ? true : false;\r\n this.nameValue = (this._nameInputRef && this._nameInputRef.current && this._nameInputRef.current.value) ? true : false;\r\n this.lastNameValue = (this._lastNameInputRef && this._lastNameInputRef.current && this._lastNameInputRef.current.value) ? true : false;\r\n this.emailAddressValue = (this._emailAddressInputRef && this._emailAddressInputRef.current && this._emailAddressInputRef.current.value) ? true : false;\r\n this.phoneNumberValue = (this._phoneNumberInputRef && this._phoneNumberInputRef.current && this._phoneNumberInputRef.current.value) ? true : false;\r\n\r\n const de = (this._designInputRef && this._designInputRef.current && this._designInputRef.current.value) ? this._designInputRef.current.value : '';\r\n const nA = (this._nameInputRef && this._nameInputRef.current && this._nameInputRef.current.value) ? this._nameInputRef.current.value : '';\r\n const lN = (this._lastNameInputRef && this._lastNameInputRef.current && this._lastNameInputRef.current.value) ? this._lastNameInputRef.current.value : '';\r\n const eA = (this._emailAddressInputRef && this._emailAddressInputRef.current && this._emailAddressInputRef.current.value) ? this._emailAddressInputRef.current.value : '';\r\n const pN = (this._phoneNumberInputRef && this._phoneNumberInputRef.current && this._phoneNumberInputRef.current.value) ? this._phoneNumberInputRef.current.value : '';\r\n const up = (this._upholsteryInputRef && this._upholsteryInputRef.current && this._upholsteryInputRef.current.value) ? this._upholsteryInputRef.current.value : '';\r\n const sP = this.props.config.floorStock? 'Città Sofa Enquiry' : this.state.storePickerText;\r\n const cI = this.props.config.floorStock? 'Città Sofa Enquiry' : this._storePickerSelectRef.current!.value;\r\n\r\n\r\n const pT = (this._productTypePickerSelectRef && this._productTypePickerSelectRef.current && this._productTypePickerSelectRef.current.value) ? this._productTypePickerSelectRef.current.value : '';\r\n const eM = (this._enquiryMessageInputRef && this._enquiryMessageInputRef.current && this._enquiryMessageInputRef.current.value) ? this._enquiryMessageInputRef.current.value : '';\r\n // const eAVal = this._emailAddressInputRef.current!.value;\r\n // const pID = this.props.data.product.ItemId || '';\r\n // const sN = this.state.subcribeNewsletterChecked ? 1 : 0;\r\n\r\n if (!this.designValue) {\r\n this.setState({\r\n dError: true,\r\n reqError: true\r\n });\r\n } else if (!this.nameValue) {\r\n this.setState({\r\n nError: true,\r\n reqError: true\r\n });\r\n } else if (!this.lastNameValue) {\r\n this.setState({\r\n lNError: true,\r\n reqError: true\r\n });\r\n } else if (!this.emailAddressValue) {\r\n this.setState({\r\n eAError: true,\r\n reqError: true\r\n });\r\n } else if (!this.isEmailValid(eA)) {\r\n this.setState({\r\n eAValError: true\r\n });\r\n } else if (!this.phoneNumberValue) {\r\n this.setState({\r\n pHError: true,\r\n reqError: true\r\n });\r\n } else {\r\n this.formInputValues = (this.nameValue && this.lastNameValue && this.emailAddressValue && this.phoneNumberValue) ? true : false;\r\n\r\n if (this.formInputValues && !this.state.eAValError) {\r\n try {\r\n const result = await submitPdpEnquiryFormAction(new SubmitPdpEnquiryFormDataActionInput(nA, lN, eA, pN, sP, de, eM, '', pT, up, 'Enquire Custom Furniture', cI, 0), this.props.context.actionContext);\r\n this.response = result.success;\r\n\r\n //scroll to top of div\r\n\r\n this.setState({ responseReceived: true });\r\n } catch {\r\n console.log('Please fill the form!');\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default CittaEnquireForm;\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 { ICittaEnquireFormViewProps } from './citta-enquire-form';\r\n\r\nexport default (props: ICittaEnquireFormViewProps) => {\r\n return (\r\n
\r\n {props.EnquireButton}\r\n {props.ModalItem}\r\n
\r\n );\r\n};\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\nexport interface ILogoProps {\r\n image: Msdyn365.IImageData;\r\n gridSettings?: Msdyn365.IGridSettings;\r\n link?: Msdyn365.ILinkData;\r\n className?: string;\r\n telemetryContent?: ITelemetryContent;\r\n requestContext: Msdyn365.IRequestContext;\r\n}\r\n\r\n// export interface ILinkData {\r\n// // linkUrl: Msdyn365.ILinkData;\r\n// destinationUrl?: string;\r\n// // openInNewTab?: boolean;\r\n// // linkText?: string;\r\n// }\r\n\r\n/**\r\n *\r\n * Logo component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class Logo extends React.PureComponent {\r\n\r\n private attributes?: Msdyn365.IDictionary;\r\n\r\n constructor(props: ILogoProps) {\r\n super(props);\r\n const payLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.Logo);\r\n this.attributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n }\r\n public render():JSX.Element {\r\n return(\r\n
\r\n {this._renderLogo(this.props)}\r\n
\r\n );\r\n }\r\n\r\n private _renderLogo(config: ILogoProps):JSX.Element {\r\n if(config.link && config.link.destinationUrl) {\r\n return(\r\n \r\n {this._renderImage(config)}\r\n \r\n );\r\n }\r\n return(\r\n this._renderImage(config)\r\n );\r\n }\r\n\r\n private _renderImage(config: ILogoProps): JSX.Element {\r\n const defaultImageSettings: Msdyn365.IImageSettings = {\r\n viewports: {\r\n xs: { q: `w=132&h=28&m=6`, w: 0, h: 0 },\r\n lg: { q: `w=160&h=48&m=6`, w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Logo;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { ICittaHeaderResources } from '../citta-header.props.autogenerated';\r\n\r\nexport interface INavIconProps {\r\n resources: ICittaHeaderResources;\r\n isExpanded: boolean;\r\n targetId: string;\r\n telemetryContent?: ITelemetryContent;\r\n toggleNavBar(): void;\r\n}\r\n\r\n/**\r\n *\r\n * NavIcon component\r\n * @extends {React.PureComponent}\r\n */\r\n\r\n@observer\r\nexport class NavIcon extends React.Component {\r\n\r\n private attributes?: Msdyn365.IDictionary;\r\n\r\n constructor(props: INavIconProps) {\r\n super(props);\r\n const payLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.NavIcon);\r\n this.attributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n }\r\n\r\n public render():JSX.Element {\r\n return (\r\n \r\n );\r\n }\r\n}","// import { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { ICittaHeaderData } from '../citta-header.data';\r\nimport { ICittaHeaderProps } from '../citta-header.props.autogenerated';\r\n\r\n/**\r\n * The header preferred store component\r\n */\r\n// @observer\r\nexport class HeaderPreferredStore extends React.PureComponent> {\r\n\r\n // public handleClick = () => { return this._findPreferreStoreOnClick(this.props); };\r\n\r\n public render(): JSX.Element | undefined {\r\n // const {\r\n // data: {\r\n // storeSelectorStateManager: { result: storeSelectorStateManager }\r\n // },\r\n // slots,\r\n // resources\r\n // } = this.props;\r\n // if (slots && slots.storeSelector && slots.storeSelector.length) {\r\n // const storeName = storeSelectorStateManager!.preferredStore && storeSelectorStateManager!.preferredStore.StoreName ?\r\n // storeSelectorStateManager!.preferredStore.StoreName :\r\n // resources.headerPreferredStoreText;\r\n\r\n // return (\r\n //
\r\n // \r\n // {slots.storeSelector}\r\n //
\r\n // );\r\n // }\r\n\r\n return undefined;\r\n }\r\n\r\n // private async _findPreferreStoreOnClick(props: ICittaHeaderProps): Promise {\r\n // const { data: { storeSelectorStateManager: { result: storeSelectorStateManager } }, modules } = props;\r\n // if (!storeSelectorStateManager) {\r\n // return;\r\n // }\r\n // let storeSelectorId: string = '';\r\n // if (modules && Object.keys(modules).length > 0 && modules.storeSelector && modules.storeSelector.length > 0) {\r\n // storeSelectorId = modules.storeSelector[0].id;\r\n // }\r\n // storeSelectorStateManager.openDialog({\r\n // id: storeSelectorId,\r\n // showMapViewLink: false,\r\n // onLocationSelected: orgUnitLocation => {\r\n // return Promise.resolve();\r\n // }\r\n // }).catch((error: Error) => {\r\n // if (props.telemetry) {\r\n // props.telemetry.error(error.message);\r\n // props.telemetry.debug('Unable to set preferred store');\r\n // }\r\n // return;\r\n // });\r\n // }\r\n}\r\n\r\nexport default HeaderPreferredStore;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport {\r\n Button, getPayloadObject, getTelemetryAttributes, getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, KeyCodes, Modal,\r\n ModalBody, ModalHeader, onTelemetryClick, TelemetryConstant\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport { WishListIconComponent } from '@msdyn365-commerce/components';\r\nimport * as MsDyn365 from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\r\nimport classnames from 'classnames';\r\nimport { computed, reaction } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { ICittaHeaderData } from './citta-header.data';\r\nimport { ICittaHeaderProps, ICittaHeaderResources, IMyAccountLinksData } from './citta-header.props.autogenerated';\r\nimport { HeaderPreferredStore, Logo, NavIcon } from './components';\r\nimport { CartIconComponent } from '../../themes/citta/views/components/cart-icon.component';\r\n\r\n\r\nexport interface IHeaderState {\r\n mobileMenuCollapsed: boolean;\r\n signinPopoverOpen: boolean;\r\n}\r\n\r\nexport interface IHeaderViewProps extends ICittaHeaderProps, IHeaderState {\r\n logo: React.ReactNode;\r\n wishListIconDesktop: React.ReactNode;\r\n wishListIconMobile: React.ReactNode;\r\n cartIcon: React.ReactNode;\r\n navIcon: React.ReactNode;\r\n className: string;\r\n menuBar: React.ReactNode[];\r\n search: React.ReactNode[];\r\n siteOptions: React.ReactNode[];\r\n categoryMenuBar: React.ReactNode[];\r\n customNavBar: React.ReactNode[];\r\n countryPicker: React.ReactNode[];\r\n HeaderTag: IModuleProps;\r\n HeaderContainer: INodeProps;\r\n MobileMenuContainer: INodeProps;\r\n MobileMenuHeader: React.ReactNode;\r\n MobileMenuBodyContainer: INodeProps;\r\n MobileMenuLinksContainer: INodeProps;\r\n HeaderTopBarContainer: INodeProps;\r\n HeaderTopBarRightContainer: INodeProps;\r\n Divider: INodeProps;\r\n\r\n AccountInfoDropdownParentContainer?: INodeProps;\r\n AccountInfoDropdownPopoverConentContainer?: INodeProps;\r\n accountInfoDropdownButton?: React.ReactNode;\r\n\r\n signOutLink?: React.ReactNode;\r\n signInLink?: React.ReactNode;\r\n accountLinks?: React.ReactNode[];\r\n preferredStore?: React.ReactNode;\r\n}\r\n\r\n/**\r\n *\r\n * Header component\r\n * @extends {React.PureComponent>}\r\n */\r\n@observer\r\nclass Header extends React.PureComponent, IHeaderState> {\r\n private popOverRef: React.RefObject;\r\n private telemetryContent: ITelemetryContent;\r\n private cart: ICartState | undefined;\r\n @computed public get displayName(): Readonly {\r\n const customer = this.props.data.accountInformation?.result;\r\n const isB2B = this.props.context?.request?.app?.platform?.enableDefaultOrderQuantityLimits === 'b2b';\r\n if(isB2B){\r\n return customer ? customer.Name || customer.FirstName : undefined;\r\n }\r\n return customer ? customer.FirstName || customer.Name : undefined;\r\n }\r\n @computed public get accountEmailAddress(): Readonly {\r\n const customer = this.props.data.accountInformation?.result;\r\n return customer ? customer.Email || customer.Email : undefined;\r\n }\r\n\r\n constructor(props: ICittaHeaderProps) {\r\n super(props);\r\n this.popOverRef = React.createRef();\r\n this._toggleNavbar = this._toggleNavbar.bind(this);\r\n this._togglePopover = this._togglePopover.bind(this);\r\n this._keydown = this._keydown.bind(this);\r\n this.state = {\r\n mobileMenuCollapsed: true,\r\n signinPopoverOpen: false\r\n };\r\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\r\n }\r\n\r\n public componentDidMount(): void {\r\n if (MsDyn365.msdyn365Commerce.isBrowser) {\r\n window.addEventListener('keydown', this._keydown);\r\n }\r\n reaction(\r\n () => this.props.data.cart.result,\r\n () => {\r\n this.cart = this.props.data.cart.result;\r\n }\r\n );\r\n\r\n this._stickyHeaderSetup();\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n if (MsDyn365.msdyn365Commerce.isBrowser) {\r\n window.removeEventListener('keydown', this._keydown, false);\r\n }\r\n }\r\n\r\n // tslint:disable-next-line: cyclomatic-complexity max-func-body-length\r\n public render(): JSX.Element | null {\r\n const {\r\n id,\r\n typeName,\r\n data: { accountInformation,\r\n storeSelectorStateManager: {result: storeSelectorStateManager}\r\n },\r\n context: {\r\n request: {\r\n user\r\n }\r\n },\r\n context,\r\n resources: {\r\n cartLabel\r\n }\r\n } = this.props; \r\n\r\n const headerClassName = classnames('ms-header', this.props.config.className);\r\n const navbarKey = 'header-nav-mobile';\r\n const customer = accountInformation && accountInformation.result;\r\n const cartIconSlot = this._getSlot('cartIcon');\r\n const menuBarSlot = this._getSlot('menuBar');\r\n const searchSlot = this._getSlot('search');\r\n const siteOptionsSlot = this._getSlot('siteOptions');\r\n const preferredStoreSlot = this._getSlot('storeSelector');\r\n\r\n const categoryMenuBarSlot = this._getSlot('categoryMenuBar');\r\n const customNavBarSlot = this._getSlot('customNavMenuBar');\r\n const countryPickerSlot = this._getSlot('countryPicker');\r\n\r\n const logoSlot = this._getSlot('logo');\r\n // @ts-ignore\r\n const logoImage = logoSlot && logoSlot.length && logoSlot[0].props.config.image || {};\r\n // @ts-ignore\r\n const logoLink = logoSlot && logoSlot.length && logoSlot[0]?.props.config.imageLink || '';\r\n\r\n const viewProps: IHeaderViewProps = {\r\n ...(this.props as ICittaHeaderProps),\r\n ...(this.state),\r\n logo: ,\r\n wishListIconDesktop: (\r\n \r\n ),\r\n wishListIconMobile: (\r\n \r\n ),\r\n cartIcon: (cartIconSlot && cartIconSlot.length > 0)\r\n ? cartIconSlot[0]\r\n : , \r\n navIcon: ,\r\n menuBar: menuBarSlot && menuBarSlot.length && menuBarSlot || [],\r\n search: searchSlot && searchSlot.length && searchSlot || [],\r\n siteOptions: siteOptionsSlot && siteOptionsSlot.length && siteOptionsSlot || [],\r\n categoryMenuBar: categoryMenuBarSlot && categoryMenuBarSlot.length && categoryMenuBarSlot || [],\r\n customNavBar: customNavBarSlot && customNavBarSlot.length && customNavBarSlot || [],\r\n className: headerClassName,\r\n countryPicker: countryPickerSlot && countryPickerSlot.length && countryPickerSlot || [],\r\n HeaderTag: {\r\n moduleProps: this.props,\r\n className: classnames(headerClassName),\r\n tag: 'header'\r\n },\r\n HeaderContainer: {\r\n className: classnames('ms-header__container')\r\n },\r\n HeaderTopBarContainer: {\r\n className: classnames('ms-header__topbar')\r\n },\r\n HeaderTopBarRightContainer: {\r\n className: classnames('ms-header__topbar-right')\r\n },\r\n Divider: {\r\n className: classnames('ms-header__divider')\r\n },\r\n MobileMenuContainer: {\r\n tag: Modal,\r\n id: navbarKey,\r\n className: 'ms-header__mobile-hamburger',\r\n isOpen: !this.state.mobileMenuCollapsed,\r\n wrapClassName: `ms-header__citta-modal citta-header-mobile ${!this.state.mobileMenuCollapsed ? 'modal-open' : ''}`,\r\n toggle: this._toggleNavbar\r\n },\r\n MobileMenuHeader: (\r\n \r\n ),\r\n MobileMenuBodyContainer: {\r\n tag: ModalBody,\r\n className: 'ms-header__mobile-hamburger-menu-body',\r\n },\r\n MobileMenuLinksContainer: {\r\n className: 'ms-header__mobile-hamburger-menu-links',\r\n },\r\n AccountInfoDropdownParentContainer: {\r\n className: `ms-header__account-info ${this.state.signinPopoverOpen ? 'account-open' : ''}`\r\n },\r\n AccountInfoDropdownPopoverConentContainer: customer && this.displayName && {\r\n // tag: Popover,\r\n id: 'myprofilePopover',\r\n className: 'ms-header__account-info-content',\r\n placement: 'bottom',\r\n isOpen: this.state.signinPopoverOpen,\r\n target: this.popOverRef,\r\n toggle: this._togglePopover,\r\n } || undefined,\r\n signInLink: this._getSigninButton(customer, user, this.props.resources),\r\n signOutLink: this._getSignOutButton(customer, user, this.props.resources),\r\n accountInfoDropdownButton: this._getAccountInfoDropdownButton(customer),\r\n accountLinks: this._getAccountLinks(customer),\r\n preferredStore: preferredStoreSlot\r\n && preferredStoreSlot.length\r\n && storeSelectorStateManager\r\n && ()\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n /* Handle link text change*/\r\n public handleLinkTextChange = (linkIndex: number) => (event: MsDyn365.ContentEditableEvent) => {\r\n if (this.props.config.myAccountLinks && this.props.config.myAccountLinks[linkIndex]) {\r\n this.props.config.myAccountLinks[linkIndex].linkText = event.target.value;\r\n }\r\n }\r\n\r\n private _stickyHeaderSetup(): void {\r\n // Set header update methods to trigger on scroll\r\n window.onscroll = () => {\r\n this._updateHeader();\r\n };\r\n this._updateHeader();\r\n }\r\n\r\n private _getSlot(slotName: string): React.ReactNode[] | null {\r\n const { slots } = this.props;\r\n return (slots && slots[slotName] && slots[slotName].length && slots[slotName]) || null;\r\n }\r\n\r\n private _getSigninButton(customer: Customer | undefined, user: MsDyn365.IRequestContextUser | undefined, resources: ICittaHeaderResources): React.ReactNode | undefined {\r\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.SignIn);\r\n const attributes = getTelemetryAttributes(this.telemetryContent, payLoad);\r\n return !customer && (\r\n \r\n {resources.signInLinkText}\r\n \r\n );\r\n }\r\n\r\n private _getSignOutButton(customer: Customer | undefined, user: MsDyn365.IRequestContextUser | undefined, resources: ICittaHeaderResources): React.ReactNode | undefined {\r\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.SignOut);\r\n const attributes = getTelemetryAttributes(this.telemetryContent, payLoad);\r\n return customer && this.displayName && (\r\n \r\n {resources.signOutLinkText}\r\n \r\n );\r\n }\r\n\r\n private _getAccountInfoDropdownButton(customer: Customer | undefined): React.ReactNode | undefined {\r\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.MyProfile);\r\n const attributes = getTelemetryAttributes(this.telemetryContent, payLoad);\r\n return customer && this.displayName && (\r\n \r\n {this.displayName}\r\n {this.accountEmailAddress}\r\n \r\n );\r\n }\r\n\r\n private _getAccountLinks(customer: Customer | undefined): React.ReactNode[] | undefined {\r\n const { myAccountLinks } = this.props.config;\r\n const payLoad = getPayloadObject('click', this.telemetryContent, '');\r\n if(!customer || ! this.displayName || !myAccountLinks || !myAccountLinks.length) {\r\n return undefined;\r\n }\r\n return myAccountLinks.map((cta: IMyAccountLinksData, index: number) => {\r\n payLoad.contentAction.etext = cta.linkText;\r\n const attributes = getTelemetryAttributes(this.telemetryContent, payLoad);\r\n const editableLink: MsDyn365.ILinksData = {\r\n ariaLabel: cta.ariaLabel,\r\n className: 'ms-signin-info__account-link-button',\r\n linkText: cta.linkText,\r\n linkUrl: cta.linkUrl.destinationUrl,\r\n openInNewTab: cta.openInNewTab,\r\n role: 'button',\r\n additionalProperties: attributes\r\n };\r\n\r\n return (\r\n \r\n );\r\n });\r\n }\r\n\r\n private _toggleNavbar(): void {\r\n this.setState({\r\n mobileMenuCollapsed: !this.state.mobileMenuCollapsed\r\n });\r\n this.state.mobileMenuCollapsed && this._setHeader(this.state.mobileMenuCollapsed);\r\n }\r\n\r\n private _togglePopover(): void {\r\n this.setState({\r\n signinPopoverOpen: !this.state.signinPopoverOpen\r\n });\r\n }\r\n\r\n private _keydown(e: KeyboardEvent): void {\r\n if (e.keyCode === KeyCodes.Escape) {\r\n this.setState({ mobileMenuCollapsed: true });\r\n this._setHeader(true);\r\n }\r\n }\r\n\r\n private _setHeader(lockHeader?: boolean): void {\r\n // Get heights of cookie and promotion banners\r\n const headerElem = document.querySelector('.ms-header');\r\n const headerAlertsContainer: HTMLElement | null = document.querySelector('.ms-promo-banner');\r\n const bannerHeights = headerAlertsContainer ? headerAlertsContainer.offsetHeight : 0;\r\n // triggers opacity change of header\r\n if (headerElem) {\r\n if (lockHeader || document.documentElement.scrollTop > bannerHeights) {\r\n headerElem.classList.add('lock-opaque');\r\n } else if (!window.document.body.classList.contains('search-open')) { \r\n headerElem.classList.remove('lock-opaque');\r\n }\r\n }\r\n }\r\n\r\n private _updateHeader(isInMobileMenu?: boolean): void {\r\n // triggers opacity change of header\r\n // Get heights of cookie and promotion banners\r\n const headerAlertsContainer: HTMLElement | null = document.querySelector('.ms-promo-banner');\r\n const bannerHeights = headerAlertsContainer ? headerAlertsContainer.offsetHeight : 0;\r\n if (this.state.mobileMenuCollapsed) {\r\n this._setHeader();\r\n }\r\n\r\n // Update sticky header position and opacity\r\n const stickyHeader: HTMLElement | null = document.querySelector('.ms-header__desktop-view');\r\n const headerLogo: HTMLElement | null = document.querySelector('.ms-header__topbar-center');\r\n const headerLeftActionItem: HTMLElement | null = document.querySelector('.ms-header__topbar-left');\r\n const headerRightActionItem: HTMLElement | null = document.querySelector('.ms-header__topbar-right');\r\n\r\n if (stickyHeader && headerLogo && headerLeftActionItem && headerRightActionItem) {\r\n // Fix center sticky header\r\n const navStickyPos = headerLogo.offsetHeight + bannerHeights;\r\n if (document.documentElement.scrollTop > navStickyPos) {\r\n stickyHeader.classList.add('fixed');\r\n } else {\r\n stickyHeader.classList.remove('fixed');\r\n }\r\n\r\n // Fix edge sticky headers\r\n if (document.documentElement.scrollTop > bannerHeights) {\r\n headerLeftActionItem.classList.add('fixed');\r\n headerRightActionItem.classList.add('fixed');\r\n } else {\r\n headerLeftActionItem.classList.remove('fixed');\r\n headerRightActionItem.classList.remove('fixed');\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default Header;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderViewProps } from './citta-header';\r\n\r\nconst headerView: React.FC = props => {\r\n const {\r\n HeaderTag,\r\n HeaderContainer,\r\n HeaderTopBarContainer,\r\n HeaderTopBarRightContainer,\r\n MobileMenuContainer,\r\n MobileMenuBodyContainer,\r\n MobileMenuLinksContainer\r\n } = props;\r\n return (\r\n \r\n \r\n {_renderReactFragment(props.menuBar)}\r\n \r\n {props.navIcon}\r\n {props.logo}\r\n \r\n {_renderReactFragment(props.search)}\r\n {props.preferredStore}\r\n {_renderReactFragment(props.siteOptions)}\r\n {_renderDesktopAccountBlock(props)}\r\n {props.cartIcon}\r\n \r\n \r\n \r\n \r\n {_renderReactFragment(props.search)}\r\n { props.MobileMenuHeader }\r\n {_renderReactFragment(props.menuBar)}\r\n \r\n {/* {_renderReactFragment(props.search)} */}\r\n { props.accountLinks ? props.accountLinks.map(link => link) : false }\r\n {_renderMobileAccountBlock(props)}\r\n { props.siteOptions }\r\n {/* { props.signInLink } */}\r\n {/* { props.signOutLink } */}\r\n \r\n \r\n \r\n {_renderReactFragment(props.categoryMenuBar)}\r\n {_renderReactFragment(props.customNavBar)}\r\n {_renderReactFragment(props.countryPicker)}\r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks,\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n { accountLinks ? accountLinks.map(link => link) : false }\r\n {signOutLink}\r\n \r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n props.context.telemetry.error('Header content is empty, module wont render.');\r\n return null;\r\n}\r\n\r\n\r\nfunction _renderMobileAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks,\r\n } = props;\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n { accountLinks ? accountLinks.map(link => link) : false }\r\n {signOutLink}\r\n \r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n props.context.telemetry.error('Header content is empty, module wont render.');\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;","/* eslint-disable no-duplicate-imports */\r\nimport { getMediaLocationsForSelectedVariant, MediaLocationsForSelectedVariantInput } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { IActionContext, IImageData, IImageSettings } from '@msdyn365-commerce/core';\r\nimport { MediaLocation } from '@msdyn365-commerce/retail-proxy';\r\n\r\nexport async function getValidProductImages(productId: number, channelId: number, actionContext: IActionContext, imageSettings: IImageSettings): Promise {\r\n const actionInput = new MediaLocationsForSelectedVariantInput(\r\n productId,\r\n channelId,\r\n );\r\n\r\n return getMediaLocationsForSelectedVariant(actionInput, actionContext)\r\n .then(mediaLocations => {\r\n if (mediaLocations) {\r\n return Promise.all(mediaLocations.map((mediaLocation) => validateMediaLocaionAsync(mediaLocation, imageSettings)))\r\n .then(pairs => {\r\n return pairs.filter(pair => pair[1]).map(pair => pair[0]);\r\n });\r\n }\r\n\r\n return [];\r\n }).catch(error => {\r\n actionContext.telemetry.exception(error);\r\n actionContext.telemetry.debug('Unable to get Media Locations for Selected Variant');\r\n return [];\r\n });\r\n}\r\n\r\nexport async function validateProductImages(mediaLocations: MediaLocation[], actionContext: IActionContext, imageSettings: IImageSettings): Promise {\r\n return Promise.all(mediaLocations.map((mediaLocation) => validateMediaLocaionAsync(mediaLocation, imageSettings)))\r\n .then(pairs => {\r\n return pairs.filter(pair => pair[1]).map(pair => pair[0]);\r\n }).catch(error => {\r\n actionContext.telemetry.exception(error);\r\n actionContext.telemetry.debug('Unable to validate prodcut images');\r\n return [];\r\n });\r\n}\r\n\r\nasync function validateMediaLocaionAsync(mediaLocation: MediaLocation, imageSettings: IImageSettings): Promise<[IImageData, boolean]> {\r\n const imageData = {\r\n src: mediaLocation.Uri || '',\r\n altText: mediaLocation.AltText || ''\r\n };\r\n\r\n const imageSettingsVal = ((imageSettings.viewports?.lg!.q!).replace(/['\"]+/g, ''));\r\n\r\n if (imageData.src === '') {\r\n return [imageData, false];\r\n }\r\n\r\n const imageConcatVal = `${imageData.src}` + `&` + `${imageSettingsVal}`;\r\n\r\n return new Promise<[IImageData, boolean]>((resolve) => {\r\n try {\r\n const http = new XMLHttpRequest();\r\n http.open('HEAD', imageConcatVal, true);\r\n\r\n http.onload = () => {\r\n resolve([imageData, http.status === 200 || http.status === 201]);\r\n };\r\n\r\n http.onerror = () => {\r\n resolve([imageData, false]);\r\n };\r\n\r\n http.send();\r\n } catch (e) {\r\n resolve([imageData, false]);\r\n }\r\n });\r\n}\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable no-duplicate-imports */\r\nimport classnames from 'classnames';\r\nimport { reaction } from 'mobx';\r\nimport * as React from 'react';\r\n\r\nimport { Carousel, ICarouselProps } from '@msdyn365-commerce/components';\r\n\r\nimport {\r\n IComponentNodeProps,\r\n ImagefullView,\r\n IModalViewProps,\r\n IModuleProps,\r\n inlineZoomImageOnHover,\r\n inlineZoomImageOnMouseMove,\r\n inlineZoomImageOnMouseOut,\r\n inlineZoomInit,\r\n INodeProps,\r\n ISingleSlideCarouselProps,\r\n KeyCodes,\r\n NodeTag,\r\n onContainerZoomInit,\r\n onMouseMoveLensContainer,\r\n onMouseOutLensContainer,\r\n onMouseOverImageContainer,\r\n removeInlineZoomStyle,\r\n SingleSlideCarousel\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport { IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\r\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\n//@ts-ignore\r\nimport { imageSource, imageZoom, ICittaMediaGalleryData, ICittaMediaGalleryProps, thumbnailsOrientation } from '@msdyn365-commerce-modules/media-gallery';\r\nimport { getValidProductImages, validateProductImages } from './utils';\r\n\r\nexport interface IMediaGalleryState {\r\n animating: boolean;\r\n activeIndex: number;\r\n mediaGalleryItems: IImageData[] | undefined;\r\n isImageZoomed: boolean;\r\n modalIsOpen: boolean;\r\n lastUpdate?: number;\r\n}\r\n\r\nexport interface IMediaGalleryThumbnailsViewProps {\r\n ThumbnailsContainerProps: INodeProps;\r\n SingleSlideCarouselComponentProps: INodeProps;\r\n items?: IMediaGalleryThumbnailItemViewProps[];\r\n}\r\n\r\nexport interface IMediaGalleryThumbnailItemViewProps {\r\n ThumbnailItemContainerProps: INodeProps;\r\n Picture: React.ReactElement;\r\n}\r\n\r\nexport interface IMediaGalleryViewProps extends ICittaMediaGalleryProps {\r\n state: IMediaGalleryState;\r\n MediaGallery: IModuleProps;\r\n CarouselProps: INodeProps;\r\n Thumbnails: IMediaGalleryThumbnailsViewProps;\r\n Modal?:React.ReactElement|null;\r\n}\r\n\r\n/**\r\n * Media gallery component\r\n */\r\nclass MediaGallery extends React.Component, IMediaGalleryState> {\r\n private _inlineZoomDivRef: Map = new Map();\r\n private readonly defaultGalleryImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=767&h=767&m=8', w: 0, h: 0 },\r\n sm: { q: 'w=600&h=600&m=8', w: 0, h: 0 },\r\n md: { q: 'w=600&h=772&m=8', w: 0, h: 0 },\r\n lg: { q: 'h=772&m=8', w: 0, h: 0 }\r\n },\r\n lazyload: true,\r\n cropFocalRegion: true\r\n };\r\n\r\n private readonly defaultThumbnailImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=100&m=8', w: 100, h: 0 },\r\n lg: { q: 'w=100&m=8', w: 100, h: 0 }\r\n },\r\n lazyload: true,\r\n cropFocalRegion: true\r\n };\r\n\r\n constructor(props: ICittaMediaGalleryProps) {\r\n super(props);\r\n this._toggleModal = this._toggleModal.bind(this);\r\n this.state = { activeIndex: 0, animating: false, mediaGalleryItems: undefined, isImageZoomed: false, modalIsOpen:false };\r\n\r\n this._onImageMouseOut = this._onImageMouseOut.bind(this);\r\n this._inlineZoomImageOnHover = this._inlineZoomImageOnHover.bind(this);\r\n this._onInlineImageClick = this._onInlineImageClick.bind(this);\r\n this._onContainerZoomImageClick = this._onContainerZoomImageClick.bind(this);\r\n this._onMouseOutLensContainer = this._onMouseOutLensContainer.bind(this);\r\n }\r\n\r\n public async componentDidMount(): Promise {\r\n const source = this.props.config.imageSource || imageSource.pageContext;\r\n const curatedImage = this.props.config.images || [];\r\n\r\n if (source === imageSource.pageContext) {\r\n reaction(\r\n () => (this.props.data.product.result ? this.props.data.product.result.RecordId : null),\r\n async () => {\r\n if (this.props.data.product.result) {\r\n const images = await getValidProductImages(\r\n this.props.data.product.result.RecordId,\r\n +this.props.context.request.apiSettings.channelId,\r\n this.props.context.actionContext,\r\n this.props.config.thumbnailImageSettings || this.defaultThumbnailImageSettings\r\n );\r\n this.setState({\r\n mediaGalleryItems: [...images, ...curatedImage],\r\n activeIndex: 0,\r\n lastUpdate: Date.now()\r\n });\r\n } else {\r\n this.setState({\r\n mediaGalleryItems: [...curatedImage],\r\n activeIndex: 0,\r\n lastUpdate: Date.now()\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n if (source === imageSource.productId && this.props.data.mediaLocations.result) {\r\n const images = await validateProductImages(\r\n this.props.data.mediaLocations.result,\r\n this.props.context.actionContext,\r\n this.props.config.thumbnailImageSettings || this.defaultThumbnailImageSettings\r\n );\r\n this.setState({\r\n mediaGalleryItems: [...images, ...curatedImage],\r\n activeIndex: 0,\r\n lastUpdate: Date.now()\r\n });\r\n } else if (source === imageSource.pageContext && this.props.data.product.result) {\r\n const images = await getValidProductImages(\r\n this.props.data.product.result.RecordId,\r\n +this.props.context.request.apiSettings.channelId,\r\n this.props.context.actionContext,\r\n this.props.config.thumbnailImageSettings || this.defaultThumbnailImageSettings\r\n );\r\n\r\n this.setState({\r\n mediaGalleryItems: [...images, ...curatedImage],\r\n activeIndex: 0,\r\n lastUpdate: Date.now()\r\n });\r\n } else {\r\n this.setState({\r\n mediaGalleryItems: [...curatedImage],\r\n activeIndex: 0,\r\n lastUpdate: Date.now()\r\n });\r\n }\r\n }\r\n\r\n public render(): JSX.Element {\r\n const {\r\n id,\r\n config,\r\n resources\r\n } = this.props;\r\n\r\n const mediaGalleryItems = this.state.mediaGalleryItems;\r\n const { className, showPaginationTooltip } = config;\r\n const galleryImageSettings = config.galleryImageSettings;\r\n if(galleryImageSettings) {\r\n galleryImageSettings.cropFocalRegion = true;\r\n }\r\n const thumbnailImageSettings = config.thumbnailImageSettings;\r\n if(thumbnailImageSettings) {\r\n thumbnailImageSettings.cropFocalRegion = true;\r\n }\r\n\r\n const isVertical: boolean = config.thumbnailsOrientation === thumbnailsOrientation.vertical;\r\n const allowFullscreen:boolean = config.allowFullScreen || false;\r\n const zoomViewMode: string =\r\n config.imageZoom === imageZoom.inline\r\n ? imageZoom.inline\r\n : config.imageZoom === imageZoom.container\r\n ? imageZoom.container\r\n : '';\r\n const zoomView = allowFullscreen ? 'fullscreen': zoomViewMode;\r\n\r\n const viewProps: IMediaGalleryViewProps = {\r\n ...(this.props as ICittaMediaGalleryProps),\r\n state: this.state,\r\n MediaGallery: {\r\n moduleProps: this.props,\r\n className: classnames(`ms-media-gallery ${isVertical ? 'vertical' : ''}`, className)\r\n },\r\n Modal: allowFullscreen ? this.imageModalSlider(zoomViewMode): null,\r\n CarouselProps: {\r\n tag: Carousel,\r\n className: 'ms-media-gallery__carousel',\r\n items:\r\n mediaGalleryItems &&\r\n mediaGalleryItems.map((item: IImageData, index: number) => this._renderCarouselItemImageView(zoomView, item, galleryImageSettings || this.defaultGalleryImageSettings, index)),\r\n activeIndex: this.state.activeIndex,\r\n next: this.next,\r\n previous: this.previous,\r\n interval: false,\r\n directionTextPrev: resources.previousScreenshotFlipperText,\r\n directionTextNext: resources.nextScreenshotFlipperText,\r\n onIndicatorsClickHandler: this.goToIndex,\r\n showPaginationTooltip: showPaginationTooltip === true,\r\n handleOnExited: this.onExited,\r\n handleOnExiting: this.onExiting,\r\n key: this.state.lastUpdate\r\n } as IComponentNodeProps,\r\n Thumbnails: {\r\n ThumbnailsContainerProps: { className: 'ms-media-gallery__thumbnails-container' },\r\n SingleSlideCarouselComponentProps: {\r\n tag: SingleSlideCarousel,\r\n className: 'ms-media-gallery__thumbnails',\r\n vertical: isVertical,\r\n flipperPrevLabel: resources.previousScreenshotFlipperText,\r\n flipperNextLabel: resources.nextScreenshotFlipperText,\r\n parentId: id,\r\n useTabList: true,\r\n key: this.state.lastUpdate\r\n } as IComponentNodeProps,\r\n items:\r\n mediaGalleryItems &&\r\n mediaGalleryItems.map((item: IImageData, index: number) => this._getThumbnailItem(item, thumbnailImageSettings || this.defaultThumbnailImageSettings, index, this.state.activeIndex))\r\n }\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private onExiting = () => {\r\n this.setState({ animating: true });\r\n };\r\n\r\n private onExited = () => {\r\n this.setState({ animating: false });\r\n };\r\n\r\n private next = (): void => {\r\n if (this.isLastItem() === undefined) {\r\n return;\r\n }\r\n\r\n const nextIndex = this.isLastItem() ? 0 : this.state.activeIndex + 1;\r\n this.goToIndex(nextIndex);\r\n };\r\n\r\n private previous = (): void => {\r\n const nextIndex = this.isFirstItem()\r\n ? this.state.mediaGalleryItems\r\n ? this.state.mediaGalleryItems.length - 1\r\n : 0\r\n : this.state.activeIndex - 1;\r\n this.goToIndex(nextIndex);\r\n };\r\n\r\n private goToIndex = (index: number): void => {\r\n this.setState({ activeIndex: index });\r\n };\r\n\r\n private _renderCarouselItemImageView(zoomView: string, image: IImageData, imageSettings: IImageSettings, index: number): React.ReactNode {\r\n if (zoomView === 'container') {\r\n return this._renderImageInContainerOnZoom(image, imageSettings, index);\r\n } else if (zoomView === 'inline') {\r\n return this._renderImageInlineOnZoom(image, imageSettings, index);\r\n } else if (zoomView === 'fullscreen') {\r\n return this._renderImageFullScreenOnZoom(image, imageSettings, index);\r\n } else {\r\n return {this._getCarouselItem(image, imageSettings, index)};\r\n }\r\n }\r\n\r\n private _getCarouselItem = (image: IImageData, imageSettings: IImageSettings, index: number): React.ReactNode => (\r\n \r\n );\r\n\r\n private _getThumbnailItem = (image: IImageData, imageSettings: IImageSettings, index: number, modifiedActiveIndex: number): IMediaGalleryThumbnailItemViewProps => {\r\n const classes = classnames(\r\n 'ms-media-gallery__thumbnail-item',\r\n modifiedActiveIndex === index ? 'ms-media-gallery__thumbnail-item-active' : ''\r\n );\r\n\r\n return {\r\n ThumbnailItemContainerProps: {\r\n tag: 'li' as NodeTag,\r\n className: classes,\r\n role: 'tab',\r\n tabIndex: 0,\r\n key: index,\r\n 'aria-label': image.altText,\r\n 'aria-selected': modifiedActiveIndex === index,\r\n 'aria-controls': `${this.props.id}__carousel-item__${index}`,\r\n onClick: this._generateOnThumbnailClick(index),\r\n onKeyDown: this._generateOnThumbnailKeyDown(index)\r\n },\r\n Picture: (\r\n \r\n )\r\n };\r\n };\r\n\r\n private _generateOnThumbnailKeyDown = (index: number) => {\r\n return (event: React.KeyboardEvent) => {\r\n if (event.which === KeyCodes.Enter || event.which === KeyCodes.Space) {\r\n event.preventDefault();\r\n\r\n this.goToIndex(index);\r\n }\r\n };\r\n };\r\n\r\n private _generateOnThumbnailClick = (index: number) => {\r\n return (event: React.MouseEvent) => {\r\n event.preventDefault();\r\n\r\n this.goToIndex(index);\r\n };\r\n };\r\n\r\n private _renderImageInlineOnZoom(image: IImageData, imageSettings:IImageSettings, index: number): React.ReactNode {\r\n return (\r\n // tslint:disable-next-line: react-this-binding-issue\r\n
this._inlineZoomDivRef.set(index, divRef!)} data-scale={this.props.config.dataScale}>\r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n private _inlineZoomImageOnHover(event: React.MouseEvent): void {\r\n inlineZoomImageOnHover(event, this.props.config.dataScale);\r\n }\r\n\r\n private _onInlineImageClick(event: React.MouseEvent): void {\r\n if (window.innerWidth <= 768) { // $msv-breakpoint-m\r\n return;\r\n }\r\n\r\n inlineZoomInit(event, this.props.config.dataScale);\r\n this.setState({\r\n isImageZoomed: true\r\n });\r\n }\r\n\r\n private _onImageMouseOut(event: React.MouseEvent): void {\r\n inlineZoomImageOnMouseOut(event);\r\n this.setState({\r\n isImageZoomed: false\r\n });\r\n\r\n }\r\n\r\n private _onContainerZoomImageClick(event: React.MouseEvent): void {\r\n if (window.innerWidth <= 768) { // $msv-breakpoint-m\r\n return;\r\n }\r\n\r\n onContainerZoomInit(event);\r\n\r\n this.setState({\r\n isImageZoomed: true\r\n });\r\n }\r\n\r\n private _onMouseOutLensContainer(event: React.MouseEvent): void {\r\n onMouseOutLensContainer(event);\r\n\r\n this.setState({\r\n isImageZoomed: false\r\n });\r\n }\r\n\r\n private _renderImageInContainerOnZoom(image: IImageData, imageSettings:IImageSettings, index: number): React.ReactNode {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n private _renderImageFullScreenOnZoom(image: IImageData, imageSettings:IImageSettings, index: number): React.ReactNode {\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n private _mapProductToImageData(product: SimpleProduct): IImageData {\r\n return {\r\n src: product.PrimaryImageUrl || ''\r\n };\r\n }\r\n\r\n private isFirstItem = () => this.state.activeIndex === 0;\r\n\r\n private isLastItem = () => this.state.mediaGalleryItems && this.state.activeIndex === this.state.mediaGalleryItems.length - 1;\r\n\r\n private openModalDialog = (): void => {\r\n this._toggleModal();\r\n }\r\n\r\n private _toggleModal(): void {\r\n if (this.state.modalIsOpen) {\r\n const parentDiv = this._inlineZoomDivRef.get(this.state.activeIndex);\r\n if (parentDiv && parentDiv.children && parentDiv.children.length >= 2) {\r\n const image = parentDiv.children[1].querySelector('img');\r\n if (image) {\r\n image.removeAttribute('style');\r\n }\r\n }\r\n this.setState({\r\n isImageZoomed: false\r\n });\r\n }\r\n this.setState({\r\n isImageZoomed: false,\r\n modalIsOpen: !this.state.modalIsOpen\r\n });\r\n removeInlineZoomStyle();\r\n }\r\n\r\n private imageModalSlider=(ZoomView:string):React.ReactElement => {\r\n const {\r\n data: {\r\n product: { result: product }\r\n },\r\n resources,\r\n config\r\n } = this.props;\r\n let mediaGalleryItems = this.state.mediaGalleryItems;\r\n\r\n if (!mediaGalleryItems && product) {\r\n mediaGalleryItems = [this._mapProductToImageData(product)];\r\n }\r\n\r\n const galleryImageSettings = config.galleryImageSettings;\r\n if(galleryImageSettings) {\r\n galleryImageSettings.cropFocalRegion = true;\r\n }\r\n\r\n const carouselprops = {\r\n tag: Carousel,\r\n className: 'ms-media-gallery__carousel',\r\n items:\r\n mediaGalleryItems &&\r\n mediaGalleryItems.map((item: IImageData, index: number) => this._renderCarouselItemImageView(ZoomView, item, galleryImageSettings || this.defaultGalleryImageSettings, index)),\r\n activeIndex: this.state.activeIndex,\r\n next: this.next,\r\n previous: this.previous,\r\n interval: false,\r\n directionTextPrev: resources.previousScreenshotFlipperText,\r\n directionTextNext: resources.nextScreenshotFlipperText,\r\n onIndicatorsClickHandler: this.goToIndex,\r\n showPaginationTooltip: true,\r\n hideIndicator: true,\r\n handleOnExited: this.onExited,\r\n handleOnExiting: this.onExiting,\r\n } as IComponentNodeProps;\r\n\r\n const carousel = ;\r\n\r\n const imageModalSliderProps:IModalViewProps = {\r\n modalIsOpen:this.state.modalIsOpen,\r\n ontoggle:this._toggleModal,\r\n galleryCarousel: carousel\r\n };\r\n return ImagefullView(imageModalSliderProps) as React.ReactElement;\r\n }\r\n}\r\n\r\nexport default MediaGallery;\r\n","/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IMediaGalleryThumbnailItemViewProps, IMediaGalleryThumbnailsViewProps, IMediaGalleryViewProps } from '@msdyn365-commerce-modules/media-gallery';\r\n\r\nconst MediaGalleryView: React.FC = props => {\r\n const {CarouselProps, Thumbnails, MediaGallery, Modal} = props;\r\n\r\n return (\r\n \r\n \r\n {Modal}\r\n {_renderThumbnails(Thumbnails)}\r\n \r\n );\r\n};\r\n\r\nconst _renderThumbnails = (thumbnails: IMediaGalleryThumbnailsViewProps): JSX.Element => {\r\n const { ThumbnailsContainerProps, SingleSlideCarouselComponentProps, items } = thumbnails;\r\n\r\n return (\r\n \r\n \r\n {items && items.map(_renderThumbnailItem)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderThumbnailItem = (thumbnail: IMediaGalleryThumbnailItemViewProps): JSX.Element => {\r\n const { ThumbnailItemContainerProps, Picture } = thumbnail;\r\n\r\n return (\r\n \r\n {Picture}\r\n \r\n );\r\n};\r\n\r\nexport default MediaGalleryView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable no-duplicate-imports */\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface IPromoBannerCloseButton {\r\n closeButtonAriaLabel?: string;\r\n label?: string;\r\n telemetryContent?: ITelemetryContent;\r\n onClose(): void;\r\n\r\n}\r\n\r\nexport const PromoBannerCloseButton: React.FC = ({ closeButtonAriaLabel, label, telemetryContent, onClose }) => {\r\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PromoBannerClose);\r\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n return (\r\n \r\n );\r\n};","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable no-duplicate-imports */\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\nimport { ILinksData } from '../citta-promo-banner.props.autogenerated';\r\n\r\nexport interface IPromoBannerLinks {\r\n links: ILinksData[];\r\n requestContext: Msdyn365.IRequestContext;\r\n telemetryContent: ITelemetryContent;\r\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\r\n}\r\n\r\nexport const PromoBannerLinks: React.FC = ({ links, requestContext, onTextChange, telemetryContent }) => {\r\n const editableLinks = _mapEditableLinks(links, telemetryContent);\r\n return(\r\n \r\n {editableLinks && editableLinks.length ?\r\n \r\n : null\r\n }\r\n \r\n );\r\n};\r\n\r\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent: ITelemetryContent): Msdyn365.ILinksData[] | null => {\r\n if(!linkdata || linkdata.length === 0) {\r\n return null;\r\n }\r\n const editableLinks: Msdyn365.ILinksData[] = [];\r\n linkdata.forEach((link,index) => {\r\n // Construct telemetry attribute to render\r\n const payLoad = getPayloadObject('click', telemetryContent, '', '');\r\n const linkText = link.linkText ? link.linkText : '';\r\n payLoad.contentAction.etext = linkText;\r\n const attributes = getTelemetryAttributes(telemetryContent, payLoad);\r\n const editableLink: Msdyn365.ILinksData = {\r\n ariaLabel: link.ariaLabel,\r\n className: 'ms-promo-banner__link',\r\n linkText: link.linkText,\r\n linkUrl: link.linkUrl.destinationUrl,\r\n openInNewTab: link.openInNewTab,\r\n role: 'button',\r\n additionalProperties: attributes,\r\n onClick: onTelemetryClick(telemetryContent, payLoad, linkText)\r\n };\r\n editableLinks.push(editableLink);\r\n });\r\n\r\n return editableLinks;\r\n};\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\nexport interface IPromoBannerText {\r\n text: string;\r\n requestContext: Msdyn365.IRequestContext;\r\n onTextChange(event: Msdyn365.ContentEditableEvent): void;\r\n}\r\n\r\nexport const PromoBannerText: React.FC = ({ text, onTextChange, requestContext }) => {\r\n return(\r\n \r\n );\r\n};","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable no-duplicate-imports */\r\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport { Carousel } from '@msdyn365-commerce/components';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { PromoBannerCloseButton, PromoBannerLinks, PromoBannerText } from './components';\r\nimport { IBannerMessagesData, ICittaPromoBannerProps } from './citta-promo-banner.props.autogenerated';\r\n\r\nexport interface IPromoBannerState {\r\n animating: boolean;\r\n isVisible: boolean;\r\n activeIndex: number;\r\n}\r\n\r\nexport interface IPromoBannerViewProps extends ICittaPromoBannerProps<{}>, IPromoBannerState {\r\n promoBannerProps: IModuleProps;\r\n contentProps: INodeProps ;\r\n bannerMessages: IBannerMessagesData[];\r\n PromoBannerTextProps: INodeProps;\r\n PromoBannerLinksProps: INodeProps;\r\n CarouselProps: INodeProps;\r\n closeButton?: React.ReactNode;\r\n className: string;\r\n onDismiss(): void;\r\n handleText(): void;\r\n handleLinks(): void;\r\n}\r\n\r\n/**\r\n *\r\n * PromoBannerModule component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass PromoBanner extends React.PureComponent, IPromoBannerState> {\r\n public state: IPromoBannerState = {\r\n animating: false,\r\n isVisible: true,\r\n activeIndex: 0\r\n };\r\n\r\n private telemetryContent: ITelemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry);\r\n\r\n public render(): JSX.Element | null {\r\n const { bannerMessages, dismissEnabled, interval, hideFlipper, autoplay, className= '' } = this.props.config;\r\n const { closeButtonAriaLabel, closeButtonLabel } = this.props.resources;\r\n const { isVisible, activeIndex } = this.state;\r\n\r\n if (!isVisible) {\r\n this.props.context.telemetry.error('Promo banner content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n const viewProps = {\r\n // Context for telemetry and raw data for C1 to do customization\r\n // Including computed data, state data and methods\r\n ...this.props,\r\n className: classnames('ms-promo-banner', className),\r\n isVisible, // state data\r\n onDismiss: this._onDismiss, // methods\r\n handleLinks: this.handleLinkClick,\r\n handleText: this.handleTextChange,\r\n\r\n promoBannerProps: { className: classnames('ms-promo-banner', className), moduleProps: this.props, role: 'banner' },\r\n PromoBannerTextProps: {\r\n tag: PromoBannerText\r\n },\r\n PromoBannerLinksProps: {\r\n tag: PromoBannerLinks,\r\n telemetryContent: this.telemetryContent\r\n },\r\n contentProps: { className: 'ms-promo-banner__content' },\r\n bannerMessages: bannerMessages,\r\n activeIndex: activeIndex,\r\n CarouselProps: {\r\n tag: Carousel,\r\n className: 'ms-promo-banner__carousel',\r\n activeIndex: activeIndex,\r\n next: this._next,\r\n previous: this._previous,\r\n onIndicatorsClickHandler: this._goToIndex,\r\n hideIndicator: hideFlipper,\r\n interval: interval,\r\n hideFlipper: hideFlipper,\r\n autoplay: autoplay\r\n },\r\n closeButton: dismissEnabled && \r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => {\r\n if(this.props.config.bannerMessages && this.props.config.bannerMessages[0]) {\r\n this.props.config.bannerMessages[0].text = event.target.value;\r\n }\r\n }\r\n\r\n public handleLinkClick = () => {\r\n // console.log('mlmlm')\r\n //const links = this.props.config.bannerMessages[1].links;\r\n // console.log('links', links)\r\n }\r\n\r\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\r\n if(this.props.config.bannerMessages && this.props.config.bannerMessages[1]) {\r\n const links = this.props.config.bannerMessages[1].links;\r\n if(links) {\r\n links[linkIndex].linkText = event.target.value;\r\n }\r\n }\r\n };\r\n\r\n private _next = (): void => {\r\n const nextIndex = this._isLastItem() ? 0 : this.state.activeIndex + 1;\r\n this._goToIndex(nextIndex);\r\n };\r\n\r\n private _previous = (): void => {\r\n const nextIndex = this._isFirstItem() ? (this.props.config.bannerMessages ? this.props.config.bannerMessages.length - 1 : 0) : this.state.activeIndex - 1;\r\n this._goToIndex(nextIndex);\r\n };\r\n\r\n private _goToIndex = (index: number): void => {\r\n if (this.state.animating) {\r\n return;\r\n }\r\n this.setState({ activeIndex: index });\r\n };\r\n\r\n private _isFirstItem = () => this.state.activeIndex === 0;\r\n\r\n private _isLastItem = () => this.props.config.bannerMessages && this.state.activeIndex === this.props.config.bannerMessages.length - 1;\r\n\r\n private _onDismiss = (): void => {\r\n this.setState({ isVisible: false });\r\n };\r\n}\r\n\r\nexport default PromoBanner;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IPromoBannerViewProps } from './citta-promo-banner';\r\n\r\nconst PromoBannerView: React.FC = props => {\r\n const {\r\n promoBannerProps,\r\n contentProps,\r\n closeButton,\r\n bannerMessages,\r\n PromoBannerTextProps,\r\n PromoBannerLinksProps,\r\n CarouselProps,\r\n handleLinks,\r\n handleText\r\n } = props;\r\n const slides = bannerMessages && bannerMessages.map((message, index) => {\r\n if (message.links?.length) {\r\n return ( \r\n \r\n {message.text && }\r\n {message.links && message.links.length > 0 && }\r\n \r\n );\r\n }\r\n return (\r\n \r\n {message.text && }\r\n {message.links && message.links.length > 0 && }\r\n \r\n );\r\n });\r\n if(bannerMessages.length > 0){\r\n return (\r\n \r\n \r\n {closeButton}\r\n \r\n );\r\n }\r\n return null;\r\n};\r\nexport default PromoBannerView;\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\n/* eslint-disable no-duplicate-imports */\r\nimport * as React from 'react';\r\n\r\nexport interface IWishlistItemDimension {\r\n key: string;\r\n className?: string;\r\n dimensionType: string;\r\n dimensionValue: string;\r\n}\r\n\r\nexport const WishlistItemDimension: React.FC = ({ key, className, dimensionType, dimensionValue }) => (\r\n
\r\n {dimensionType}:\r\n {dimensionValue}\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\n/* eslint-disable no-duplicate-imports */\r\nimport { PriceComponent } from '@msdyn365-commerce/components';\r\nimport { IAny, ICoreContext, IGeneric, IImageSettings, Image, ITelemetry, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport {\r\n CommerceListLine,\r\n ProductPrice,\r\n ReleasedProductType,\r\n SimpleProduct\r\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport {\r\n // convertProductDimensionTypeToDimensionTypes,\r\n getFallbackImageUrl,\r\n StringExtensions\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Alert, Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IWishlistItemActionMessageState } from '../citta-wishlist-items';\r\nimport { WishlistItemDimension } from './citta-wishlist-items-dimensions';\r\n\r\nexport interface IWishlistItemProps extends CommerceListLine {\r\n product: SimpleProduct;\r\n wishlistState: IWishlistItemActionMessageState;\r\n price?: ProductPrice;\r\n context: ICoreContext>;\r\n productUrl: string;\r\n imageSettings?: IImageSettings;\r\n removeFromWishlistText: string;\r\n isInStock: boolean;\r\n addToCartText: string;\r\n outOfStockText: string;\r\n index: number;\r\n itemKey: string;\r\n telemetry: ITelemetry;\r\n moduleId: string;\r\n moduleTypeName: string;\r\n enableImageProductLink?: boolean;\r\n inventoryInformationLabel?: string;\r\n inventoryLabelClassName?: string;\r\n telemetryContent?: ITelemetryContent;\r\n handlers: {\r\n onAddToCart(product: SimpleProduct, itemKey: string): void;\r\n onRemoveItem(productId: number): void | undefined;\r\n onDismiss(): void;\r\n };\r\n resources: {\r\n productDimensionTypeColor: string;\r\n productDimensionTypeSize: string;\r\n productDimensionTypeStyle: string;\r\n originalPriceText: string;\r\n currentPriceText: string;\r\n freePriceText: string;\r\n };\r\n}\r\n\r\nexport interface IWishlistItemViewProps {\r\n key: string;\r\n productImage: React.ReactNode;\r\n productLink: React.ReactNode;\r\n productDimensions?: React.ReactNode[];\r\n productPrice?: React.ReactNode;\r\n addToCartButton?: React.ReactNode;\r\n removeButton?: React.ReactNode;\r\n productStatusMessage?: React.ReactNode;\r\n productName?: React.ReactNode;\r\n productAriaLabel?: string;\r\n entireProductLink?: string;\r\n inventoryInformation?: React.ReactNode;\r\n productUnitOfMeasure?: React.ReactNode;\r\n}\r\n\r\nconst _addItemToCart = (props: IWishlistItemProps): void => {\r\n const { product, itemKey, handlers } = props;\r\n const { onAddToCart } = handlers;\r\n\r\n onAddToCart && product && itemKey && onAddToCart(product, itemKey);\r\n};\r\n\r\nconst _removeItemFromWishlist = (props: IWishlistItemProps): void => {\r\n const { onRemoveItem } = props.handlers;\r\n const { RecordId } = props.product;\r\n\r\n onRemoveItem && RecordId && onRemoveItem(RecordId);\r\n};\r\n\r\nconst WishListItemActions = {\r\n addToCart: _addItemToCart,\r\n removeItem: _removeItemFromWishlist\r\n};\r\n\r\nconst _getFullProductLink = (props: IWishlistItemProps): string => {\r\n if (!msdyn365Commerce.isBrowser) {\r\n return '';\r\n }\r\n\r\n const fullUrl = new URL(props.productUrl, window.location.href);\r\n // for (const dimension of props.product.Dimensions ?? []) {\r\n // const dimensionValue = dimension.DimensionValue?.Value;\r\n // if (!StringExtensions.isNullOrWhitespace(dimensionValue)) {\r\n // const dimensionName = convertProductDimensionTypeToDimensionTypes(dimension.DimensionTypeValue);\r\n // fullUrl.searchParams.set(dimensionName, dimensionValue!);\r\n // }\r\n // }\r\n return fullUrl.href;\r\n // return updateProductUrl(productUrl, context, swatch);\r\n};\r\n\r\nconst _renderAriaLabel = (props: IWishlistItemProps): string => {\r\n const { product, price, context, resources } = props;\r\n\r\n const { Name, Dimensions } = product;\r\n const { productDimensionTypeColor, productDimensionTypeSize, productDimensionTypeStyle } = resources;\r\n\r\n let formattedPrice = 'Free';\r\n let dimensions = null;\r\n\r\n if (price) {\r\n formattedPrice =\r\n price.BasePrice === 0 ? resources.freePriceText : context.cultureFormatter.formatCurrency(price.BasePrice!, price.CurrencyCode);\r\n }\r\n\r\n if (Dimensions) {\r\n dimensions = Dimensions.map(productDimension => {\r\n switch (productDimension.DimensionTypeValue) {\r\n case 1:\r\n return `${productDimensionTypeColor}${productDimension.DimensionValue && productDimension.DimensionValue.Value}`;\r\n case 3:\r\n return `${productDimensionTypeSize}${productDimension.DimensionValue && productDimension.DimensionValue.Value}`;\r\n case 4:\r\n return `${productDimensionTypeStyle}${productDimension.DimensionValue && productDimension.DimensionValue.Value}`;\r\n default:\r\n return '';\r\n }\r\n });\r\n }\r\n\r\n return `${Name} ${formattedPrice} ${(dimensions && dimensions.join('')) || ''}`;\r\n};\r\n\r\n/**\r\n * Renders a link to a product based on the given props.\r\n * @param input - Wishlist item props with the info about the product.\r\n * @param productUrl - The url to the product.\r\n * @returns React component with a link to a product.\r\n */\r\nconst renderProductLink = (input: IWishlistItemProps, productUrl: string) => {\r\n const { telemetryContent } = input;\r\n const { RecordId: recordId, Name: productName } = input.product;\r\n const payLoad = getPayloadObject('click', telemetryContent!, '', recordId.toString());\r\n const productAttributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n const productPageUrlWithSwatch = productUrl;\r\n return (\r\n !StringExtensions.isNullOrWhitespace(productPageUrlWithSwatch) && (\r\n \r\n {productName}\r\n \r\n )\r\n );\r\n};\r\n\r\n/**\r\n * Renders a product name box.\r\n * @param productName - The text to display.\r\n * @returns React component with a name of a product.\r\n */\r\nconst renderProductName = (productName: string) => {\r\n return
{productName}
;\r\n};\r\n\r\n/**\r\n * Renders inventory information.\r\n * @param inventoryInformationLabel - The text to display.\r\n * @param inventoryLabelClassName - The component class name.\r\n * @returns React component.\r\n */\r\nconst renderInventoryInformationLabel = (inventoryInformationLabel: string | undefined, inventoryLabelClassName: string | undefined) => {\r\n const inventoryCssName = inventoryLabelClassName\r\n ? `ms-wishlist-items__inventory-label ${inventoryLabelClassName}`\r\n : 'ms-wishlist-items__inventory-label';\r\n return (\r\n !StringExtensions.isNullOrWhitespace(inventoryInformationLabel) && (\r\n {inventoryInformationLabel}\r\n )\r\n );\r\n};\r\n\r\n/**\r\n * Renders add to cart button.\r\n * @param input - Wishlist item props with the configuration.\r\n * @returns React component.\r\n */\r\nconst WishlistItemAddToCartButtonComponent = (input: IWishlistItemProps) => {\r\n const { isInStock, addToCartText, outOfStockText } = input;\r\n\r\n // Check if the product is service or not by product type.\r\n const isServiceItem = input.product.ItemTypeValue === ReleasedProductType.Service;\r\n\r\n const addItemAction = React.useCallback(() => {\r\n WishListItemActions.addToCart(input);\r\n }, [input]);\r\n\r\n return (\r\n \r\n {((isServiceItem || isInStock) && addToCartText) || outOfStockText}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Renders remove from wishlist button.\r\n * @param input - Wishlist item props with the configuration.\r\n * @returns React component.\r\n */\r\nconst WishlistItemRemoveFromWishlistButtonComponent = (input: IWishlistItemProps) => {\r\n const { removeFromWishlistText } = input;\r\n\r\n const removeItemAction = React.useCallback(() => {\r\n WishListItemActions.removeItem(input);\r\n }, [input]);\r\n\r\n return
\r\n );\r\n }\r\n\r\n private _inlineZoomImageOnHover(event: React.MouseEvent): void {\r\n inlineZoomImageOnHover(event, this.props.config.dataScale ?? String(defaultDataScale));\r\n }\r\n\r\n private _handleMobileViewZoomedImageClick(event: React.MouseEvent) {\r\n const target = this.state.shouldUseOptimizedImage ? (event.target as HTMLImageElement) : event.currentTarget;\r\n const mobileZoomedInImageClassName = 'msc-mobile-zoomed-in';\r\n if (!this.state.isMobileImageZoomed) {\r\n const bounds = target.getBoundingClientRect();\r\n const dataScale = Number(this.props.config.dataScale ?? defaultDataScale);\r\n\r\n const positionX = event.clientX - bounds.left;\r\n const positionY = event.clientY - bounds.top;\r\n const scaledPositionX = positionX * dataScale;\r\n const scaledPositionY = positionY * dataScale;\r\n\r\n target.style.transform = `scale(${dataScale})`;\r\n target.classList.add(mobileZoomedInImageClassName);\r\n target.parentElement!.style.overflow = 'auto';\r\n target.parentElement!.scrollTo(scaledPositionX - positionX, scaledPositionY - positionY);\r\n this.setState({\r\n isMobileImageZoomed: true\r\n });\r\n } else {\r\n target.style.transform = '';\r\n target.classList.remove(mobileZoomedInImageClassName);\r\n target.parentElement!.style.overflow = '';\r\n this.setState({\r\n isMobileImageZoomed: false\r\n });\r\n }\r\n }\r\n\r\n private _onInlineImageClick(event: React.MouseEvent): void {\r\n if (window.innerWidth <= 768) {\r\n // $msv-breakpoint-m\r\n this._handleMobileViewZoomedImageClick(event);\r\n return;\r\n }\r\n inlineZoomInitClick(event, this.props.config.dataScale ?? String(defaultDataScale));\r\n this.setState({\r\n isImageZoomed: true\r\n });\r\n }\r\n\r\n private _onImageMouseOut(event: React.MouseEvent): void {\r\n inlineZoomImageOnMouseOut(event);\r\n this.setState({\r\n isImageZoomed: false\r\n });\r\n }\r\n\r\n private _onContainerZoomImageClick(event: React.MouseEvent): void {\r\n if (window.innerWidth <= 768) {\r\n // $msv-breakpoint-m\r\n this._handleMobileViewZoomedImageClick(event);\r\n return;\r\n }\r\n\r\n onContainerZoomInit(event);\r\n\r\n this.setState({\r\n isImageZoomed: true\r\n });\r\n }\r\n\r\n private _onMouseOutLensContainer(event: React.MouseEvent): void {\r\n onMouseOutLensContainer(event);\r\n\r\n this.setState({\r\n isImageZoomed: false\r\n });\r\n }\r\n\r\n private _renderImageInContainerOnZoom(image: IImageData, imageSettings: IImageSettings, index: number): React.ReactNode {\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n private _renderImageFullScreenOnZoom(image: IImageData, imageSettings: IImageSettings, index: number): React.ReactNode {\r\n return (\r\n
\r\n \r\n
\r\n {}\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n /**\r\n * Render the video thumbnail in full screen.\r\n * @param mediaData - Media Data.\r\n * @param index - Index\r\n * @param imageSettings - Image settings.\r\n * @returns - JSX.Element\r\n */\r\n private readonly _renderVideoThumbnail = (mediaData: IMediaData, index: number, imageSettings: IImageSettings): React.ReactNode => {\r\n const videoData = mediaData.videoData;\r\n let image: IImageData;\r\n if (videoData?.thumbnail) {\r\n image = videoData.thumbnail;\r\n } else {\r\n image = {\r\n src: 'empty'\r\n };\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n {}\r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n private _mapProductToImageData(product: SimpleProduct): IImageData {\r\n return {\r\n src: product.PrimaryImageUrl ?? ''\r\n };\r\n }\r\n\r\n private _renderEmptyImage(imageSettings: IImageSettings | undefined): React.ReactNode {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n private _getEmptyThumbnailItem(\r\n imageSettings: IImageSettings | undefined,\r\n index: number,\r\n modifiedActiveIndex: number\r\n ): IMediaGalleryThumbnailItemViewProps {\r\n const classes = classnames(\r\n 'ms-media-gallery__thumbnail-item',\r\n modifiedActiveIndex === index ? 'ms-media-gallery__thumbnail-item-active' : ''\r\n );\r\n return {\r\n ThumbnailItemContainerProps: {\r\n tag: 'li' as NodeTag,\r\n className: classes,\r\n role: 'tab',\r\n tabIndex: 0,\r\n key: 'empty',\r\n 'aria-label': '',\r\n 'aria-selected': modifiedActiveIndex === index,\r\n onClick: this._generateOnThumbnailClick(index),\r\n onKeyDown: this._generateOnThumbnailKeyDown(index)\r\n },\r\n Picture: (\r\n \r\n )\r\n };\r\n }\r\n\r\n private readonly isFirstItem = () => this.state.activeIndex === 0;\r\n\r\n private readonly isLastItem = () => {\r\n const images = this.state.mediaGalleryItems;\r\n return images && this.state.activeIndex === images.length - 1;\r\n };\r\n\r\n private readonly openModalDialog = (): void => {\r\n this._toggleModal();\r\n };\r\n\r\n private _toggleModal(): void {\r\n if (this.state.modalIsOpen) {\r\n this.fullScreenOverlayButtonRef.current?.focus();\r\n const parentDiv = this._inlineZoomDivRef.get(this.state.activeIndex);\r\n if (parentDiv && parentDiv.children && parentDiv.children.length >= 2) {\r\n const image = parentDiv.children[1].querySelector('img');\r\n if (image) {\r\n image.removeAttribute('style');\r\n }\r\n }\r\n this.setState({\r\n isImageZoomed: false\r\n });\r\n }\r\n this.setState({\r\n isImageZoomed: false,\r\n modalIsOpen: !this.state.modalIsOpen\r\n });\r\n removeInlineZoomStyle();\r\n removeContainerZoomStyle();\r\n }\r\n\r\n private readonly imageModalSlider = (ZoomView: string): React.ReactElement => {\r\n const {\r\n data: {\r\n product: { result: product }\r\n },\r\n resources\r\n } = this.props;\r\n let mediaGalleryItems = this.state.mediaGalleryItems;\r\n\r\n if (!mediaGalleryItems && product) {\r\n mediaGalleryItems = [this._mapProductToImageData(product)];\r\n }\r\n const carouselprops = {\r\n tag: Carousel,\r\n className: 'ms-media-gallery__carousel',\r\n items:\r\n mediaGalleryItems &&\r\n mediaGalleryItems.map((item: IImageData, index: number) =>\r\n this._renderCarouselItemImageView(ZoomView, item, this._zoomedImageSettings, index, true)\r\n ),\r\n activeIndex: this.state.activeIndex,\r\n next: this.next,\r\n previous: this.previous,\r\n interval: false,\r\n directionTextPrev: resources.previousScreenshotFlipperText,\r\n directionTextNext: resources.nextScreenshotFlipperText,\r\n onIndicatorsClickHandler: this.goToIndex,\r\n showPaginationTooltip: true,\r\n hideIndicator: false,\r\n keyboard: false,\r\n handleOnExited: this.onExited,\r\n handleOnExiting: this.onExiting,\r\n isDisabledFunctionality: this.state.isMobileImageZoomed\r\n } as IComponentNodeProps;\r\n const carousel = ;\r\n\r\n const imageModalSliderProps: IModalViewProps = {\r\n modalIsOpen: this.state.modalIsOpen,\r\n ontoggle: this._toggleModal,\r\n galleryCarousel: carousel,\r\n classNames: classnames('ms-media-gallery__modal', 'msc-modal-input-required')\r\n };\r\n return ImagefullView(imageModalSliderProps) as React.ReactElement;\r\n };\r\n\r\n private shouldUseCmsAltText = (): boolean => {\r\n if (this.props.config.altTextSource === 'product') {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n}\r\n\r\nexport default MediaGallery;\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/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IMediaGalleryThumbnailItemViewProps, IMediaGalleryThumbnailsViewProps, IMediaGalleryViewProps } from '@msdyn365-commerce-modules/media-gallery';\r\n\r\nconst MediaGalleryView: React.FC = props => {\r\n const { CarouselProps, Thumbnails, MediaGallery, Modal } = props;\r\n\r\n return (\r\n \r\n \r\n {Modal}\r\n {_renderThumbnails(Thumbnails)}\r\n \r\n );\r\n};\r\n\r\nconst _renderThumbnails = (thumbnails: IMediaGalleryThumbnailsViewProps): JSX.Element => {\r\n const { ThumbnailsContainerProps, SingleSlideCarouselComponentProps, items } = thumbnails;\r\n\r\n return (\r\n \r\n {items && items.map(_renderThumbnailItem)}\r\n \r\n );\r\n};\r\n\r\nconst _renderThumbnailItem = (thumbnail: IMediaGalleryThumbnailItemViewProps): JSX.Element => {\r\n const { ThumbnailItemContainerProps, Picture } = thumbnail;\r\n\r\n return {Picture};\r\n};\r\n\r\nexport default MediaGalleryView;\r\n","import { debounce } from 'lodash';\r\nimport * as React from 'react';\r\nimport { IQuantityProps } from './Quantity.props';\r\n\r\ninterface IQuantityState {\r\n currentInput: number;\r\n}\r\n/**\r\n * Quantity Component - This component is used to add or remove quantity\r\n */\r\n\r\nexport default class Quantity extends React.PureComponent {\r\n public static defaultProps: Partial = {\r\n min: 1,\r\n decrementGlyphClass: 'fas fa-minus',\r\n incrementGlyphClass: 'fas fa-plus'\r\n };\r\n\r\n private inputRef: React.RefObject = React.createRef();\r\n\r\n constructor(props: IQuantityProps) {\r\n super(props);\r\n this.state = { currentInput: props.currentCount || 1 };\r\n this._onIncrement = this._onIncrement.bind(this);\r\n this._onDecrement = this._onDecrement.bind(this);\r\n this._handleChange = this._handleChange.bind(this);\r\n }\r\n\r\n public render(): JSX.Element {\r\n const glyphMinusClassName: string = `${this.props.decrementGlyphClass!} quantity__controls-glyph`;\r\n const glyphPlusClassName: string = `${this.props.incrementGlyphClass!} quantity__controls-glyph`;\r\n this.setState({\r\n currentInput: this.props.currentCount || 1\r\n })\r\n const disabled = this.state.currentInput === this.props.min;\r\n const incDisabled = this.state.currentInput === this.props.max;\r\n const currentValue = this.state.currentInput;\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n }\r\n\r\n private _onIncrement(): void {\r\n let invokeCallback = false;\r\n let amount:number = this.props.min || 1;\r\n this.setState((prevState: IQuantityState) => {\r\n if (prevState.currentInput + amount <= this.props.max) {\r\n invokeCallback = true;\r\n return { currentInput: prevState.currentInput + amount};\r\n } else {\r\n invokeCallback = false;\r\n return { currentInput: prevState.currentInput };\r\n }\r\n // tslint:disable-next-line:align\r\n }, () => {\r\n invokeCallback && this.props.onChange && this.props.onChange(this.state.currentInput);\r\n });\r\n }\r\n\r\n private _onDecrement(): void {\r\n let invokeCallback = false;\r\n let amount:number = this.props.min || 1;\r\n this.setState((prevState: IQuantityState) => {\r\n if (prevState.currentInput > amount) {\r\n invokeCallback = true;\r\n return { currentInput: prevState.currentInput - amount };\r\n } else {\r\n invokeCallback = false;\r\n return { currentInput: amount };\r\n }\r\n // tslint:disable-next-line:align\r\n }, () => { invokeCallback && this.props.onChange && this.props.onChange(this.state.currentInput); });\r\n }\r\n\r\n private _handleChange(e: React.ChangeEvent): void {\r\n const currentValue = parseInt((e.target.value), 10);\r\n const minValue = this.props.min === undefined ? 1 : this.props.min;\r\n const inputElement = this.inputRef && this.inputRef.current && this.inputRef.current instanceof HTMLInputElement && this.inputRef.current;\r\n\r\n if (currentValue > this.props.max) {\r\n this.setState({ currentInput: this.props.max },\r\n () => {\r\n debounce(() => {\r\n this.props.onChange && this.props.onChange(this.state.currentInput);\r\n }, 200)();});\r\n } else {\r\n this.setState({ currentInput: currentValue },\r\n () => {\r\n debounce(() => {\r\n if(!isNaN(this.state.currentInput) && !(this.state.currentInput < minValue)) {\r\n this.props.onChange && this.props.onChange(this.state.currentInput);\r\n\r\n if (inputElement) {\r\n inputElement.setAttribute('aria-valuenow', currentValue.toString());\r\n inputElement.setAttribute('value', currentValue.toString());\r\n }\r\n }\r\n }, 200)();});\r\n }\r\n }\r\n\r\n private _validateMin = (): void => {\r\n const minValue = this.props.min === undefined ? 1 : this.props.min;\r\n if(isNaN(this.state.currentInput) || (this.state.currentInput < minValue)) {\r\n this.setState({ currentInput: minValue }, () => { this.props.onChange && this.props.onChange(this.state.currentInput); });\r\n } else {\r\n this.props.onChange && this.props.onChange(this.state.currentInput);\r\n }\r\n }\r\n}","import * as React from 'react';\r\nexport interface ILaybuyPriceBreakdownProps {\r\n title: React.ReactNode;\r\n price: number;\r\n imageUrl: string;\r\n}\r\n\r\n// tslint:disable-next-line:no-empty-interface\r\ninterface ILaybuyPriceBreakdownInfoState {\r\n laybuyPriceBreakdownInstalment: number | string;\r\n showLaybuyPriceBreakdownModal: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * The PromoCode component renders the promocode section.\r\n * @extends {React.PureComponent}\r\n */\r\nclass LaybuyPriceBreakdown extends React.Component {\r\n constructor(props: ILaybuyPriceBreakdownProps, state: ILaybuyPriceBreakdownInfoState) {\r\n super(props);\r\n this.state = {\r\n laybuyPriceBreakdownInstalment: 0,\r\n showLaybuyPriceBreakdownModal: false,\r\n };\r\n this._toggleModal = this._toggleModal.bind(this);\r\n }\r\n\r\n public async componentDidMount(): Promise {\r\n if (this.props.price) {\r\n this._calculatelaybuyPriceBreakdownInstalment();\r\n }\r\n }\r\n public componentDidUpdate(): void {\r\n this._calculatelaybuyPriceBreakdownInstalment();\r\n }\r\n public render(): JSX.Element {\r\n // const TERMS_URL = 'https://www.laybuy.com/au/consumer-terms';\r\n const AMOUNT_OF_INSTALLMENTS = 6;\r\n // const ICON_PATH = this.props.imageUrl;\r\n const hasPrice: boolean = this.state.laybuyPriceBreakdownInstalment !== 0 ? true : false;\r\n const wrapperClassName = `laybuyPriceBreakdown-info ${hasPrice ? 'laybuyPriceBreakdown-loaded' : ''}`;\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{this.props.title}
\r\n
${this.props.price}
\r\n
pay in 6 weekly payments from ${(this.props.price / 6).toFixed(2)}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
EASY SIGN-UP
\r\n
Easy Sign-up: Just select \"Laybuy\" as your form of payment at checkout. All you need is a debit or credit card to create an account.
\r\n
\r\n
\r\n
\r\n
PAY IN {AMOUNT_OF_INSTALLMENTS} INSTALMENTS
\r\n
Choose your payment day, view your schedule and select pay now to complete your order.
\r\n
\r\n
\r\n
\r\n
INSTANT APPROVAL
\r\n
Once approved you will be able to complete purchases using Laybuy.
\r\n
\r\n
\r\n
\r\n
NOTHING EXTRA TO PAY
\r\n
Laybuy doesn't charge you any interest or upfront fees.
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n private _toggleModal(): void {\r\n this.setState({\r\n showLaybuyPriceBreakdownModal: !this.state.showLaybuyPriceBreakdownModal\r\n });\r\n }\r\n private _calculatelaybuyPriceBreakdownInstalment(): void {\r\n // compare product price to min and max laybuyPriceBreakdown prices\r\n const price = this.props.price ? this.props.price : null;\r\n const instalment = price ? (price / 6).toFixed(2) : 0;\r\n if (instalment !== this.state.laybuyPriceBreakdownInstalment) {\r\n this.setState({\r\n laybuyPriceBreakdownInstalment: price ? (price / 6).toFixed(2) : 0\r\n });\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default LaybuyPriceBreakdown;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport {\r\n IBuyboxCallbacks,\r\n IBuyboxData,\r\n IBuyboxProductConfigureDropdownViewProps,\r\n IBuyboxProductConfigureViewProps,\r\n IBuyboxProductQuantityViewProps,\r\n IBuyboxProps,\r\n IBuyboxState,\r\n IBuyboxViewProps\r\n} from '@msdyn365-commerce-modules/buybox';\r\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport { reaction } from 'mobx';\r\nimport * as React from 'react';\r\nimport { getRichTextHtml } from '@msdyn365-commerce/core';\r\nimport getAttributesForSelectedVariant, { AttributesForSelectedVariantInput } from '../../../data-actions/accordion/get-attributes-for-selected-variant';\r\nimport { IBuyboxProps as IBuyboxExtentionProps, IBuyboxResources as IBuyboxExtentionResources } from '../definition-extensions/buybox.ext.props.autogenerated';\r\nimport { Quantity } from '../utilities/quantity';\r\nimport { IBuyBoxData } from './buybox.data';\r\nimport AfterPayInfo from './components/afterpay_info';\r\nimport Sidebar from './components/sidebar';\r\nimport { getBuyboxFindInStore } from './components/buybox-find-in-store';\r\nimport { getBuyboxProductConfigure } from './components/buybox-product-configure';\r\nimport { getBuyboxAddToCart, getBuyboxProductAddToWishlist, getBuyboxProductDescription } from './components/buybox-small-components';\r\nimport LaybuyPriceBreakdown from './components/layBuyPriceBreakdown';\r\nimport PriceComponent from '../../../components/price-component';\r\nexport class BuyboxView extends React.PureComponent & IBuyboxExtentionProps> {\r\n public componentDidMount() {\r\n setTimeout(function() {\r\n var containerEl = document.getElementsByClassName(\"msc-ss-carousel-vert-slide\")[0];\r\n var elements = document.getElementsByClassName(\"msc-ss-carousel-vert-item\");\r\n \r\n if (elements) {\r\n for (var i = 0; i< elements.length; i++) {\r\n elements[i].addEventListener('click', (e: any) => {\r\n containerEl.scrollTo({left: e.target.parentNode.closest(\".msc-ss-carousel-vert-item\").offsetLeft - 5, behavior: 'smooth'})\r\n })\r\n\r\n }\r\n }\r\n }, 3000);\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const props = this.props;\r\n\r\n // @ts-ignore: Compiler not recognizing condition check for function params\r\n reaction(\r\n () => (props.data.product.result ? props.data.product.result.RecordId : null),\r\n () => {\r\n if (props.context && props.data.product.result) {\r\n const actionInput = new AttributesForSelectedVariantInput(\r\n props.data.product.result.RecordId,\r\n // @ts-ignore\r\n +props.context.actionContext.requestContext.apiSettings.channelId,\r\n props.data.product.result\r\n );\r\n \r\n getAttributesForSelectedVariant(actionInput, props.context.actionContext).catch(error => {\r\n props.telemetry.warning('Unable to update attributes for Product');\r\n props.telemetry.error(error);\r\n });\r\n }\r\n }\r\n );\r\n const configure= getBuyboxProductConfigure(props, props.state,props.callbacks);\r\n const { ModuleProps, MediaGalleryContainerProps, ProductInfoContainerProps, quantity, title, rating, callbacks, state, resources, slots } = props;\r\n const { productPrice } = props.data;\r\n\r\n const ChannelCountryRegionISOCode = props.data.channelConfiguration && props.data.channelConfiguration.result && props.data.channelConfiguration.result.ChannelCountryRegionISOCode;\r\n const prodPrice = productPrice && productPrice.result && productPrice.result.CustomerContextualPrice || 0;\r\n const productID = productPrice && productPrice.result && productPrice.result.ItemId || '';\r\n const isEnquireNow = productID.startsWith('CUS') || productID.startsWith('FWL') || productID.startsWith('EJP');\r\n const laybuyImageUrl = props.config.laybuyImageUrl ? props.config.laybuyImageUrl : 'https://files-ap-prod.cms.commerce.dynamics.com/cms/api/tstpxgfmq/binary/MB3JAm';\r\n const afterpayImage = props.config.afterpayImage ? props.config.afterpayImage : 'https://files-ap-prod.cms.commerce.dynamics.com/cms/api/hdrzssjspt/binary/MFsJR';\r\n const afterpaydesktopImg = props.config.afterpaydesktopImg ? props.config.afterpaydesktopImg : 'https://images-ap-prod.cms.commerce.dynamics.com/cms/api/hdrzssjspt/imageFileData/MFsHS';\r\n const afterpaymobileImg = props.config.afterpaymobileImg ? props.config.afterpaymobileImg : 'https://images-ap-prod.cms.commerce.dynamics.com/cms/api/hdrzssjspt/imageFileData/MFsHV';\r\n \r\n const price = productPrice && _getBuyboxProductPrice(props, productPrice.result);\r\n const hidePayLaterOptions = props.config.hidePayLaterOptions;\r\n const hideInStoreOptions = props.config.hideInStoreOptions;\r\n if (slots.giftCard) {\r\n return (\r\n \r\n {slots.giftCard}\r\n \r\n );\r\n }\r\n\r\n const productAttributes =props.data && props.data.productAttributes && props.data.productAttributes.result;\r\n const imageOrientationProperty = productAttributes &&\r\n props.data?.productAttributes?.result?.filter(p=> p.Name?.toLowerCase() === 'image orientation');\r\n const imageOrientation = imageOrientationProperty && imageOrientationProperty[0] ? imageOrientationProperty[0].TextValue! : 'portrait';\r\n\r\n const adjustedPrice = productPrice.result?.AdjustedPrice || 0;\r\n\r\n return (\r\n \r\n \r\n
\r\n {props.mediaGallery}\r\n
\r\n
\r\n \r\n {title}\r\n
{price}
\r\n { adjustedPrice < 2000 &&\r\n ChannelCountryRegionISOCode && (\r\n (isEnquireNow || hidePayLaterOptions) ?
:\r\n \r\n {ChannelCountryRegionISOCode && !isEnquireNow &&\r\n \r\n }\r\n {!isEnquireNow && ChannelCountryRegionISOCode === 'NZ' &&\r\n \r\n }\r\n )}\r\n {ChannelCountryRegionISOCode && (
{getBuyboxProductDescription(props)}
)}\r\n \r\n {ChannelCountryRegionISOCode && _renderTextBlock(props.slots.textBlocks)}\r\n {ChannelCountryRegionISOCode && slots.productAttributeLink}\r\n {ChannelCountryRegionISOCode && rating}\r\n {ChannelCountryRegionISOCode && quantity && _renderQuantity(quantity, callbacks, props, state, resources)}\r\n {ChannelCountryRegionISOCode && configure && _renderConfigure(configure, props, state, callbacks)}\r\n {ChannelCountryRegionISOCode && configure && _renderSku(configure, props)}\r\n {hideInStoreOptions ?
: (ChannelCountryRegionISOCode === 'NZ' &&_renderBuyboxFindInStore(props, state, callbacks))}\r\n {ChannelCountryRegionISOCode && _renderCartAndWishlistDiv(props, state, callbacks)}\r\n {ChannelCountryRegionISOCode && slots.productAttributeCompantionProduct}\r\n {ChannelCountryRegionISOCode && _renderFreeShippingMessage(props, productAttributes)}\r\n {ChannelCountryRegionISOCode === 'NZ' && slots.freightCharges}\r\n {ChannelCountryRegionISOCode && slots.productEOQ}\r\n\r\n {ChannelCountryRegionISOCode && slots.accordion}\r\n {ChannelCountryRegionISOCode && slots.productPDFSpecification}\r\n {ChannelCountryRegionISOCode && slots.lightbox}\r\n {ChannelCountryRegionISOCode && slots.pageLink}\r\n {ChannelCountryRegionISOCode && props.shopSimilarLook && _renderShopSimilarItem(props.shopSimilarLook)}\r\n \r\n \r\n );\r\n }\r\n}\r\nconst _renderFreeShippingMessage = (props: IBuyboxViewProps & IBuyboxExtentionProps, productAttributes: AttributeValue[] | undefined) => { \r\n const freightItemAttr = productAttributes && productAttributes.find(attr => attr.Name === \"Freight Item\");\r\n if ((freightItemAttr && freightItemAttr.BooleanValue) || !props.config.freeShippingMessage) {\r\n return undefined;\r\n }\r\n /* @ts-ignore */\r\n const categoryPaths = props.data.categoryPaths && props.data.categoryPaths.result && props.data.categoryPaths.result;\r\n if (categoryPaths && categoryPaths[2] && categoryPaths[2].Name === \"Furniture\") {\r\n return undefined;\r\n }\r\n return (\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nconst _getBuyboxProductPrice = (props: any, productPrice: any) => {\r\n const { id, typeName, context, resources } = props;\r\n // @ts-ignore\r\n return productPrice && (React.createElement(PriceComponent, { id: id, typeName: typeName, context: context, data: { price: productPrice }, freePriceText: resources.priceFree, originalPriceText: resources.originalPriceText, currentPriceText: resources.currentPriceText }));\r\n}\r\n\r\nconst _renderTextBlock = (textBlocks: React.ReactNode[]): JSX.Element | undefined => {\r\n if (!textBlocks || textBlocks.length === 0) {\r\n return undefined;\r\n }\r\n\r\n return (\r\n <>\r\n {textBlocks[0]}\r\n \r\n );\r\n};\r\n\r\nconst _renderCartAndWishlistDiv = (props: IBuyboxViewProps & IBuyboxExtentionProps, state: IBuyboxState, callbacks: IBuyboxCallbacks): JSX.Element | undefined => {\r\n if (!props.addToWishlist) {\r\n return undefined;\r\n }\r\n const addToCart = getBuyboxAddToCart(props, state, callbacks);\r\n const addToWishList = getBuyboxProductAddToWishlist(props, state, callbacks);\r\n const estimatedDateProperty = props.data.productAvailableQuantity\r\n && props.data.productAvailableQuantity.result && props.data.productAvailableQuantity.result[0].ProductAvailableQuantity\r\n && props.data.productAvailableQuantity.result[0].ProductAvailableQuantity.ExtensionProperties\r\n && props.data.productAvailableQuantity.result[0].ProductAvailableQuantity.ExtensionProperties.find((property => property.Key === 'EstimatedDate'));\r\n\r\n const estimatedDateValue = estimatedDateProperty && estimatedDateProperty.Value && estimatedDateProperty.Value.StringValue;\r\n return (\r\n
\r\n {estimatedDateValue ?\r\n
Expected in Stock: {estimatedDateValue}
: null}\r\n {addToCart && addToCart.errorBlock}\r\n {addToWishList?.errorBlock}\r\n
\r\n {addToCart && addToCart.button}\r\n {addToWishList?.button}\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst _renderBuyboxFindInStore = (props: IBuyboxViewProps & IBuyboxExtentionProps, state: IBuyboxState, callbacks: IBuyboxCallbacks): JSX.Element | null => {\r\n const findInStore = getBuyboxFindInStore(props, state, callbacks);\r\n const { productPrice } = props.data;\r\n const uomSet = productPrice && productPrice.result && productPrice.result.UnitOfMeasure || '';\r\n let AvailabilitypProductTitleisSet = false;\r\n if(uomSet == 'SET4' || uomSet == 'SET6'){\r\n AvailabilitypProductTitleisSet = true;\r\n }\r\n return (\r\n findInStore ? (\r\n \r\n {findInStore.storeSelector}\r\n {findInStore.heading}\r\n {findInStore.description}\r\n {findInStore.errors}\r\n {AvailabilitypProductTitleisSet?

Availability: Please contact your local store for product availability.

: findInStore.button}\r\n {findInStore.modal}\r\n
) : null\r\n );\r\n};\r\n\r\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps, props: IBuyboxViewProps & IBuyboxExtentionProps, state: IBuyboxState, callbacks: IBuyboxCallbacks): JSX.Element | null => {\r\n const { ContainerProps } = configure;\r\n const dropdowns = getBuyboxProductConfigure(props, state, callbacks);\r\n if (dropdowns) {\r\n return (\r\n \r\n {dropdowns.dropdowns.map(_renderConfigureDropdown)}\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n};\r\n\r\nconst _renderSku = (configure: IBuyboxProductConfigureViewProps, props: IBuyboxViewProps & IBuyboxExtentionProps ): JSX.Element | null => {\r\n const { ContainerProps } = configure;\r\n const { slots } = props;\r\n if (slots) {\r\n return (\r\n \r\n {slots.productSKU}\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\r\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\r\n return (\r\n \r\n \r\n {heading}\r\n {errors}\r\n \r\n {select}\r\n \r\n );\r\n};\r\n\r\nconst _renderShopSimilarItem = (shopSimilarItem: any) => {\r\n const { ContainerProps, errors, input } = shopSimilarItem;\r\n return (React.createElement(Node, Object.assign({}, ContainerProps),\r\n errors,\r\n input));\r\n};\r\n\r\nconst _renderQuantity = (quantityComponent: IBuyboxProductQuantityViewProps, callbacks: IBuyboxCallbacks, props: IBuyboxProps, state: IBuyboxState, extentionResources: IBuyboxExtentionResources): JSX.Element | null => {\r\n const { ContainerProps, LabelContainerProps, heading, errors } = quantityComponent;\r\n\r\n const {\r\n resources,\r\n context: {\r\n app: {\r\n config: {\r\n maxQuantityForCartLineItem\r\n }\r\n }\r\n }\r\n } = props;\r\n\r\n const\r\n {\r\n quantity,\r\n } = state;\r\n\r\n const isProductAvailable: boolean = props.data.productAvailableQuantity.result && props.data.productAvailableQuantity.result[0] &&\r\n props.data.productAvailableQuantity.result[0].IsProductAvailable || false;\r\n\r\n if (isProductAvailable) {\r\n const maxQuantity = props.data.productAvailableQuantity.result &&\r\n props.data.productAvailableQuantity.result[0] &&\r\n props.data.productAvailableQuantity.result[0].ProductAvailableQuantity.AvailableQuantity || maxQuantityForCartLineItem;\r\n\r\n const onChange = (newValue: number) => {\r\n if (callbacks.updateQuantity) {\r\n callbacks.updateQuantity(newValue);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n {errors}\r\n \r\n\r\n \r\n \r\n );\r\n }\r\n return ;\r\n};\r\n\r\nexport default BuyboxView;\r\n","\r\nimport { Button } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { INotifyMeProps } from './notify-me.props';\r\nimport { INotifyMeState } from './notify-me.state';\r\n\r\n/**\r\n *\r\n * Notify Me component\r\n */\r\nexport class NotifyMe extends React.Component {\r\n private _firstNameInputRef: React.RefObject;\r\n private _lastNameInputRef: React.RefObject;\r\n private _emailAddressInputRef: React.RefObject;\r\n\r\n private requiredErrorMessage: string | undefined;\r\n private eAValidationErrorMessage: string | undefined;\r\n\r\n private firstNameValue: boolean = false;\r\n private lastNameValue: boolean = false;\r\n private emailAddressValue: boolean = false;\r\n\r\n constructor(props: INotifyMeProps) {\r\n super(props);\r\n this.state = {\r\n fNError: false,\r\n lNError: false,\r\n eAError: false,\r\n eAValError: false,\r\n subscribeChecked: false,\r\n firstName: '',\r\n lastName: '',\r\n emailAddress: ''\r\n };\r\n\r\n this._firstNameInputRef = React.createRef();\r\n this._lastNameInputRef = React.createRef();\r\n this._emailAddressInputRef = React.createRef();\r\n this._handleSend = this._handleSend.bind(this);\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const {\r\n notifyFormText,\r\n firstNamePlaceholderText,\r\n lastNamePlaceholderText,\r\n emailAddressPlaceholderText,\r\n notifyContactMessage,\r\n notifyContactMessageLink,\r\n sendButtonText\r\n } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n

\r\n {notifyFormText}\r\n

\r\n
\r\n {this.state.fNError ? this._renderAlert('contact-notifyform-firstname') : ''}\r\n \r\n
\r\n
\r\n {this.state.lNError ? this._renderAlert('contact-notifyform-lastname') : ''}\r\n \r\n
\r\n
\r\n {this.state.eAError || this.state.eAValError ? this._renderAlert('contact-notifyform-emailaddress') : ''}\r\n
\r\n
\r\n \r\n {sendButtonText}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n private isEmailValid = (email: string): boolean => {\r\n const regex = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return regex.test(email);\r\n };\r\n\r\n private handleChange = (inputText: string) => (e: React.ChangeEvent | React.ChangeEvent ) => {\r\n const value = e.target.value;\r\n switch (inputText) {\r\n case 'firstName': {\r\n this.setState({ firstName: value, reqError: false, fNError: false, lNError: false, eAError: false, eAValError: false });\r\n break;\r\n }\r\n case 'lastName': {\r\n this.setState({ lastName: value, reqError: false, fNError: false, lNError: false, eAError: false, eAValError: false });\r\n break;\r\n }\r\n case 'emailAddress': {\r\n this.setState({ emailAddress: value, reqError: false, fNError: false, lNError: false, eAError: false, eAValError: false });\r\n break;\r\n }\r\n case 'subscribe': {\r\n this.setState(prevState => ({subscribeChecked: !prevState.subscribeChecked }));\r\n break;\r\n }\r\n default: null;\r\n }\r\n }\r\n\r\n private _renderAlert(className: string): JSX.Element {\r\n const inputBoxErrors = (this.state.fNError || this.state.lNError || this.state.eAError);\r\n if (inputBoxErrors) {\r\n this.requiredErrorMessage = this.props.requiredTextErrorMessage;\r\n }\r\n if (this.state.emailAddress !== '' && this.state.eAValError) {\r\n this.eAValidationErrorMessage = this.props.eAValidationErrorMessage;\r\n }\r\n\r\n const reqError = this.state.reqError;\r\n const eAValError = this.state.eAValError;\r\n return (\r\n <>\r\n {reqError && (\r\n \r\n {\r\n this.requiredErrorMessage &&\r\n <>\r\n \r\n )}\r\n {eAValError && (\r\n \r\n {\r\n this.eAValidationErrorMessage &&\r\n <>\r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n // tslint:disable-next-line: cyclomatic-complexity\r\n private async _handleSend(e: React.MouseEvent | React.KeyboardEvent | React.FormEvent): Promise {\r\n this.firstNameValue = (this._firstNameInputRef && this._firstNameInputRef.current && this._firstNameInputRef.current.value) ? true : false;\r\n this.lastNameValue = (this._lastNameInputRef && this._lastNameInputRef.current && this._lastNameInputRef.current.value) ? true : false;\r\n this.emailAddressValue = (this._emailAddressInputRef && this._emailAddressInputRef.current && this._emailAddressInputRef.current.value) ? true : false;\r\n\r\n const fnA = (this._firstNameInputRef && this._firstNameInputRef.current && this._firstNameInputRef.current.value) ? this._firstNameInputRef.current.value : '';\r\n const lnA = (this._lastNameInputRef && this._lastNameInputRef.current && this._lastNameInputRef.current.value) ? this._lastNameInputRef.current.value : '';\r\n const eA = (this._emailAddressInputRef && this._emailAddressInputRef.current && this._emailAddressInputRef.current.value) ? this._emailAddressInputRef.current.value : '';\r\n const eAVal = this._emailAddressInputRef.current!.value;\r\n\r\n const { subscribeChecked } = this.state;\r\n\r\n if (!this.firstNameValue) {\r\n this.setState({\r\n fNError: true,\r\n reqError: true\r\n });\r\n } else if (!this.lastNameValue) {\r\n this.setState({\r\n lNError: true,\r\n reqError: true\r\n });\r\n } else if (!this.emailAddressValue) {\r\n this.setState({\r\n eAError: true,\r\n reqError: true\r\n });\r\n } else if (!this.isEmailValid(eAVal)) {\r\n this.setState({\r\n eAValError: true\r\n });\r\n } else {\r\n if (this.emailAddressValue && !this.state.eAValError) {\r\n this.props.notifySubmitClicked(fnA, lnA, eA, subscribeChecked);\r\n }\r\n this.setState({\r\n firstName: '',\r\n lastName: '',\r\n emailAddress: '',\r\n subscribeChecked: false\r\n });\r\n }\r\n }\r\n}\r\n","import { IBuyboxData, IBuyboxViewProps } from '@msdyn365-commerce-modules/buybox';\r\n// import * as MsDyn365 from '@msdyn365-commerce/core';\r\nimport { IProductInventoryInformation } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Button, getPayloadObject, getTelemetryAttributes, IPopupProps, ITelemetryContent, Modal, ModalBody, ModalHeader, Popup } from '@msdyn365-commerce-modules/utilities';\r\nimport { ProductDimensionFull } from '@msdyn365-commerce/commerce-entities';\r\nimport { PriceComponent } from '@msdyn365-commerce/components';\r\nimport { IComponentProps, IGridSettings, IImageSettings, TelemetryEvent } from '@msdyn365-commerce/core';\r\nimport { getCartState, ICartActionResult } from '@msdyn365-commerce/global-state';\r\nimport {\r\n AttributeValue, ProductAvailableQuantity, ProductDimension, ProductPrice, SimpleProduct\r\n} from '@msdyn365-commerce/retail-proxy';\r\nimport classnames from 'classnames';\r\nimport { reaction } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport React from 'react';\r\nimport { NotifyMe } from '../../../../components/citta-notify-me/notify-me';\r\nimport { submitPdpEnquiryFormAction, SubmitPdpEnquiryFormDataActionInput } from '../../../../data-actions/pdp-enquiry/submit-pdp-enquiry-form-data';\r\nimport { IBuyboxProps as IBuyboxExtentionProps } from '../../definition-extensions/buybox.ext.props.autogenerated';\r\n// import Input from 'reactstrap/lib/Input';\r\n\r\n\r\nenum SOH {\r\n stockAvailability = 'StockAvailability',\r\n stockThreshold = 'StockThreshold',\r\n estimatedDate = 'EstimatedDate',\r\n soldOut = 'Sold Out',\r\n comingSoon = 'Coming Soon',\r\n inStock = 'In Stock',\r\n notifyMe = 'NOTIFY ME',\r\n expectedinStock = 'Expected in Stock:',\r\n enquireNow = 'ENQUIRE NOW'\r\n}\r\n\r\nexport interface IAddToCartComponentProps extends IComponentProps<{ product: SimpleProduct; price?: ProductPrice; productDimensions?: ProductDimensionFull[]; productAvailableQuantity: IProductInventoryInformation[] | undefined }> {\r\n className?: string;\r\n addToCartText: string;\r\n outOfStockText: string;\r\n disabled?: boolean;\r\n quantity?: number;\r\n navigationUrl?: string;\r\n productAvailability?: ProductAvailableQuantity;\r\n getSelectedProduct?: Promise;\r\n\r\n imageSettings?: IImageSettings;\r\n gridSettings?: IGridSettings;\r\n props: IBuyboxViewProps & IBuyboxExtentionProps;\r\n isLoading?: boolean;\r\n isUpdatingDimension?: boolean;\r\n\r\n dialogStrings?: {\r\n goToCartText: string;\r\n continueShoppingText: string;\r\n headerItemOneText: string;\r\n headerItemFormatText: string;\r\n headerMessageText: string;\r\n freePriceText: string;\r\n originalPriceText: string;\r\n currentPriceText: string;\r\n };\r\n telemetryContent?: ITelemetryContent;\r\n\r\n onAdd?(result: ICartActionResult): void;\r\n onError?(result: IAddToCartFailureResult): void;\r\n changeUpdatingDimension?(isUpdatingDimension: boolean): void;\r\n}\r\n\r\nexport declare type ICartActionFailureReason = 'EMPTYINPUT' | 'MISSINGDIMENSION' | 'OUTOFSTOCK' | 'CARTACTIONFAILED';\r\nexport interface IAddToCartFailureResult {\r\n failureReason: ICartActionFailureReason;\r\n\r\n stockLeft?: number;\r\n cartActionResult?: ICartActionResult;\r\n missingDimensions?: ProductDimension[];\r\n}\r\n\r\ninterface IAddToCartState {\r\n isOpen: boolean;\r\n responseReceived: boolean;\r\n notifyResponseSuccess: boolean;\r\n name: string;\r\n lastName: string;\r\n emailAddress: string;\r\n phoneNumber: string;\r\n enquiryMessage: string;\r\n storePickerValue: string;\r\n storePickerText: string;\r\n nError: boolean;\r\n lNError: boolean;\r\n eAError: boolean;\r\n pHError: boolean;\r\n reqError: boolean;\r\n eAValError: boolean;\r\n enquiryMessageError: boolean;\r\n cHError: boolean;\r\n nLSError: boolean;\r\n subcribeNewsletterChecked: boolean;\r\n customizationsCheckedItems: string[];\r\n productTypePickerValue: string;\r\n disabled: boolean;\r\n modalOpen: boolean;\r\n isNotifyOpen: boolean;\r\n addToCartButtonText: string;\r\n productsAddedToCart: number[];\r\n}\r\n/**\r\n *\r\n * The AddToCartComponent renders the AddToCartComponent section.\r\n * @extends {React.Component}\r\n */\r\n@observer\r\nclass AddToCartComponent extends React.Component {\r\n private _productAttributeInStoreOnly: string | undefined;\r\n private response: boolean = false;\r\n private _nameInputRef: React.RefObject;\r\n private _lastNameInputRef: React.RefObject;\r\n private _emailAddressInputRef: React.RefObject;\r\n private _phoneNumberInputRef: React.RefObject;\r\n private _enquiryMessageInputRef: React.RefObject;\r\n private _storePickerSelectRef: React.RefObject;\r\n private _productTypePickerSelectRef: React.RefObject;\r\n private requiredErrorMessage: string | undefined;\r\n private eAValidationErrorMessage: string | undefined;\r\n\r\n private nameValue: boolean = false;\r\n private lastNameValue: boolean = false;\r\n private emailAddressValue: boolean = false;\r\n private phoneNumberValue: boolean = false;\r\n private addressMessageValue: boolean = false;\r\n\r\n private formInputValues: boolean = false;\r\n\r\n // ProductDimensionType 1:Color 3:Size refer ProductDimensionType enum in @msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g\r\n private colorProductDimensionTypeValue: number = 1;\r\n private sizeProductDimensionTypeValue: number = 3;\r\n\r\n constructor(props: IAddToCartComponentProps, state: IAddToCartState) {\r\n super(props);\r\n this.state = {\r\n isOpen: false,\r\n responseReceived: false,\r\n notifyResponseSuccess: false,\r\n name: '',\r\n lastName: '',\r\n emailAddress: '',\r\n phoneNumber: '',\r\n enquiryMessage: '',\r\n storePickerValue: '',\r\n storePickerText: 'Città BLOC',\r\n nError: false,\r\n lNError: false,\r\n eAError: false,\r\n pHError: false,\r\n reqError: false,\r\n eAValError: false,\r\n enquiryMessageError: false,\r\n cHError: false,\r\n nLSError: false,\r\n subcribeNewsletterChecked: false,\r\n customizationsCheckedItems: [],\r\n productTypePickerValue: '',\r\n disabled: false,\r\n modalOpen: false,\r\n isNotifyOpen: false,\r\n addToCartButtonText: this.props.addToCartText,//this.props.props.resources.addToCartText || 'Add to Cart', //HSO DS Changed Add to cart text from static to dynamic\r\n productsAddedToCart: []\r\n };\r\n this._productAttributeInStoreOnly = this.props.props.config.inStoreOnlyValue && this.props.props.config.inStoreOnlyValue.toUpperCase() || 'IN STORE ONLY';\r\n\r\n this._nameInputRef = React.createRef();\r\n this._lastNameInputRef = React.createRef();\r\n this._emailAddressInputRef = React.createRef();\r\n this._phoneNumberInputRef = React.createRef();\r\n this._enquiryMessageInputRef = React.createRef();\r\n this._storePickerSelectRef = React.createRef();\r\n this._productTypePickerSelectRef = React.createRef();\r\n this._closeModal = this._closeModal.bind(this);\r\n this._openModal = this._openModal.bind(this);\r\n this._handleSend = this._handleSend.bind(this);\r\n this._onClickHandler = this._onClickHandler.bind(this);\r\n this._onClick = this._onClick.bind(this);\r\n this._propogateResult = this._propogateResult.bind(this);\r\n this._propogateError = this._propogateError.bind(this);\r\n this._getLinkText = this._getLinkText.bind(this);\r\n this._addToCartError = this._addToCartError.bind(this);\r\n this._shouldShowOutOfStock = this._shouldShowOutOfStock.bind(this);\r\n this._isIntermediateState = this._isIntermediateState.bind(this);\r\n this._openNotifyModal = this._openNotifyModal.bind(this);\r\n this._closeNotifyModal = this._closeNotifyModal.bind(this);\r\n this._submitNotify = this._submitNotify.bind(this);\r\n }\r\n\r\n public async componentDidMount(): Promise {\r\n // @ts-ignore: Compiler not reconizing condition check for function params\r\n reaction(\r\n () => this.props.props.data.product.result ? this.props.props.data.product.result.RecordId : null,\r\n () => {\r\n if (this.props.context && this.props.props.data.product.result) {\r\n const isProductAddedToCartBefore = this.state.productsAddedToCart.indexOf(this.props.props.data.product.result.RecordId) >= 0;\r\n if (isProductAddedToCartBefore) {\r\n this.setState({ addToCartButtonText: this.props.props.resources.addedToCartText || 'Added to Cart' });\r\n } else {\r\n this.setState({ addToCartButtonText: this.props.props.resources.addToCartText || 'Add to Cart' });\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const priceComponent = this.props.data.price ? (\r\n ) : '';\r\n\r\n const popupProps: IPopupProps = {\r\n context: this.props.context,\r\n className: 'msc-add-to-cart',\r\n id: this.props.id,\r\n typeName: this.props.typeName,\r\n data: { product: this.props.data.product, price: this.props.data.price },\r\n dialogStrings: this.props.dialogStrings,\r\n imageSettings: this.props.imageSettings,\r\n gridSettings: this.props.context.request.gridSettings,\r\n productQuantity: this.props.quantity !== undefined ? this.props.quantity : 1,\r\n priceComponent: priceComponent,\r\n navigationUrl: this.props.navigationUrl,\r\n modalOpen: this.state.modalOpen,\r\n setModalOpen: (isModalOpen: boolean): void => {\r\n this.setState({ modalOpen: isModalOpen });\r\n }\r\n };\r\n\r\n const renderModalPopup = ;\r\n const label = this._getLinkText(this.props);\r\n const payload = getPayloadObject(TelemetryEvent.AddToCart, this.props.telemetryContent!, label, '');\r\n const attributes = getTelemetryAttributes(this.props.telemetryContent!, payload);\r\n const isInStoreOnly = this._getProductAttributes(this._productAttributeInStoreOnly);\r\n\r\n const activateNotifyModal = this.props.props.config.activateNotifyModal;\r\n return (\r\n <>\r\n {renderModalPopup}\r\n {isInStoreOnly ?\r\n \r\n {SOH.enquireNow}\r\n :\r\n \r\n {this._getLinkText(this.props)}\r\n \r\n }\r\n {this._renderEnquiremodal()}\r\n {activateNotifyModal && this._renderNotifyModal()}\r\n \r\n );\r\n }\r\n\r\n private async _onClickHandler(event: React.MouseEvent): Promise {\r\n await this._onClick(event, this.props);\r\n }\r\n\r\n private async _onClick(_event: React.MouseEvent, props: IAddToCartComponentProps): Promise {\r\n const cartError = this._addToCartError(props);\r\n let productToAdd = props.data.product;\r\n\r\n if (cartError) {\r\n this._propogateError(props, cartError);\r\n return;\r\n }\r\n\r\n if (!(props.getSelectedProduct === undefined)) {\r\n productToAdd = (await props.getSelectedProduct) || props.data.product;\r\n }\r\n\r\n const productsAddedToCart = this.state.productsAddedToCart;\r\n const productId = productToAdd && productToAdd.RecordId;\r\n\r\n const cartState = await getCartState(props.context.actionContext);\r\n\r\n\r\n //HSO DS\r\n let productAvailability = props.productAvailability?.AvailableQuantity;\r\n let stockcheck = props.context.app.config.enableStockCheck;\r\n const HSOConfigprop = props.data.productAvailableQuantity\r\n && props.data.productAvailableQuantity && props.data.productAvailableQuantity[0].ProductAvailableQuantity\r\n && props.data.productAvailableQuantity[0].ProductAvailableQuantity.ExtensionProperties\r\n && props.data.productAvailableQuantity[0].ProductAvailableQuantity.ExtensionProperties.find((property => property.Key === 'HSOConfig'));\r\n\r\n const HSOConfigpropval = HSOConfigprop && HSOConfigprop.Value && HSOConfigprop.Value.IntegerValue;\r\n let HSOConfig = 0;\r\n if (HSOConfigpropval != undefined) {\r\n HSOConfig = HSOConfigpropval;\r\n }\r\n if (HSOConfig == 1) {\r\n\r\n const StockThresholdprop = props.data.productAvailableQuantity\r\n && props.data.productAvailableQuantity && props.data.productAvailableQuantity[0].ProductAvailableQuantity\r\n && props.data.productAvailableQuantity[0].ProductAvailableQuantity.ExtensionProperties\r\n && props.data.productAvailableQuantity[0].ProductAvailableQuantity.ExtensionProperties.find((property => property.Key === 'StockThreshold'));\r\n\r\n const StockThresholdpropval = StockThresholdprop && StockThresholdprop.Value && StockThresholdprop.Value.IntegerValue;\r\n let StockThreshold = 0;\r\n if (StockThresholdpropval != undefined) {\r\n StockThreshold = StockThresholdpropval;\r\n }\r\n\r\n const onhandpropval = props.data.productAvailableQuantity\r\n && props.data.productAvailableQuantity && props.data.productAvailableQuantity[0].ProductAvailableQuantity\r\n && props.data.productAvailableQuantity[0].ProductAvailableQuantity.AvailableQuantity\r\n let onhand = 0;\r\n if (onhandpropval != undefined) {\r\n onhand = Number(onhandpropval);\r\n }\r\n\r\n const estimatedDateProperty = props.data.productAvailableQuantity\r\n && props.data.productAvailableQuantity && props.data.productAvailableQuantity[0].ProductAvailableQuantity\r\n && props.data.productAvailableQuantity[0].ProductAvailableQuantity.ExtensionProperties\r\n && props.data.productAvailableQuantity[0].ProductAvailableQuantity.ExtensionProperties.find((property => property.Key === 'EstimatedDate'));\r\n\r\n const estimatedDateValue = estimatedDateProperty && estimatedDateProperty.Value && estimatedDateProperty.Value.StringValue;\r\n let estimatedDate = \"\";\r\n if (estimatedDateValue == undefined) {\r\n estimatedDate = \"\";\r\n } else {\r\n estimatedDate = estimatedDateValue;\r\n }\r\n\r\n if (StockThreshold != 0 && onhand < StockThreshold && estimatedDate != \"\") {\r\n productAvailability = 1;\r\n stockcheck = false;\r\n }\r\n }\r\n await cartState.addProductToCart({\r\n product: productToAdd, additionalProperties: { orderQuantityLimitsFeatureIsEnabled: true },\r\n count: props.quantity, availableQuantity: productAvailability, enableStockCheck: stockcheck\r\n })\r\n .then(result => {\r\n if (result.status === 'SUCCESS') {\r\n if (props.dialogStrings && props.context.app.config.addToCartBehavior === 'showModal') {\r\n this.setState({\r\n disabled: false,\r\n modalOpen: true\r\n });\r\n }\r\n if (productId) {\r\n productsAddedToCart.push(productId);\r\n }\r\n this.setState({\r\n addToCartButtonText: this.props.addToCartText, //this.props.props.resources.addedToCartText || 'Added to Cart', HSO DS\r\n productsAddedToCart: productsAddedToCart\r\n });\r\n }\r\n });\r\n }\r\n\r\n private _propogateResult(props: IAddToCartComponentProps, result: ICartActionResult): void {\r\n if (props.onAdd) {\r\n props.onAdd(result);\r\n }\r\n }\r\n\r\n private _propogateError(props: IAddToCartComponentProps, result: IAddToCartFailureResult): void {\r\n if (props.onError) {\r\n props.onError(result);\r\n }\r\n }\r\n\r\n private _getLinkText(props: IAddToCartComponentProps): string {\r\n if (props.data.productAvailableQuantity\r\n && props.data.productAvailableQuantity[0].ProductAvailableQuantity\r\n && props.data.productAvailableQuantity[0].ProductAvailableQuantity.ExtensionProperties) {\r\n const stockAvailabilityProperty = props.data.productAvailableQuantity[0].ProductAvailableQuantity.ExtensionProperties.find((property => property.Key === SOH.stockAvailability));\r\n if ((stockAvailabilityProperty && stockAvailabilityProperty.Value?.StringValue === SOH.soldOut) || stockAvailabilityProperty === undefined) {\r\n return props.outOfStockText;\r\n } else if (stockAvailabilityProperty && stockAvailabilityProperty.Value?.StringValue === SOH.comingSoon) {\r\n //HSO DS\r\n\r\n const HSOConfigprop = props.data.productAvailableQuantity\r\n && props.data.productAvailableQuantity && props.data.productAvailableQuantity[0].ProductAvailableQuantity\r\n && props.data.productAvailableQuantity[0].ProductAvailableQuantity.ExtensionProperties\r\n && props.data.productAvailableQuantity[0].ProductAvailableQuantity.ExtensionProperties.find((property => property.Key === 'HSOConfig'));\r\n\r\n const HSOConfigpropval = HSOConfigprop && HSOConfigprop.Value && HSOConfigprop.Value.IntegerValue;\r\n let HSOConfig = 0;\r\n if (HSOConfigpropval != undefined) {\r\n HSOConfig = HSOConfigpropval;\r\n }\r\n if (HSOConfig == 1) {\r\n const StockThresholdprop = props.data.productAvailableQuantity\r\n && props.data.productAvailableQuantity && props.data.productAvailableQuantity[0].ProductAvailableQuantity\r\n && props.data.productAvailableQuantity[0].ProductAvailableQuantity.ExtensionProperties\r\n && props.data.productAvailableQuantity[0].ProductAvailableQuantity.ExtensionProperties.find((property => property.Key === 'StockThreshold'));\r\n\r\n const StockThresholdpropval = StockThresholdprop && StockThresholdprop.Value && StockThresholdprop.Value.IntegerValue;\r\n let StockThreshold = 0;\r\n if (StockThresholdpropval != undefined) {\r\n StockThreshold = StockThresholdpropval;\r\n }\r\n\r\n const onhandpropval = props.data.productAvailableQuantity\r\n && props.data.productAvailableQuantity && props.data.productAvailableQuantity[0].ProductAvailableQuantity\r\n && props.data.productAvailableQuantity[0].ProductAvailableQuantity.AvailableQuantity\r\n let onhand = 0;\r\n if (onhandpropval != undefined) {\r\n onhand = Number(onhandpropval);\r\n }\r\n\r\n const estimatedDateProperty = props.data.productAvailableQuantity\r\n && props.data.productAvailableQuantity && props.data.productAvailableQuantity[0].ProductAvailableQuantity\r\n && props.data.productAvailableQuantity[0].ProductAvailableQuantity.ExtensionProperties\r\n && props.data.productAvailableQuantity[0].ProductAvailableQuantity.ExtensionProperties.find((property => property.Key === 'EstimatedDate'));\r\n\r\n const estimatedDateValue = estimatedDateProperty && estimatedDateProperty.Value && estimatedDateProperty.Value.StringValue;\r\n let estimatedDate = \"\";\r\n if (estimatedDateValue == undefined) {\r\n estimatedDate = \"\";\r\n } else {\r\n estimatedDate = estimatedDateValue;\r\n }\r\n\r\n if (StockThreshold != 0 && onhand < StockThreshold && estimatedDate != \"\") {\r\n return this.state.addToCartButtonText;\r\n\r\n } else {\r\n return SOH.notifyMe;\r\n }\r\n } else {\r\n return SOH.notifyMe;\r\n }\r\n\r\n } else {\r\n return this.state.addToCartButtonText;\r\n }\r\n }\r\n\r\n if (!this._shouldShowOutOfStock(props, false)) {\r\n return this.state.addToCartButtonText;\r\n }\r\n\r\n return props.outOfStockText;\r\n }\r\n\r\n private _getLinkAriaLabel(props: IAddToCartComponentProps): string {\r\n if (props.data.productAvailableQuantity\r\n && props.data.productAvailableQuantity[0].ProductAvailableQuantity\r\n && props.data.productAvailableQuantity[0].ProductAvailableQuantity.ExtensionProperties) {\r\n const stockAvailabilityProperty = props.data.productAvailableQuantity[0].ProductAvailableQuantity.ExtensionProperties.find((property => property.Key === SOH.stockAvailability));\r\n if ((stockAvailabilityProperty && stockAvailabilityProperty.Value?.StringValue === SOH.soldOut) || stockAvailabilityProperty === undefined) {\r\n return props.outOfStockText;\r\n } else if (stockAvailabilityProperty && stockAvailabilityProperty.Value?.StringValue === SOH.comingSoon) {\r\n return this.state.addToCartButtonText;// return SOH.notifyMe; HSO DS\r\n } else {\r\n return this.state.addToCartButtonText;\r\n }\r\n }\r\n\r\n if (!this._shouldShowOutOfStock(props, false)) {\r\n return this.state.addToCartButtonText;\r\n }\r\n\r\n return props.outOfStockText;\r\n }\r\n\r\n private _addToCartError(props: IAddToCartComponentProps): IAddToCartFailureResult | undefined {\r\n if (!props.data || !props.data.product.RecordId) {\r\n // No product exists, won't be able to add to cart\r\n return { failureReason: 'EMPTYINPUT' };\r\n }\r\n\r\n if (props.data.product.Dimensions) {\r\n const missingDimensions = props.data.product.Dimensions.filter(dimension => !(dimension.DimensionValue && dimension.DimensionValue.Value));\r\n\r\n if (missingDimensions.length > 0) {\r\n // At least one dimension with no value exists on the product, won't be able to add to cart\r\n return { failureReason: 'MISSINGDIMENSION', missingDimensions: missingDimensions };\r\n }\r\n }\r\n\r\n if (this._shouldShowOutOfStock(props, true)) {\r\n const availableQuantity = (props.productAvailability && props.productAvailability.AvailableQuantity) || 0;\r\n const stockLeft = Math.max(availableQuantity, 0);\r\n\r\n return { failureReason: 'OUTOFSTOCK', stockLeft: stockLeft };\r\n }\r\n\r\n // Only allow adding to cart if not showing out of stock\r\n return undefined;\r\n }\r\n\r\n // tslint:disable-next-line: cyclomatic-complexity\r\n private _shouldShowOutOfStock = (props: IAddToCartComponentProps, includeCurrentQuantity: boolean): boolean => {\r\n if (this.props.data.productAvailableQuantity\r\n && this.props.data.productAvailableQuantity[0].ProductAvailableQuantity\r\n && this.props.data.productAvailableQuantity[0].ProductAvailableQuantity.ExtensionProperties) {\r\n const stockAvailabilityProperty = this.props.data.productAvailableQuantity[0].ProductAvailableQuantity.ExtensionProperties.find((property => property.Key === SOH.stockAvailability));\r\n return (stockAvailabilityProperty && stockAvailabilityProperty.Value?.StringValue === SOH.soldOut) || stockAvailabilityProperty === undefined;\r\n }\r\n\r\n if (this.props.data.productAvailableQuantity\r\n && this.props.data.productAvailableQuantity[0].ProductAvailableQuantity\r\n && this.props.data.productAvailableQuantity[0].ProductAvailableQuantity.ExtensionProperties) {\r\n const stockThresholdProperty = this.props.data.productAvailableQuantity[0].ProductAvailableQuantity.ExtensionProperties.find((property => property.Key === SOH.stockThreshold));\r\n const stockThreshold = stockThresholdProperty && stockThresholdProperty?.Value?.IntegerValue || this.props.context.app.config.outOfStockThreshold;\r\n if (this.props.data.productAvailableQuantity\r\n && this.props.data.productAvailableQuantity[0].ProductAvailableQuantity\r\n && this.props.data.productAvailableQuantity[0].ProductAvailableQuantity.AvailableQuantity !== undefined &&\r\n // tslint:disable-next-line: restrict-plus-operands\r\n this.props.data.productAvailableQuantity[0].ProductAvailableQuantity.AvailableQuantity >= stockThreshold + 1) {\r\n return false;\r\n }\r\n }\r\n\r\n if (props.context.app.config.enableStockCheck === undefined || props.context.app.config.enableStockCheck === false || props.isLoading || props.isUpdatingDimension) {\r\n // Out of stock turn off, don't bother showing out of stock\r\n return false;\r\n }\r\n\r\n if (!props.data || !props.data.product.RecordId) {\r\n // No product exists, don't bother showing out of stock\r\n return false;\r\n }\r\n\r\n if (props.data.product.Dimensions) {\r\n if (props.data.product.Dimensions.find(dimension => !(dimension.DimensionValue && dimension.DimensionValue.Value))) {\r\n // At least one dimension with no value exists on the product, so also don't show out of stock\r\n return false;\r\n }\r\n }\r\n const includedQuantityNumber = includeCurrentQuantity && props.quantity ? props.quantity : 1;\r\n\r\n return (props.productAvailability\r\n && props.productAvailability.AvailableQuantity !== undefined\r\n && props.productAvailability.AvailableQuantity <= includedQuantityNumber || false);\r\n };\r\n\r\n private _isIntermediateState(props: IAddToCartComponentProps): boolean {\r\n if (props.data.product.Dimensions) {\r\n if (props.data.product.Dimensions.find(dimension => !(dimension.DimensionValue && dimension.DimensionValue.Value))) {\r\n // At least one dimension with no value exists on the product, so also not in intermediate state\r\n return false;\r\n }\r\n }\r\n\r\n if (!props.isLoading && !props.isUpdatingDimension) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private _renderNotifyModal(): JSX.Element {\r\n const { config, resources } = this.props.props;\r\n const { responseReceived, notifyResponseSuccess } = this.state;\r\n\r\n return (\r\n
\r\n \r\n {config.notifyModalHeader}\r\n\r\n \r\n {responseReceived && notifyResponseSuccess ?\r\n
\r\n
{config.notifyModalSuccessHeader}
\r\n\r\n
{config.notifyModalSuccessMessage}
\r\n
\r\n :\r\n \r\n }\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n private _closeNotifyModal(): void {\r\n this.setState(prevState => ({\r\n isNotifyOpen: !prevState.isNotifyOpen,\r\n notifyResponseSuccess: false,\r\n responseReceived: false\r\n }));\r\n }\r\n private _openNotifyModal(): void {\r\n this.setState(prevState => ({\r\n isNotifyOpen: !prevState.isNotifyOpen,\r\n notifyResponseSuccess: false,\r\n responseReceived: false\r\n }));\r\n }\r\n\r\n private async _submitNotify(fName: string, lName: string, email: string, subscribeChecked: boolean): Promise {\r\n const { context } = this.props;\r\n\r\n // @ts-ignore\r\n const market = context.request.channel.ChannelNaturalId;\r\n\r\n const product = this.props.data.product;\r\n\r\n const pID = product.ItemId || '';\r\n // const { config } = this.props.props;\r\n // let response = await MsDyn365.commerceApiRequest(\r\n // this.props.context.request,\r\n // 'PostNotifyMe',\r\n // 'post',\r\n // {\r\n // firstName: fName,\r\n // lastName: lName,\r\n // emailAddress: email,\r\n // optIn: subscribeChecked,\r\n // itemId: pID,\r\n // country: config.notifyCountry,\r\n // emarsysGroupId: config.notifyEmarsysGroup,\r\n // emarsysSkuField: config.notifyEmarsysSkuField\r\n // }\r\n // ) as any;\r\n\r\n // if (response?.data.Result !== 'Error') {\r\n // this.setState({ responseReceived: true, notifyResponseSuccess: true });\r\n // }\r\n\r\n // dont post to AX at the moment\r\n this.formInputValues = (fName && lName && email) ? true : false;\r\n\r\n if (this.formInputValues) {\r\n let productImageUrl = product.PrimaryImageUrl;\r\n let url = window.location.href;\r\n\r\n try {\r\n const price = !isNaN(product.Price) ? product.Price.toFixed(2).replace(/\\d(?=(\\d{3})+\\.)/g, '$&,') : product.Price.toString();\r\n const result = await submitPdpEnquiryFormAction(new SubmitPdpEnquiryFormDataActionInput(fName, lName, email, price, '', pID, 'Notify when back in stock', url, productImageUrl!, product.Name || '', 'Notify when back in stock', market || 'unknown', 0), this.props.context.actionContext);\r\n this.response = result.success;\r\n this.setState({ responseReceived: true, notifyResponseSuccess: true });\r\n } catch {\r\n console.log('Please fill the form!');\r\n }\r\n }\r\n }\r\n\r\n // tslint:disable: max-func-body-length\r\n private _renderEnquiremodal(): JSX.Element {\r\n const { config, resources } = this.props.props;\r\n const cittaStoresList: string = this.props.context.app.config.cittaStoresList || 'Città BLOC,000010|Città Grey Lynn,000012|Città Hamilton,000013|Città Merivale,000016|Città Wellington,000017|Città Wellington Thorndon,000018|Città Newmarket,000041|Città Takapuna,000044';\r\n const cittaStores: string[] = cittaStoresList.split('|');\r\n\r\n const colors = this._getDimensionValues(this.props.data.productDimensions || [], this.colorProductDimensionTypeValue);\r\n const sizes = this._getDimensionValues(this.props.data.productDimensions || [], this.sizeProductDimensionTypeValue);\r\n\r\n //HSO DS\r\n\r\n const HSOConfigprop = this.props.data.productAvailableQuantity\r\n && this.props.data.productAvailableQuantity && this.props.data.productAvailableQuantity[0].ProductAvailableQuantity\r\n && this.props.data.productAvailableQuantity[0].ProductAvailableQuantity.ExtensionProperties\r\n && this.props.data.productAvailableQuantity[0].ProductAvailableQuantity.ExtensionProperties.find((property => property.Key === 'HSOConfig'));\r\n\r\n const HSOConfigpropval = HSOConfigprop && HSOConfigprop.Value && HSOConfigprop.Value.IntegerValue;\r\n let HSOConfig = 0;\r\n if (HSOConfigpropval != undefined) {\r\n HSOConfig = HSOConfigpropval;\r\n }\r\n return (\r\n
\r\n \r\n {(HSOConfig == 1) ? 'product enquiry' : ( config.modalHeader || 'enquire in-store')}\r\n \r\n
\r\n {this.state.responseReceived && this.response\r\n ?
\r\n

{resources.responseSuccessMessage}

\r\n
: null}\r\n {this.state.responseReceived && !this.response ?
\r\n

{resources.responseErrorMessage}

\r\n
: null}\r\n {!this.state.responseReceived ?
\r\n
\r\n
\r\n
\r\n {this.state.nError ? this._renderAlert('contact-form-name') : ''}\r\n
\r\n
\r\n {this.state.lNError ? this._renderAlert('contact-form-name') : ''}\r\n
\r\n
\r\n {this.state.eAError || this.state.eAValError ? this._renderAlert('contact-form-emailaddress') : ''}\r\n
\r\n
\r\n {this.state.pHError ? this._renderAlert('contact-form-phonenumber') : ''}\r\n
\r\n {sizes && (\r\n
\r\n \r\n
\r\n {\r\n sizes.map((size, index) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n })\r\n }\r\n
\r\n {this.state.cHError ? this._renderAlert('contact-form-customizations') : ''}\r\n
\r\n )}\r\n {colors && (\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n {this.state.enquiryMessageError ? this._renderAlert('enquire-form-message') : ''}\r\n
\r\n
\r\n \r\n {resources.enquireSendButtonText}\r\n \r\n\r\n {(HSOConfig == 1) ? null : Store Locations}\r\n
\r\n
\r\n : null}\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n private handleChange = (inputText: string) => (e: React.ChangeEvent) => {\r\n const value = e.target.value;\r\n switch (inputText) {\r\n case 'nameInput': {\r\n this.setState({ name: value, reqError: false, nError: false, eAValError: false, nLSError: false });\r\n break;\r\n }\r\n case 'lastNameInput': {\r\n this.setState({ lastName: value, reqError: false, lNError: false, eAValError: false, nLSError: false });\r\n break;\r\n }\r\n case 'emailAddress': {\r\n this.setState({ emailAddress: value, reqError: false, eAError: false, eAValError: false, nLSError: false });\r\n break;\r\n }\r\n case 'phoneNumber': {\r\n this.setState({ phoneNumber: value, reqError: false, pHError: false, eAValError: false, nLSError: false });\r\n break;\r\n }\r\n case 'subsNwsltr': {\r\n this.setState({ subcribeNewsletterChecked: true, reqError: false, pHError: false, eAValError: false, nLSError: false });\r\n break;\r\n }\r\n default: null;\r\n }\r\n }\r\n\r\n private handleMessageChange = (e: React.ChangeEvent) => {\r\n const value = e.target.value;\r\n this.setState({ enquiryMessage: value, reqError: false, eAValError: false, nLSError: false });\r\n }\r\n\r\n private productTypeOnChangeSelect = (e: React.ChangeEvent) => {\r\n this.setState({ productTypePickerValue: e.target.value || '' });\r\n };\r\n\r\n private customizationOnChange = (value: string) => (e: React.ChangeEvent) => {\r\n const isChecked = e.target.checked;\r\n let customizationsCheckedItems = this.state.customizationsCheckedItems;\r\n if (isChecked) {\r\n customizationsCheckedItems.push(value);\r\n } else {\r\n customizationsCheckedItems = customizationsCheckedItems.filter(item => item !== value);\r\n }\r\n this.setState({ customizationsCheckedItems: customizationsCheckedItems, cHError: false });\r\n }\r\n\r\n private onChangeSelect = (e: React.ChangeEvent) => {\r\n const text = e.target.options[e.target.options.selectedIndex].textContent;\r\n this.setState({ storePickerValue: e.target.value || '', storePickerText: text || '' });\r\n };\r\n\r\n private _closeModal(): void {\r\n this.setState(prevState => ({\r\n isOpen: !prevState.isOpen\r\n }));\r\n }\r\n private _openModal(): void {\r\n this.setState(prevState => ({\r\n isOpen: !prevState.isOpen,\r\n responseReceived: false\r\n }));\r\n }\r\n\r\n // tslint:disable-next-line: cyclomatic-complexity\r\n private async _handleSend(e: React.MouseEvent | React.KeyboardEvent | React.FormEvent): Promise {\r\n //HSO DS\r\n\r\n const HSOConfigprop = this.props.data.productAvailableQuantity\r\n && this.props.data.productAvailableQuantity && this.props.data.productAvailableQuantity[0].ProductAvailableQuantity\r\n && this.props.data.productAvailableQuantity[0].ProductAvailableQuantity.ExtensionProperties\r\n && this.props.data.productAvailableQuantity[0].ProductAvailableQuantity.ExtensionProperties.find((property => property.Key === 'HSOConfig'));\r\n \r\n const HSOConfigpropval = HSOConfigprop && HSOConfigprop.Value && HSOConfigprop.Value.IntegerValue;\r\n let HSOConfig = 0;\r\n if (HSOConfigpropval != undefined) {\r\n HSOConfig = HSOConfigpropval;\r\n }\r\n this.nameValue = (this._nameInputRef && this._nameInputRef.current && this._nameInputRef.current.value) ? true : false;\r\n this.lastNameValue = (this._lastNameInputRef && this._lastNameInputRef.current && this._lastNameInputRef.current.value) ? true : false;\r\n this.emailAddressValue = (this._emailAddressInputRef && this._emailAddressInputRef.current && this._emailAddressInputRef.current.value) ? true : false;\r\n this.phoneNumberValue = (this._phoneNumberInputRef && this._phoneNumberInputRef.current && this._phoneNumberInputRef.current.value) ? true : false;\r\n this.addressMessageValue = (this._enquiryMessageInputRef && this._enquiryMessageInputRef.current && this._enquiryMessageInputRef.current.value) ? true : false;\r\n\r\n const sP = (HSOConfig == 1) ? 'Città B2B' : this.state.storePickerText;\r\n const nA = (this._nameInputRef && this._nameInputRef.current && this._nameInputRef.current.value) ? this._nameInputRef.current.value : '';\r\n const lN = (this._lastNameInputRef && this._lastNameInputRef.current && this._lastNameInputRef.current.value) ? this._lastNameInputRef.current.value : '';\r\n const eA = (this._emailAddressInputRef && this._emailAddressInputRef.current && this._emailAddressInputRef.current.value) ? this._emailAddressInputRef.current.value : '';\r\n const pN = (this._phoneNumberInputRef && this._phoneNumberInputRef.current && this._phoneNumberInputRef.current.value) ? this._phoneNumberInputRef.current.value : '';\r\n const pT = (this._productTypePickerSelectRef && this._productTypePickerSelectRef.current && this._productTypePickerSelectRef.current.value) ? this._productTypePickerSelectRef.current.value : '';\r\n const eM = (this._enquiryMessageInputRef && this._enquiryMessageInputRef.current && this._enquiryMessageInputRef.current.value) ? this._enquiryMessageInputRef.current.value : '';\r\n const cU = this.state.customizationsCheckedItems.toString();\r\n const cI = this._storePickerSelectRef.current!.value;\r\n const eAVal = this._emailAddressInputRef.current!.value;\r\n const pID = this.props.data.product.ItemId || '';\r\n const sN = this.state.subcribeNewsletterChecked ? 1 : 0;\r\n\r\n if (!this.nameValue) {\r\n this.setState({\r\n nError: true,\r\n reqError: true\r\n });\r\n } else if (!this.lastNameValue) {\r\n this.setState({\r\n lNError: true,\r\n reqError: true\r\n });\r\n } else if (!this.emailAddressValue) {\r\n this.setState({\r\n eAError: true,\r\n reqError: true\r\n });\r\n } else if (!this.isEmailValid(eAVal)) {\r\n this.setState({\r\n eAValError: true\r\n });\r\n } else if (!this.phoneNumberValue) {\r\n this.setState({\r\n pHError: true,\r\n reqError: true\r\n });\r\n } else if (this.state.customizationsCheckedItems.length < 1) {\r\n this.setState({\r\n cHError: true,\r\n reqError: true\r\n });\r\n } else if (!this.addressMessageValue) {\r\n this.setState({\r\n enquiryMessageError: true,\r\n reqError: true\r\n });\r\n } else {\r\n this.formInputValues = (this.nameValue && this.lastNameValue && this.emailAddressValue && this.phoneNumberValue && this.addressMessageValue) ? true : false;\r\n\r\n if (this.formInputValues && !this.state.eAValError) {\r\n try {\r\n const result = await submitPdpEnquiryFormAction(new SubmitPdpEnquiryFormDataActionInput(nA, lN, eA, pN, sP, pID, eM, cU, pT, '', 'Enquire in Store', cI, sN), this.props.context.actionContext);\r\n this.response = result.success;\r\n this.setState({ responseReceived: true });\r\n } catch {\r\n console.log('Please fill the form!');\r\n }\r\n }\r\n }\r\n }\r\n\r\n private isEmailValid = (email: string): boolean => {\r\n const regex = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return regex.test(email);\r\n };\r\n\r\n private _renderAlert(className: string): JSX.Element {\r\n const inputBoxErrors = (this.state.nError || this.state.lNError || this.state.eAError || this.state.pHError || this.state.cHError || this.state.enquiryMessageError);\r\n if (inputBoxErrors) {\r\n this.requiredErrorMessage = this.props.props.resources.requiredTextErrorMessage;\r\n }\r\n if (this.state.emailAddress !== '' && this.state.eAValError) {\r\n this.eAValidationErrorMessage = this.props.props.resources.eAValidationErrorMessage;\r\n }\r\n\r\n const reqError = this.state.reqError;\r\n const eAValError = this.state.eAValError;\r\n return (\r\n <>\r\n {reqError && (\r\n \r\n {\r\n this.requiredErrorMessage &&\r\n <>\r\n \r\n )}\r\n {eAValError && (\r\n \r\n {\r\n this.eAValidationErrorMessage &&\r\n <>\r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n private _getProductAttributes = (key: string | undefined): boolean => {\r\n // @ts-ignore\r\n const prodAttributes: AttributeValue[] | undefined = this.props && this.props.data && this.props.props.data && this.props.props.data.productAttributes.result;\r\n if (prodAttributes && prodAttributes.length) {\r\n const filterAttributes = prodAttributes.filter(\r\n attribute => attribute.Name && attribute.Name.toUpperCase() === key\r\n );\r\n if (\r\n filterAttributes &&\r\n filterAttributes.length) {\r\n filterAttributes[0].Name?.toUpperCase() === key ? true : false;\r\n return filterAttributes[0].BooleanValue || false;\r\n }\r\n return false;\r\n }\r\n return false;\r\n }\r\n\r\n private _getDimensionValues = (dimensions: ProductDimensionFull[], dimensionTypeValue: number): string[] => {\r\n if (dimensions && dimensionTypeValue) {\r\n const dimensionTypeValues: ProductDimensionFull[] = dimensions.filter(dimension => dimension.DimensionTypeValue === dimensionTypeValue);\r\n // tslint:disable-next-line: prefer-const\r\n let values: string[] = [];\r\n if (dimensionTypeValues) {\r\n dimensionTypeValues && dimensionTypeValues.forEach(elements => {\r\n elements.DimensionValues && elements.DimensionValues.forEach(value => {\r\n values.push(value.Value || '');\r\n });\r\n });\r\n return values;\r\n }\r\n }\r\n return [];\r\n }\r\n}\r\n\r\nexport default AddToCartComponent;\r\n","import * as React from 'react';\r\nexport interface IAfterPayInfoProps {\r\n title: React.ReactNode;\r\n price:number;\r\n afterpayImage:string;\r\n afterpaydesktopImg:string;\r\n afterpaymobileImg:string;\r\n}\r\n\r\n// tslint:disable-next-line:no-empty-interface\r\ninterface IAfterPayInfoState {\r\n afterpayAvailable: boolean;\r\n afterpayInstalment: number | string;\r\n showAfterpayModal: boolean;\r\n afterpayMin: number;\r\n afterpayMax:number;\r\n}\r\n/**\r\n * Configuration entity interface.\r\n */\r\nexport interface IConfiguration {\r\n type?: string;\r\n description?: string;\r\n minimumAmount?: IMinimumAmount;\r\n maximumAmount?: IMaximumAmount;\r\n}\r\nexport interface IMinimumAmount {\r\n amount?: string;\r\n currency?: string;\r\n}\r\nexport interface IMaximumAmount {\r\n amount?: string;\r\n currency?: string;\r\n}\r\n// tslint:disable-next-line:class-name\r\nexport interface IDXC_GetConfigurationResponse {\r\n configuration?: IConfiguration[];\r\n success?: boolean;\r\n errorText?: string;\r\n}\r\n\r\n/**\r\n *\r\n * The PromoCode component renders the promocode section.\r\n * @extends {React.PureComponent}\r\n */\r\nclass AfterPayInfo extends React.Component {\r\n constructor(props: IAfterPayInfoProps, state: IAfterPayInfoState) {\r\n super(props);\r\n this.state = {\r\n afterpayAvailable: false,\r\n afterpayInstalment: 0,\r\n showAfterpayModal: false,\r\n afterpayMin: 0,\r\n afterpayMax: 0,\r\n };\r\n }\r\n\r\n public async componentDidMount(): Promise {\r\n\r\n // Afterpay get configuration\r\n // const afterpayConfig: IDXC_GetConfigurationResponse = await this._afterpayGetConfiguration();\r\n // TODO replace the below Mock with actual data action response\r\n const afterpayConfig: IDXC_GetConfigurationResponse = {\r\n configuration:[\r\n {\r\n type:'PAY_BY_INSTALLMENT',description:'Pay over time',minimumAmount:{\r\n amount:'',currency:''\r\n },maximumAmount:{\r\n amount:'2000.00',currency:'NZD'\r\n }\r\n }\r\n ],success:true,errorText:''\r\n };\r\n if (afterpayConfig && afterpayConfig.success && afterpayConfig.configuration) {\r\n const configResult = afterpayConfig.configuration[0];\r\n this._processAfterpayConfig(configResult);\r\n this._calculateAfterpayInstalment();\r\n }\r\n }\r\n public componentDidUpdate(): void {\r\n this._calculateAfterpayInstalment();\r\n }\r\n public render(): JSX.Element {\r\n const wrapperClassName = `afterpay-info ${this.state.afterpayAvailable ? 'afterpay-loaded' : ''}`;\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{this.props.title}
\r\n
${this.props.price}
\r\n
pay in 4 fortnightly instalments ${(this.props.price / 4).toFixed(2)}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
EASY SIGN-UP
\r\n
Easy Sign-up: Just select \"AfterPay\" as your form of payment at checkout. All you need is a debit or credit card to create an account.
\r\n
\r\n
\r\n
\r\n
PAY IN 4 INSTALMENTS
\r\n
You'll pay your first instalment at the time of purchase, and the remainder every fortnight.
\r\n
\r\n
\r\n
\r\n
INSTANT APPROVAL
\r\n
You’ll know you’ve been approved within seconds. Orders ship as they would with any other form of payment, as quickly as you choose.
\r\n
\r\n
\r\n
\r\n
NOTHING EXTRA TO PAY
\r\n
With interest-free instalments, the only fees are for late payments. You can find your payment schedule in the Afterpay app and we'll send you regular reminders.
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n private _processAfterpayConfig(configResult: IConfiguration): void {\r\n const min = configResult.minimumAmount && configResult.minimumAmount.amount && configResult.minimumAmount.amount !== '' ?\r\n +configResult.minimumAmount.amount : 0;\r\n const max = configResult.maximumAmount && configResult.maximumAmount.amount && configResult.maximumAmount.amount !== '' ?\r\n +configResult.maximumAmount.amount : 0;\r\n this.setState({\r\n afterpayMin: min,\r\n afterpayMax: max\r\n });\r\n }\r\n private _calculateAfterpayInstalment(): void {\r\n // compare product price to min and max afterpay prices\r\n const price = this.props.price ? this.props.price : null;\r\n const isAfterpayAvailable = price && price > this.state.afterpayMin && price <= this.state.afterpayMax || false;\r\n const instalment = price && isAfterpayAvailable ? (price / 4).toFixed(2) : 0;\r\n\r\n if (isAfterpayAvailable !== this.state.afterpayAvailable || instalment !== this.state.afterpayInstalment) {\r\n this.setState({\r\n afterpayAvailable: isAfterpayAvailable,\r\n afterpayInstalment: price && isAfterpayAvailable ? (price / 4).toFixed(2) : 0\r\n });\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default AfterPayInfo;","import { BuyboxErrorBlock, getConfigureErrors, getGenericError, IBuyboxCallbacks, IBuyboxData, IBuyboxProps, IBuyboxState } from '@msdyn365-commerce-modules/buybox';\r\nimport { Heading, INodeProps, IPopupProps, Popup } from '@msdyn365-commerce-modules/utilities';\r\nimport { IAddToCartFailureResult, PriceComponent } from '@msdyn365-commerce/components';\r\nimport { getUrlSync, IImageSettings } from '@msdyn365-commerce/core';\r\nimport { DeliveryOption, ProductDimension } from '@msdyn365-commerce/retail-proxy';\r\nimport * as React from 'react';\r\n\r\nexport interface IFindInStoreFailureResult {\r\n missingDimensions?: ProductDimension[];\r\n}\r\n\r\nexport interface IBuyboxFindInStoreViewProps {\r\n storeSelector?: React.ReactNode;\r\n heading?: React.ReactNode;\r\n description?: React.ReactNode;\r\n errors?: React.ReactNode;\r\n button?: React.ReactNode;\r\n productPickupOptionList?: React.ReactNode;\r\n\r\n modal?: React.ReactNode;\r\n\r\n ContainerProps: INodeProps;\r\n\r\n openFindInStoreDialog(): Promise;\r\n}\r\n\r\n// tslint:disable-next-line:max-func-body-length\r\nexport function getBuyboxFindInStore(props: IBuyboxProps, state: IBuyboxState, callbacks: IBuyboxCallbacks): IBuyboxFindInStoreViewProps | undefined {\r\n const {\r\n data,\r\n slots: {\r\n // @ts-ignore\r\n cittaStoreSelector,\r\n storeSelector\r\n },\r\n resources : {\r\n priceFree,\r\n originalPriceText,\r\n currentPriceText,\r\n findInStoreHeaderText,\r\n findInStoreDescriptionText,\r\n findInStoreLinkText,\r\n buyBoxGoToCartText,\r\n buyBoxContinueShoppingText,\r\n buyBoxSingleItemText,\r\n buyBoxMultiLineItemFormatText,\r\n buyBoxHeaderMessageText,\r\n descriptionTextToShowAllPickupOptions\r\n }\r\n } = props;\r\n\r\n const multiplePickupStoreSwitchName = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\r\n const product = data?.product?.result;\r\n const price = data?.productPrice?.result;\r\n const storeSelectorStateManager = data?.storeSelectorStateManager?.result;\r\n const cart = data?.cart?.result;\r\n const deliveryOptions = data?.deliveryOptions?.result;\r\n const retailMulitplePickupMFeatureState = data?.featureState?.result?.\r\n find(featureState => featureState.Name === multiplePickupStoreSwitchName)?.IsEnabled;\r\n\r\n const\r\n {\r\n errorState: {\r\n configureErrors,\r\n quantityError,\r\n otherError,\r\n errorHost\r\n },\r\n modalOpen,\r\n quantity\r\n } = state;\r\n\r\n const onClick = () => findInStoreOnClick(props, state, callbacks);\r\n\r\n if (!product || !storeSelectorStateManager) {\r\n return undefined;\r\n }\r\n\r\n const dialogStrings = {\r\n goToCartText: buyBoxGoToCartText,\r\n continueShoppingText: buyBoxContinueShoppingText,\r\n headerItemOneText: buyBoxSingleItemText,\r\n headerItemFormatText: buyBoxMultiLineItemFormatText,\r\n headerMessageText: buyBoxHeaderMessageText,\r\n freePriceText: priceFree,\r\n originalPriceText: originalPriceText,\r\n currentPriceText: currentPriceText\r\n };\r\n\r\n const priceComponent = price ? (\r\n ) : '';\r\n\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: `w=240&h=240&m=6`, w: 0, h: 0 },\r\n lg: { q: `w=240&h=240&m=6`, w: 0, h: 0 },\r\n xl: { q: `w=240&h=240&m=6`, w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n\r\n const popupProps: IPopupProps = {\r\n context: props.context,\r\n className: 'ms-buybox',\r\n id: props.id,\r\n typeName: props.typeName,\r\n data: {product: props.data.product?.result, price: props.data.productPrice?.result},\r\n dialogStrings: dialogStrings,\r\n imageSettings: defaultImageSettings,\r\n gridSettings: props.context.request.gridSettings,\r\n productQuantity: quantity,\r\n priceComponent: priceComponent,\r\n navigationUrl: getUrlSync('cart', props.context.actionContext),\r\n modalOpen: modalOpen,\r\n setModalOpen: callbacks.changeModalOpen\r\n };\r\n const renderModalPopup = ;\r\n\r\n return {\r\n ContainerProps: {\r\n className: 'ms-buybox__find-in-store'\r\n },\r\n\r\n storeSelector: cittaStoreSelector ? cittaStoreSelector[0] : storeSelector,\r\n\r\n openFindInStoreDialog: onClick,\r\n\r\n heading: (\r\n \r\n ),\r\n\r\n description: (\r\n

\r\n {findInStoreDescriptionText}\r\n

\r\n ),\r\n productPickupOptionList: retailMulitplePickupMFeatureState ? (\r\n \r\n

\r\n {descriptionTextToShowAllPickupOptions}\r\n

\r\n
    \r\n {deliveryOptions && deliveryOptions.DeliveryOptions!.map((item:DeliveryOption) => {\r\n return
  • {item.Description}
  • ;\r\n })\r\n }\r\n
\r\n
\r\n ): null,\r\n errors: (\r\n \r\n ),\r\n\r\n button: (\r\n \r\n {findInStoreLinkText}\r\n \r\n ),\r\n\r\n modal: renderModalPopup\r\n };\r\n}\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nasync function findInStoreOnClick(props: IBuyboxProps, state: IBuyboxState, callbacks: IBuyboxCallbacks): Promise {\r\n const {\r\n data: {\r\n storeSelectorStateManager: {result: storeSelectorStateManager },\r\n cart: {result: cart },\r\n productAvailableQuantity: { result: productAvailableQuantity }\r\n },\r\n resources,\r\n context,\r\n modules,\r\n } = props;\r\n\r\n const {\r\n selectedProduct,\r\n quantity\r\n } = state;\r\n\r\n let dataProduct = props.data.product.result;\r\n const multiplePickupStoreSwitchName = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\r\n const retailMulitplePickupMFeatureState = props.data?.featureState?.result?.\r\n find(featureState => featureState.Name === multiplePickupStoreSwitchName)?.IsEnabled;\r\n\r\n if (selectedProduct) {\r\n dataProduct = (await selectedProduct) || dataProduct;\r\n }\r\n\r\n if (!dataProduct || !storeSelectorStateManager) {\r\n return;\r\n }\r\n\r\n const product = dataProduct;\r\n\r\n const missingDimensions = product.Dimensions && product.Dimensions.filter(dimension => !(dimension.DimensionValue && dimension.DimensionValue.Value));\r\n\r\n let storeSelectorId: string = '';\r\n if (modules && Object.keys(modules).length > 0 && modules.cittaStoreSelector && modules.cittaStoreSelector.length > 0) {\r\n storeSelectorId = modules.cittaStoreSelector[0].id;\r\n } else if (modules && Object.keys(modules).length > 0 && modules.storeSelector && modules.storeSelector.length > 0) {\r\n storeSelectorId = modules.storeSelector[0].id;\r\n }\r\n\r\n\r\n if (missingDimensions && missingDimensions.length > 0) {\r\n if (callbacks.updateErrorState) {\r\n callbacks.updateErrorState(\r\n {\r\n errorHost: 'FINDINSTORE',\r\n configureErrors: getConfigureErrors(missingDimensions, resources),\r\n }\r\n );\r\n }\r\n } else {\r\n storeSelectorStateManager.openDialog({\r\n product,\r\n id : storeSelectorId,\r\n deliveryOptions: retailMulitplePickupMFeatureState ? props.data.deliveryOptions.result: undefined,\r\n onLocationSelected: (orgUnitLocation, deliveryMode) => {\r\n if (!cart) {\r\n return Promise.resolve();\r\n }\r\n\r\n const behavior = props.context?.app?.config?.addToCartBehavior;\r\n\r\n return cart.addProductToCart({product: product, count: quantity, location: orgUnitLocation, deliveryMode: deliveryMode})\r\n .then(result => {\r\n if (result.status === 'FAILED' && result.substatus === 'MAXQUANTITY') {\r\n callbacks.changeModalOpen(false);\r\n\r\n const productAvailability = state.productAvailableQuantity ?\r\n state.productAvailableQuantity.ProductAvailableQuantity :\r\n productAvailableQuantity && productAvailableQuantity.length?\r\n productAvailableQuantity[0].ProductAvailableQuantity: undefined;\r\n\r\n const failureResult: IAddToCartFailureResult = {failureReason: 'CARTACTIONFAILED', cartActionResult: {status: result.status, substatus: result.substatus}};\r\n callbacks.updateErrorState({\r\n errorHost: 'ADDTOCART',\r\n configureErrors: {},\r\n otherError: getGenericError(failureResult, cart, resources, context, product, productAvailability, orgUnitLocation)\r\n });\r\n } else {\r\n if((behavior === undefined || behavior === 'goToCart')) {\r\n const navigationUrl = getUrlSync('cart', context.actionContext);\r\n\r\n if (result.status === 'SUCCESS' && navigationUrl) {\r\n window.location.assign(navigationUrl);\r\n }\r\n } else if (behavior === 'showModal') {\r\n callbacks.updateErrorState({\r\n configureErrors: {}\r\n });\r\n callbacks.changeModalOpen(true);\r\n }\r\n }\r\n }).catch((error: Error) => {\r\n if (props.telemetry) {\r\n props.telemetry.exception(error);\r\n props.telemetry.debug('Unable to add product to cart');\r\n }\r\n return;\r\n });\r\n }\r\n }).catch((error: Error) => {\r\n if (props.telemetry) {\r\n props.telemetry.error(error.message);\r\n props.telemetry.debug('Unable to find in store');\r\n }\r\n return;\r\n });\r\n }\r\n\r\n return;\r\n}","import MsDyn365 from '@msdyn365-commerce/core';\r\n\r\nexport interface IClientDimension {\r\n width: number;\r\n height: number;\r\n}\r\n\r\n/* A type safe Dictionary */\r\nexport interface IDictionaryStringString {\r\n [key: string]: string;\r\n}\r\n\r\n/*\r\n* @interface IGrid\r\n* @classdesc - The IGrid interface contract.\r\n* @export\r\n*/\r\nexport interface IGrid {\r\n rows: number;\r\n columns: number;\r\n}\r\n\r\n/**\r\n * Clamp position between a range\r\n * @param {number} - Value to be clamped\r\n * @param {number} - Minimum value in range\r\n * @param {number} - Maximum value in range\r\n * @returns the clap value if min passed is less than max else returns 0\r\n */\r\nexport function clamp(value: number, min:number, max:number): number {\r\n if (min <= max) {\r\n return Math.min(Math.max(value, min), max);\r\n } else {\r\n return 0;\r\n }\r\n}\r\n\r\n/**\r\n * upper case the first letter of the string, if only one char exists on the string, uppercase it\r\n * @param {string} - Value to be upper cased\r\n * @returns the upper cased string of the passed value, if it has just one char uppercase it\r\n */\r\nexport function toUpperCaseFirstChar(value: string): string {\r\n if(value.length > 1) {\r\n return value.charAt(0).toUpperCase() + value.substr(1);\r\n }\r\n if(value.length === 1) {\r\n return value.charAt(0).toUpperCase();\r\n } else {\r\n return '';\r\n }\r\n}\r\n\r\nexport function htmlCollectionToArray(nodeList: HTMLCollection): HTMLElement[] {\r\n return Array.prototype.slice.call(nodeList);\r\n}\r\n\r\nexport function getCSS(element: HTMLElement, property: string): string {\r\n let style = element.style[property];\r\n\r\n if (!style) {\r\n style = getComputedStyle(element)[property];\r\n }\r\n\r\n return style;\r\n}\r\n\r\nexport function createThrottledEvent(listener: EventListener, threshold: number):\r\n(event: Event) => void {\r\n // tslint:disable-next-line:no-any\r\n let timer: any;\r\n let last = 0;\r\n\r\n return (event: Event) => {\r\n const now = Date.now();\r\n\r\n if (timer) {\r\n clearTimeout(timer);\r\n timer = undefined;\r\n }\r\n\r\n if (!!last && (now < last + threshold)) {\r\n timer = setTimeout(() => {\r\n last = Date.now();\r\n listener(event);\r\n },\r\n threshold - (now - last));\r\n } else {\r\n last = now;\r\n listener(event);\r\n }\r\n };\r\n}\r\n\r\nexport function addThrottledEvent(target: EventTarget, name: string, listener: EventListener, threshold: number = 150):\r\n (event: Event) => void {\r\n\r\n const throttledEventHandler = createThrottledEvent(listener, threshold);\r\n target.addEventListener(name, throttledEventHandler, false);\r\n\r\n return throttledEventHandler;\r\n}\r\n\r\n/* RTS utilities */\r\n/* TODO: Using any here for now, need to convert cssmodules into a dictionary in all modules */\r\n/* tslint:disable:no-any */\r\nexport function mapToCssModules(className: string = '', cssModule: any): string {\r\n if (!cssModule) {\r\n return className;\r\n }\r\n\r\n return className\r\n .split(' ')\r\n .map((c: string) => cssModule[c] || c)\r\n .join(' ');\r\n}\r\n\r\nexport function isRef(target: any): boolean {\r\n if (!target) {\r\n return false;\r\n }\r\n\r\n return (>target).current !== undefined;\r\n}\r\n\r\nexport function isElement(target: any): boolean {\r\n if (!target) {\r\n return false;\r\n }\r\n\r\n return (target).addEventListener !== undefined;\r\n}\r\n/* tslint:enable:no-any */\r\n\r\nexport const keyCodes = {\r\n esc: 27,\r\n space: 32,\r\n tab: 9,\r\n up: 38,\r\n down: 40,\r\n enter: 13\r\n};\r\n\r\ninterface IMap {\r\n [key: string]: T;\r\n}\r\nconst warned: IMap = {};\r\n\r\n/* Disable typeof check: https://github.com/Microsoft/tslint-microsoft-contrib/issues/415 */\r\n/* tslint:disable:no-typeof-undefined */\r\nexport function warnOnce(message: string): void {\r\n if (!warned[message]) {\r\n if (typeof console !== 'undefined') {\r\n throw new Error(message);\r\n }\r\n warned[message] = true;\r\n }\r\n}\r\n\r\nexport const canUseDOM = !!(\r\n MsDyn365.isBrowser && typeof window !== 'undefined' &&\r\n window.document &&\r\n window.document.createElement\r\n);\r\n/* tslint:enable:no-typeof-undefined */\r\n\r\nexport function findDOMElements(target: string): NodeListOf | string | null {\r\n try {\r\n if (typeof target === 'string' && canUseDOM) {\r\n let selection = document.querySelectorAll(target);\r\n\r\n if (!selection.length) {\r\n selection = document.querySelectorAll(`#${target}`);\r\n }\r\n\r\n if (!selection.length) {\r\n throw new Error();\r\n }\r\n return selection;\r\n }\r\n\r\n return target;\r\n } catch {\r\n console.error(`The target '${target}' could not be identified in the dom, tip: check spelling`);\r\n return null;\r\n }\r\n }\r\n\r\nexport function getTarget(target: string | HTMLElement | React.Ref): HTMLElement | React.Ref | null | string {\r\n const selection = findDOMElements(target);\r\n if (selection && selection.length) {\r\n return selection[0];\r\n }\r\n\r\n return target;\r\n}\r\n\r\nexport function getTargetElement(target: string | HTMLElement | React.Ref): HTMLElement | null {\r\n const targetElement = getTarget(target);\r\n if (isRef(targetElement)) {\r\n return (>targetElement).current;\r\n }\r\n if (isElement(targetElement)) {\r\n return targetElement;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport const TransitionTimeouts = {\r\n Fade: 150,\r\n Collapse: 350,\r\n Modal: 300,\r\n Carousel: 600\r\n};\r\n\r\nexport type TransitionStatuses = 'entering' | 'entered' | 'exiting' | 'exited';\r\n\r\nexport const focusableElements = [\r\n 'a[href]',\r\n 'area[href]',\r\n 'input:not([disabled]):not([type=hidden])',\r\n 'select:not([disabled])',\r\n 'textarea:not([disabled])',\r\n 'button:not([disabled])',\r\n 'iframe',\r\n 'object',\r\n 'embed',\r\n '[tabindex]:not(.modal)',\r\n 'audio[controls]',\r\n 'video[controls]',\r\n '[contenteditable]:not([contenteditable=\"false\"])',\r\n];\r\n\r\n/*\r\n* @name - extend\r\n* @description - extends an object with properties/values from one or more others.\r\n* @export\r\n* @public\r\n* @param {any[]} parameters - The objects to merge together.\r\n* @returns {any} - The extended object.\r\n*/\r\n\r\n// tslint:disable-next-line: cyclomatic-complexity tslint:disable-next-line: no-any\r\nexport function extend(...parameters: any[]): any {\r\n if (!parameters || !parameters.length) {\r\n return null;\r\n }\r\n\r\n const recursive = (typeof (parameters[0]) === 'boolean') && parameters[0];\r\n\r\n if (parameters.length < 2) {\r\n return recursive ? null : parameters[0];\r\n }\r\n\r\n if (recursive && (parameters.length < 3)) {\r\n return parameters[1];\r\n }\r\n\r\n const target = recursive ? parameters[1] : parameters[0];\r\n\r\n for (let paramIndex = recursive ? 2 : 1; paramIndex < parameters.length; paramIndex++) {\r\n if(parameters[paramIndex] !== undefined) {\r\n for (const key of Object.keys(parameters[paramIndex])) {\r\n if (parameters[paramIndex].hasOwnProperty(key)) {\r\n const source = parameters[paramIndex][key];\r\n\r\n if (recursive) {\r\n let isSourceArray = Array.isArray\r\n ? Array.isArray(source)\r\n : ({}).toString.call(source) === '[object Array]';\r\n let isTargetArray = !!target[key] && (Array.isArray\r\n ? Array.isArray(target[key])\r\n : ({}).toString.call(target[key]) === '[object Array]');\r\n let isSourceObject = !isSourceArray && (typeof source === 'object');\r\n let isTargetObject = !isTargetArray && !!target[key] && (typeof target[key] === 'object');\r\n\r\n if (isSourceArray && isTargetArray) {\r\n for (let arrayIndex = 0; arrayIndex < source.length; arrayIndex++) {\r\n isSourceArray = Array.isArray\r\n ? Array.isArray(source[arrayIndex])\r\n : ({}).toString.call(source[arrayIndex]) === '[object Array]';\r\n isTargetArray = !!target[key][arrayIndex] && (Array.isArray\r\n ? Array.isArray(target[key][arrayIndex])\r\n : ({}).toString.call(target[key][arrayIndex]) === '[object Array]');\r\n isSourceObject = !isSourceArray && (typeof source[arrayIndex] === 'object');\r\n isTargetObject = !isTargetArray && !!target[key][arrayIndex] && (typeof target[key][arrayIndex] === 'object');\r\n\r\n if (isSourceArray) {\r\n target[key][arrayIndex] = extend(true, isTargetArray ? target[key][arrayIndex] : [], source[arrayIndex]);\r\n } else if (isSourceObject) {\r\n target[key][arrayIndex] = extend(true, isTargetObject ? target[key][arrayIndex] : {}, source[arrayIndex]);\r\n } else {\r\n target[key][arrayIndex] = source[arrayIndex];\r\n }\r\n }\r\n continue;\r\n } else if (isSourceArray) {\r\n target[key] = extend(true, [], source);\r\n continue;\r\n } else if (isSourceObject) {\r\n target[key] = extend(true, isTargetObject ? target[key] : {}, source);\r\n continue;\r\n }\r\n }\r\n\r\n target[key] = source;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return target;\r\n}\r\n\r\n/*\r\n* @name - getDimensions\r\n* @description - Gets the dimension of an element.\r\n* @export\r\n* @param {HTMLElement} containerElement - The container element.\r\n* @returns {IClientDimension} - The client dimension.\r\n* {IClientDimension.width} - The client width\r\n* {IClientDimension.height} - The client height\r\n*/\r\nexport function getDimensions(containerElement: HTMLElement): IClientDimension | null {\r\n if (containerElement === null) {\r\n return null;\r\n }\r\n return {\r\n width: containerElement.clientWidth,\r\n height: containerElement.clientHeight\r\n };\r\n}\r\n","import classNames from 'classnames';\r\nimport * as React from 'react';\r\nimport * as ReactDOM from 'react-dom';\r\nimport { Manager } from 'react-popper';\r\nimport { keyCodes, mapToCssModules } from '../../shared-utils/utilities';\r\nimport { IDropdownProps } from './Dropdown.props';\r\n\r\nexport type DropdownDirection = 'up' | 'down' | 'left' | 'right';\r\nexport type DropdownAddonType = 'prepend' | 'append';\r\n\r\nexport interface IDropdownState {\r\n dropdownOpen: boolean;\r\n example2?: boolean;\r\n ddDropup?: boolean;\r\n ddDropleft?: boolean;\r\n ddDropright?: boolean;\r\n ddModifiers?: boolean;\r\n}\r\n\r\n/**\r\n * Dropdown component\r\n */\r\nexport default class Dropdown extends React.Component {\r\n public static defaultProps: Partial = {\r\n isOpen: false,\r\n direction: 'down',\r\n nav: false,\r\n active: false,\r\n addonType: false,\r\n inNavbar: false,\r\n setActiveFromChild: false,\r\n };\r\n\r\n public props: IDropdownProps;\r\n\r\n constructor(props: IDropdownProps) {\r\n super(props);\r\n this.props = props;\r\n this.addEvents = this.addEvents.bind(this);\r\n this.handleFirstItemFocus=this.handleFirstItemFocus.bind(this);\r\n this.handleDocumentClick = this.handleDocumentClick.bind(this);\r\n this.handleKeyDown = this.handleKeyDown.bind(this);\r\n this.removeEvents = this.removeEvents.bind(this);\r\n this.toggle = this.props.toggle ? this.props.toggle.bind(this) : this.toggle.bind(this);\r\n }\r\n\r\n public componentDidMount(): void {\r\n this.handleProps();\r\n }\r\n\r\n public componentDidUpdate(prevProps: IDropdownProps): void {\r\n if (this.props.isOpen !== prevProps.isOpen) {\r\n this.handleProps();\r\n }\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n this.removeEvents();\r\n }\r\n\r\n public getContainer(): Element {\r\n return ReactDOM.findDOMNode(this) as Element;\r\n }\r\n public handleFirstItemFocus(): void {\r\n const container = this.getContainer();\r\n const items = container.querySelectorAll(`.dropdown-item:not(.disabled)`);\r\n if (!items.length) { return; }\r\n const element = items[0] as HTMLElement;\r\n if (element) {\r\n element.focus();\r\n }\r\n }\r\n public addEvents = () => {\r\n ['click', 'touchstart', 'keyup'].forEach(\r\n (event: string) => document.addEventListener(event, this.handleDocumentClick, true)\r\n );\r\n }\r\n\r\n public removeEvents(): void {\r\n ['click', 'touchstart', 'keyup'].forEach(\r\n (event: string) => document.removeEventListener(event, this.handleDocumentClick, true)\r\n );\r\n }\r\n\r\n // tslint:disable-next-line:no-any\r\n public handleDocumentClick (e: any): void {\r\n if (e && (e.which === 3 || (e.type === 'keyup' && e.which !== keyCodes.tab))) { return; }\r\n const container = this.getContainer();\r\n\r\n if (container.contains(e.target) && container !== e.target && (e.type !== 'keyup' || e.which === keyCodes.tab)) {\r\n return;\r\n }\r\n\r\n this.toggle(e);\r\n }\r\n\r\n // tslint:disable-next-line:cyclomatic-complexity\r\n public handleKeyDown(\r\n // tslint:disable-next-line:no-any\r\n e: any\r\n ): void {\r\n\r\n const tagName = e.target.tagName;\r\n if ([keyCodes.esc, keyCodes.up, keyCodes.down, keyCodes.space, keyCodes.enter].indexOf(e.which) === -1 ||\r\n (tagName === 'BUTTON' && (e.which === keyCodes.space || e.which === keyCodes.enter)) ||\r\n (tagName === 'INPUT' || tagName === 'TEXTAREA')) {\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n if (this.props.disabled) { return; }\r\n\r\n const container = this.getContainer();\r\n\r\n if ((e.which === keyCodes.space || e.which === keyCodes.enter) && this.props.isOpen && container !== e.target) {\r\n e.target.click();\r\n }\r\n\r\n if (e.which === keyCodes.esc || !this.props.isOpen) {\r\n this.toggle(e);\r\n const expandedElement = container.querySelector('.dropdown-toggle') as HTMLElement;\r\n if (expandedElement) {\r\n expandedElement.focus();\r\n }\r\n return;\r\n }\r\n\r\n const menuClass = mapToCssModules('dropdown-menu', this.props.cssModule);\r\n const itemClass = mapToCssModules('dropdown-item', this.props.cssModule);\r\n const disabledClass = mapToCssModules('disabled', this.props.cssModule);\r\n\r\n const items = container.querySelectorAll(`.${menuClass} .${itemClass}:not(.${disabledClass})`);\r\n\r\n if (!items.length) { return; }\r\n\r\n let index = -1;\r\n for (let i = 0; i < items.length; i += 1) {\r\n if (items[i] === e.target) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n\r\n if (e.which === keyCodes.up && index > 0) {\r\n index -= 1;\r\n }\r\n\r\n if (e.which === keyCodes.down && index < items.length - 1) {\r\n index += 1;\r\n }\r\n\r\n if (index < 0) {\r\n index = 0;\r\n }\r\n\r\n const element = items[index] as HTMLElement;\r\n\r\n if (element) {\r\n element.focus();\r\n }\r\n }\r\n\r\n public handleProps(): void {\r\n if (this.props.isOpen) {\r\n this.addEvents();\r\n this.handleFirstItemFocus();\r\n } else {\r\n this.removeEvents();\r\n }\r\n }\r\n\r\n public toggle(e: Event):void {\r\n\r\n if(!this.props.disabled) {\r\n this.props.toggle && this.props.toggle(e);\r\n } else {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n public render(): JSX.Element {\r\n const {\r\n className,\r\n cssModule,\r\n dropup,\r\n isOpen,\r\n group,\r\n size,\r\n nav,\r\n setActiveFromChild,\r\n active,\r\n addonType,\r\n toggle,\r\n disabled,\r\n direction,\r\n inNavbar,\r\n ...attrs\r\n } = this.props;\r\n\r\n const directionOrDefault = (direction === 'down' && dropup) ? 'up' : direction;\r\n\r\n attrs.tag = attrs.tag || (nav ? 'li' : 'div');\r\n\r\n let subItemIsActive = false;\r\n if (setActiveFromChild) {\r\n React.Children.map(\r\n this.props.children![1].props.children,\r\n // tslint:disable-next-line:no-any\r\n (dropdownItem: any) => {\r\n // tslint:disable-next-line:no-any\r\n const derefdropdownItem: any = dropdownItem;\r\n // tslint:disable-next-line:no-any\r\n const dropdownItemProps: any = derefdropdownItem.props;\r\n if (dropdownItemProps.active) {\r\n subItemIsActive = true;\r\n }\r\n }\r\n );\r\n }\r\n\r\n const classes = mapToCssModules(\r\n classNames(\r\n className,\r\n directionOrDefault !== 'down' && `drop${directionOrDefault}`,\r\n nav && active ? 'active' : false,\r\n setActiveFromChild && subItemIsActive ? 'active' : false,\r\n addonType ? `input-group-${addonType}` : false,\r\n group ? 'btn-group' : false,\r\n !!size ? `btn-group-${size}` : false,\r\n !group && !addonType ? 'dropdown' : false,\r\n isOpen ? 'show' : false,\r\n nav ? 'nav-item' : false\r\n ),\r\n cssModule\r\n );\r\n\r\n return ;\r\n }\r\n}\r\n","import classNames from 'classnames';\r\nimport * as React from 'react';\r\nimport { mapToCssModules } from '../../shared-utils/utilities';\r\n\r\nexport interface IDropdownItemProps {\r\n children?: Node | string;\r\n active?: boolean;\r\n disabled?: boolean;\r\n divider?: boolean;\r\n // @ts-ignore\r\n tag?: React.ReactType;\r\n header?: boolean;\r\n onClick?: Function;\r\n className?: string;\r\n cssModule?: object;\r\n toggle?: Function;\r\n href?:string;\r\n 'aria-setsize'?: number;\r\n 'aria-posinset'?: number;\r\n id?: string;\r\n}\r\n\r\n/**\r\n * Dropdown Item component\r\n */\r\nexport default class DropdownItem extends React.Component {\r\n public static defaultProps: Partial = {\r\n tag: 'button'\r\n };\r\n public props: IDropdownItemProps;\r\n\r\n constructor(props: IDropdownItemProps) {\r\n super(props);\r\n this.props = props;\r\n this.onClick = this.onClick.bind(this);\r\n this.getTabIndex = this.getTabIndex.bind(this);\r\n }\r\n\r\n public onClick(e: Event): void {\r\n if (this.props.disabled || this.props.header || this.props.divider) {\r\n e.preventDefault();\r\n\r\n return;\r\n }\r\n\r\n if (this.props.onClick) {\r\n this.props.onClick(e);\r\n }\r\n\r\n if (this.props.toggle) {\r\n this.props.toggle(e);\r\n }\r\n }\r\n\r\n public getTabIndex(): String {\r\n if (this.props.disabled || this.props.header || this.props.divider) {\r\n return '-1';\r\n }\r\n\r\n return '0';\r\n }\r\n\r\n public render(): JSX.Element {\r\n const tabIndex = this.getTabIndex();\r\n const {\r\n className,\r\n cssModule,\r\n divider,\r\n tag,\r\n header,\r\n active,\r\n toggle,\r\n ...props } = this.props;\r\n\r\n const toggleValue = toggle || false;\r\n const classes = mapToCssModules(\r\n classNames(\r\n className,\r\n {\r\n disabled: this.props.disabled,\r\n 'dropdown-item': !divider && !header,\r\n active: active,\r\n 'dropdown-header': header,\r\n 'dropdown-divider': divider\r\n }\r\n ),\r\n cssModule\r\n );\r\n\r\n let Tag = tag || 'button';\r\n if (Tag === 'button') {\r\n if (header) {\r\n Tag = 'h6';\r\n } else if (divider) {\r\n Tag = 'div';\r\n } else if (props.href) {\r\n Tag = 'a';\r\n }\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n","import classNames from 'classnames';\r\nimport { Placement } from 'popper.js';\r\nimport * as React from 'react';\r\nimport { Popper } from 'react-popper';\r\nimport { mapToCssModules } from '../../shared-utils/utilities';\r\n\r\nconst noFlipModifier = { flip: { enabled: false } };\r\n\r\nexport interface IDropdownMenuProps extends React.DOMAttributes {\r\n // @ts-ignore\r\n component?: React.ReactType;\r\n right?: boolean;\r\n flip?: boolean;\r\n // tslint:disable-next-line:no-any\r\n popperModifiers?: any;\r\n className?: string;\r\n cssModule?: object;\r\n persist?: boolean;\r\n isOpen?: boolean;\r\n inNavbar?: boolean;\r\n placement?:Placement;\r\n // tslint:disable-next-line:no-any\r\n modifiers?: any;\r\n}\r\n\r\n/**\r\n * DropdownMenu component\r\n */\r\nexport default class DropdownMenu extends React.Component {\r\n public static defaultProps: Partial = {\r\n component: 'div',\r\n flip: true,\r\n inNavbar: false,\r\n isOpen: false\r\n };\r\n\r\n public props: IDropdownMenuProps;\r\n\r\n constructor(props: IDropdownMenuProps) {\r\n super(props);\r\n this.props = props;\r\n }\r\n\r\n public render(): JSX.Element {\r\n const {\r\n className,\r\n component,\r\n cssModule,\r\n right,\r\n flip,\r\n popperModifiers,\r\n persist,\r\n placement,\r\n isOpen,\r\n inNavbar,\r\n ...attrs\r\n } = this.props;\r\n const classes = mapToCssModules(\r\n classNames(className, 'dropdown-menu', {\r\n 'dropdown-menu-right': right,\r\n show: this.props.isOpen\r\n }),\r\n cssModule\r\n );\r\n\r\n if (persist || (this.props.isOpen && !this.props.inNavbar)) {\r\n attrs.modifiers = !flip\r\n ? {\r\n ...popperModifiers,\r\n ...noFlipModifier\r\n }\r\n : popperModifiers;\r\n\r\n return (\r\n \r\n );\r\n }\r\n // @ts-ignore\r\n const Tag: React.ReactType = this.props.component || 'div';\r\n\r\n return ;\r\n }\r\n}\r\n","import classNames from 'classnames';\r\nimport * as React from 'react';\r\nimport { mapToCssModules } from '../../shared-utils/utilities';\r\nimport { IButtonProps } from './Button.props';\r\n\r\n/**\r\n * Button component\r\n */\r\nexport default class Button extends React.Component {\r\n\r\n public static defaultProps: Partial = {\r\n tag: 'button',\r\n outline: false\r\n };\r\n public props: IButtonProps;\r\n\r\n constructor(props: IButtonProps) {\r\n super(props);\r\n this.props = props;\r\n this.onClick = this.onClick.bind(this); // put this in componentDidMount\r\n }\r\n\r\n public render(): JSX.Element {\r\n const {\r\n active,\r\n block,\r\n className,\r\n cssModule,\r\n color,\r\n outline,\r\n size,\r\n tag,\r\n innerRef,\r\n ...attributes\r\n } = this.props;\r\n const classes = mapToCssModules(\r\n classNames(\r\n className,\r\n 'btn',\r\n outline && color ? `btn-outline-${color}` : color && outline === false ? `btn-${color}` : color === undefined && outline === true ? `btn-outline` : '',\r\n size ? `btn-${size}` : false,\r\n block ? 'btn-block' : false,\r\n { active, disabled: this.props.disabled }\r\n ),\r\n cssModule\r\n );\r\n\r\n let Tag = tag || 'button';\r\n\r\n if (attributes.href && Tag === 'button') {\r\n Tag = 'a';\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n private onClick = (e: React.MouseEvent) => {\r\n if (this.props.disabled) {\r\n e.preventDefault();\r\n\r\n return;\r\n }\r\n\r\n if (this.props.onClick) {\r\n this.props.onClick(e);\r\n }\r\n }\r\n}\r\n","import * as React from 'react';\r\nimport { IDropdownState } from './Dropdown';\r\nimport { IDropdownProps } from './Dropdown.props';\r\nimport { DropdownContext } from './UncontrolledDropdown';\r\n\r\nexport interface IDropdownContextType {\r\n isOpen: boolean;\r\n inNavbar: boolean;\r\n // tslint:disable-next-line:prefer-method-signature\r\n toggle: () => void;\r\n}\r\n\r\n/**\r\n * Dropdown Provider\r\n */\r\nexport class DropdownContextProvider extends React.Component {\r\n\r\n constructor(props: IDropdownProps, state: IDropdownState) {\r\n super(props, state);\r\n this.state = {\r\n dropdownOpen: this.props.isOpen || false,\r\n };\r\n this.togglefn = this.togglefn.bind(this);\r\n }\r\n\r\n public render(): JSX.Element {\r\n\r\n return (\r\n \r\n {this.props.children}\r\n \r\n );\r\n }\r\n\r\n private togglefn = (): void => {\r\n this.setState((prevState: IDropdownState) => {\r\n return {\r\n dropdownOpen: !prevState.dropdownOpen\r\n };\r\n });\r\n }\r\n}\r\n","import * as React from 'react';\r\nimport Dropdown, { IDropdownState } from './Dropdown';\r\nimport { IDropdownProps } from './Dropdown.props';\r\nimport { DropdownContextProvider, IDropdownContextType } from './DropdownProvider';\r\n\r\n// tslint:disable-next-line:no-any no-empty\r\nexport const DropdownContext = React.createContext({ isOpen: false, toggle: () => {}, inNavbar: false });\r\n\r\n/**\r\n * Uncontrolled Dropdown component\r\n */\r\nexport default class UncontrolledDropdown extends React.Component {\r\n\r\n public render(): JSX.Element {\r\n return (\r\n \r\n \r\n {(context: IDropdownContextType) => {\r\n return(\r\n \r\n {this.props.children}\r\n \r\n );}}\r\n \r\n \r\n );\r\n }\r\n}\r\n","import classNames from 'classnames';\r\nimport * as React from 'react';\r\nimport { Target } from 'react-popper';\r\nimport { mapToCssModules } from '../../shared-utils/utilities';\r\nimport Button from '../citta-button/Button';\r\nimport { IDropdownContextType } from './DropdownProvider';\r\nimport { DropdownContext } from './UncontrolledDropdown';\r\n\r\nexport interface IDropdownToggleProps {\r\n caret?: boolean;\r\n color?: string;\r\n id?: string;\r\n children?: Node | string;\r\n className?: string;\r\n cssModule?: object;\r\n disabled?: boolean;\r\n onClick?: Function;\r\n 'aria-haspopup'?: boolean;\r\n split?: boolean;\r\n tag?: string;\r\n nav?: boolean;\r\n 'aria-label'?: string;\r\n href?: string;\r\n // tslint:disable-next-line:no-any prefer-method-signature\r\n toggle?: (e:any) => void;\r\n size?: string;\r\n useContext?: boolean;\r\n inNavbar?: boolean;\r\n isOpen?: boolean;\r\n 'aria-expanded'?: boolean;\r\n 'aria-labelledby'?: string;\r\n role?: string;\r\n}\r\n\r\n/**\r\n * Dropdown Toggle component\r\n */\r\nexport default class DropdownToggle extends React.Component {\r\n public static defaultProps: Partial = {\r\n 'aria-haspopup': true,\r\n color: 'secondary',\r\n isOpen: false\r\n };\r\n\r\n public context: IDropdownContextType | null;\r\n\r\n constructor(props: IDropdownToggleProps) {\r\n super(props);\r\n this._onClick = this._onClick.bind(this);\r\n this.context = null;\r\n }\r\n\r\n public render(): JSX.Element {\r\n // tslint:disable-next-line:prefer-const -- cannot make const as ...props gets reassigned later\r\n let { className, color, cssModule, caret, split, nav, tag, toggle, inNavbar, isOpen, useContext, ...props } = this.props;\r\n let destructProps = { ...props };\r\n const ariaLabel = props['aria-label'] || 'Toggle Dropdown';\r\n const classes = mapToCssModules(\r\n classNames(className, {\r\n 'dropdown-toggle': caret || split,\r\n 'dropdown-toggle-split': split,\r\n 'nav-link': nav\r\n }),\r\n cssModule\r\n );\r\n const children = props.children || {ariaLabel};\r\n\r\n let Tag: string | typeof Button;\r\n\r\n if (nav && !tag) {\r\n Tag = 'a';\r\n destructProps.href = '#';\r\n } else if (!tag) {\r\n Tag = Button;\r\n destructProps = {\r\n ...destructProps,\r\n // @ts-ignore -- color is missing from prop definition, where does this get applied to?\r\n color,\r\n cssModule\r\n };\r\n } else {\r\n Tag = tag;\r\n destructProps = {\r\n ...destructProps,\r\n // @ts-ignore -- tabIndex is missing from prop definition, need to extend htmlelement\r\n tabIndex: '0'\r\n };\r\n }\r\n\r\n if (useContext) {\r\n return (\r\n \r\n {(context: IDropdownContextType) => {\r\n this.context = context;\r\n return React.createElement(\r\n // tslint:disable-next-line:no-any\r\n context && context.inNavbar ? Tag : Target as any,\r\n {\r\n ...destructProps,\r\n className: classes,\r\n onClick: this._onClick,\r\n 'aria-expanded': this.context.isOpen,\r\n component: !(context && context.inNavbar) && Tag\r\n },\r\n // @ts-ignore\r\n children\r\n );\r\n }}\r\n \r\n );\r\n }\r\n return React.createElement(\r\n // tslint:disable-next-line:no-any\r\n inNavbar ? Tag : Target as any,\r\n {\r\n ...destructProps,\r\n className: classes,\r\n component: !inNavbar && Tag,\r\n onClick: this._onClick,\r\n 'aria-expanded': this.props.isOpen\r\n },\r\n // @ts-ignore\r\n children\r\n );\r\n }\r\n\r\n private _onClick(e: MouseEvent): void {\r\n if (this.props.disabled) {\r\n e.preventDefault();\r\n\r\n return;\r\n }\r\n\r\n if (this.props.nav && !this.props.tag) {\r\n e.preventDefault();\r\n }\r\n\r\n if (this.props.onClick) {\r\n this.props.onClick(e);\r\n }\r\n\r\n if (this.props.toggle) {\r\n this.props.toggle(e);\r\n } else if (this.context && this.context.toggle) {\r\n this.context.toggle();\r\n }\r\n }\r\n}\r\n","import { ITelemetry } from '@msdyn365-commerce/core';\r\nimport { ProductRefinerValue } from '@msdyn365-commerce/retail-proxy';\r\nimport { IRefineItemToggleNotification } from './refine-item-toggle-notification';\r\n\r\nexport function getText(element?: HTMLElement | Element): string {\r\n return !!element ? element.textContent || '' : '';\r\n}\r\n\r\nexport const enum KeyCodes {\r\n Back = 8,\r\n Tab = 9,\r\n Enter = 13,\r\n Shift = 16,\r\n Ctrl = 17,\r\n Alt = 18,\r\n Break = 19,\r\n CapsLock = 20,\r\n Escape = 27,\r\n Space = 32,\r\n PageUp = 33,\r\n PageDown = 34,\r\n End = 35,\r\n Home = 36,\r\n ArrowLeft = 37,\r\n ArrowUp = 38,\r\n ArrowRight = 39,\r\n ArrowDown = 40,\r\n Print = 44,\r\n Insert = 45,\r\n Delete = 46,\r\n Colon2 = 59, // Opera and Firefox\r\n Equals2 = 61, // Opera\r\n Equals3 = 107, // Firefox\r\n Minus2 = 109, // Opera and Firefox\r\n Period = 190,\r\n WindowsLeft = 91,\r\n WindowsRight = 92,\r\n WindowsOpera = 219, // Opera\r\n Menu = 93,\r\n NumPad0 = 96,\r\n NumPad1 = 97,\r\n NumPad2 = 98,\r\n NumPad3 = 99,\r\n NumPad4 = 100,\r\n NumPad5 = 101,\r\n NumPad6 = 102,\r\n NumPad7 = 103,\r\n NumPad8 = 104,\r\n NumPad9 = 105,\r\n NumPadMultiply = 106,\r\n NumPadPlus = 107,\r\n NumPadMinus = 109,\r\n NumPadDot = 110,\r\n NumPadDivide = 111,\r\n Function1 = 112,\r\n Function2 = 113,\r\n Function3 = 114,\r\n Function4 = 115,\r\n Function5 = 116,\r\n Function6 = 117,\r\n Function7 = 118,\r\n Function8 = 119,\r\n Function9 = 120,\r\n Function10 = 121,\r\n Function11 = 122,\r\n Function12 = 123,\r\n NavigationUp = 138,\r\n NavigationDown = 139,\r\n NavigationLeft = 140,\r\n NavigationRight = 141,\r\n NavigationAccept = 142,\r\n NumLock = 144,\r\n ScrollLock = 145,\r\n Colon = 186,\r\n Equals = 187,\r\n Comma = 188,\r\n Minus = 189,\r\n ForwardSlash = 191,\r\n Tilde = 192,\r\n GamepadA = 195,\r\n GamepadB = 196,\r\n GamepadX = 197,\r\n GamepadY = 198,\r\n GamepadRightButton = 199,\r\n GamepadLeftButton = 200,\r\n GamepadLeftTrigger = 201,\r\n GamepadRightTrigger = 202,\r\n GamepadDPadUp = 203,\r\n GamepadDPadDown = 204,\r\n GamepadDPadLeft = 205,\r\n GamepadDPadRight = 206,\r\n GamepadSelect = 207,\r\n GamepadStart = 208,\r\n GamepadLeftThumbstick = 209,\r\n GamepadRightThumbstick = 210,\r\n GamepadLeftThumbstickUp = 211,\r\n GamepadLeftThumbstickDown = 212,\r\n GamepadLeftThumbstickRight = 213,\r\n GamepadLeftThumbstickLeft = 214,\r\n GamepadRightThumbstickUp = 215,\r\n GamepadRightThumbstickDown = 216,\r\n GamepadRightThumbstickRight = 217,\r\n GamepadRightThumbstickLeft = 218,\r\n OpenBracket = 219,\r\n BackSlash = 220,\r\n CloseBracket = 221,\r\n Quote = 222\r\n}\r\n\r\n/**\r\n * Types of product refiner values\r\n */\r\nexport const enum ProductRefinerValueDataTypeValue {\r\n /**\r\n * Range slider is used for selections like price\r\n */\r\n Range = 1,\r\n\r\n /**\r\n * Range input is a different way to specify ranges and can be expressed with input boxes\r\n * as well as a set of discrete single-select type values\r\n */\r\n RangeInput = 4,\r\n\r\n /**\r\n * This is a discrete list item, either multi-select or single-select\r\n */\r\n List = 5,\r\n\r\n /**\r\n * Boolean types allows only single-select\r\n */\r\n Boolean = 6\r\n}\r\n\r\n/**\r\n * Types of product refiners\r\n */\r\nexport const enum ProductRefinerTypeValue {\r\n /**\r\n * Refiner values are single-select\r\n */\r\n Single = 0,\r\n\r\n /**\r\n * Refiner values are multi-select\r\n */\r\n Multi = 1\r\n}\r\n\r\n/**\r\n * ProductRefinerSource enum type.\r\n */\r\nexport const enum ProductRefinerSource {\r\n /**\r\n * The None member.\r\n */\r\n None = 0,\r\n /**\r\n * The Attribute member.\r\n */\r\n Attribute = 1,\r\n /**\r\n * The Category member.\r\n */\r\n Category = 2,\r\n /**\r\n * The Price member.\r\n */\r\n Price = 3,\r\n /**\r\n * The Rating member.\r\n */\r\n Rating = 4\r\n}\r\n\r\n/**\r\n * Find the refinement criterion associated with this product refiner value\r\n * @param productRefinerValue product refiner value to match\r\n * @param refinementCriteria selected refinement criteria\r\n */\r\nexport function findMatchingRefinementCriterion(\r\n productRefinerValue: ProductRefinerValue,\r\n refinementCriteria: ProductRefinerValue[]\r\n): ProductRefinerValue | undefined {\r\n // if the value is a range, then match only on data type value; otherwise match on item string\r\n return refinementCriteria.find(\r\n (refinementCriterion: ProductRefinerValue) => isMatchingRefinementCriterion(productRefinerValue, refinementCriterion)\r\n );\r\n}\r\n\r\n/**\r\n * Find the refinement criterion associated with this product refiner value\r\n * @param productRefinerValue product refiner value to match\r\n * @param refinementCriteria selected refinement criteria\r\n */\r\nexport function isMatchingRefinementCriterion(\r\n productRefinerValue: ProductRefinerValue,\r\n refinementCriterion: ProductRefinerValue\r\n): boolean {\r\n // if the value is a range, then match only on data type value; otherwise match on item string\r\n return (\r\n refinementCriterion.RefinerRecordId === productRefinerValue.RefinerRecordId &&\r\n refinementCriterion.RefinerSourceValue === productRefinerValue.RefinerSourceValue &&\r\n refinementCriterion.DataTypeValue === productRefinerValue.DataTypeValue &&\r\n (refinementCriterion.DataTypeValue === ProductRefinerValueDataTypeValue.Range ||\r\n refinementCriterion.LeftValueBoundString === productRefinerValue.LeftValueBoundString)\r\n );\r\n}\r\n\r\nexport function getUpdatedRefinementCriteria(\r\n itemToggleNotification: IRefineItemToggleNotification,\r\n currentRefinementCriteria: ProductRefinerValue[]): ProductRefinerValue[] {\r\n const updatedRefinementCriteria: ProductRefinerValue[] = [];\r\n let toggledItemFound = false;\r\n currentRefinementCriteria.forEach((selectedCriterion: ProductRefinerValue) => {\r\n if (isMatchingRefinementCriterion(itemToggleNotification.productRefinerValue, selectedCriterion)) {\r\n toggledItemFound = true;\r\n if (itemToggleNotification.isSelecting) {\r\n const next = {\r\n ...selectedCriterion,\r\n LeftValueBoundString: itemToggleNotification.rangeStart !== undefined && `${itemToggleNotification.rangeStart}` || selectedCriterion.LeftValueBoundString,\r\n RightValueBoundString: itemToggleNotification.rangeEnd !== undefined && `${itemToggleNotification.rangeEnd}` || selectedCriterion.RightValueBoundString,\r\n };\r\n updatedRefinementCriteria.push(next);\r\n\r\n } // else the item is being de-selected, so omit it from the refinement criteria\r\n } else {\r\n // keep existing criterion because it is not in the item toggle notification\r\n updatedRefinementCriteria.push(selectedCriterion);\r\n }\r\n });\r\n\r\n if (!toggledItemFound) {\r\n const next = {\r\n ...itemToggleNotification.productRefinerValue,\r\n LeftValueBoundString: itemToggleNotification.rangeStart !== undefined && `${itemToggleNotification.rangeStart}` || itemToggleNotification.productRefinerValue.LeftValueBoundString,\r\n RightValueBoundString: itemToggleNotification.rangeEnd !== undefined && `${itemToggleNotification.rangeEnd}` || itemToggleNotification.productRefinerValue.RightValueBoundString,\r\n };\r\n updatedRefinementCriteria.push(next);\r\n\r\n // If single select, then deselect any others in the parent refiner group\r\n if ((itemToggleNotification.productRefinerValue.DataTypeValue === ProductRefinerValueDataTypeValue.List || itemToggleNotification.productRefinerValue.DataTypeValue === ProductRefinerValueDataTypeValue.Boolean) &&\r\n itemToggleNotification.parentProductRefinerHierarchy.RefinerTypeValue === ProductRefinerTypeValue.Single) {\r\n itemToggleNotification.parentProductRefinerHierarchy.Values.forEach((child: ProductRefinerValue) => {\r\n if (child.RefinerRecordId === next.RefinerRecordId && child.LeftValueBoundString === next.LeftValueBoundString) {\r\n // do nothing\r\n } else {\r\n const matchingIndex = updatedRefinementCriteria.findIndex((criterion: ProductRefinerValue) => isMatchingRefinementCriterion(child, criterion));\r\n if (matchingIndex > -1) {\r\n updatedRefinementCriteria.splice(matchingIndex, 1);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n return updatedRefinementCriteria;\r\n}\r\n\r\nexport function formatPrice(\r\n amount: string | undefined,\r\n currency: string | undefined,\r\n locale: string | undefined,\r\n telemetry: ITelemetry): string {\r\n if (!amount || !currency) {\r\n telemetry.trace(`[refine-menu.utilities.formatPrice] could not format price for ${amount} ${currency}`);\r\n return amount || '';\r\n }\r\n const priceAmount = (amount && Number(amount)) || 0;\r\n let result: string;\r\n\r\n try {\r\n result = new Intl.NumberFormat(locale, {\r\n style: 'currency',\r\n currencyDisplay: 'symbol',\r\n currency: currency\r\n }).format(priceAmount);\r\n } catch (e) {\r\n result = `${priceAmount} ${currency}`;\r\n telemetry.warning(`[refine-menu.utilities.formatPrice] Failed to format price for ${result}: ${e}`);\r\n }\r\n\r\n return result;\r\n}","import * as React from 'react';\r\nimport { IDropdownProps } from '../../citta-dropdown/Dropdown.props';\r\nimport { getText, KeyCodes } from '../utilities';\r\nimport { IRichSelectProps, IRichSelectSelectedItem } from './RichSelect.props';\r\n\r\nexport interface ISelectState {\r\n dropdownOpen: boolean;\r\n dropdownText: string;\r\n selectedIndices: number[];\r\n}\r\n\r\n/**\r\n * RichSelect - This component is a dropdown specifically created to mimic a select menu.\r\n * Can generate a native select for forms\r\n */\r\nexport default class RichSelect extends React.PureComponent {\r\n private ref: React.RefObject = React.createRef();\r\n private options: HTMLOptionElement[] = [];\r\n\r\n constructor(props: Readonly) {\r\n super(props);\r\n this._toggle = this._toggle.bind(this);\r\n this._click = this._click.bind(this);\r\n this._handleKeyDown = this._handleKeyDown.bind(this);\r\n // @ts-ignore\r\n const dropdown = React.Children.toArray(this.props.children)[0] as React.ReactElement;\r\n const toggle = dropdown.props.children![0];\r\n this.state = { dropdownOpen: !!dropdown.props.isOpen, dropdownText: toggle.props.children, selectedIndices: [] };\r\n }\r\n\r\n public componentDidMount(): void {\r\n if (this.props.form) {\r\n const select = document.createElement('select');\r\n select.setAttribute('aria-hidden', 'true');\r\n select.setAttribute('tabindex', '-1');\r\n select.setAttribute('name', this.props.name || this.props.id);\r\n select.className = 'sr-only';\r\n\r\n if (this.props.multiSelect) {\r\n select.setAttribute('multiple', 'true');\r\n }\r\n\r\n const items = this.ref.current!.getElementsByClassName('rich-select__item');\r\n\r\n for (let i = 0; i < items.length; i++) {\r\n const text = getText(items.item(i)!);\r\n const option = document.createElement('option');\r\n option.appendChild(document.createTextNode(text));\r\n this.options.push(option);\r\n select.appendChild(option);\r\n }\r\n\r\n this.ref.current!.children[0].appendChild(select);\r\n }\r\n }\r\n\r\n public render(): JSX.Element {\r\n // @ts-ignore\r\n let dropdown = React.Children.toArray(this.props.children)[0] as React.ReactElement;\r\n let toggle = dropdown.props.children![0];\r\n let menu = dropdown.props.children![1];\r\n let menuItems = React.Children.toArray(menu.props.children);\r\n // @ts-ignore\r\n menuItems = menuItems.map((item: React.ReactChild, index: number) => {\r\n item = item as React.ReactElement;\r\n return React.cloneElement(item, {\r\n 'aria-setsize': menuItems.length,\r\n 'aria-posinset': index + 1,\r\n 'data-index': index,\r\n id: item.props.id || `${this.props.id}-${index}`,\r\n active: this.state.selectedIndices.indexOf(index) > -1,\r\n onClick: this._click,\r\n onKeyDown: this._handleKeyDown,\r\n className: 'rich-select__item'\r\n });\r\n });\r\n\r\n toggle = React.cloneElement(toggle, {\r\n toggle: this._toggle,\r\n id: (this.props.id || ''),\r\n 'aria-expanded': this.state.dropdownOpen,\r\n isOpen: this.state.dropdownOpen,\r\n children: this.state.dropdownText,\r\n className: 'rich-select__toggle',\r\n onKeyDown: this._handleKeyDown,\r\n key: 'rich-select__toggle'\r\n });\r\n\r\n menu = React.cloneElement(menu, { isOpen: this.state.dropdownOpen, children: menuItems, className: 'rich-select__menu', key: 'rich-select__menu' });\r\n\r\n dropdown = React.cloneElement(dropdown, {\r\n toggle: this._toggle,\r\n className: 'rich-select',\r\n isOpen: this.state.dropdownOpen,\r\n children: [toggle, menu]\r\n });\r\n\r\n return
{dropdown}
;\r\n }\r\n\r\n private _toggle(): void {\r\n this.setState((prevState: ISelectState) => {\r\n return { dropdownOpen: !prevState.dropdownOpen };\r\n });\r\n }\r\n\r\n // tslint:disable-next-line:no-any\r\n private _handleKeyDown(event: any): void {\r\n // To handle focus on keydown event of toggle button\r\n if (event.target.className.includes('rich-select__toggle')) {\r\n event.stopPropagation();\r\n event.target.focus();\r\n }\r\n // To handle focus on keydown event of menu item\r\n if (event.target.className.includes('dropdown-item') && event.which === KeyCodes.Enter) {\r\n event.stopPropagation();\r\n this._click(event);\r\n this._toggle();\r\n }\r\n // To handle focus on toggle button on Escape key\r\n if (event.which === KeyCodes.Escape) {\r\n event.stopPropagation();\r\n this._toggle();\r\n const toggle = this.ref.current!.getElementsByClassName('rich-select__toggle').item(0) as HTMLElement;\r\n toggle.focus();\r\n }\r\n }\r\n\r\n private _click(event: Event): void {\r\n const target = event.target as HTMLElement;\r\n const index = parseInt(target.getAttribute('data-index')!, 10);\r\n const selectedIndices = this._toggleSelectIndex(target, index);\r\n const dropdownText = this.props.multiSelect ? this.state.dropdownText : getText(target);\r\n this._updateNativeSelect(index);\r\n\r\n this.setState((prevState: ISelectState) => {\r\n return { dropdownOpen: !prevState.dropdownOpen, dropdownText: dropdownText, selectedIndices: selectedIndices };\r\n });\r\n\r\n const toggle = this.ref.current!.getElementsByClassName('rich-select__toggle').item(0) as HTMLElement;\r\n toggle.focus();\r\n\r\n if (this.props.onChange) {\r\n const items = this.ref.current!.getElementsByClassName('rich-select__item');\r\n const selectedItems: IRichSelectSelectedItem[] = [];\r\n selectedIndices.forEach((selectedIndex: number) => {\r\n const element = items.item(selectedIndex)!;\r\n selectedItems.push({ id: element.getAttribute('id')!, value: getText(element), index: element.getAttribute('data-index')!});\r\n });\r\n\r\n this.props.onChange({ selectId: this.props.id, selectedItems: selectedItems });\r\n }\r\n }\r\n\r\n private _toggleSelectIndex(target: HTMLElement, index: number): number[] {\r\n if (this.props.multiSelect) {\r\n const selected = target.classList.contains('active');\r\n const selectedIndex = this.state.selectedIndices.indexOf(index);\r\n const indices = this.state.selectedIndices;\r\n\r\n if (selected) {\r\n indices.splice(selectedIndex, 1);\r\n } else {\r\n indices.push(index);\r\n }\r\n\r\n return indices;\r\n }\r\n\r\n return [index];\r\n }\r\n\r\n private _updateNativeSelect(index: number): void {\r\n if (this.props.form) {\r\n if (this.props.multiSelect) {\r\n if (this.options[index].getAttribute('selected')) {\r\n this.options[index].removeAttribute('selected');\r\n } else {\r\n this.options[index].setAttribute('selected', 'true');\r\n }\r\n } else {\r\n if (this.state.selectedIndices.length) {\r\n const currentIndex = this.state.selectedIndices[0];\r\n this.options[currentIndex].removeAttribute('selected');\r\n }\r\n\r\n this.options[index].setAttribute('selected', 'true');\r\n }\r\n }\r\n }\r\n}","/**\r\n * Copyright (c) 2018 Microsoft Corporation\r\n */\r\nimport {\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n IPayLoad,\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport {\r\n Dropdown as CittaDropdown,\r\n DropdownItem,\r\n DropdownMenu,\r\n DropdownToggle,\r\n} from '../../../components/citta-dropdown/index';\r\nimport RichSelect from '../rich-select/RichSelect';\r\nimport { IRichSelectOnChangeNotification } from '../rich-select/RichSelect.props';\r\nimport { IDropdownProps } from './';\r\nimport { IDropdownItemProps } from './dropdown.props';\r\n\r\ntype IDropdownState = {\r\n /**\r\n * @friendlyName selectedIndex\r\n * @description selected index\r\n */\r\n selectedIndex: string;\r\n};\r\n\r\n/**\r\n *\r\n * DropDown component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class Dropdown extends React.PureComponent<\r\n IDropdownProps,\r\n IDropdownState\r\n> {\r\n private selectMenu: React.RefObject = React.createRef<\r\n HTMLSelectElement\r\n >();\r\n private payLoad: IPayLoad;\r\n\r\n constructor(props: IDropdownProps, state: IDropdownState) {\r\n super(props);\r\n this.state = {\r\n selectedIndex: '',\r\n };\r\n this.payLoad = getPayloadObject(\r\n 'click',\r\n props.telemetryContent!,\r\n this.props.dropdownName\r\n );\r\n }\r\n\r\n public componentDidMount(): void {\r\n if (this.selectMenu.current) {\r\n this.selectMenu.current.selectedIndex = 0;\r\n }\r\n }\r\n\r\n public render(): JSX.Element {\r\n const {\r\n dropdownId,\r\n dropdownList,\r\n dropdownName,\r\n dropdownToggleName,\r\n } = this.props;\r\n const attribute = getTelemetryAttributes(\r\n this.props.telemetryContent!,\r\n this.payLoad\r\n );\r\n return (\r\n // @ts-ignore\r\n \r\n \r\n \r\n {dropdownToggleName}\r\n \r\n \r\n {dropdownList.map(\r\n (item: IDropdownItemProps) =>\r\n item && (\r\n \r\n {item.value}\r\n \r\n )\r\n )}\r\n \r\n \r\n \r\n );\r\n }\r\n private _onChanged = async (\r\n notification: IRichSelectOnChangeNotification\r\n ) => {\r\n this.setState({\r\n selectedIndex:\r\n notification.selectedItems.length > 0\r\n ? notification.selectedItems[0].id\r\n : '',\r\n });\r\n if (this.props.onChange) {\r\n await this.props.onChange({\r\n dropdownId: this.props.dropdownId,\r\n selectId:\r\n notification.selectedItems.length > 0\r\n ? notification.selectedItems[0].id\r\n : '',\r\n selectedValue:\r\n notification.selectedItems.length > 0\r\n ? notification.selectedItems[0].value\r\n : '',\r\n });\r\n }\r\n };\r\n}\r\n","import * as React from 'react';\r\n\r\nimport { getTelemetryObject, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport { ProductDimensionFull } from '@msdyn365-commerce/commerce-entities';\r\nimport { IActionContext } from '@msdyn365-commerce/core';\r\nimport { ProductDimension, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\n\r\n\r\n// import { IBuyboxData, IBuyboxResources } from '@msdyn365-commerce-modules/buybox';\r\n\r\nimport { ICittaBuyboxData, ICittaBuyboxResources } from '../../../../../src/modules/citta-buybox'\r\n\r\n// @ts-ignore\r\nimport { Dropdown, IDropdownItemProps, IDropdownOnSelectionChangeNotification } from '../../../../components/citta-buybox/dropdown/dropdown';\r\n\r\nexport interface IBuyboxProductConfigureProps {\r\n product: SimpleProduct;\r\n productAttributes: SimpleProduct;\r\n channelConfiguration: SimpleProduct;\r\n\r\n productDimensions: ProductDimensionFull[];\r\n // resources: IBuyboxResources;\r\n resources: ICittaBuyboxResources;\r\n channelId: number;\r\n actionContext: IActionContext;\r\n errors: { [configureId: string]: string | undefined };\r\n\r\n dimensionChanged?(newValue: number): void;\r\n}\r\n\r\nexport interface IBuyboxProductConfigureDropdownViewProps {\r\n ContainerProps: INodeProps;\r\n LabelContainerProps: INodeProps;\r\n\r\n heading: React.ReactNode;\r\n errors?: React.ReactNode;\r\n\r\n select: React.ReactNode;\r\n}\r\n\r\nexport interface IBuyboxProductConfigureViewProps {\r\n ContainerProps: INodeProps;\r\n dropdowns: IBuyboxProductConfigureDropdownViewProps[];\r\n}\r\n\r\nlet telemetryContent: ITelemetryContent;\r\n\r\nexport function getBuyboxProductConfigure(props: any, state: any, callbacks: any): IBuyboxProductConfigureViewProps | undefined {\r\n const {\r\n data: {\r\n product: { result: product },\r\n productDimensions: { result: productDimensions },\r\n },\r\n resources,\r\n } = props;\r\n\r\n const\r\n {\r\n errorState: {\r\n configureErrors,\r\n }\r\n } = state;\r\n\r\n // console.log('productDimensions', productDimensions)\r\n\r\n const\r\n {\r\n getDropdownName\r\n } = callbacks;\r\n // console.log('callbacks', callbacks)\r\n\r\n if (!product || !productDimensions) {\r\n return undefined;\r\n }\r\n\r\n const onChanged = async (notification: IDropdownOnSelectionChangeNotification) =>\r\n _onChanged(notification, callbacks.dimensionSelectedAsync);\r\n\r\n telemetryContent = getTelemetryObject(props.context.request.telemetryPageName!, props.friendlyName, props.telemetry);\r\n const dropdowns = productDimensions.map((productDimensionFull: ProductDimensionFull, id: number) => _mapProductDimensionFullToDropdownViewProps(productDimensionFull, resources, configureErrors, getDropdownName, onChanged, props.data, id));\r\n // console.log(\"dropsowns\", dropdowns);\r\n if (!dropdowns || dropdowns.length === 0) {\r\n return undefined;\r\n }\r\n\r\n return {\r\n ContainerProps: {\r\n className: 'ms-buybox__configure'\r\n },\r\n dropdowns: dropdowns,\r\n\r\n };\r\n}\r\n\r\nconst _onChanged = async (\r\n notification: IDropdownOnSelectionChangeNotification,\r\n dimensionChanged: (newValue: number, selectedDimensionValue: string) => Promise,\r\n): Promise => {\r\n // console.log('notification.dropdownId', notification.dropdownId,'notification.selectId', notification.selectId);\r\n await dimensionChanged(+notification.dropdownId, notification.selectId);\r\n};\r\n\r\n\r\n\r\nconst _mapProductDimensionFullToDropdownViewProps =\r\n (\r\n productDimensionFull: ProductDimensionFull,\r\n // resources: IBuyboxResources,\r\n resources: ICittaBuyboxResources,\r\n configureErrors: { [configureId: string]: string | undefined },\r\n getDropdownName: (dimensionType: number, resources: ICittaBuyboxResources) => string,\r\n dropdownCallback: (notification: IDropdownOnSelectionChangeNotification) => Promise,\r\n // data: IBuyboxData,\r\n data: ICittaBuyboxData,\r\n id: number\r\n ): IBuyboxProductConfigureDropdownViewProps => {\r\n const dropdownName = getDropdownName(productDimensionFull.DimensionTypeValue, resources);\r\n // console.log('dropdownName', dropdownName)\r\n // console.log('dropdownCallback', dropdownCallback)\r\n const dropdownId = productDimensionFull.DimensionTypeValue.toString();\r\n\r\n let selectedDimensions: ProductDimension[] | undefined;\r\n selectedDimensions = data && data.product && data.product.result && data.product.result.Dimensions && data.product.result.Dimensions.length ? data.product.result.Dimensions : [];\r\n const dropdownToggleName = selectedDimensions && selectedDimensions[id] && selectedDimensions[id].DimensionValue &&\r\n selectedDimensions[id].DimensionValue!.Value || resources.selectDimensionFormatString.replace('{0}', dropdownName.toLocaleLowerCase());\r\n\r\n const result = data && data.productAttributes && data.productAttributes.result || [];\r\n let Onlinesizeimperial;\r\n let dropdownListStr: string | undefined = \"\";\r\n\r\n // result!.forEach(res => {\r\n // if(res.Name === \"Online size imperial\" && res.TextValue){\r\n // Onlinesizeimperial = res.TextValue;\r\n // }\r\n // });\r\n\r\n for (var i = 0; i < result!.length; i++) {\r\n if (result![i].Name === \"Size\" && result![i].TextValue) {\r\n Onlinesizeimperial = result![i].TextValue || \"\";\r\n }\r\n }\r\n\r\n\r\n // result?.forEach(res => {\r\n // if(res.Name === \"AssociatedVariantSizesImperial\" && res.TextValue){\r\n // dropdownListStr = res.TextValue\r\n // }\r\n // })\r\n\r\n\r\n for (var i = 0; i < result!.length; i++) {\r\n if (result![i].Name === \"AssociatedVariantSizesImperial\" && result![i].TextValue) {\r\n dropdownListStr = result![i].TextValue;\r\n }\r\n }\r\n\r\n\r\n const dropDownListArr = dropdownListStr?.split('|');\r\n const country = data && data.channelConfiguration && data.channelConfiguration.result && data.channelConfiguration.result.Currency;\r\n\r\n\r\n\r\n const dropdownList: IDropdownItemProps[] = productDimensionFull.DimensionValues\r\n ? productDimensionFull.DimensionValues.map(dimensionValue => {\r\n return {\r\n value: dimensionValue.Value || '',\r\n id: dimensionValue.RecordId.toString()\r\n };\r\n })\r\n : [];\r\n\r\n\r\n let dropdownListImperial = JSON.parse(JSON.stringify(dropdownList));\r\n\r\n for (var i = 0; i < dropdownList.length; i++) {\r\n dropdownListImperial[i].value = dropDownListArr && dropDownListArr[i]\r\n }\r\n\r\n // console.log('dropdownListImperial', dropdownListImperial)\r\n const errorMessage = configureErrors[dropdownId];\r\n\r\n return {\r\n ContainerProps: {\r\n className: 'ms-buybox__dropdown'\r\n },\r\n LabelContainerProps: {\r\n tag: 'label',\r\n className: 'ms-buybox__dropdown-quantity-label',\r\n htmlFor: `ms-buybox__dropown-quantity-input-${dropdownId}`\r\n },\r\n errors: errorMessage && (\r\n \r\n \r\n ),\r\n heading: (\r\n
{dropdownName}
\r\n ),\r\n select: (\r\n dropdownList.length <= 1 ? (\r\n
\r\n
\r\n {id === 1 && country === 'USD' && Onlinesizeimperial ? Onlinesizeimperial : dropdownToggleName}\r\n {/* {dropdownToggleName} */}\r\n
\r\n
) :\r\n (\r\n \r\n )\r\n )\r\n };\r\n };","import { getConfigureErrors, getGenericError, getQuantityError, IBuyboxCallbacks, IBuyboxData, IBuyboxProps, IBuyboxResources, IBuyboxState, IBuyboxViewProps } from '@msdyn365-commerce-modules/buybox';\r\nimport { Alert, Button, format, getTelemetryObject, Heading, INodeProps, ITelemetryContent, Quantity } from '@msdyn365-commerce-modules/utilities';\r\nimport {\r\n AddToWishlistComponent,\r\n IAddToCartFailureResult,\r\n IWishlistActionErrorResult,\r\n PriceComponent,\r\n RatingComponent\r\n} from '@msdyn365-commerce/components';\r\nimport { getUrlSync, IImageSettings } from '@msdyn365-commerce/core';\r\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { IBuyboxProps as IBuyboxExtentionProps } from '../../definition-extensions/buybox.ext.props.autogenerated';\r\nimport { IBuyBoxData } from '../buybox.data';\r\nimport AddToCartComponent from './add-to-cart.component';\r\n\r\n\r\nexport function getBuyBoxInventoryLabel(props: IBuyboxProps): React.ReactElement | undefined {\r\n const {\r\n data: { productAvailableQuantity: { result: productAvailableQuantity} },\r\n } = props;\r\n if(!productAvailableQuantity || !productAvailableQuantity.length) {\r\n return undefined;\r\n }\r\n if(productAvailableQuantity &&\r\n productAvailableQuantity.length&&\r\n productAvailableQuantity[0].StockLevelLabel) {\r\n const inventoryClassName = productAvailableQuantity[0].StockLevelCode?\r\n `ms-buybox__inventory-label ms-buybox__inventory-code-${productAvailableQuantity[0].StockLevelCode.toLowerCase()}`:\r\n 'ms-buybox__inventory-label';\r\n return (
{productAvailableQuantity[0].StockLevelLabel}
);\r\n }\r\n\r\n return undefined;\r\n}\r\nexport function getBuyboxProductTitle(props: IBuyboxProps): React.ReactElement | undefined {\r\n const {\r\n data: { product: { result: product } },\r\n config: { titleHeadingTag = 'h1' }\r\n } = props;\r\n\r\n return product && (\r\n \r\n );\r\n}\r\n\r\nexport function getBuyboxProductDescription(props: IBuyboxProps & IBuyboxExtentionProps): React.ReactElement | undefined {\r\n const {\r\n data: { product: { result: product }, productAttributes: { result: productAttributes } }, config\r\n } = props;\r\n const isB2B = props.context?.request?.app?.platform?.enableDefaultOrderQuantityLimits === 'b2b';\r\n const description = product && product.Description ? product.Description.replace(/<[^>]+>/g, '') : '';\r\n const descriptionP2Name = config.webDescriptionP2Name && config.webDescriptionP2Name.toUpperCase() || 'WEB DESCRIPTION P2';\r\n const descriptionP3Name = config.webDescriptionP3Name && config.webDescriptionP3Name.toUpperCase() || 'WEB DESCRIPTION P3';\r\n const descriptionP4B2BName = config.webDescriptionP4B2BName && config.webDescriptionP4B2BName.toUpperCase() || 'WEB DESCRIPTION P4 B2B';\r\n const descriptionP2 = descriptionP2Name && getAttributeText(descriptionP2Name, productAttributes);\r\n const descriptionP3 = descriptionP3Name && getAttributeText(descriptionP3Name, productAttributes);\r\n const descriptionP4B2B = descriptionP4B2BName && getAttributeText(descriptionP4B2BName, productAttributes);\r\n return product && (\r\n
\r\n

{description}

\r\n {descriptionP2 &&\r\n

{descriptionP2}

\r\n }\r\n {descriptionP3 &&\r\n

{descriptionP3}

\r\n }\r\n {isB2B && descriptionP4B2B &&\r\n

{descriptionP4B2B}

\r\n }\r\n
\r\n );\r\n}\r\n\r\nfunction getAttributeText(attributeName: string, productAttributes: AttributeValue[] | undefined): string | undefined {\r\n if (productAttributes && productAttributes.length) {\r\n const filterAttributes = productAttributes.filter(\r\n attribute => attribute.Name && attribute.Name.toUpperCase() === attributeName\r\n );\r\n return filterAttributes &&\r\n filterAttributes.length > 0 &&\r\n filterAttributes[0].TextValue ? filterAttributes[0].TextValue : undefined;\r\n }\r\n return;\r\n}\r\n\r\nexport interface IBuyboxAddToCartViewProps {\r\n ContainerProps: INodeProps;\r\n errorBlock?: React.ReactNode;\r\n button?: React.ReactNode;\r\n}\r\n// tslint:disable-next-line:max-func-body-length\r\nexport function getBuyboxAddToCart(props: IBuyboxViewProps & IBuyboxExtentionProps, state: IBuyboxState, callbacks: IBuyboxCallbacks): IBuyboxAddToCartViewProps {\r\n const {\r\n id,\r\n typeName,\r\n context,\r\n data: { cart: { result: cart }, product: { result: product }, productPrice: { result: productPrice }, productAvailableQuantity: { result: productAvailableQuantity}, productDimensions: { result: productDimensions } },\r\n resources\r\n } = props;\r\n\r\n const\r\n {\r\n quantity,\r\n errorState: {\r\n configureErrors,\r\n quantityError,\r\n otherError,\r\n errorHost\r\n },\r\n selectedProduct,\r\n isUpdatingDimension\r\n } = state;\r\n\r\n const onAddToCartFailed = (result: IAddToCartFailureResult) => {\r\n let quantityErrorForState: string | undefined;\r\n let otherErrorForState: string | undefined = getGenericError(result, cart, resources, context, product, productAvailability, undefined);\r\n if (result.failureReason === 'OUTOFSTOCK') {\r\n quantityErrorForState = result.failureReason === 'OUTOFSTOCK' ? getQuantityError(result.stockLeft, resources) : undefined;\r\n } else if (result.failureReason === 'CARTACTIONFAILED'\r\n && result.cartActionResult\r\n && (result.cartActionResult.substatus === 'MAXQUANTITY' || result.cartActionResult.substatus === 'QUANTITYLIMITS')) {\r\n quantityErrorForState = getGenericError(result, cart, resources, context, product, productAvailability, undefined);\r\n otherErrorForState = undefined; // prevent error duplication in otherError and quantityError\r\n }\r\n\r\n callbacks.updateErrorState({\r\n errorHost: 'ADDTOCART',\r\n quantityError: quantityErrorForState,\r\n configureErrors: result.failureReason === 'MISSINGDIMENSION' ? getConfigureErrors(result.missingDimensions, resources) : {},\r\n otherError: otherErrorForState\r\n });\r\n };\r\n\r\n const dialogStrings = {\r\n goToCartText: resources.buyBoxGoToCartText,\r\n continueShoppingText: resources.buyBoxContinueShoppingText,\r\n headerItemOneText: resources.buyBoxSingleItemText,\r\n headerItemFormatText: resources.buyBoxMultiLineItemFormatText,\r\n headerMessageText: resources.buyBoxHeaderMessageText,\r\n freePriceText: resources.priceFree,\r\n originalPriceText: resources.originalPriceText,\r\n currentPriceText: resources.currentPriceText\r\n };\r\n\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: `w=240&h=240&m=6`, w: 0, h: 0 },\r\n lg: { q: `w=240&h=240&m=6`, w: 0, h: 0 },\r\n xl: { q: `w=240&h=240&m=6`, w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n const productAvailability = state.productAvailableQuantity ?\r\n state.productAvailableQuantity.ProductAvailableQuantity :\r\n productAvailableQuantity && productAvailableQuantity.length?\r\n productAvailableQuantity[0].ProductAvailableQuantity: undefined;\r\n\r\n const isLoading = props.data.productAvailableQuantity.status === 'LOADING';\r\n if (isLoading) {\r\n callbacks.changeUpdatingDimension(false);\r\n }\r\n const telemetryContent: ITelemetryContent = getTelemetryObject(props.context.request.telemetryPageName!,\r\n props.friendlyName,\r\n props.telemetry);\r\n return {\r\n ContainerProps: {\r\n className: 'ms-buybox__add-to-cart-container'\r\n },\r\n button: product && (\r\n \r\n ),\r\n errorBlock: (\r\n \r\n )\r\n };\r\n}\r\n\r\nexport function getBuyboxplacebackorderAddToCart(props: IBuyboxViewProps & IBuyboxExtentionProps, state: IBuyboxState, callbacks: IBuyboxCallbacks): IBuyboxAddToCartViewProps {\r\n const {\r\n id,\r\n typeName,\r\n context,\r\n data: { cart: { result: cart }, product: { result: product }, productPrice: { result: productPrice }, productAvailableQuantity: { result: productAvailableQuantity}, productDimensions: { result: productDimensions } },\r\n resources\r\n } = props;\r\n\r\n const\r\n {\r\n quantity,\r\n errorState: {\r\n configureErrors,\r\n quantityError,\r\n otherError,\r\n errorHost\r\n },\r\n selectedProduct,\r\n isUpdatingDimension\r\n } = state;\r\n\r\n const onAddToCartFailed = (result: IAddToCartFailureResult) => {\r\n let quantityErrorForState: string | undefined;\r\n let otherErrorForState: string | undefined = getGenericError(result, cart, resources, context, product, productAvailability, undefined);\r\n if (result.failureReason === 'OUTOFSTOCK') {\r\n quantityErrorForState = result.failureReason === 'OUTOFSTOCK' ? getQuantityError(result.stockLeft, resources) : undefined;\r\n } else if (result.failureReason === 'CARTACTIONFAILED'\r\n && result.cartActionResult\r\n && (result.cartActionResult.substatus === 'MAXQUANTITY' || result.cartActionResult.substatus === 'QUANTITYLIMITS')) {\r\n quantityErrorForState = getGenericError(result, cart, resources, context, product, productAvailability, undefined);\r\n otherErrorForState = undefined; // prevent error duplication in otherError and quantityError\r\n }\r\n\r\n callbacks.updateErrorState({\r\n errorHost: 'ADDTOCART',\r\n quantityError: quantityErrorForState,\r\n configureErrors: result.failureReason === 'MISSINGDIMENSION' ? getConfigureErrors(result.missingDimensions, resources) : {},\r\n otherError: otherErrorForState\r\n });\r\n };\r\n\r\n const dialogStrings = {\r\n goToCartText: resources.buyBoxGoToCartText,\r\n continueShoppingText: resources.buyBoxContinueShoppingText,\r\n headerItemOneText: resources.buyBoxSingleItemText,\r\n headerItemFormatText: resources.buyBoxMultiLineItemFormatText,\r\n headerMessageText: resources.buyBoxHeaderMessageText,\r\n freePriceText: resources.priceFree,\r\n originalPriceText: resources.originalPriceText,\r\n currentPriceText: resources.currentPriceText\r\n };\r\n\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: `w=240&h=240&m=6`, w: 0, h: 0 },\r\n lg: { q: `w=240&h=240&m=6`, w: 0, h: 0 },\r\n xl: { q: `w=240&h=240&m=6`, w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n const productAvailability = state.productAvailableQuantity ?\r\n state.productAvailableQuantity.ProductAvailableQuantity :\r\n productAvailableQuantity && productAvailableQuantity.length?\r\n productAvailableQuantity[0].ProductAvailableQuantity: undefined;\r\n\r\n const isLoading = props.data.productAvailableQuantity.status === 'LOADING';\r\n if (isLoading) {\r\n callbacks.changeUpdatingDimension(false);\r\n }\r\n const telemetryContent: ITelemetryContent = getTelemetryObject(props.context.request.telemetryPageName!,\r\n props.friendlyName,\r\n props.telemetry);\r\n return {\r\n ContainerProps: {\r\n className: 'ms-buybox__add-to-cart-container'\r\n },\r\n button: product && (\r\n \r\n ),\r\n errorBlock: (\r\n \r\n )\r\n };\r\n}\r\n\r\n\r\n\r\nexport function getBuyboxProductPrice(props: IBuyboxProps): React.ReactElement | undefined {\r\n const {\r\n id,\r\n typeName,\r\n context,\r\n data: { productPrice: { result: productPrice } },\r\n resources\r\n } = props;\r\n\r\n return productPrice && (\r\n \r\n );\r\n}\r\n\r\nexport function getBuyboxProductRating(props: IBuyboxProps): React.ReactElement | undefined {\r\n const {\r\n id,\r\n typeName,\r\n context,\r\n data: { ratingsSummary: { result: ratingsSummary } },\r\n resources\r\n } = props;\r\n\r\n const ratingComponent = ratingsSummary && ratingsSummary.averageRating && (\r\n \r\n ) || undefined ;\r\n\r\n return ratingsSummary && ratingComponent && (\r\n ratingComponent\r\n );\r\n}\r\n\r\nexport interface IBuyboxAddToWishlistViewProps {\r\n ContainerProps: INodeProps;\r\n errorBlock?: React.ReactNode;\r\n button?: React.ReactNode;\r\n}\r\nexport function getBuyboxProductAddToWishlist(props: IBuyboxProps, state: IBuyboxState, callbacks: IBuyboxCallbacks): IBuyboxAddToWishlistViewProps | undefined {\r\n const {\r\n id,\r\n typeName,\r\n context,\r\n data: {\r\n product: { result: product },\r\n wishlists: { result: wishlists }\r\n },\r\n resources\r\n } = props;\r\n\r\n const\r\n {\r\n errorState: {\r\n configureErrors,\r\n quantityError,\r\n otherError,\r\n errorHost\r\n },\r\n selectedProduct\r\n } = state;\r\n\r\n const onAddToWishlistFailed = (result: IWishlistActionErrorResult) => {\r\n callbacks.updateErrorState({\r\n errorHost: 'WISHLIST',\r\n configureErrors: result.status === 'MISSINGDIMENSION' ? getConfigureErrors(result.missingDimensions, resources) : {},\r\n });\r\n };\r\n\r\n return {\r\n ContainerProps: {\r\n className: 'ms-buybox__add-to-wishlist-container'\r\n },\r\n button: product && (\r\n \r\n ),\r\n errorBlock: (\r\n \r\n )\r\n };\r\n}\r\n\r\nexport interface IBuyboxProductQuantityViewProps {\r\n ContainerProps: INodeProps;\r\n LabelContainerProps: INodeProps;\r\n\r\n heading: React.ReactNode;\r\n errors?: React.ReactNode;\r\n\r\n input: React.ReactNode;\r\n}\r\nexport function getBuyboxProductQuantity(props: IBuyboxProps, state: IBuyboxState, callbacks: IBuyboxCallbacks): IBuyboxProductQuantityViewProps {\r\n const {\r\n resources,\r\n context: {\r\n app: {\r\n config: {\r\n maxQuantityForCartLineItem\r\n }\r\n }\r\n }\r\n } = props;\r\n\r\n const\r\n {\r\n quantity,\r\n errorState: {\r\n quantityError,\r\n }\r\n } = state;\r\n\r\n const onChange = (newValue: number) => {\r\n if (callbacks.updateQuantity) {\r\n callbacks.updateQuantity(newValue);\r\n }\r\n };\r\n\r\n return {\r\n ContainerProps: {\r\n className: 'ms-buybox__quantity'\r\n },\r\n LabelContainerProps: {\r\n tag: 'label',\r\n className: 'ms-buybox__product-quantity-label',\r\n htmlFor: 'ms-buybox__product-quantity-input'\r\n },\r\n heading: (\r\n
{resources.productQuantityHeading}
\r\n ),\r\n errors: quantityError && (\r\n \r\n \r\n ),\r\n input: (\r\n \r\n )\r\n };\r\n}\r\n\r\nexport interface IBuyboxShopSimilarLookViewProps {\r\n ContainerProps: INodeProps;\r\n errors?: React.ReactNode;\r\n input: React.ReactNode;\r\n}\r\n\r\nexport function getBuyboxShopSimilarLook(props: IBuyboxProps, state: IBuyboxState, callbacks: IBuyboxCallbacks): IBuyboxShopSimilarLookViewProps {\r\n const {\r\n resources,\r\n context,\r\n data: {\r\n product: { result: product }\r\n },\r\n } = props;\r\n\r\n const\r\n {\r\n errorState: {}\r\n } = state;\r\n\r\n const navigationUrl = () => {\r\n const searchURL = `${getUrlSync('search', context && context.actionContext)}?productId=${product && product.RecordId}`;\r\n document.location.href = searchURL;\r\n };\r\n\r\n return {\r\n ContainerProps: {\r\n className: 'ms-buybox__shopsimilarlooks'\r\n },\r\n input: (\r\n \r\n {resources.shopSimilarLooksText}\r\n \r\n )\r\n };\r\n}\r\n\r\nexport interface IBuyboxErrorBlockProps {\r\n configureErrors: { [configureId: string]: string | undefined };\r\n quantityError?: string;\r\n otherError?: string;\r\n resources: IBuyboxResources;\r\n showError: boolean;\r\n}\r\nexport const BuyboxErrorBlock: React.FC = ({ showError, configureErrors, quantityError, otherError, resources }) => {\r\n \r\n let errorMessages: (string | undefined)[] = [];\r\n\r\n errorMessages = Object.values(configureErrors).filter(message => message !== undefined);\r\n\r\n if (quantityError) {\r\n errorMessages.push(quantityError);\r\n }\r\n\r\n if (otherError) {\r\n errorMessages.push(otherError);\r\n }\r\n\r\n return (\r\n 0} color='danger' assertive={true} aria-label={resources.buyboxErrorMessageHeader} >\r\n \r\n {errorMessages.map((message) => {\r\n if (message) {\r\n return (\r\n
{message}
\r\n );\r\n } else {\r\n return null;\r\n }\r\n })}\r\n
\r\n );\r\n};","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { format } from '@msdyn365-commerce-modules/utilities';\r\nimport { getUrlSync, IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { Cart } from '@msdyn365-commerce/retail-proxy';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nexport interface ICartIconData {\r\n cart: ICartState;\r\n}\r\n\r\nexport interface ICartIconComponentProps extends IComponentProps {\r\n className?: string;\r\n cartLabel: string;\r\n}\r\n\r\nexport interface ICartIconComponent extends IComponent {\r\n}\r\n\r\nconst CartIconComponentActions = {\r\n};\r\n\r\ninterface ICartIconState {\r\n countChanged: boolean;\r\n}\r\n\r\ninterface ICartLineData{\r\n quantity?: number;\r\n price?: number;\r\n item?: string;\r\n }\r\n\r\n/**\r\n *\r\n * CartIcon component\r\n * @extends {React.FC}\r\n */\r\n@observer\r\nclass CartIcon extends React.Component {\r\n private cartItemCount: string | undefined;\r\n\r\n constructor(props: ICartIconComponentProps) {\r\n super(props);\r\n\r\n this.state = {\r\n countChanged: false\r\n };\r\n }\r\n public render(): JSX.Element {\r\n const { cartLabel, data: { cart } } = this.props;\r\n\r\n if (!cart) {\r\n return (\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n const cartLink = getUrlSync('cart', this.props.context.actionContext);\r\n\r\n const cartItem = `${this._getCartLineQuantities(cart.cart)}`;\r\n\r\n const label = format(cartLabel, cartItem) || `Shopping bag, ${cartItem} items`;\r\n\r\n if (!this.state.countChanged && this.cartItemCount && this.cartItemCount < cartItem) {\r\n this.setState({\r\n countChanged: true\r\n });\r\n // tslint:disable-next-line: no-floating-promises\r\n this._resetClass();\r\n }\r\n this.cartItemCount = cartItem;\r\n const hiddenCartLines = this._createHiddenCartLines(cart.cart);\r\n return (\r\n \r\n
\r\n ({cartItem})\r\n
\r\n {hiddenCartLines}\r\n
\r\n );\r\n }\r\n\r\n private _timeout(ms: number): Promise {\r\n // tslint:disable-next-line: no-string-based-set-timeout\r\n return new Promise(res => setTimeout(res, ms));\r\n }\r\n\r\n private async _resetClass(): Promise {\r\n await this._timeout(1500);\r\n this.setState({\r\n countChanged: false\r\n });\r\n return;\r\n }\r\n\r\n private _getCartLineQuantities = (cart: Cart | undefined): string => {\r\n if(!cart) {\r\n return '0';\r\n }\r\n\r\n let quantity = 0;\r\n\r\n if(cart.CartLines && cart.CartLines.length > 0) {\r\n cart.CartLines.forEach(cartLine => {\r\n quantity += cartLine.Quantity || 1;\r\n });\r\n }\r\n\r\n return quantity.toString();\r\n }\r\n\r\n private _createHiddenCartLines = (cart: Cart | undefined): any => {\r\n if (!cart || !cart.CartLines?.length) {\r\n return
;\r\n }\r\n\r\n let cartLines: ICartLineData[] = [];\r\n\r\n cart.CartLines?.forEach(line => {\r\n cartLines.push({\r\n quantity: line.Quantity,\r\n price: line.Price,\r\n item: line.ItemId\r\n });\r\n });\r\n\r\n return
;\r\n }\r\n}\r\n\r\n// @ts-ignore\r\nexport const CartIconComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\r\n 'CartIcon',\r\n { component: CartIcon, ...CartIconComponentActions }\r\n);","import * as React from 'react';\r\nimport { KeyCodes } from '@msdyn365-commerce-modules/utilities';\r\n\r\nexport interface ISidebarInfoProps {\r\n text: string;\r\n}\r\n\r\n// tslint:disable-next-line:no-empty-interface\r\ninterface ISidebarInfoState {\r\n showSidebar: boolean;\r\n}\r\n/**\r\n * Configuration entity interface.\r\n */\r\nexport interface IConfiguration {\r\n type?: string;\r\n description?: string;\r\n}\r\n// tslint:disable-next-line:class-name\r\nexport interface IDXC_GetConfigurationResponse {\r\n configuration?: IConfiguration[];\r\n success?: boolean;\r\n errorText?: string;\r\n}\r\n\r\n/**\r\n *\r\n * The PromoCode component renders the promocode section.\r\n * @extends {React.PureComponent}\r\n */\r\nclass SidebarInfo extends React.Component {\r\n private sidebarNode: React.RefObject;\r\n\r\n constructor(props: ISidebarInfoProps, state: ISidebarInfoState) {\r\n super(props);\r\n\r\n this.sidebarNode = React.createRef();\r\n this.state = {\r\n showSidebar: false\r\n };\r\n this._toggleSidebar = this._toggleSidebar.bind(this);\r\n }\r\n\r\n public componentDidMount(): void {\r\n window && window.addEventListener('keyup', this._keyup);\r\n document.body && document.addEventListener('mousedown', this._handleClickOutside);\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n window && window.removeEventListener('keyup', this._keyup, false);\r\n document.body && document.removeEventListener('mousedown', this._handleClickOutside, false);\r\n }\r\n\r\n public render(): JSX.Element {\r\n \r\n const wrapperClassName = 'citta-sidebar';\r\n const { showSidebar } = this.state;\r\n const { text } = this.props\r\n if (!showSidebar) {\r\n return
\r\n Buy now pay later \r\n \r\n {text}\r\n \r\n
\r\n }\r\n return (\r\n
\r\n
\r\n
\r\n \r\n Buy now, pay later\r\n \r\n \r\n {text}\r\n \r\n
\r\n\r\n
\r\n x\r\n
\r\n { /* @ts-ignore */ }\r\n {this.props.children}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n private _toggleSidebar(): void {\r\n window.document.body.classList.toggle('menu-open', !this.state.showSidebar);\r\n window.document.body.classList.toggle('sidebar', !this.state.showSidebar);\r\n this.setState({\r\n showSidebar: !this.state.showSidebar\r\n });\r\n }\r\n\r\n private _keyup = (e: KeyboardEvent): void => {\r\n const { showSidebar } = this.state; \r\n if (showSidebar && e.keyCode === KeyCodes.Escape) {\r\n this._toggleSidebar();\r\n } \r\n };\r\n\r\n // tslint:disable-next-line:no-any\r\n private _handleClickOutside = (event: any) => {\r\n if (this.sidebarNode.current && !this.sidebarNode.current.contains(event.target)) {\r\n this._toggleSidebar();\r\n }\r\n };\r\n\r\n}\r\n\r\nexport default SidebarInfo;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header';\r\nimport { Collapse, Drawer, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport { format } from '@msdyn365-commerce/retail-proxy';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\nimport { CartIconComponent } from './components/cart-icon.component';\r\n// import { ContactInfoClass } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\n\r\n/**\r\n *\r\n * Header component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass HeaderView extends React.Component> {\r\n constructor(props: IHeaderViewProps & IHeaderProps<{}>) {\r\n super(props);\r\n }\r\n\r\n public componentDidMount(): void {\r\n this._stickyHeaderSetup();\r\n }\r\n\r\n public render(): JSX.Element {\r\n const {\r\n HeaderTag,\r\n HeaderContainer,\r\n HeaderTopBarContainer\r\n } = this.props;\r\n return (\r\n \r\n \r\n \r\n {this._renderTopBarLeft()}\r\n {this._renderTopBarCenter()}\r\n {this._renderTopBarRight()}\r\n \r\n {this._renderCollapseMenu()}\r\n \r\n {this._renderReactFragment(this.props.menuBar)}\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private _renderTopBarLeft = (): JSX.Element | null => {\r\n return (\r\n
\r\n {this.props.navIcon}\r\n {this.props.logo}\r\n {this._renderReactFragment(this.props.search)}\r\n
\r\n );\r\n }\r\n\r\n private _renderTopBarRight = (): JSX.Element | null => {\r\n const {Divider} = this.props;\r\n return (\r\n
\r\n {this._renderReactFragment(this.props.slots.countryPicker)}\r\n {this._renderReactFragment(this.props.slots.siteOptions)}\r\n {this._renderAccountBlock(false)}\r\n {this.props.wishListIconDesktop}\r\n \r\n
{this._renderCartIcon()}
\r\n
\r\n );\r\n }\r\n\r\n private _renderTopBarCenter = (): JSX.Element | null => {\r\n return (\r\n
\r\n {this._renderReactFragment(this.props.slots.cittaLogo)}\r\n
\r\n );\r\n }\r\n\r\n private _renderCartIcon = (): JSX.Element | null => {\r\n\r\n if (this.props.data.cart.result) {\r\n const cartItem = `${this.props.data.cart.result.totalItemsInCart}`;\r\n const itemCount = cartItem && parseInt(cartItem, 10) || 0;\r\n let label = this.props.resources.cartLabelNoItems || 'Shopping bag, having no items';\r\n if (itemCount === 1) {\r\n label = this.props.resources.cartLabelWithOneItem || 'Shopping bag, having one item';\r\n } else if (itemCount > 1) {\r\n label = this.props.resources.cartLabel && format(this.props.resources.cartLabel, cartItem) || `Shopping bag, having ${itemCount} items`;\r\n }\r\n return (\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n private _renderCollapseMenu = (): JSX.Element | null => {\r\n const {Divider, MobileMenuLinksContainer, mobileMenuCollapsed} = this.props;\r\n return (\r\n \r\n \r\n {this._renderReactFragment(this.props.search)}\r\n {this._renderMobileAccountBlock(true)}\r\n { this.props.wishListIconMobile }\r\n \r\n \r\n {this._renderReactFragment(this.props.menuBar)}\r\n \r\n );\r\n }\r\n\r\n private renderCustomerName = (): React.ReactChild => {\r\n const { accountInformation } = this.props.data;\r\n const customer = accountInformation && accountInformation.result;\r\n return (\r\n <>{customer ? customer.FirstName || customer.Name : ''}\r\n );\r\n };\r\n\r\n private _renderMobileAccountBlock = (renderForMobile: boolean): JSX.Element | null => {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n signOutLink,\r\n signInLink,\r\n accountLinks} = this.props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n const accountClassName = classnames('ms-header__drawer', AccountInfoDropdownParentContainer.className, renderForMobile ? 'account-mobile' : 'account-desktop');\r\n\r\n if (accountLinks) {\r\n return (\r\n \r\n
\r\n { accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false }\r\n {signOutLink}\r\n
\r\n
\r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n private _renderAccountBlock = (renderForMobile: boolean): JSX.Element | null => {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks,\r\n } = this.props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n { accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false }\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n this.props.context.telemetry.error('Header content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n private _renderReactFragment = (items: React.ReactNode[]): JSX.Element | null => {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n }\r\n\r\n private _stickyHeaderSetup(): void {\r\n // Set header update methods to trigger on scroll\r\n window.onscroll = () => {\r\n this._updateHeader();\r\n };\r\n this._updateHeader();\r\n }\r\n\r\n private _updateHeader(): void {\r\n // Get heights of cookie and promotion banners\r\n const headerAlertsContainer: HTMLElement | null = document.querySelector('.ms-promo-banner');\r\n const bannerHeights = headerAlertsContainer ? headerAlertsContainer.offsetHeight : 0;\r\n\r\n // triggers opacity change of header\r\n const headerElem = document.querySelector('.ms-header');\r\n if (headerElem) {\r\n if (document.documentElement.scrollTop > bannerHeights) {\r\n headerElem.classList.add('lock-opaque');\r\n } else {\r\n headerElem.classList.remove('lock-opaque');\r\n }\r\n }\r\n\r\n // Update sticky header position and opacity\r\n const stickyHeader: HTMLElement | null = document.querySelector('.ms-header__desktop-view');\r\n const headerLogo: HTMLElement | null = document.querySelector('.ms-header__topbar-center');\r\n const headerLeftActionItem: HTMLElement | null = document.querySelector('.ms-header__topbar-left');\r\n const headerRightActionItem: HTMLElement | null = document.querySelector('.ms-header__topbar-right');\r\n\r\n if (stickyHeader && headerLogo && headerLeftActionItem && headerRightActionItem) {\r\n // Fix center sticky header\r\n const navStickyPos = headerLogo.offsetHeight + bannerHeights;\r\n if (document.documentElement.scrollTop > navStickyPos) {\r\n stickyHeader.classList.add('fixed');\r\n } else {\r\n stickyHeader.classList.remove('fixed');\r\n }\r\n\r\n // Fix edge sticky headers\r\n if (document.documentElement.scrollTop > bannerHeights) {\r\n headerLeftActionItem.classList.add('fixed');\r\n headerRightActionItem.classList.add('fixed');\r\n } else {\r\n headerLeftActionItem.classList.remove('fixed');\r\n headerRightActionItem.classList.remove('fixed');\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default HeaderView;\r\n","import { getProductPageUrlSync } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { format } from '@msdyn365-commerce-modules/utilities';\r\nimport { RatingComponent } from '@msdyn365-commerce/components';\r\nimport { IComponentProps, ICoreContext, IGridSettings, IImageData, IImageSettings, Image, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { ProductPrice, ProductSearchResult } from '@msdyn365-commerce/retail-proxy';\r\nimport React from 'react';\r\nimport PriceComponent from '../../../../components/price-component';\r\n\r\nexport interface IProductComponentProps extends IComponentProps<{ product?: ProductSearchResult }> {\r\n className?: string;\r\n imageSettings?: IImageSettings;\r\n savingsText?: string;\r\n freePriceText?: string;\r\n originalPriceText?: string;\r\n currentPriceText?: string;\r\n ratingAriaLabel?: string;\r\n}\r\n\r\nconst ProductCard: React.FC = ({\r\n data,\r\n context,\r\n imageSettings,\r\n savingsText,\r\n freePriceText,\r\n originalPriceText,\r\n currentPriceText,\r\n ratingAriaLabel,\r\n typeName,\r\n id\r\n}) => {\r\n const product = data.product;\r\n if (!product) {\r\n return null;\r\n }\r\n\r\n let imageOrientation: string = '';\r\n if (product.AttributeValues!.length > 0) {\r\n product.AttributeValues!.map(property => {\r\n if (property.Name === 'Image Orientation') {\r\n imageOrientation = property.TextValue!;\r\n }\r\n });\r\n }\r\n const productUrl = getProductPageUrlSync(product.Name || '', product.RecordId, context && context.actionContext, undefined);\r\n const productImageSettings = imageOrientation === 'Landscape' ? getLandscapeImageSettings(imageSettings) : imageSettings;\r\n\r\n // Construct telemetry attribute to render\r\n const attribute = context\r\n && context.telemetry\r\n && context.telemetry.setTelemetryAttribute\r\n && context.telemetry.setTelemetryAttribute(product.RecordId.toString(), {\r\n pid: product.RecordId,\r\n pname: product.Name,\r\n mname: id\r\n }\r\n );\r\n return (\r\n \r\n
\r\n {renderProductPlacementImage(productImageSettings, context.request.gridSettings, product.PrimaryImageUrl, product.Name)}\r\n
\r\n
\r\n

{product.Name}

\r\n {renderPrice(context, typeName, id, product.BasePrice, product.Price, savingsText, freePriceText, originalPriceText, currentPriceText)}\r\n {renderDescription(product.Description)}\r\n {renderRating(context, typeName, id, product.AverageRating, product.TotalRatings, ratingAriaLabel)}\r\n
\r\n
\r\n );\r\n};\r\n\r\nfunction renderLabel(name: string = '', price: string = '', rating?: number, ratingAriaLabel?: string): string {\r\n let ratingLabel = '';\r\n\r\n if (rating) {\r\n const roundedRating = rating.toFixed(2);\r\n ratingLabel = format(ratingAriaLabel || '', roundedRating, '5');\r\n }\r\n\r\n return (`${name} ${price} ${ratingLabel}`);\r\n}\r\n\r\nfunction renderDescription(description?: string): JSX.Element | null {\r\n return

{description}

;\r\n}\r\n\r\nfunction renderRating(context: ICoreContext, typeName: string, id: string, avgRating?: number, totalRatings?: number, ariaLabel?: string): JSX.Element | null {\r\n if (!avgRating) {\r\n return null;\r\n }\r\n\r\n const numRatings = totalRatings && totalRatings.toString() || undefined;\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nfunction renderPrice(\r\n context: ICoreContext,\r\n typeName: string,\r\n id: string,\r\n basePrice?: number,\r\n adjustedPrice?: number,\r\n savingsText?: string,\r\n freePriceText?: string,\r\n originalPriceText?: string,\r\n currentPriceText?: string): JSX.Element | null {\r\n const price: ProductPrice = {\r\n BasePrice: basePrice,\r\n AdjustedPrice: adjustedPrice,\r\n CustomerContextualPrice: adjustedPrice\r\n };\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nfunction renderProductPlacementImage(imageSettings?: IImageSettings, gridSettings?: IGridSettings, imageUrl?: string, altText: string = ''): JSX.Element | null {\r\n if (!imageUrl || !gridSettings || !imageSettings) {\r\n return null;\r\n }\r\n const img: IImageData = {\r\n src: imageUrl,\r\n altText: altText\r\n };\r\n const imageProps = {\r\n gridSettings: gridSettings,\r\n imageSettings: imageSettings\r\n };\r\n return (\r\n \r\n );\r\n}\r\n\r\nfunction getLandscapeImageSettings(cmsImageSettings?: IImageSettings): IImageSettings {\r\n // tslint:disable-next-line: no-unnecessary-local-variable\r\n const landscapeImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=390&h=292&q=80&m=6&f=jpg', w: 390, h: 292 },\r\n sm: { q: 'w=528&h=396&q=80&m=6&f=jpg', w: 528, h: 396 },\r\n md: { q: 'w=640&h=479&q=80&m=6&f=jpg', w: 640, h: 479 },\r\n lg: { q: 'w=584&h=437&q=80&m=6&f=jpg', w: 584, h: 437 },\r\n xl: { q: 'w=702&h=526&q=80&m=6&f=jpg', w: 702, h: 526 }\r\n },\r\n disableLazyLoad: cmsImageSettings && cmsImageSettings.disableLazyLoad,\r\n lazyload: cmsImageSettings && cmsImageSettings.lazyload\r\n };\r\n\r\n return landscapeImageSettings;\r\n}\r\n\r\n// @ts-ignore\r\nexport const ProductComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\r\n 'Product',\r\n { component: ProductCard }\r\n);","import { IProductCollectionViewProps } from '@msdyn365-commerce-modules/product-collection';\r\nimport { INodeProps, Module, Node, NodeTag } from '@msdyn365-commerce-modules/utilities';\r\nimport { ProductSearchResult } from '@msdyn365-commerce/retail-proxy';\r\nimport * as React from 'react';\r\nimport {ProductComponent} from './components/product-collection-component';\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 {\r\n isCarousel ? _renderCarousel(SingleSlideCarouselComponentProps,props.config.productCollection.products,props) :\r\n _renderGrid(GridComponentProps, props.config.productCollection.products,props)\r\n }\r\n \r\n );\r\n }\r\n return null;\r\n};\r\n\r\nconst _renderCarousel = (carouselContainer: INodeProps, items: ProductSearchResult[],PropDetails: React.PropsWithChildren): JSX.Element => {\r\n const isMobile = PropDetails.context && PropDetails.context.request && PropDetails.context.request.device.Type === 'Mobile'\r\n let mobileCarouselContainer = {\r\n tag: 'ul' as NodeTag,\r\n className: 'ms-product-collection__custom-carousel'\r\n }\r\n return (\r\n \r\n {items && items.map((item,index)=>_renderProduct(item,PropDetails,index))}\r\n \r\n );\r\n};\r\n\r\nconst _renderGrid = (gridContainer: INodeProps, items: ProductSearchResult[],PropDetails: React.PropsWithChildren): JSX.Element => {\r\n return (\r\n \r\n {items && items.map((item,index)=>_renderProduct(item,PropDetails,index))}\r\n \r\n );\r\n};\r\n\r\nconst _renderProduct = (product: ProductSearchResult,PropDetails: React.PropsWithChildren,index: number): JSX.Element => {\r\n const liClass = 'ms-product-collection__item';\r\n const orientationClass = getImageOrientation(product) === 'Landscape'? 'product-placement__item-limage' : 'product-placement__item-pimage';\r\n return (\r\n
  • \r\n \r\n
  • \r\n );\r\n};\r\n\r\nfunction getImageOrientation(product: ProductSearchResult): string {\r\n let imageOrientation: string ='';\r\n if (product.AttributeValues!.length > 0) {\r\n product.AttributeValues!.map(property => {\r\n if (property.Name?.toLowerCase() === 'image orientation') {\r\n imageOrientation = property.TextValue!;\r\n }\r\n });\r\n }\r\n return imageOrientation;\r\n}\r\n\r\nexport default ProductCollectionView;","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IProductDimensionsWithAvailabilitiesFull } from '@msdyn365-commerce/commerce-entities';\nimport { ProductDimensionsMatrix } from '@msdyn365-commerce/components';\nimport { RichTextComponent } from '@msdyn365-commerce/core';\nimport { ICoreContext, getCatalogId } from '@msdyn365-commerce/core-internal';\nimport { ArrayExtensions, IDimensionsApp, validateCatalogId } from '@msdyn365-commerce-modules/retail-actions';\nimport { Alert, Button, Collapse, IModuleProps, isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { FeatureState } from '@msdyn365-commerce/retail-proxy';\nimport { IBulkPurchaseData } from './bulk-purchase.data';\nimport { IBulkPurchaseProps } from './bulk-purchase.props.autogenerated';\n\n/**\n * Additional optional props for the bulk purchase.\n */\nexport interface IBulkPurchaseExtendedProps extends IBulkPurchaseProps {\n productDimensions?: IProductDimensionsWithAvailabilitiesFull[];\n}\n\n/**\n * View for the bulk purchase module.\n */\nexport interface IBulkPurchaseViewProps extends IBulkPurchaseProps {\n container: IModuleProps;\n content: React.ReactElement;\n}\n\n/**\n * BulkPurchase state message Interface.\n */\nexport interface IBulkPurchaseStateMessage {\n isOpen: boolean;\n messageGlyph: string;\n messageText: string;\n statusCssString: string;\n}\n\n/**\n * View for the bulk purchase module.\n */\nexport interface IBulkPurchaseState {\n isExpanded: boolean;\n stateMessage?: IBulkPurchaseStateMessage;\n}\n\n/**\n * Bulk-purchase module.\n */\nexport class BulkPurchase extends React.PureComponent {\n public static readonly className = 'ms-bulk-purchase';\n private readonly _errorCssClass: string = 'danger';\n private readonly _errorCssGlyphClass: string = 'fas fa-exclamation-triangle';\n private readonly collapseRef: React.RefObject = React.createRef();\n\n public constructor(props: IBulkPurchaseExtendedProps) {\n super(props);\n\n this.state = {\n isExpanded: false\n };\n }\n\n public render(): React.ReactElement | null {\n const hasDimensionsInProps = ArrayExtensions.hasElements(this.props.productDimensions);\n const hasDimensionsInData = ArrayExtensions.hasElements(this.props.data.productDimensions?.result);\n if (!hasDimensionsInProps && !hasDimensionsInData) {\n return null;\n }\n\n const viewProps: IBulkPurchaseViewProps = {\n ...this.props,\n container: {\n moduleProps: this.props,\n className: classnames(BulkPurchase.className, this.props.config.className)\n },\n content: this._renderCollapseContent(`${BulkPurchase.className}__content`)\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _renderCollapseContent(className: string): React.ReactElement {\n return (\n
    \n {this._renderCollapseButton(`${className}__collapse-button`)}\n {this._renderCollapse(`${className}__collapse`)}\n
    \n );\n }\n\n private _renderCollapseButton(className: string): React.ReactElement {\n return (\n \n {this.props.resources.bulkPurchaseHeaderTitle}\n \n );\n }\n\n /**\n *This function is being used to handel variant change dropdown.\n */\n private _dimensionDropDownChange = () => {\n this.collapseRef.current?.reEvaluateHeight();\n };\n\n private _renderCollapse(className: string): React.ReactElement {\n return (\n \n {this._renderMainContent(`${className}__main-content`)}\n \n );\n }\n\n private _renderMainContent(className: string): React.ReactElement {\n const isMobileDevice = isMobile({ variant: VariantType.Viewport, context: this.props.context.request }) === 'xs';\n\n const userMessageNode = this.state.stateMessage ? (\n \n \n {this.state.stateMessage.messageText}\n \n ) : (\n undefined\n );\n\n return (\n
    \n {!isMobileDevice && (\n
    \n \n
    \n )}\n {userMessageNode}\n {this._renderMatrix(`${className}__matrix-container`)}\n
    \n );\n }\n\n private _renderMatrix(className: string): React.ReactElement {\n const hasDimensionsInProps = ArrayExtensions.hasElements(this.props.productDimensions);\n const channelMultipleCatalogsFeature = 'Dynamics.AX.Application.ChannelMultipleCatalogsFeature';\n const { featureState } = this.props.data;\n const isMultipleCatalogsFeatureEnabled =\n featureState?.result?.find((item: FeatureState) => item.Name === channelMultipleCatalogsFeature)?.IsEnabled || false;\n const catalogId = getCatalogId(this.props.context.request);\n validateCatalogId(catalogId);\n return (\n }\n data={{\n dimensions: hasDimensionsInProps ? this.props.productDimensions! : this.props.data.productDimensions!.result!,\n orderTemplates: this.props.data.orderTemplates?.result,\n customerInformation: this.props.data.customerInformation?.result\n }}\n resources={this.props.resources}\n dimensionOnChange={this._dimensionDropDownChange}\n onErrorMessage={this._onErrorMessage}\n isMultipleCatalogFeatureEnabledInHq={isMultipleCatalogsFeatureEnabled}\n catalogId={catalogId}\n />\n );\n }\n\n private _onErrorMessage = (errorMessage: string) => {\n this.setState({\n stateMessage: {\n messageText: errorMessage,\n statusCssString: this._errorCssClass,\n messageGlyph: this._errorCssGlyphClass,\n isOpen: true\n }\n });\n };\n\n /**\n * Callback which toggles collapse mode.\n */\n private readonly _toggleCollapse = () => {\n this.setState(state => ({\n isExpanded: !state.isExpanded\n }));\n };\n}\n\nexport default BulkPurchase;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBulkPurchaseViewProps } from './bulk-purchase';\n\n/**\n * Bulk purchase view.\n * @param props - Bulk purchase view props.\n * @returns React node with a module.\n */\nexport const BulkPurchaseViewComponent: React.FC = props => {\n return {props.content};\n};\n\nexport default BulkPurchaseViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n AddToCartComponent,\n AddToOrderTemplateComponent,\n AddToWishlistComponent,\n IAddToCartFailureResult,\n IAddToCartResources,\n IAddToOrderTemplateDialogResources,\n IDuplicateItemsWhenAddingToOrderTemplateDialogResources,\n IItemAddedToOrderTemplateDialogResources,\n IOrderTemplateActionErrorResult,\n IOrderTemplateNameDialogResources,\n IWishlistActionErrorResult,\n PriceComponent,\n RatingComponent\n} from '@msdyn365-commerce/components';\nimport { getUrlSync, IImageSettings } from '@msdyn365-commerce/core';\nimport { ICartActionResult, ICartState } from '@msdyn365-commerce/global-state';\nimport { ProductAvailableQuantity, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, DeliveryMode, validateCatalogId } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Alert,\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n Heading,\n ITelemetryContent,\n Node,\n Quantity,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBuyboxAddToCartViewProps,\n IBuyboxAddToOrderTemplateViewProps,\n IBuyboxAddToWishlistViewProps,\n IBuyboxCallbacks,\n IBuyboxCommonData,\n IBuyboxCommonResources,\n IBuyboxErrorBlockProps,\n IBuyboxExtentedProps,\n IBuyboxKeyInPriceViewProps,\n IBuyboxProductQuantityViewProps,\n IBuyboxShopSimilarLookViewProps,\n IBuyboxState,\n IProductDetails,\n ShopSimiliarButtonType\n} from './buyboxInterface';\nimport { getConfigureErrors, getGenericError, getQuantityError } from './utilities/error-utilities';\n\nconst _getClassNamePrefix = (typeName: string): string => {\n return typeName.toLocaleLowerCase() === 'quickview' ? 'ms-quickView' : 'ms-buybox';\n};\n\nexport function getBuyBoxInventoryLabel(\n props: IBuyboxExtentedProps,\n productDetails?: IProductDetails\n): React.ReactElement | undefined {\n const { typeName } = props;\n\n // Since the data action can return no value, and the type is non-nullable due to backward compatibility reasons, the null check is required.\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\n const productAvailableQuantity = props.data.productAvailableQuantity?.result ?? productDetails?.productAvailableQuantity;\n\n const className = _getClassNamePrefix(typeName);\n if (!productAvailableQuantity || !ArrayExtensions.hasElements(productAvailableQuantity)) {\n return undefined;\n }\n const shippingInventory = productAvailableQuantity.find(shipping => shipping.deliveryType === DeliveryMode.shipping);\n\n if (shippingInventory) {\n let inventoryClassName: string;\n if (shippingInventory.StockLevelCode) {\n inventoryClassName = `${className}__inventory-label ${className}__inventory-code-${shippingInventory.StockLevelCode.toLowerCase()}`;\n } else {\n inventoryClassName = `${className}__inventory-label`;\n }\n return (\n
    \n {shippingInventory.StockLevelLabel}\n
    \n );\n }\n\n return undefined;\n}\n\nexport function getBuyboxProductTitle(\n props: IBuyboxExtentedProps,\n productDetails?: IProductDetails\n): React.ReactElement | undefined {\n const {\n config: { titleHeadingTag = 'h1' },\n typeName\n } = props;\n const className = _getClassNamePrefix(typeName);\n\n // Since the data action can return no value, and the type is non-nullable due to backward compatibility reasons, the null check is required.\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\n const product = props.data.product?.result ?? productDetails?.product ?? undefined;\n\n return product && ;\n}\n\nexport function getBuyboxProductDescription(\n props: IBuyboxExtentedProps,\n productDetails?: IProductDetails\n): React.ReactElement | undefined {\n const { typeName } = props;\n const className = _getClassNamePrefix(typeName);\n\n // Since the data action can return no value, and the type is non-nullable due to backward compatibility reasons, the null check is required.\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\n const product = props.data.product?.result ?? productDetails?.product ?? undefined;\n\n return product &&

    {product.Description}

    ;\n}\n\n/**\n * Gets the react node for product unit of measure display.\n * @param {IBuyboxExtentedProps} props The buybox module props.\n * @param {IProductDetails} productDetails The product details to be displyed in buybox.\n * @returns {React.ReactElement} The node representing markup for unit of measure component.\n */\nexport function getBuyboxProductUnitOfMeasure(\n props: IBuyboxExtentedProps,\n productDetails?: IProductDetails\n): React.ReactElement | undefined {\n const { typeName } = props;\n const className = _getClassNamePrefix(typeName);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- Do not need type check for appsettings\n if (\n props.context.app.config &&\n (!props.context.app.config.unitOfMeasureDisplayType || props.context.app.config.unitOfMeasureDisplayType === 'none')\n ) {\n return undefined;\n }\n\n // Since the data action can return no value, and the type is non-nullable due to backward compatibility reasons, the null check is required.\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\n const product = props.data.product?.result ?? productDetails?.product;\n if (!product || !product.DefaultUnitOfMeasure) {\n props.telemetry.warning('Missing defult unit of measureor theproduct');\n return undefined;\n }\n\n return (\n
    \n {product.DefaultUnitOfMeasure}\n
    \n );\n}\n\nlet telemetryContent: ITelemetryContent;\n\n/**\n * On add to cart failed function.\n * @param props -The buybox module props.\n * @param state -The buybox module state.\n * @param callbacks -The buybox module callbacks.\n * @param defaultMinimumKeyInPrice -The default minimum key in price.\n * @param defaultMaximumKeyInPrice -The default maximum key in price.\n * @param cart -The cart state.\n * @param product -The simple product.\n * @param productAvailability -The product available quantity.\n * @returns Update error state.\n */\nconst onAddToCartFailed = (\n props: IBuyboxExtentedProps,\n state: IBuyboxState,\n callbacks: IBuyboxCallbacks,\n defaultMinimumKeyInPrice: number,\n defaultMaximumKeyInPrice: number,\n cart: ICartState,\n product: SimpleProduct,\n productAvailability: ProductAvailableQuantity | undefined\n) => (result: IAddToCartFailureResult) => {\n let quantityErrorForState: string | undefined;\n let customAmountErrorForState: string | undefined;\n let otherErrorForState: string | undefined = getGenericError(\n result,\n cart,\n props.resources,\n props.context,\n product,\n productAvailability,\n undefined\n );\n\n if (result.failureReason === 'OUTOFSTOCK') {\n quantityErrorForState = result.failureReason === 'OUTOFSTOCK' ? getQuantityError(result.stockLeft, props.resources) : undefined;\n } else if (\n result.failureReason === 'CARTACTIONFAILED' &&\n result.cartActionResult &&\n (result.cartActionResult.substatus === 'MAXQUANTITY' || result.cartActionResult.substatus === 'QUANTITYLIMITS')\n ) {\n quantityErrorForState = getGenericError(result, cart, props.resources, props.context, product, productAvailability, undefined);\n otherErrorForState = undefined; // Prevent error duplication in otherError and quantityError\n }\n\n if (result.failureReason === 'INVALIDCUSTOMAMOUNT') {\n if (state.keyInPriceAmount === undefined || state.keyInPriceAmount < (props.config.minimumKeyInPrice || defaultMinimumKeyInPrice)) {\n const formatedAmountLimit = props.context.cultureFormatter.formatCurrency(\n props.config.minimumKeyInPrice || defaultMinimumKeyInPrice\n );\n customAmountErrorForState = props.resources.invalidSmallCustomAmountText.replace('{minAmount}', formatedAmountLimit);\n } else if (state.keyInPriceAmount > (props.config.maximumKeyInPrice || defaultMaximumKeyInPrice)) {\n const formatedAmountLimit = props.context.cultureFormatter.formatCurrency(\n props.config.maximumKeyInPrice || defaultMaximumKeyInPrice\n );\n customAmountErrorForState = props.resources.invalidLargeCustomAmountText.replace('{maxAmount}', formatedAmountLimit);\n }\n }\n\n callbacks.updateErrorState({\n errorHost: 'ADDTOCART',\n quantityError: quantityErrorForState,\n configureErrors:\n result.failureReason === 'MISSINGDIMENSION'\n ? getConfigureErrors(result.missingDimensions, props.resources, product?.IsGiftCard)\n : {},\n customAmountError: customAmountErrorForState,\n otherError: otherErrorForState\n });\n};\n\n/**\n * On Item Add To Cart function.\n * @param typeName -Type name.\n * @param callbacks -Buybox Callbacks.\n * @returns Change modal open.\n */\nconst onItemAddedToCart = (typeName: string, callbacks: IBuyboxCallbacks) => (result: ICartActionResult) => {\n if (typeName === 'quickview') {\n callbacks.changeModalOpen(false);\n }\n};\n\nexport function getBuyboxAddToCart(\n props: IBuyboxExtentedProps,\n state: IBuyboxState,\n callbacks: IBuyboxCallbacks,\n defaultMinimumKeyInPrice: number,\n defaultMaximumKeyInPrice: number,\n productDetails?: IProductDetails,\n hasAvailableProducts?: boolean\n): IBuyboxAddToCartViewProps {\n const { id, typeName, context, resources } = props;\n\n // Since the data action can return no value, and the type is non-nullable due to backward compatibility reasons, the null check is required.\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\n const product = props.data.product?.result ?? productDetails?.product;\n\n // Since the data action can return no value, and the type is non-nullable due to backward compatibility reasons, the null check is required.\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\n const cart = props.data.cart?.result ?? productDetails?.cart;\n\n // Since the data action can return no value, and the type is non-nullable due to backward compatibility reasons, the null check is required.\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\n const productAvailableQuantity = props.data.productAvailableQuantity?.result ?? productDetails?.productAvailableQuantity;\n\n const {\n quantity,\n errorState: { configureErrors, quantityError, customAmountError, otherError, errorHost },\n selectedProduct,\n isUpdatingDimension,\n isUpdatingDeliveryOptions,\n isServiceItem\n } = state;\n\n const productAvailability = state.productAvailableQuantity\n ? state.productAvailableQuantity.ProductAvailableQuantity\n : productAvailableQuantity && productAvailableQuantity.length > 0\n ? productAvailableQuantity[0].ProductAvailableQuantity\n : undefined;\n\n const dialogStrings: IAddToCartResources = {\n goToCartText: resources.buyBoxGoToCartText,\n continueShoppingText: resources.buyBoxContinueShoppingText,\n closeNotificationLabel: resources.closeNotificationLabel,\n headerItemOneText: resources.buyBoxSingleItemText,\n headerItemFormatText: resources.buyBoxMultiLineItemFormatText,\n headerMessageText: resources.buyBoxHeaderMessageText,\n freePriceText: resources.priceFree,\n originalPriceText: resources.originalPriceText,\n currentPriceText: resources.currentPriceText,\n addedQuantityText: resources.addedQuantityText\n };\n\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=240&h=240&m=6', w: 0, h: 0 },\n lg: { q: 'w=240&h=240&m=6', w: 0, h: 0 },\n xl: { q: 'w=240&h=240&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n\n const isProductQuantityLoading = typeName !== 'quickview' && props.data.productAvailableQuantity.status === 'LOADING';\n if (isProductQuantityLoading) {\n callbacks.changeUpdatingDimension(false);\n }\n\n const isLoadingDeliveryOptions = typeName !== 'quickview' && props.data.deliveryOptions?.status === 'LOADING';\n if (isLoadingDeliveryOptions && callbacks.changeUpdatingDeliveryOptions) {\n callbacks.changeUpdatingDeliveryOptions(false);\n }\n\n telemetryContent = getTelemetryObject(props.context.request.telemetryPageName!, props.typeName, props.telemetry);\n\n // Check if the product delivery mode is electronic\n const emailDeliveryModeCode = props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode;\n // from quickview we are not getting deliveryoptions in props.data hence getting it from quickview state\n const deliveryOptions = typeName === 'quickview' ? state.productDeliveryOptions : props.data.deliveryOptions?.result;\n const isEmailDelivery =\n ArrayExtensions.hasElements(deliveryOptions?.DeliveryOptions) && deliveryOptions!.DeliveryOptions[0].Code === emailDeliveryModeCode;\n const className = _getClassNamePrefix(typeName);\n const isDisabled = isUpdatingDimension && typeName === 'quickview';\n const { enableHidePdpRepeatingErrors } = props.context.request.features;\n return {\n ContainerProps: {\n className: `${className}__add-to-cart-container`\n },\n button: product && (\n \n ),\n errorBlock: (\n \n )\n };\n}\n\n/**\n * Get the React.ReactElement contains price.\n * @param props - The IBuyboxExtentedProps.\n * @param state - The buybox state.\n * @returns The React.ReactElement.\n */\nexport function getBuyboxProductPrice(props: IBuyboxExtentedProps, state: IBuyboxState): React.ReactElement | undefined {\n const { id, typeName, context, resources } = props;\n\n return (\n state.productPrice && (\n featureState.Name === 'Dynamics.AX.Application.RetailSearchPriceRangeFeature'\n )?.IsEnabled\n }\n isSalesAgreementPriceFeatureEnabled={\n props.data.featureState.result?.find(\n featureState => featureState.Name === 'Dynamics.AX.Application.RetailSalesAgreementPriceSupportFeature'\n )?.IsEnabled\n }\n priceResources={{\n priceRangeSeparator: resources.priceRangeSeparator,\n salesAgreementPricePrompt: resources.salesAgreementPricePrompt,\n salesAgreementExpirationDatePrompt: resources.salesAgreementExpirationDatePrompt,\n salesAgreementCommittedQuantityPrompt: resources.salesAgreementCommittedQuantityPrompt,\n salesAgreementRemainingQuantityPrompt: resources.salesAgreementRemainingQuantityPrompt\n }}\n freePriceText={resources.priceFree}\n originalPriceText={resources.originalPriceText}\n currentPriceText={resources.currentPriceText}\n />\n )\n );\n}\n\nexport function getBuyboxProductRating(\n props: IBuyboxExtentedProps,\n productDetails?: IProductDetails\n): React.ReactElement | undefined {\n const { id, typeName, context, resources } = props;\n\n // Since the data action can return no value, and the type is non-nullable due to backward compatibility reasons, the null check is required.\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\n const ratingsSummary = props.data.ratingsSummary?.result ?? productDetails?.ratingsSummary;\n if (!ratingsSummary || !ratingsSummary.averageRating) {\n return
    ;\n }\n const ratingComponent = (\n \n );\n\n return ratingComponent;\n}\n\nfunction generateAddToOrderTemplateDialogResources(resources: IBuyboxCommonResources): IAddToOrderTemplateDialogResources {\n return {\n addToOrderTemplateHeader: resources.addToOrderTemplateHeader,\n\n noOrderTemplatesMessage: resources.noOrderTemplatesMessage,\n noOrderTemplatesDescription: resources.noOrderTemplatesDescription,\n\n createAnOrderTemplateButtonText: resources.createAnOrderTemplateButtonText,\n createNewOrderTemplateButtonText: resources.createNewOrderTemplateButtonText,\n cancelOrderTemplateCreationButtonText: resources.cancelOrderTemplateCreationButtonText,\n\n selectTemplatesText: resources.selectTemplatesText,\n addToTemplateButtonText: resources.addToTemplateButtonText,\n lineItemsText: resources.lineItemsText\n };\n}\n\nfunction generateOrderTemplateNameDialogResources(resources: IBuyboxCommonResources): IOrderTemplateNameDialogResources {\n return {\n orderTemplateHeaderLabel: resources.createOrderTemplateHeader,\n orderTemplateTitleLabel: resources.orderTemplateTitle,\n orderTemplateNameAriaLabel: resources.orderTemplateNameAriaLabel,\n orderTemplateDescription: resources.createOrderTemplateDescription,\n\n defaultOrderTemplateName: resources.defaultOrderTemplateName,\n\n orderTemplateButtonLabel: resources.createOrderTemplateButtonText,\n orderTemplateCancelButtonLabel: resources.cancelNewOrderTemplateCreationButtonText\n };\n}\n\nfunction generateItemAddedToOrderTemplateDialogResources(resources: IBuyboxCommonResources): IItemAddedToOrderTemplateDialogResources {\n return {\n viewOrderTemplateButtonText: resources.viewOrderTemplateButtonText,\n continueShoppingButtonText: resources.continueShoppingButtonText,\n itemAddedToOrderTemplateHeaderItemOneText: resources.itemAddedToOrderTemplateHeaderItemOneText,\n itemAddedToOrderTemplateHeaderItemFormatText: resources.itemAddedToOrderTemplateHeaderItemFormatText,\n itemAddedToOrderTemplateHeaderMessageText: resources.itemAddedToOrderTemplateHeaderMessageText,\n freePriceText: resources.priceFree,\n originalPriceText: resources.originalPriceText,\n currentPriceText: resources.currentPriceText\n };\n}\n\nfunction generateDuplicateItemsWhenAddingToOrderTemplateDialogResources(\n resources: IBuyboxCommonResources\n): IDuplicateItemsWhenAddingToOrderTemplateDialogResources {\n return {\n duplicatedProductsHeader: resources.duplicatedProductsHeader,\n duplicatedProductsDescription: resources.duplicatedProductsDescription,\n updateQuantityButtonText: resources.updateQuantityButtonText,\n cancelDuplicateItemsButtonText: resources.cancelDuplicateItemsButtonText\n };\n}\n\n/**\n * Add to order template failed function.\n * @param callbacks -Buybox callbacks.\n * @param resources -Buybox common resources.\n * @param product -Simple product.\n * @returns Update error state.\n */\nconst onAddToOrderTemplateFailed = (callbacks: IBuyboxCallbacks, resources: IBuyboxCommonResources, product: SimpleProduct | undefined) => (\n result: IOrderTemplateActionErrorResult\n) => {\n callbacks.updateErrorState({\n errorHost: 'ORDER_TEMPLATE',\n configureErrors:\n result.status === 'MISSING_DIMENSION' ? getConfigureErrors(result.missingDimensions, resources, product?.IsGiftCard) : {}\n });\n};\n\nexport function getBuyboxProductAddToOrderTemplate(\n props: IBuyboxExtentedProps,\n state: IBuyboxState,\n callbacks: IBuyboxCallbacks,\n isMultipleCatalogsFeatureEnabled?: boolean,\n catalogId?: number\n): IBuyboxAddToOrderTemplateViewProps | undefined {\n const {\n id,\n typeName,\n context,\n data: {\n orderTemplates: { result: orderTemplates },\n customerInformation: { result: customerInformation }\n },\n resources\n } = props;\n\n const product = props.data.product?.result;\n\n const {\n errorState: { configureErrors, quantityError, customAmountError, otherError, errorHost },\n quantity\n } = state;\n\n // If custom amount is selected, add-to-orderTemplate is disabled\n if (state.isCustomPriceSelected) {\n return undefined;\n }\n const className = _getClassNamePrefix(typeName);\n const { enableHidePdpRepeatingErrors } = props.context.request.features;\n\n return {\n ContainerProps: {\n className: `${className}__add-to-order-template-container`\n },\n button: product && orderTemplates && (\n \n ),\n errorBlock: (\n \n )\n };\n}\n\n/**\n * Renders add to comparison button for the given product.\n * @param productComparisonButton - React element of the button.\n * @param product - Product information.\n * @param catalogId - Current catalog.\n * @param state - Buybox state.\n * @returns React element of the button.\n */\nexport function getBuyboxProductComparisonButton(\n productComparisonButton: React.ReactNode,\n product: SimpleProduct,\n catalogId: number,\n state: IBuyboxState\n): JSX.Element | undefined {\n if (state.isCustomPriceSelected) {\n return undefined;\n }\n\n validateCatalogId(catalogId);\n return React.cloneElement(productComparisonButton as React.ReactElement, { product, catalogId });\n}\n\n/**\n * Add to wishlist failed function.\n * @param callbacks -Buybox callbacks.\n * @param resources -Buybox resources.\n * @param product -Simple product.\n * @returns Update error state.\n */\nconst onAddToWishlistFailed = (callbacks: IBuyboxCallbacks, resources: IBuyboxCommonResources, product: SimpleProduct | undefined) => (\n result: IWishlistActionErrorResult\n) => {\n callbacks.updateErrorState({\n errorHost: 'WISHLIST',\n configureErrors:\n result.status === 'MISSINGDIMENSION' ? getConfigureErrors(result.missingDimensions, resources, product?.IsGiftCard) : {}\n });\n};\n\nexport function getBuyboxProductAddToWishlist(\n props: IBuyboxExtentedProps,\n state: IBuyboxState,\n callbacks: IBuyboxCallbacks,\n productDetails?: IProductDetails\n): IBuyboxAddToWishlistViewProps | undefined {\n const {\n id,\n typeName,\n context,\n data: {\n wishlists: { result: wishlists }\n },\n resources\n } = props;\n\n const product = props.data.product?.result ? props.data.product.result : productDetails?.product;\n\n const {\n errorState: { configureErrors, quantityError, customAmountError, otherError, errorHost },\n selectedProduct\n } = state;\n\n // If custom amount is selected, add-to-wishlist is disabled\n if (state.isCustomPriceSelected) {\n return undefined;\n }\n\n const className = _getClassNamePrefix(typeName);\n const { enableHidePdpRepeatingErrors } = props.context.request.features;\n return {\n ContainerProps: {\n className: `${className}__add-to-wishlist-container`\n },\n button: product && (\n \n ),\n errorBlock: (\n \n )\n };\n}\n\n/**\n * On quantity change function.\n * @param callbacks -Buybox callbacks.\n * @returns Update quantity.\n */\nconst onQuantityChangeHandler = (callbacks: IBuyboxCallbacks) => (newValue: number) => {\n if (callbacks.updateQuantity) {\n callbacks.updateQuantity(newValue);\n }\n};\n\nexport function getBuyboxProductQuantity(\n props: IBuyboxExtentedProps,\n state: IBuyboxState,\n callbacks: IBuyboxCallbacks\n): IBuyboxProductQuantityViewProps {\n const { resources, typeName } = props;\n\n const {\n quantity,\n min,\n max,\n errorState: { quantityError }\n } = state;\n\n const className = _getClassNamePrefix(typeName);\n\n return {\n ContainerProps: {\n className: `${className}__quantity`\n },\n LabelContainerProps: {\n tag: 'label',\n className: `${className}__product-quantity-label`,\n htmlFor: `${className}__product-quantity-input`\n },\n heading:
    {resources.productQuantityHeading}
    ,\n errors: quantityError && (\n \n \n ),\n input: (\n \n )\n };\n}\n\nexport function getBuyboxShopSimilarButton(\n props: IBuyboxExtentedProps,\n buttonType: ShopSimiliarButtonType\n): IBuyboxShopSimilarLookViewProps {\n const { resources, context, typeName } = props;\n const product = props.data.product?.result;\n\n const className = _getClassNamePrefix(typeName);\n const navigationUrl = (shopSimiliarButtonType: ShopSimiliarButtonType) => () => {\n const searchURL = getUrlSync('search', context && context.actionContext);\n const separator = searchURL!.includes('?') ? '&' : '?';\n document.location.href = `${searchURL}${separator}productId=${product &&\n product.RecordId}&recommendation=${shopSimiliarButtonType}`;\n };\n const telemetryText =\n buttonType === ShopSimiliarButtonType.Looks ? TelemetryConstant.ShopSimliarLooks : TelemetryConstant.ShopSimliarDescription;\n const payLoad = getPayloadObject('click', telemetryContent, telemetryText);\n const attribute = getTelemetryAttributes(telemetryContent, payLoad);\n const text = buttonType === ShopSimiliarButtonType.Looks ? resources.shopSimilarLooksText : resources.shopSimilarDescriptionText;\n\n return {\n ContainerProps: {\n className: `${className}__shopsimilar${buttonType}`\n },\n input: (\n \n {text}\n \n )\n };\n}\n\n/**\n * On price change function.\n * @param callbacks -Buybox callbacks.\n * @returns Update key in price.\n */\nconst onPriceChangeHandler = (callbacks: IBuyboxCallbacks) => (event: React.ChangeEvent) => {\n const value = event.currentTarget.value;\n callbacks.updateKeyInPrice(value.length > 0 ? Number(value) : Number.parseFloat(value));\n};\n\nexport function getBuyboxKeyInPrice(\n props: IBuyboxExtentedProps,\n state: IBuyboxState,\n callbacks: IBuyboxCallbacks\n): IBuyboxKeyInPriceViewProps {\n const { config, resources } = props;\n\n const {\n errorState: {}\n } = state;\n\n const className = _getClassNamePrefix(props.typeName);\n\n return {\n ContainerProps: {\n className: `${className}__key_in_price`\n },\n LabelContainerProps: {\n tag: 'label',\n className: `${className}__key_in_price-label`,\n htmlFor: `${className}__key_in_price`\n },\n heading:
    {resources.buyboxKeyInPriceLabelHeading}
    ,\n input: (\n \n )\n };\n}\n\nexport const BuyboxErrorBlock: React.FC = ({\n showError,\n configureErrors,\n quantityError,\n customAmountError,\n otherError,\n resources,\n enableHidePdpRepeatingErrors\n}) => {\n let errorMessages: (string | undefined)[] = [];\n\n // skip configuration repeating errors when flight is enabled\n if (!enableHidePdpRepeatingErrors) {\n errorMessages = Object.values(configureErrors).filter(message => message !== undefined);\n }\n\n // skip quantity repeating errors when flight is enabled\n if (quantityError && !enableHidePdpRepeatingErrors) {\n errorMessages.push(quantityError);\n }\n\n if (customAmountError) {\n errorMessages.push(customAmountError);\n }\n\n if (otherError) {\n errorMessages.push(otherError);\n }\n\n return (\n 0} color='danger' assertive aria-label={resources.buyboxErrorMessageHeader}>\n \n {errorMessages.map((message, index) => {\n return (\n
    \n {message}\n
    \n );\n })}\n
    \n );\n};\n\nexport function getQuantityLimitsMessages(\n props: IBuyboxExtentedProps,\n state: IBuyboxState\n): React.ReactElement | undefined {\n const { resources } = props;\n\n const { min, max } = state;\n\n if (!_isOrderQuantityLimitsFeatureEnabled(props) && !_isChannelLimitsFeatureEnabled(props)) {\n return undefined;\n }\n\n return (\n \n {_renderMaxLabel(props, max, resources.maxQuantityText)}\n {_renderMinLabel(props, min, resources.minQuantityText)}\n \n );\n}\n\nexport const RetailDefaultOrderQuantityLimitsFeatureName: string = 'Dynamics.AX.Application.RetailDefaultOrderQuantityLimitsFeature';\nexport const EcommerceQuantityLimitConfigurationsFeatureName: string =\n 'Dynamics.AX.Application.EcommerceQuantityLimitConfigurationsFeature';\nexport const RevertToSiteBuilderOrderQuantityLimitsSettingsCRTFeatureName: string = 'RevertToSiteBuilderOrderQuantityLimitsSettings';\n\nconst _renderMaxLabel = (\n props: IBuyboxExtentedProps,\n max: number | undefined,\n maxQuantityText: string\n): React.ReactElement | undefined => {\n const { resources, typeName } = props;\n const className = _getClassNamePrefix(typeName);\n if (max && max !== 0 && max !== Number.MAX_VALUE) {\n return (\n

    \n {resources.informationIconText}\n