{"version":3,"file":"static/js/7.115ad9b96a506a6878b6.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-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/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/themes/citta/views/checkout.view.tsx?084a","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/promocode.component.tsx?26ab","webpack://Citta2.0/./src/themes/citta/views/components/sidebar.tsx?30ee","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/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/promo-banner/components/close-button.tsx?063b","webpack://Citta2.0/./src/modules/promo-banner/components/links.tsx?2587","webpack://Citta2.0/./src/modules/promo-banner/components/text.tsx?782b","webpack://Citta2.0/./src/modules/promo-banner/promo-banner.tsx?9ee9","webpack://Citta2.0/./src/modules/promo-banner/promo-banner.view.tsx?7f77","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"],"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\nimport getAttributesForSelectedVariant, { AttributesForSelectedVariantInput } from '../../data-actions/accordion/get-attributes-for-selected-variant';\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 if (product) {\r\n const actionInput = new AttributesForSelectedVariantInput(\r\n product.RecordId,\r\n // @ts-ignore\r\n +this.props.context.actionContext.requestContext.apiSettings.channelId,\r\n product\r\n );\r\n\r\n var attributes = getAttributesForSelectedVariant(actionInput, this.props.context.actionContext).catch(error => {\r\n this.props.telemetry.warning('Unable to update attributes for Product');\r\n this.props.telemetry.error(error);\r\n });\r\n console.log(attributes);\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\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, 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\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 && 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\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 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
\r\n \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.state.storePickerText;\r\n const cI = 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","/* 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","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\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 msdyn365Commerce from '@msdyn365-commerce/core';\r\nimport { ICheckoutViewProps, IEmailDelivery, ILineItem, ILineItemDeliveryGroup, ILineItems, IPickUpAtStore } from '@msdyn365-commerce-modules/checkout';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport { PriceComponent } from '@msdyn365-commerce/components';\r\nimport * as MsDyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\nimport { ICheckoutProps } from '../definition-extensions/checkout.ext.props.autogenerated';\r\n\r\n\r\nexport const PickUpAtStoreComponent: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const EmailDeliveryComponent: React.FC = ({ EmailDelivery, label }) => (\r\n \r\n {label}\r\n \r\n);\r\n\r\nexport const LineItemComponent: React.FC = ({ LineItem, item, pickUpAtStore, emailDelivery }) => (\r\n \r\n {item}\r\n {pickUpAtStore && }\r\n {emailDelivery && }\r\n \r\n);\r\n\r\nexport const LineItemGroupComponent: React.FC = ({ LineItemDeliveryGroup, LineItemList, heading, lineItems }) => (\r\n \r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemsComponent: React.FC = ({ LineItems, Header, heading, editLink, itemsForPickup, itemsForShip, itemsForEmail }) => (\r\n \r\n \r\n {heading}\r\n {editLink}\r\n \r\n {itemsForPickup && }\r\n {itemsForEmail && }\r\n {itemsForShip && }\r\n \r\n);\r\n\r\nfunction _renderTotalSavings(props: ICheckoutViewProps): JSX.Element | null {\r\n\r\n const DiscountAmount = props.data.checkout.result?.checkoutCart.cart.DiscountAmount;\r\n return (\r\n

\r\n {DiscountAmount && DiscountAmount > 0 ? (\r\n <>\r\n {props.resources.totalSavingsLabel}\r\n \r\n \r\n ) : null}\r\n

\r\n );\r\n}\r\n\r\nconst _renderOrderSummarylines = (props: ICheckoutViewProps & ICheckoutProps<{}>): JSX.Element | null => {\r\n const isB2B = props.context?.request?.app?.platform?.enableDefaultOrderQuantityLimits === 'b2b';\r\n const {orderSummary } = props;\r\n if (!orderSummary) {\r\n return null;\r\n }\r\n return (\r\n
\r\n {orderSummary.heading}\r\n
\r\n {orderSummary.lines && (\r\n <>\r\n {isB2B ? orderSummary.lines.subtotal : _renderSubTotal(props)}\r\n {isB2B ? null : orderSummary.lines.totalDiscounts}\r\n {_renderShippingInclTaxes(props)}\r\n {_renderOtherCharges(props)}\r\n {/*hide on us*/}\r\n {props.config.hideTaxLine ? null : orderSummary.lines.tax}\r\n {_renderTotalOrder(props)}\r\n {orderSummary.lines.loyalty}\r\n {orderSummary.lines.giftCard}\r\n {isB2B ? null : orderSummary.lines.orderTotal}\r\n {isB2B? null : _renderTotalSavings(props)}\r\n \r\n )}\r\n
\r\n {_renderFreeShippingMessage(props)}\r\n {_getCheckoutSummaryText(props)}\r\n
\r\n );\r\n};\r\n\r\nfunction _renderOtherCharges(props: ICheckoutViewProps & ICheckoutProps<{}>): React.ReactNode | null{\r\n const chargeLines = props.data.checkout.result?.checkoutCart.cart.ChargeLines;\r\n let chargeAmountInclTax = 0;\r\n if(chargeLines) {\r\n chargeLines.forEach(chargeLine => {\r\n if (!chargeLine.IsShipping) {\r\n const chargeAmountInclTaxLocal = chargeLine.GrossAmount ? chargeLine.GrossAmount : 0;\r\n chargeAmountInclTax += chargeAmountInclTaxLocal;\r\n }\r\n });\r\n }\r\n if (chargeAmountInclTax == 0) {\r\n return props.orderSummary?.lines?.otherCharge;\r\n }\r\n\r\n return (\r\n

\r\n {chargeAmountInclTax && chargeAmountInclTax > 0 ? (\r\n <>\r\n {props.resources.otherCharges}\r\n \r\n \r\n ) : null}\r\n

\r\n );\r\n}\r\n\r\nfunction _renderShippingInclTaxes(props: ICheckoutViewProps & ICheckoutProps<{}>): React.ReactNode | null{\r\n const chargeLines = props.data.checkout.result?.checkoutCart.cart.ChargeLines;\r\n let chargeAmountInclTax = 0;\r\n if(chargeLines) {\r\n chargeLines.forEach(chargeLine => {\r\n if (chargeLine.IsShipping) {\r\n const chargeAmountInclTaxLocal = chargeLine.GrossAmount ? chargeLine.GrossAmount : 0;\r\n chargeAmountInclTax += chargeAmountInclTaxLocal;\r\n }\r\n });\r\n }\r\n if (chargeAmountInclTax == 0) {\r\n return props.orderSummary?.lines?.shipping;\r\n }\r\n\r\n return (\r\n

\r\n {chargeAmountInclTax && chargeAmountInclTax > 0 ? (\r\n <>\r\n {props.resources.shippingLabel}\r\n \r\n \r\n ) : null}\r\n

\r\n );\r\n}\r\n\r\nfunction _renderFreeShippingMessage(props: ICheckoutViewProps & ICheckoutProps<{}>): JSX.Element | null {\r\n const shippingAmount = props.data.checkout.result?.checkoutCart.cart.DeliveryModeChargeAmount || 0;\r\n const OrderSubTotal = (props.data.checkout.result?.checkoutCart.cart.AmountDue || 0) - shippingAmount;\r\n \r\n const freeShippingAmount = props.config.freeShippingAmount;\r\n\r\n if (!freeShippingAmount || !OrderSubTotal || OrderSubTotal >= freeShippingAmount) {\r\n return null;\r\n }\r\n return
\r\n Spend an additional ${Math.ceil(freeShippingAmount - OrderSubTotal)} to get FREE SHIPPING\r\n
\r\n}\r\n\r\nfunction _renderSubTotal(props: ICheckoutViewProps): JSX.Element | null {\r\n var subtotal=0;\r\n props.data.checkout.result?.checkoutCart.cart.CartLines?.forEach((item)=>{\r\n subtotal += item.Price! * item.Quantity!;\r\n });\r\n const OrderSubTotal = subtotal;//props.data.checkout.result?.checkoutCart.cart.NetPrice;\r\n return (\r\n

\r\n {OrderSubTotal && OrderSubTotal > 0 ? (\r\n <>\r\n {props.resources.subTotalLabel}\r\n \r\n \r\n ) : null}\r\n

\r\n );\r\n}\r\nfunction _renderTotalOrder(props: ICheckoutViewProps): JSX.Element | null {\r\n\r\n const OrderTotal = props.data.checkout.result?.checkoutCart.cart.TotalAmount;\r\n return (\r\n

\r\n {OrderTotal && OrderTotal > 0 ? (\r\n <>\r\n {props.resources.totalAmountLabel}\r\n \r\n \r\n ) : null}\r\n

\r\n );\r\n}\r\nconst _getCheckoutSummaryText = (props: ICheckoutViewProps & ICheckoutProps<{}>): React.ReactNode | undefined => {\r\n const { paragraph } = props.config;\r\n\r\n return (\r\n paragraph && (\r\n \r\n )\r\n );\r\n};\r\nconst CheckoutView: React.FC> = props => {\r\n const {\r\n canShow,\r\n checkoutProps,\r\n headerProps,\r\n hasSalesOrder,\r\n bodyProps,\r\n mainProps,\r\n mainControlProps,\r\n sideProps,\r\n sideControlFirstProps,\r\n sideControlSecondProps,\r\n termsAndConditionsProps,\r\n orderConfirmation,\r\n loading,\r\n alert,\r\n title,\r\n guidedForm,\r\n lineItems,\r\n placeOrderButton,\r\n termsAndConditions,\r\n keepShoppingButton\r\n } = props;\r\n\r\n let isBusy = false;\r\n if(msdyn365Commerce.isBrowser) {\r\n const url: string = decodeURI(window.location.search);\r\n const urlParams: URLSearchParams = new URLSearchParams(url);\r\n if (urlParams.get('paymentMethod') === 'AP' && urlParams.has('orderToken')) {\r\n const orderToken = urlParams.get('orderToken');\r\n const afterpayStatus = urlParams.get('status') || 'FAILURE';\r\n\r\n if (afterpayStatus === 'SUCCESS' && orderToken) {\r\n isBusy = true;\r\n }\r\n }\r\n }\r\n\r\n const isB2B = props.context?.request?.app?.platform?.enableDefaultOrderQuantityLimits === 'b2b';\r\n function _renderPlaceOrderCopy(): JSX.Element | null {\r\n return (\r\n
\r\n By clicking Place order you agree to your signed terms of business, please contact your account manager for further information.\r\n
\r\n )\r\n }\r\n\r\n return (\r\n \r\n {!hasSalesOrder && {title}}\r\n {!hasSalesOrder &&\r\n \r\n {loading}\r\n {\r\n isBusy ? (\r\n
\r\n
\r\n
\r\n ) : null\r\n }\r\n {alert}\r\n {canShow && (\r\n <>\r\n \r\n {guidedForm}\r\n \r\n {termsAndConditions}\r\n \r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n {isB2B? _renderPlaceOrderCopy() : null}\r\n \r\n \r\n {_renderOrderSummarylines(props)}\r\n \r\n \r\n {termsAndConditions}\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n {lineItems && }\r\n \r\n \r\n {termsAndConditions}\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n )}\r\n \r\n }\r\n {hasSalesOrder && orderConfirmation}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutView;\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\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 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
\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 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 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 = 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};","import * as React from 'react';\r\n\r\nimport { Button, format } from '@msdyn365-commerce-modules/utilities';\r\nimport { PriceComponent } from '@msdyn365-commerce/components';\r\nimport { IComponentProps } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { Coupon } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nexport interface IPromoCodeProps extends IComponentProps<{}> {\r\n cart: ICartState | undefined;\r\n promoCodeHeadingText: string;\r\n appliedPromoCodeHeadingText: string;\r\n removePromoAriaLabelFormat: string;\r\n promoPlaceholderText: string;\r\n promoCodeApplyButtonText: string;\r\n collapseTimeOut: number;\r\n removePromoText: string;\r\n invalidPromoCodeErrorText: string;\r\n failedToAddPromoCodeErrorText: string;\r\n duplicatePromoCodeErrorText: string;\r\n failedToRemovePromoCodeErrorText: string;\r\n promoCodeApplyCallback?(): void;\r\n}\r\n\r\ninterface IPromoCodeState {\r\n isCollapseOpen: boolean;\r\n promoCodeInputValue: string;\r\n error: string;\r\n canApply: 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 PromoCode extends React.Component {\r\n\r\n constructor(props: IPromoCodeProps, state: IPromoCodeState) {\r\n super(props);\r\n this.state = {\r\n isCollapseOpen: false,\r\n promoCodeInputValue: '',\r\n error: '',\r\n canApply: false\r\n };\r\n }\r\n\r\n public render(): JSX.Element {\r\n return (\r\n
\r\n
{this.props.promoCodeHeadingText}
\r\n {this._renderForm(this.props.promoPlaceholderText, this.props.promoCodeApplyButtonText, this.props.cart)}\r\n

{this.state.error}

\r\n {this._renderAppliedPromoCode(this.props)}\r\n
\r\n );\r\n }\r\n\r\n private _onInputChange = (e: React.ChangeEvent) => {\r\n const error = e.target.value === '' ? '' : this.state.error;\r\n this.setState({\r\n promoCodeInputValue: e.target.value, error: error,\r\n canApply: e.target.value ? true : false\r\n });\r\n }\r\n\r\n private _applyPromotion = (cartState: ICartState | undefined) => {\r\n if (!cartState || !cartState.cart) {\r\n return;\r\n }\r\n const appliedPromo = this.state.promoCodeInputValue;\r\n\r\n cartState.addPromoCode({ promoCode: appliedPromo })\r\n .then(result => {\r\n if (result.status === 'SUCCESS') {\r\n // show success text\r\n this.setState({ promoCodeInputValue: '', error: '', canApply: false});\r\n } else if (result.substatus === 'ALREADYADDED') {\r\n this.setState({ error: this.props.duplicatePromoCodeErrorText });\r\n } else {\r\n this.setState({ error: this.props.invalidPromoCodeErrorText });\r\n }\r\n })\r\n .catch(error => {\r\n this.setState({ error: this.props.failedToAddPromoCodeErrorText });\r\n });\r\n }\r\n\r\n private _renderForm = (promoPlaceholderText: string, promoCodeApplyButtonText: string, cartState: ICartState | undefined) => {\r\n const _onSubmit = (event: React.FormEvent) => {event.preventDefault(); this._applyPromotion(cartState);};\r\n const _applyPromotion = (event: React.MouseEvent) => {this._applyPromotion(cartState);};\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n {promoCodeApplyButtonText}\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n private _removePromotion = (cartState: ICartState | undefined, event: React.MouseEvent) => {\r\n if (!cartState) {\r\n return;\r\n }\r\n const code = event.currentTarget.getAttribute('data-value') || '';\r\n cartState.removePromoCodes({\r\n promoCodes: [\r\n code\r\n ]\r\n })\r\n .then(result => {\r\n if (result.status === 'SUCCESS') {\r\n this.setState({ error: ''});\r\n }\r\n })\r\n .catch(() => {\r\n this.setState({ error: this.props.failedToRemovePromoCodeErrorText});\r\n });\r\n\r\n }\r\n private _calculateDiscount = (code: string, cartState: ICartState | undefined) => {\r\n if (!cartState || !cartState.cart || !cartState.cart.CartLines || cartState.cart.CartLines.length === 0 || !code) {\r\n return;\r\n }\r\n let discountAmount = 0;\r\n for (const line of cartState.cart.CartLines) {\r\n if (line.DiscountLines) {\r\n for (const discountLine of line.DiscountLines) {\r\n if (discountLine.DiscountCode === code) {\r\n discountAmount += discountLine.DiscountCost!;\r\n }\r\n }\r\n }\r\n }\r\n return discountAmount * -1;\r\n }\r\n\r\n private _renderAppliedPromoCode = (props: IPromoCodeProps) => {\r\n if (!props.cart || !props.cart.cart || !props.cart.cart.Coupons || !(props.cart.cart.Coupons.length > 0)) {\r\n return;\r\n }\r\n\r\n const _removePromotion = (event: React.MouseEvent) => {this._removePromotion(props.cart, event);};\r\n\r\n return (\r\n <>\r\n
\r\n
{this.props.appliedPromoCodeHeadingText}
\r\n \r\n
\r\n {\r\n props.cart.cart.Coupons.map((coupon: Coupon) => {\r\n const ariaLabel = props.removePromoAriaLabelFormat ? format(props.removePromoAriaLabelFormat, props.removePromoText, coupon.Code) : '';\r\n\r\n return (\r\n
\r\n
\r\n {coupon.Code} (\r\n )\r\n
\r\n \r\n {props.removePromoText}\r\n \r\n
\r\n );\r\n })\r\n }\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default PromoCode;","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;","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