{"version":3,"file":"static/js/ab2a40a7d5bc455248a3.bundle.js","mappings":"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","sources":["webpack://morland-ecommerce/./src/themes/morland/views/buybox.view.tsx?cb3a","webpack://morland-ecommerce/./src/themes/morland/views/components/buybox-modal.component.tsx?014a","webpack://morland-ecommerce/./src/themes/morland/views/components/buyboxconfigurator.tsx?a27a","webpack://morland-ecommerce/./src/utils/debug-mode.ts?cb07","webpack://morland-ecommerce/./lib/buybox/module-registration.js?bcce","webpack://morland-ecommerce/./src/store-selector-state-manager/base-store-selector-state-manager.ts?281e","webpack://morland-ecommerce/./src/store-selector-state-manager/map-store-selector-state-manager.ts?2ae0","webpack://morland-ecommerce/./src/store-selector-state-manager/store-selector-state-manager-data-action.ts?bd3e","webpack://morland-ecommerce/./src/modules/fabrikam/views/buybox.view.tsx?aec4","webpack://morland-ecommerce/./src/modules/adventureworks/views/components/buybox-add-to-order-template.tsx?ceb4","webpack://morland-ecommerce/./src/modules/adventureworks/views/buybox.view.tsx?98cf","webpack://morland-ecommerce/../../src/Interfaces/ITelemetry.ts?ffdd","webpack://morland-ecommerce/external var \"React\"?0d3b","webpack://morland-ecommerce/external var \"ReactDOM\"?853b"],"sourcesContent":["/*!\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 // IBuyboxAddToCartViewProps,\r\n // IBuyboxAddToOrderTemplateViewProps,\r\n // IBuyboxAddToWishlistViewProps,\r\n // IBuyboxCallbacks,\r\n IBuyboxData,\r\n // IBuyboxFindInStoreViewProps,\r\n // IBuyboxKeyInPriceViewProps,\r\n // IBuyboxProductConfigureDropdownViewProps,\r\n // IBuyboxProductConfigureViewProps,\r\n // IBuyboxProductQuantityViewProps,\r\n // IBuyboxProps,\r\n // IBuyboxShopSimilarLookViewProps,\r\n // IBuyboxState,\r\n IBuyboxViewProps\r\n} from '@msdyn365-commerce-modules/buybox';\r\n// import { IncrementalQuantity, ITelemetryContent, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nimport { generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\r\nimport * as React from 'react';\r\nimport { parseString } from 'xml2js';\r\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\n// import { Spinner, SpinnerSize } from 'office-ui-fabric-react';\r\nimport {\r\n BuyBoxSelector,\r\n BuyBoxSelectorChildren,\r\n IBuyBoxConfigurator,\r\n getURLSearchParams,\r\n resetSearchParams,\r\n updateSearchParams\r\n} from './components/buyboxconfigurator';\r\n// import { IBuyBoxConfigurator, getURLSearchParams, updateSearchParams, resetSearchParams } from './components/buyboxconfigurator';\r\n\r\nimport {\r\n IBuyboxProps as IBuyboxExtentionProps\r\n // IBuyboxResources as IBuyboxExtentionResources\r\n} from '../definition-extensions/buybox.ext.props.autogenerated';\r\nimport { ICProductSpecificationData } from '../../../data/buybox';\r\n// import { BuyBoxSelector, BuyBoxSelectorChildren } from './components/buyboxconfigurator';\r\n// import BuyBoxPrice from './components/buybox-price.component';\r\nimport { getCartState } from '@msdyn365-commerce/global-state';\r\n// import { generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\r\n// import { ProductDimension } from '@msdyn365-commerce/retail-proxy';\r\n// import {\r\n// getMediaLocationsAsync,\r\n// getVariantsByDimensionValuesAsync\r\n// } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\nimport { useState } from 'react';\r\nimport { CartLine, CommerceProperty, MediaLocation, ProductDimension, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\nimport { LogLevel } from '@msdyn365-commerce/retail-proxy/dist/interfaces/ITelemetry';\r\nimport { getVariantsByDimensionValuesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\nimport { logDetails } from '../../../utils/debug-mode';\r\nimport BuyBoxModal from './components/buybox-modal.component';\r\n// import BuyBoxModal from './components/buybox-modal.component';\r\n\r\ntype Result = {\r\n [key: string]: string[];\r\n};\r\n\r\ntype BackOrder = {\r\n isBackOrder: boolean;\r\n buttonLabel: string;\r\n backOrderDescription?: string;\r\n};\r\n\r\n// Function to evaluate the condition\r\nexport function evaluateCondition(condition: string, data: any) {\r\n // Replace property names in the condition with their values\r\n const conditionWithValues = condition.replace(/\\b(\\w+)\\b/g, (match, propName) => {\r\n return data[propName] !== undefined ? JSON.stringify(data[propName]) : match;\r\n });\r\n\r\n // Evaluate the condition using Function constructor\r\n return new Function('return ' + conditionWithValues)();\r\n}\r\n\r\n// Function to calculate the expression\r\nexport function calculateExpression(expression: string) {\r\n return eval(expression);\r\n}\r\n\r\nexport function imageExists(url: string) {\r\n var http = new XMLHttpRequest();\r\n\r\n http.open('HEAD', url, false);\r\n http.send();\r\n\r\n return http.status != 404;\r\n}\r\n\r\nconst BuyboxView: React.FC> = props => {\r\n const { data, rating, config } = props;\r\n\r\n logDetails(props.context.app.config.debugMode, props);\r\n logDetails(props.context.app.config.debugMode, data.mediaLocationsForSelectedVariant);\r\n\r\n const productSpecificationData = data.productSpecificationData;\r\n\r\n const intlFormatter = props.context.cultureFormatter;\r\n\r\n const [currentSelectedProduct, setCurrentSelectedProduct] = useState();\r\n\r\n const [buyBoxSelectors, setBuyBoxSelectors] = useState();\r\n // const [customAddToBag, setCustomAddToBag] = React.useState(false);\r\n const [openModal, setOpenModal] = React.useState(false);\r\n const [customPrice, setCustomPrice] = React.useState();\r\n const [selectedQuantity, setSelectedQuantity] = React.useState(1);\r\n // const [isResetButtonDisabled, setIsResetButtonDisabled] = React.useState(true);\r\n const [backOrder, setBackOrder] = React.useState({ isBackOrder: false, buttonLabel: '', backOrderDescription: '' });\r\n const [sampleItemUrl, setSampleItemUrl] = React.useState('');\r\n const [cartError, setCartError] = React.useState('');\r\n const [getValue, setGetValue] = React.useState<{ [key: string]: string }>({});\r\n\r\n // const [mediaLocations, setMediaLocations] = React.useState([]);\r\n const [constraints, setConstraints] = React.useState();\r\n const [applicable, setApplicable] = React.useState([]);\r\n const [mediaLocations, setMediaLocations] = React.useState([]);\r\n\r\n const closeModal = () => {\r\n setOpenModal(false);\r\n };\r\n //\r\n // applicable;\r\n // constraints;\r\n // selectedQuantity;\r\n // productImages;\r\n\r\n React.useEffect(() => {\r\n setDefaultMediaLocations();\r\n }, []);\r\n\r\n const setDefaultMediaLocations = () => {\r\n const validImageLocations: MediaLocation[] = [];\r\n if (props.data.mediaLocationsForSelectedVariant.result && props.data.mediaLocationsForSelectedVariant.result.length > 0) {\r\n props.data.mediaLocationsForSelectedVariant.result.map(media => {\r\n if (media.Uri) {\r\n if (imageExists(media.Uri)) {\r\n validImageLocations.push(media);\r\n }\r\n }\r\n });\r\n }\r\n setMediaLocations(validImageLocations);\r\n };\r\n logDetails(props.context.app.config.debugMode, mediaLocations);\r\n\r\n const [currentSelectedProductVariant, setCurrentSelectedProductVariant] = React.useState();\r\n\r\n // const ref = React.useRef(null);\r\n\r\n // const user = props.context.request.user.isAuthenticated ? props.context.request.user : undefined;\r\n // const customerId = user?.customerAccountNumber;\r\n\r\n React.useEffect(() => {\r\n const product = data.product.result;\r\n\r\n if (\r\n !ObjectExtensions.isNullOrUndefined(product) &&\r\n !ObjectExtensions.isNullOrUndefined(product.ExtensionProperties) &&\r\n !ObjectExtensions.isNullOrUndefined(product.ExtensionProperties.find(prop => prop.Key === 'INSCONFIGURATION'))\r\n ) {\r\n setCurrentSelectedProduct(product);\r\n\r\n let insConfiguration = product.ExtensionProperties.find(prop => prop.Key === 'INSCONFIGURATION')?.Value?.StringValue;\r\n logDetails(props.context.app.config.debugMode, insConfiguration);\r\n if (!ObjectExtensions.isNullOrUndefined(insConfiguration)) {\r\n parseString(insConfiguration, (err: Error | null, result: IBuyBoxConfigurator) => {\r\n if (err) {\r\n props.context.telemetry.log(LogLevel.Error, err.message);\r\n return;\r\n }\r\n setBuyBoxSelectors(result);\r\n logDetails(props.context.app.config.debugMode, result);\r\n setTimeout(() => {\r\n if (Msdyn365.msdyn365Commerce.isBrowser) {\r\n const url = window.location.href;\r\n if (url.includes('#reviews')) {\r\n const review = document.getElementById('reviews');\r\n if (review) {\r\n review.scrollIntoView({ behavior: 'smooth' });\r\n }\r\n }\r\n }\r\n }, 100);\r\n });\r\n }\r\n }\r\n\r\n if (\r\n !ObjectExtensions.isNullOrUndefined(product) &&\r\n !ObjectExtensions.isNullOrUndefined(product.ExtensionProperties) &&\r\n !ObjectExtensions.isNullOrUndefined(product.ExtensionProperties.find(prop => prop.Key === 'INSISBACKORDER'))\r\n ) {\r\n const isBackOrder = product.ExtensionProperties.find(prop => prop.Key === 'INSISBACKORDER')?.Value?.BooleanValue;\r\n const buttonLabel = product.ExtensionProperties.find(prop => prop.Key === 'INSBACKORDERBUTTONLABEL')?.Value?.StringValue;\r\n const backOrderDescription = product.ExtensionProperties.find(prop => prop.Key === 'INSBACKORDERBUTTONWARNING')?.Value\r\n ?.StringValue;\r\n\r\n if (\r\n !ObjectExtensions.isNullOrUndefined(isBackOrder) &&\r\n !ObjectExtensions.isNullOrUndefined(buttonLabel) &&\r\n !ObjectExtensions.isNullOrUndefined(backOrderDescription)\r\n ) {\r\n setBackOrder({ isBackOrder, buttonLabel, backOrderDescription });\r\n }\r\n setSampleItemUrl(product.ExtensionProperties.find(prop => prop.Key === 'INSSAMPLEITEMID')?.Value?.StringValue || '');\r\n }\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n setConstraints(setValue());\r\n setDefaultConfiguration();\r\n formValidation();\r\n }, [buyBoxSelectors]);\r\n\r\n const getPrice = (price: number | undefined) => {\r\n if (typeof price !== 'undefined') {\r\n return intlFormatter.formatCurrency(price);\r\n } else {\r\n return '';\r\n }\r\n };\r\n\r\n const setValue = () => {\r\n const result: Result = {};\r\n\r\n // buyBoxSelectors?.Model.Component[0].PriceCalculation.find(value => value.$.condition === 'true')?.$.expression\r\n let priceFromXml = 0;\r\n\r\n if (buyBoxSelectors && buyBoxSelectors?.Model.Component[0].PriceCalculation) {\r\n buyBoxSelectors.Model.Component[0].PriceCalculation.map(value => {\r\n if (value.$.condition.toLowerCase() === 'true') {\r\n priceFromXml = parseFloat(value.$.expression);\r\n }\r\n });\r\n }\r\n\r\n let totalPrice = props.data.product.result?.Price || 0;\r\n\r\n if (totalPrice === 0) {\r\n totalPrice = priceFromXml;\r\n }\r\n\r\n const getSelectedValue: string[] = [];\r\n let imageName = '';\r\n let condition = '';\r\n let getValue: {\r\n [key: string]: string;\r\n } = {};\r\n\r\n getURLSearchParams().forEach((searchValue, currentkey) => {\r\n if (searchValue !== '' && buyBoxSelectors?.Model.Component[0].Attribute.find(key => key.$.name === currentkey)) {\r\n // setIsResetButtonDisabled(false);\r\n getSelectedValue.push(searchValue);\r\n\r\n condition += `${currentkey}==\"${searchValue}\" & `;\r\n getValue[currentkey] = searchValue;\r\n // imageName = imageName.slice(0, -1);\r\n }\r\n if (currentkey.toLowerCase() === 'coreboard') {\r\n imageName += `${searchValue}`;\r\n }\r\n if (currentkey === 'CoreColour' && searchValue === '') {\r\n setDefaultMediaLocations();\r\n }\r\n if (currentSelectedProduct?.ItemId && imageName) {\r\n logDetails(props.context.app.config.debugMode, `${currentSelectedProduct?.ItemId}-${imageName}.png`);\r\n\r\n const imageUrl = getImageUrl(`Products/${currentSelectedProduct?.ItemId}-${imageName}.png`);\r\n\r\n fetch(imageUrl)\r\n .then(res => {\r\n if (res.status === 200) {\r\n setMediaLocations(prevState => {\r\n if (prevState && prevState.length > 0) {\r\n const anyConfigImage = prevState.find(image => image.MediaPurpose === 'CONFIGIMAGE');\r\n if (anyConfigImage) {\r\n const withoutConfigImage = prevState.filter(image => image.MediaPurpose !== 'CONFIGIMAGE');\r\n return [{ Uri: imageUrl, MediaPurpose: 'CONFIGIMAGE' }, ...withoutConfigImage];\r\n } else {\r\n return [{ Uri: imageUrl, MediaPurpose: 'CONFIGIMAGE' }, ...prevState];\r\n }\r\n }\r\n return prevState;\r\n });\r\n } else {\r\n setDefaultMediaLocations();\r\n }\r\n })\r\n .catch(err => {\r\n props.context.telemetry.log(LogLevel.Error, err.message);\r\n });\r\n }\r\n\r\n // Don't touch this code ☠️☠️☠️\r\n buyBoxSelectors &&\r\n buyBoxSelectors.Model.Component[0].TableConstraint.map(value => {\r\n const applicableVal: string[] = [];\r\n value.Column.map(colValue => {\r\n if (colValue.Attribute[0].$.name === currentkey) {\r\n value.Column.map((_, index) => {\r\n value.Row.map(rowValue => {\r\n if (rowValue.Cell[index] === searchValue) {\r\n const colNameKey = value.Column[index === 0 ? 1 : 0].Attribute[0].$.name;\r\n const colName = [colNameKey];\r\n applicableVal.push(...colName);\r\n const key = colNameKey;\r\n const aValue = rowValue.Cell[index === 0 ? 1 : 0];\r\n if (result[key]) {\r\n if (result[key].includes(aValue)) {\r\n result[key] = [];\r\n }\r\n result[key].push(aValue);\r\n } else {\r\n result[key] = [aValue];\r\n }\r\n }\r\n });\r\n });\r\n }\r\n });\r\n setApplicable(prevApp => {\r\n return [...prevApp, ...applicableVal];\r\n });\r\n });\r\n });\r\n\r\n setGetValue(getValue);\r\n\r\n // totalPrice += parseFloat(value.$.expression);\r\n condition = condition.slice(0, -3);\r\n buyBoxSelectors &&\r\n buyBoxSelectors.Model.Component[0].PriceCalculation.map(value => {\r\n if (value.$.condition.toLowerCase() === 'true') {\r\n } else {\r\n try {\r\n const result: {\r\n [key: string]: string;\r\n } = {};\r\n\r\n getURLSearchParams().forEach((searchValue, currentkey) => {\r\n result[currentkey] = searchValue;\r\n });\r\n\r\n const data = value.$;\r\n\r\n // Check if the condition is true for the given data\r\n\r\n if (evaluateCondition(data.condition, result)) {\r\n // If true, calculate the expression\r\n const result = calculateExpression(data.expression);\r\n totalPrice += result;\r\n } else {\r\n }\r\n } catch (e) {\r\n logDetails(props.context.app.config.debugMode, e);\r\n }\r\n }\r\n });\r\n\r\n if (getSelectedValue.length === buyBoxSelectors?.Model.Component[0].Attribute.length) {\r\n if (buyBoxSelectors) {\r\n }\r\n }\r\n\r\n setCustomPrice(totalPrice);\r\n\r\n return result;\r\n };\r\n const getImageUrl = (imageUrl: string | undefined) => {\r\n return generateImageUrl(imageUrl, props.context.request.apiSettings) as string;\r\n };\r\n\r\n // getImageUrl('');\r\n\r\n const onValueChange = (e: React.ChangeEvent) => {\r\n const selectedValue = e.target.value;\r\n if (!selectedValue) {\r\n setApplicable([]);\r\n }\r\n const dataValue = e.currentTarget.dataset.value;\r\n\r\n updateSearchParams(dataValue, selectedValue);\r\n\r\n setConstraints(setValue());\r\n };\r\n\r\n const contstraints = new Set();\r\n buyBoxSelectors &&\r\n buyBoxSelectors.Model.Component[0].TableConstraint.map(table => {\r\n table.Column.map(col => {\r\n contstraints.add(col.Attribute[0].$.name);\r\n });\r\n });\r\n\r\n // Set default value\r\n const setDefaultConfiguration = async () => {\r\n if (currentSelectedProduct) {\r\n const product: ProductDimension[] = [];\r\n const context = props.context.actionContext;\r\n const varients = await getVariantsByDimensionValuesAsync(\r\n { callerContext: context, queryResultSettings: {} },\r\n currentSelectedProduct.RecordId,\r\n props.context.request.apiSettings.channelId,\r\n product\r\n );\r\n varients.map(varient => {\r\n if (varient.Dimensions) {\r\n varient.Dimensions.map(dim => {\r\n if (dim.DimensionValue?.Value?.toLocaleLowerCase() === 'default') {\r\n setCurrentSelectedProductVariant(varient);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n };\r\n\r\n let possibleValues: { [key: string]: string };\r\n\r\n if (buyBoxSelectors) {\r\n const result: {\r\n [key: string]: string;\r\n } = {};\r\n\r\n getURLSearchParams().forEach((searchValue, currentkey) => {\r\n result[currentkey] = searchValue;\r\n });\r\n buyBoxSelectors.Model.Component[0].Attribute.map(attr => {\r\n if (getURLSearchParams().get(attr.$.name) === null && attr.$.default !== undefined) {\r\n result[attr.$.name] = attr.$.default;\r\n }\r\n });\r\n\r\n possibleValues = result;\r\n }\r\n\r\n const [isAddToCartBtnDisabled, setIsAddToCartBtnDisabled] = React.useState(true);\r\n // const [formError, setFormError] = React.useState('');\r\n\r\n const formValidation = () => {\r\n setTimeout(() => {\r\n if (Msdyn365.msdyn365Commerce.isBrowser) {\r\n var form = document.getElementById('configuratorForm') as HTMLFormElement;\r\n var requiredInputs = 0;\r\n\r\n // Loop through all form elements\r\n for (var i = 0; i < form.elements.length; i++) {\r\n var element = form.elements[i];\r\n\r\n // Check if the element is an input and has the 'required' attribute\r\n if (element.tagName === 'SELECT' && element.hasAttribute('required')) {\r\n requiredInputs++;\r\n }\r\n }\r\n if (buyBoxSelectors) {\r\n let selectedValueList = new Set();\r\n getURLSearchParams().forEach((searchValue, currentkey) => {\r\n if (buyBoxSelectors.Model.Component[0].Attribute.find(key => key.$.name === currentkey)) {\r\n if (searchValue !== '') {\r\n selectedValueList.add(currentkey);\r\n }\r\n }\r\n });\r\n logDetails(props.context.app.config.debugMode, selectedValueList);\r\n\r\n if (selectedValueList.size === requiredInputs) {\r\n setIsAddToCartBtnDisabled(false);\r\n } else {\r\n setIsAddToCartBtnDisabled(true);\r\n }\r\n } else {\r\n setIsAddToCartBtnDisabled(false);\r\n }\r\n }\r\n }, 300);\r\n };\r\n\r\n const addToCartHandler = async () => {\r\n const cartState = await getCartState(props.context.actionContext);\r\n\r\n if (buyBoxSelectors) {\r\n let configarationValueXml = '';\r\n let configarationXml = '';\r\n\r\n getURLSearchParams().forEach((searchValue, currentkey) => {\r\n buyBoxSelectors?.Model.Component[0].Attribute.map(attr => {\r\n buyBoxSelectors?.Model.EnumDomain.map(enumDomain => {\r\n if (enumDomain.$.enumDomainId === attr.EnumDomain[0].$.enumDefinitionId) {\r\n enumDomain.EnumValue.map(enumValue => {\r\n if (enumValue.$.value === searchValue && currentkey === attr.$.name) {\r\n configarationValueXml += ``;\r\n }\r\n });\r\n }\r\n });\r\n });\r\n });\r\n const hiddenAttrValue = buyBoxSelectors?.Model.Component[0]?.HiddenAttributeValue;\r\n if (hiddenAttrValue && hiddenAttrValue.length > 0) {\r\n hiddenAttrValue.map(hAttr => {\r\n if (hAttr.Attribute && hAttr.Attribute.length > 0) {\r\n hAttr.Attribute.map(attr => {\r\n configarationValueXml += ``;\r\n });\r\n }\r\n });\r\n }\r\n\r\n const finalconfigarationValueXml = `${configarationValueXml}`;\r\n\r\n getURLSearchParams().forEach((searchValue, currentkey) => {\r\n const getUniqueId = buyBoxSelectors?.Model.Component[0].Attribute.find(key => {\r\n return key.$.name === currentkey;\r\n });\r\n if (searchValue !== '' && buyBoxSelectors?.Model.Component[0].Attribute.find(key => key.$.name === currentkey)) {\r\n // configarationXml += ``;\r\n configarationXml += ``;\r\n }\r\n });\r\n buyBoxSelectors.Model.Component[0].Attribute.map(attr => {\r\n if (getURLSearchParams().get(attr.$.name) === null && attr.$.default !== undefined) {\r\n configarationXml += ``;\r\n }\r\n });\r\n // Adding HiddenConfiguration Values\r\n const hiddenAttr = buyBoxSelectors?.Model.Component[0]?.HiddenAttributeValue;\r\n if (hiddenAttr && hiddenAttr.length > 0) {\r\n hiddenAttr.map(hAttr => {\r\n if (hAttr.Attribute && hAttr.Attribute.length > 0) {\r\n hAttr.Attribute.map(attr => {\r\n configarationXml += ``;\r\n });\r\n }\r\n });\r\n }\r\n\r\n // Operation Line\r\n let operationXml = '';\r\n if (buyBoxSelectors?.Model.Component[0].OperationLine && buyBoxSelectors?.Model.Component[0].OperationLine.length > 0) {\r\n buyBoxSelectors?.Model.Component[0].OperationLine?.map(operation => {\r\n if (operation.Condition && operation.Condition.length > 0) {\r\n operation.Condition.map(condition => {\r\n try {\r\n const result: {\r\n [key: string]: string;\r\n } = {};\r\n\r\n getURLSearchParams().forEach((searchValue, currentkey) => {\r\n result[currentkey] = searchValue;\r\n });\r\n if (hiddenAttr && hiddenAttr.length > 0) {\r\n hiddenAttr.map(hAttr => {\r\n if (hAttr.Attribute && hAttr.Attribute.length > 0) {\r\n hAttr.Attribute.map(attr => {\r\n result[attr.$.name] = attr.$.value;\r\n });\r\n }\r\n });\r\n }\r\n buyBoxSelectors.Model.Component[0].Attribute.map(attr => {\r\n if (getURLSearchParams().get(attr.$.name) === null && attr.$.default !== undefined) {\r\n result[attr.$.name] = attr.$.default;\r\n }\r\n });\r\n\r\n const data = condition.$;\r\n\r\n // Check if the condition is true for the given data\r\n\r\n if (evaluateCondition(data.constraintText, result)) {\r\n operationXml += ``;\r\n } else {\r\n operationXml += ``;\r\n }\r\n } catch (e) {}\r\n });\r\n }\r\n });\r\n }\r\n\r\n // Subpart\r\n let subPartXml = '';\r\n if (buyBoxSelectors?.Model.Component[0].SubPart && buyBoxSelectors?.Model.Component[0].SubPart.length > 0) {\r\n buyBoxSelectors?.Model.Component[0].SubPart?.map(operation => {\r\n operation.Condition.map(condition => {\r\n try {\r\n const result: {\r\n [key: string]: string;\r\n } = {};\r\n\r\n getURLSearchParams().forEach((searchValue, currentkey) => {\r\n result[currentkey] = searchValue;\r\n });\r\n if (hiddenAttr && hiddenAttr.length > 0) {\r\n hiddenAttr.map(hAttr => {\r\n if (hAttr.Attribute && hAttr.Attribute.length > 0) {\r\n hAttr.Attribute.map(attr => {\r\n result[attr.$.name] = attr.$.value;\r\n });\r\n }\r\n });\r\n }\r\n\r\n buyBoxSelectors.Model.Component[0].Attribute.map(attr => {\r\n if (getURLSearchParams().get(attr.$.name) === null && attr.$.default !== undefined) {\r\n result[attr.$.name] = attr.$.default;\r\n }\r\n });\r\n\r\n const data = condition.$;\r\n\r\n // Check if the condition is true for the given data\r\n\r\n if (evaluateCondition(data.constraintText, result)) {\r\n subPartXml += ``;\r\n } else {\r\n subPartXml += ``;\r\n }\r\n } catch (e) {\r\n logDetails(props.context.app.config.debugMode, e);\r\n }\r\n });\r\n });\r\n }\r\n\r\n const finalConfigurationXml = `${configarationXml}${operationXml}${subPartXml}`;\r\n logDetails(props.context.app.config.debugMode, finalConfigurationXml);\r\n logDetails(props.context.app.config.debugMode, finalconfigarationValueXml);\r\n\r\n if (currentSelectedProduct) {\r\n const extensionProperties: CommerceProperty = {\r\n Key: 'INSSELECTEDCONFIGURATION',\r\n Value: {\r\n StringValue: finalConfigurationXml\r\n }\r\n };\r\n const insConfigValueXMl: CommerceProperty = {\r\n Key: 'INSSELECTEDREADABLECONFIGURATION',\r\n Value: {\r\n StringValue: finalconfigarationValueXml\r\n }\r\n };\r\n\r\n const configImage: CommerceProperty = {\r\n Key: 'INSCONFIGURATIONIIMAGE',\r\n Value: {\r\n StringValue: primaryImage\r\n }\r\n };\r\n currentSelectedProduct.RecordId = currentSelectedProductVariant?.RecordId\r\n ? currentSelectedProductVariant.RecordId\r\n : currentSelectedProduct.RecordId;\r\n\r\n const backOrderExtensionProps: CommerceProperty = {\r\n Key: 'INSBACKORDERBUTTONWARNING',\r\n Value: {\r\n StringValue: backOrder.backOrderDescription\r\n }\r\n };\r\n\r\n let cartResult = await cartState.addProductToCart({\r\n product: currentSelectedProduct,\r\n count: selectedQuantity,\r\n customPrice,\r\n isPriceKeyedIn: true\r\n });\r\n\r\n if (cartResult.status === 'SUCCESS') {\r\n setOpenModal(true);\r\n } else {\r\n setCartError((cartResult.validationResults && cartResult.validationResults[0].ErrorContext) || '');\r\n }\r\n\r\n let cartLine: CartLine[] = [];\r\n\r\n let cartLines = await cartState.cart.CartLines?.pop();\r\n\r\n cartLines?.ExtensionProperties?.push(extensionProperties);\r\n cartLines?.ExtensionProperties?.push(backOrderExtensionProps);\r\n if (configImage) {\r\n cartLines?.ExtensionProperties?.push(configImage);\r\n }\r\n cartLines?.ExtensionProperties?.push(insConfigValueXMl);\r\n if (cartLines) {\r\n cartLine.push(cartLines);\r\n cartState.updateCartLines({\r\n updatedCartLinesObject: cartLine\r\n });\r\n }\r\n }\r\n } else {\r\n let cartResult = await cartState.addProductToCart({\r\n product: data.product.result as SimpleProduct,\r\n count: selectedQuantity\r\n });\r\n\r\n if (cartResult.status === 'SUCCESS') {\r\n setOpenModal(true);\r\n } else {\r\n setCartError((cartResult.validationResults && cartResult.validationResults[0].ErrorContext) || '');\r\n }\r\n await cartState.refreshCart({});\r\n }\r\n\r\n cartState.refreshCart({});\r\n };\r\n\r\n const resetConfiguration = () => {\r\n resetSearchParams();\r\n if (Msdyn365.msdyn365Commerce.isBrowser) {\r\n window.location.reload();\r\n }\r\n };\r\n\r\n const socialShare: Social[] = [\r\n {\r\n id: 1,\r\n name: 'Featured Image',\r\n label: 'Share',\r\n platform: 'whatsapp',\r\n className: 'social whatsapp',\r\n color: '#25d366',\r\n image: 'https://platform-cdn.sharethis.com/img/whatsapp.svg'\r\n },\r\n {\r\n id: 2,\r\n name: 'Featured Image',\r\n label: 'Share',\r\n platform: 'linkedin',\r\n className: 'social linkedin',\r\n color: '#0077b5',\r\n image: 'https://platform-cdn.sharethis.com/img/linkedin.svg'\r\n },\r\n {\r\n id: 3,\r\n name: 'Featured Image',\r\n label: 'Share',\r\n platform: 'messenger',\r\n className: 'social messenger',\r\n color: '#448AFF',\r\n image: 'https://platform-cdn.sharethis.com/img/messenger.svg'\r\n },\r\n {\r\n id: 3,\r\n name: 'Featured Image',\r\n label: 'Share',\r\n platform: 'facebook',\r\n className: 'social fb',\r\n color: '#4267B2',\r\n image: 'https://platform-cdn.sharethis.com/img/facebook.svg'\r\n }\r\n ];\r\n\r\n const openSocialLink = (platform: string) => () => {\r\n if (platform === 'whatsapp') {\r\n window.open(`https://api.whatsapp.com/send?text=${window.location.href}`, '_blank');\r\n }\r\n if (platform === 'linkedin') {\r\n // https://www.linkedin.com/shareArticle?url={url}&title={title}&summary={text}&source={provider}\r\n window.open(\r\n `https://www.linkedin.com/shareArticle?mini=true&url=${window.location.href}&title=${document.title}&source=LinkedIn`,\r\n '_blank'\r\n );\r\n }\r\n if (platform === 'messenger') {\r\n window.open(`https://www.facebook.com/dialog/send?link=${window.location.href}`, '_blank');\r\n }\r\n if (platform === 'facebook') {\r\n window.open(`https://www.facebook.com/sharer/sharer.php?u=${window.location.href}`, '_blank');\r\n }\r\n };\r\n\r\n const updateQuantity = (type: 'increase' | 'decrease') => {\r\n if (type === 'increase') {\r\n setSelectedQuantity(prevState => {\r\n return prevState + 1;\r\n });\r\n } else {\r\n setSelectedQuantity(prevState => {\r\n if (prevState === 1) {\r\n return prevState;\r\n } else {\r\n return prevState - 1;\r\n }\r\n });\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n if (mediaLocations && mediaLocations.length > 0) {\r\n setPrimaryImage(mediaLocations[0].Uri);\r\n }\r\n }, [mediaLocations]);\r\n\r\n const [primaryImage, setPrimaryImage] = React.useState();\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {primaryImage && primaryImage.length > 0 && (\r\n
\r\n (e.currentTarget.style.transform = 'scale(1.2)')}\r\n onMouseOut={e => (e.currentTarget.style.transform = 'scale(1)')}\r\n onError={e => {}}\r\n />\r\n
\r\n )}\r\n
\r\n {mediaLocations &&\r\n mediaLocations.length > 0 &&\r\n mediaLocations.map((image, index) => (\r\n
setPrimaryImage(image.Uri)}>\r\n {image.AltText}\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n promo\r\n
\r\n
\r\n
\r\n
\r\n

{data.product.result?.Name}

\r\n
\r\n
\r\n
\r\n {socialShare.map(icon => (\r\n
\r\n {icon.name}\r\n {icon.label}\r\n
\r\n ))}\r\n
\r\n
\r\n {rating}\r\n Write a review\r\n
\r\n {buyBoxSelectors ? (\r\n
\r\n

\r\n NOW Customise your board.\r\n \r\n How?\r\n \r\n

\r\n
\r\n ) : null}\r\n
\r\n
\r\n
\r\n {buyBoxSelectors &&\r\n buyBoxSelectors.Model.Component.map(component => {\r\n return component.Attribute.map(attribute => {\r\n const children = buyBoxSelectors.Model.EnumDomain.find(\r\n evalue => evalue.$.enumDomainId === attribute.EnumDomain[0].$.enumDefinitionId\r\n );\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n );\r\n });\r\n })}\r\n {buyBoxSelectors && (\r\n \r\n )}\r\n \r\n
\r\n
\r\n

\r\n {getPrice(customPrice)}\r\n

\r\n
\r\n {buyBoxSelectors && (\r\n
\r\n Please select an option for the fields marked with *\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n setSelectedQuantity(parseInt(e.target.value))}\r\n />\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n {backOrder.isBackOrder ? backOrder.buttonLabel : 'ADD TO BASKET'}\r\n \r\n {sampleItemUrl.length > 0 ? (\r\n \r\n SAMPLE ITEM\r\n \r\n ) : null}\r\n
\r\n
\r\n {cartError}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {!config.hideEsimatedShipping && (\r\n
\r\n
\r\n Estimated Delivery Date\r\n 3 working days\r\n
\r\n Estimated Delivery Cost\r\n 0.00\r\n
\r\n
\r\n )}\r\n\r\n {/*
\r\n {configurableItem?.Description && configurableItem?.Description.length > 0 ? (\r\n

{configurableItem?.Description}

\r\n ) : null}\r\n
*/}\r\n\r\n
\r\n

{data.product.result?.Description && 'Description'}

\r\n

{data.product.result?.Description}

\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 \r\n \r\n \r\n \r\n \r\n \r\n {productSpecificationData.result?.map(spec => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n

    {data.product.result?.Description && 'Description'}

    Product Information
    Product Name{data.product.result?.Name}
    SKU{data.product.result?.ItemId}
    {spec.Name}{spec.TextValue}
    \r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\ninterface Social {\r\n id: number;\r\n name: string;\r\n label: string;\r\n color: string;\r\n className: string;\r\n image: string;\r\n platform: string;\r\n}\r\n\r\nexport default BuyboxView;\r\n","import React from 'react';\r\nimport * as Msdyn from '@msdyn365-commerce/core';\r\n\r\ntype BuyBoxModalProps = {\r\n productTitle?: string;\r\n productPrice?: string;\r\n quantity?: number;\r\n imageFullUrl?: string;\r\n modalClose?: () => void;\r\n show?: boolean;\r\n cartUrl?: string;\r\n};\r\n\r\nconst hiddenStyle: React.CSSProperties = {\r\n visibility: 'hidden',\r\n zIndex: 1000,\r\n display: 'block'\r\n};\r\n\r\nconst visibleStyle: React.CSSProperties = {\r\n visibility: 'visible',\r\n zIndex: 1000,\r\n display: 'block'\r\n};\r\n\r\nconst imageGridSettings: Msdyn.IGridSettings = {\r\n xs: {\r\n w: 12,\r\n h: 12\r\n },\r\n lg: {\r\n w: 12,\r\n h: 12\r\n },\r\n md: {\r\n w: 12,\r\n h: 12\r\n },\r\n sm: {\r\n w: 12,\r\n h: 12\r\n },\r\n xl: {\r\n w: 12,\r\n h: 12\r\n }\r\n};\r\n\r\nconst BuyBoxModal = (props: BuyBoxModalProps) => {\r\n let { productPrice, productTitle, quantity, imageFullUrl, show, modalClose, cartUrl } = props;\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {quantity} item\r\n added to bag\r\n
    \r\n
    \r\n
    \r\n \r\n {productTitle}\r\n
    \r\n \r\n \r\n {productPrice}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n View bag and checkout\r\n \r\n \r\n Continue shopping\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default BuyBoxModal;\r\n","import React from 'react';\r\nimport { evaluateCondition } from '../buybox.view';\r\nimport { logDetails } from '../../../../utils/debug-mode';\r\nimport { IInfoListData } from '../../definition-extensions/buybox.ext.props.autogenerated';\r\nimport { RichTextComponent } from '@msdyn365-commerce/core';\r\n\r\nexport interface IBuyBoxConfigurator {\r\n Model: {\r\n $: {\r\n name: string;\r\n };\r\n EnumDomain: {\r\n $: {\r\n name: string;\r\n enumDomainId: string;\r\n };\r\n EnumValue: {\r\n $: {\r\n value: string;\r\n displayValue: string;\r\n };\r\n }[];\r\n }[];\r\n Component: {\r\n $: {\r\n name: string;\r\n componentId: string;\r\n instanceId: string;\r\n };\r\n Attribute: {\r\n $: {\r\n name: string;\r\n displayName: string;\r\n uniqueId: string;\r\n instanceId: string;\r\n type: string;\r\n default?: string;\r\n };\r\n EnumDomain: {\r\n $: {\r\n domain: string;\r\n enumDefinitionId: string;\r\n };\r\n }[];\r\n MandatoryModifier: string[];\r\n }[];\r\n TableConstraint: {\r\n $: {\r\n name: string;\r\n uniqueId: string;\r\n };\r\n Column: {\r\n Attribute: {\r\n $: {\r\n name: string;\r\n };\r\n }[];\r\n }[];\r\n Row: {\r\n Cell: string[];\r\n }[];\r\n }[];\r\n CustomerPrice: {\r\n Customer: {\r\n $: {\r\n Relation: string;\r\n Account: string;\r\n ItemId: string;\r\n MinQty: string;\r\n MaxQty: string;\r\n DiscountPercent: string;\r\n Price: string;\r\n FromDate: string;\r\n ToDate: string;\r\n };\r\n }[];\r\n }[];\r\n PriceCalculation: {\r\n $: {\r\n id: string;\r\n name: string;\r\n condition: string;\r\n expression: string;\r\n };\r\n }[];\r\n OperationLine?: {\r\n $: {\r\n name: string;\r\n uniqueId: string;\r\n };\r\n Condition: {\r\n $: {\r\n constraintId: string;\r\n uniqueId: string;\r\n constraintText: string;\r\n };\r\n }[];\r\n }[];\r\n SubPart?: {\r\n $: {\r\n name: string;\r\n uniqueId: string;\r\n };\r\n Condition: {\r\n $: {\r\n constraintId: string;\r\n uniqueId: string;\r\n constraintText: string;\r\n };\r\n }[];\r\n }[];\r\n HiddenAttribute: IHiddenAttribute[];\r\n HiddenAttributeValue?: {\r\n Attribute: {\r\n $: {\r\n name: string;\r\n displayName: string;\r\n domain: string;\r\n uniqueId: string;\r\n value: string;\r\n };\r\n }[];\r\n }[];\r\n }[];\r\n };\r\n}\r\n\r\nexport interface IHiddenAttribute {\r\n Attribute: {\r\n $: {\r\n name: string;\r\n displayName: string;\r\n uniqueId: string;\r\n ecomHideOnly: string;\r\n };\r\n }[];\r\n}\r\n\r\ntype BuyBoxSelectorProps = {\r\n attribute: IBuyBoxAttribute;\r\n children: React.ReactNode;\r\n onValueChange: (e: React.ChangeEvent) => void;\r\n configValue: {\r\n [key: string]: string;\r\n };\r\n hiddenAttributes: IHiddenAttribute[];\r\n faqLink?: string;\r\n possibleValues: {\r\n [key: string]: string;\r\n };\r\n props: any;\r\n infoList?: IInfoListData[] | undefined;\r\n};\r\n\r\nexport const BuyBoxSelector = (props: BuyBoxSelectorProps) => {\r\n const { children, attribute, onValueChange, hiddenAttributes, faqLink, possibleValues, infoList } = props;\r\n\r\n let hideAttribute = false;\r\n\r\n if (hiddenAttributes && hiddenAttributes.length > 0) {\r\n hiddenAttributes.map(a => {\r\n a.Attribute.map(b => {\r\n if (b.$.name === attribute.$.name) {\r\n hideAttribute = true;\r\n }\r\n });\r\n });\r\n }\r\n\r\n if (hideAttribute) {\r\n // removeSearchParams(attribute.$.name);\r\n return <>;\r\n }\r\n\r\n if (attribute.MandatoryModifier)\r\n if (attribute.MandatoryModifier[0] !== '' && attribute.HiddenModifier) {\r\n if (typeof attribute.MandatoryModifier[0] !== 'string') {\r\n try {\r\n const data = attribute.HiddenModifier[0].Condition[0].$;\r\n\r\n // Check if the condition is true for the given data\r\n\r\n if (evaluateCondition(data.constraintText, possibleValues)) {\r\n // If true, calculate the expression\r\n removeSearchParams(attribute.$.name);\r\n return <>;\r\n } else {\r\n }\r\n } catch (e) {\r\n logDetails(props.props.context.app.config.debugMode, e);\r\n }\r\n\r\n // if(attribute.HiddenModifier[0].Condition[0].$.constraintText)\r\n } else {\r\n return <>;\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n ?\r\n \r\n \r\n
    \r\n
    \r\n onValueChange(e)}\r\n defaultValue={getSearchValue(attribute.$.name)}\r\n required\r\n >\r\n \r\n {children}\r\n \r\n
    \r\n
    \r\n {infoList &&\r\n infoList.length > 0 &&\r\n infoList.map(info => {\r\n if (info.key && info.key.toLowerCase() === attribute.$.name.toLowerCase()) {\r\n return ;\r\n }\r\n return null;\r\n })}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\ntype BuyBoxSelectorChildrenProps = {\r\n children?: IBuyBoxAttributeChildren;\r\n attribute: IBuyBoxAttribute;\r\n constraints?: {\r\n [key: string]: string[];\r\n };\r\n applicable: string[];\r\n};\r\nexport const BuyBoxSelectorChildren = (props: BuyBoxSelectorChildrenProps) => {\r\n const { applicable, attribute, children, constraints } = props;\r\n return (\r\n <>\r\n {children &&\r\n children.EnumValue.map(enumValue => {\r\n if (constraints && attribute.$.name in constraints && constraints[attribute.$.name].includes(enumValue.$.value)) {\r\n return (\r\n \r\n );\r\n } else if (!applicable.includes(attribute.$.name)) {\r\n return (\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n })}\r\n \r\n );\r\n};\r\n\r\ninterface IBuyBoxAttribute {\r\n $: {\r\n name: string;\r\n displayName: string;\r\n uniqueId: string;\r\n instanceId: string;\r\n type: string;\r\n default?: string;\r\n };\r\n EnumDomain: {\r\n $: {\r\n domain: string;\r\n enumDefinitionId: string;\r\n };\r\n }[];\r\n MandatoryModifier:\r\n | string[]\r\n | {\r\n Condition: {\r\n $: {\r\n constraintId: string;\r\n uniqueId: string;\r\n constraintText: string;\r\n };\r\n }[];\r\n }[];\r\n HiddenModifier?: {\r\n Condition: {\r\n $: {\r\n constraintId: number;\r\n uniqueId: number;\r\n constraintText: string;\r\n };\r\n }[];\r\n }[];\r\n}\r\n\r\ninterface IBuyBoxAttributeChildren {\r\n $: {\r\n name: string;\r\n enumDomainId: string;\r\n };\r\n EnumValue: {\r\n $: {\r\n value: string;\r\n displayValue: string;\r\n };\r\n }[];\r\n}\r\n\r\nexport const getURLSearchParams = () => {\r\n return new URLSearchParams(window.location.search);\r\n};\r\n\r\nexport const removeSearchParams = (paramKey: string | undefined) => {\r\n const queryParams = getURLSearchParams();\r\n if (typeof paramKey === 'string') {\r\n queryParams.delete(paramKey);\r\n\r\n // Get the updated search string\r\n const updatedSearch = queryParams.toString();\r\n\r\n // Use window.history.pushState to update the URL without a full page reload\r\n const newURL = `${window.location.pathname}?${updatedSearch}`;\r\n\r\n window.history.pushState({ path: newURL }, '', newURL);\r\n }\r\n};\r\n\r\nexport const updateSearchParams = (paramKey: string | undefined, value: string) => {\r\n const queryParams = getURLSearchParams();\r\n let returnValue = false;\r\n if (typeof paramKey === 'string') {\r\n for (const [key] of queryParams.entries()) {\r\n if (key === paramKey) {\r\n returnValue = true;\r\n }\r\n }\r\n queryParams.set(paramKey, value);\r\n\r\n // Get the updated search string\r\n const updatedSearch = queryParams.toString();\r\n\r\n // Use window.history.pushState to update the URL without a full page reload\r\n const newURL = `${window.location.pathname}?${updatedSearch}`;\r\n window.history.pushState({ path: newURL }, '', newURL);\r\n }\r\n returnValue;\r\n};\r\n\r\nexport const resetSearchParams = () => {\r\n const newURL = `${window.location.pathname}`;\r\n window.history.pushState({ path: newURL }, '', newURL);\r\n};\r\nexport const getSearchValue = (value: string) => {\r\n return getURLSearchParams().get(value) as string;\r\n};\r\n","export const logDetails = (debugMode: boolean, props: any) => {\r\n if (!debugMode) {\r\n return;\r\n }\r\n console.log(props);\r\n};\r\n","const binding = { modules: {}, dataActions: {} };\n\n const registerActionId = (actionPath) => {\n if (binding.dataActions[actionPath] &&\n binding.dataActions[actionPath].default &&\n binding.dataActions[actionPath].default.prototype &&\n binding.dataActions[actionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[actionPath].default.prototype.id] = binding.dataActions[actionPath];\n } else {\n Object.keys(binding.dataActions[actionPath] || {}).forEach(exportName => {\n if (binding.dataActions[actionPath][exportName] &&\n binding.dataActions[actionPath][exportName].prototype &&\n binding.dataActions[actionPath][exportName].prototype.Action) {\n binding.dataActions[binding.dataActions[actionPath][exportName].prototype.id] = binding.dataActions[actionPath][exportName];\n }\n })\n }\n };\n\n const registerSanitizedActionPath = (sanitizedActionPath, dataAction) => {\n if (process.env.NODE_ENV === 'development') {\n if (!dataAction.default) {\n throw new Error('Data action path does not have a default export');\n }\n if (!(dataAction.default.prototype.id && binding.dataActions[dataAction.default.prototype.id]) || !binding.dataActions[sanitizedActionPath]) {\n binding.dataActions[sanitizedActionPath] = dataAction;\n }\n } else {\n binding.dataActions[sanitizedActionPath] = dataAction;\n if (!binding.dataActions[sanitizedActionPath].default) {\n throw new Error('Data action path ' + sanitizedActionPath + ' does not have a default export');\n }\n binding.dataActions[sanitizedActionPath].default.prototype.RegistrationId = sanitizedActionPath;\n if (binding.dataActions[sanitizedActionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[sanitizedActionPath].default.prototype.id] = sanitizedActionPath;\n }\n }\n };\n \n\n (binding.modules['buybox'] = {\n c: () => require('@msdyn365-commerce-modules/buybox/dist/lib/modules/buybox/buybox'),\n $type: 'containerModule',\n da: [{name:'cart', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action', runOn: 0},{name:'catalogs', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-catalogs', runOn: 0},{name:'channelDeliveryOptionConfig', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration', runOn: 0},{name:'customerInformation', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer', runOn: 0},{name:'deliveryOptions', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-delivery-options-for-selected-variant', runOn: 0},{name:'featureState', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state', runOn: 0},{name:'orderTemplates', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/order-templates/get-order-templates-preview', runOn: 1},{name:'product', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant', runOn: 0},{name:'productAvailableQuantity', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-product-availabilities-for-selected-variant', runOn: 0},{name:'productDimensions', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-dimensions-for-selected-variant', runOn: 0},{name:'productPrice', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-price-for-selected-variant', runOn: 0},{name:'ratingsSummary', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-ratings-summary', runOn: 1},{name:'storeSelectorStateManager', path:'@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action', runOn: 1},{name:'wishlists', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-wishlist-by-customer-id', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'buybox',\n p: 'buybox',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/buybox/dist/lib/modules/buybox'\n });\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action';\n let dataAction = require('@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-catalogs';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-catalogs');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-delivery-options-for-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-delivery-options-for-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-dimensions-for-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-dimensions-for-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-price-for-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-price-for-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-product-availabilities-for-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-product-availabilities-for-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-ratings-summary';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-ratings-summary');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-wishlist-by-customer-id';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-wishlist-by-customer-id');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/order-templates/get-order-templates-preview';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/order-templates/get-order-templates-preview');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action';\n let dataAction = require('@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n \n window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.dataActions = {\n ...window.__bindings__.dataActions || {},\n ...binding.dataActions\n };\n export const viewDictionary = {};\n viewDictionary['__local__|__local__|themes|morland|views|buybox'] = {\n c: () => require('partner/themes/morland/views/buybox.view.tsx'),\n cn: '__local__-__local__-buybox'\n };\nviewDictionary['@msdyn365-commerce-modules|buybox|modules|buybox|buybox'] = {\n c: () => require('@msdyn365-commerce-modules/buybox/dist/lib/modules/buybox/buybox.view.js'),\n cn: '@msdyn365-commerce-modules-buybox-buybox'\n };\nviewDictionary['@msdyn365-commerce-modules|fabrikam-design-kit|modules|fabrikam|views|buybox'] = {\n c: () => require('@msdyn365-commerce-modules/fabrikam-design-kit/dist/lib/modules/fabrikam/views/buybox.view.js'),\n cn: '@msdyn365-commerce-modules-fabrikam-design-kit-buybox'\n };\nviewDictionary['@msdyn365-commerce-theme|adventureworks-theme-kit|modules|adventureworks|views|buybox'] = {\n c: () => require('@msdyn365-commerce-theme/adventureworks-theme-kit/dist/lib/modules/adventureworks/views/buybox.view.js'),\n cn: '@msdyn365-commerce-theme-adventureworks-theme-kit-buybox'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IActionContext } from '@msdyn365-commerce/core';\nimport { action, computed, observable } from 'mobx';\n\nimport {\n IListMapViewState,\n ILoadMapApiInput,\n IStoreInfo,\n IStoreSelectionStateContext,\n IStoreSelectorLocation,\n IStoreSelectorStateManager\n} from './i-store-selection-state-manager';\n\n/**\n * Abstract instance of IStoreSelectorStateManager with base implementation\n * of everything except the geoLocate function.\n */\nexport abstract class BaseStoreSelectorStateManager implements IStoreSelectorStateManager {\n @computed public get isDialogOpen(): Readonly {\n return this._context !== undefined;\n }\n\n @computed public get context(): Readonly {\n return this._context;\n }\n\n @observable public isMapApiLoaded?: boolean;\n\n @observable public selectedStoreLocationId?: string;\n\n @observable public preferredStore?: IStoreInfo;\n\n @observable public listMapViewState: IListMapViewState = { displayList: true, displayMap: false };\n\n @observable public isMapModuleLoaded?: boolean;\n\n @observable public lastInlineShownStoreInfo?: IStoreInfo;\n\n @observable protected _context?: IStoreSelectionStateContext;\n\n private readonly preferredStoreLocalStorageKey: string = '_msdyn365__preferredStore_';\n\n constructor() {\n this.isMapModuleLoaded = false;\n const value = this._readFromToCookie(this.preferredStoreLocalStorageKey);\n try {\n const storeInfo: IStoreInfo | undefined = value ? JSON.parse(value) : undefined;\n if (storeInfo) {\n this.preferredStore = storeInfo;\n }\n } catch {\n this.preferredStore = undefined;\n }\n }\n\n public abstract geoLocate(searchTerm: string, actionContext: IActionContext): Promise;\n\n public abstract loadMapApi(input: ILoadMapApiInput): Promise;\n\n @action\n public async toggleListMapViewState(): Promise {\n this.listMapViewState = {\n displayList: !this.listMapViewState.displayList,\n displayMap: !this.listMapViewState.displayMap\n };\n }\n\n @action\n public async setMapModuleLoaded(input: boolean): Promise {\n this.isMapModuleLoaded = input;\n }\n\n @action\n public async setOrgUnitStoreInformation(input: IStoreSelectionStateContext): Promise {\n this._context = input;\n }\n\n @action\n public async setSelectedStoreLocationId(storeId: string | undefined): Promise {\n this.selectedStoreLocationId = storeId;\n }\n\n @action\n public async setPreferredStoreLocation(\n storeId?: string,\n storeName?: string | undefined,\n writeToCookie: boolean = false,\n latitude?: number,\n longitude?: number\n ): Promise {\n const storeInfo: IStoreInfo = { StoreId: storeId, StoreName: storeName, Latitude: latitude, Longitude: longitude };\n this.preferredStore = storeInfo;\n if (writeToCookie) {\n this._writeToCookie(this.preferredStoreLocalStorageKey, JSON.stringify(storeInfo));\n }\n }\n\n @action\n public async setLastInlineStoreInfo(latitude?: number, longitude?: number): Promise {\n const storeInfo: IStoreInfo = { StoreId: '', StoreName: '', Latitude: latitude, Longitude: longitude };\n this.lastInlineShownStoreInfo = storeInfo;\n }\n\n @action\n public async clearPreferredStore(writeToCookie: boolean): Promise {\n this.preferredStore = undefined;\n if (writeToCookie) {\n this._removeCookie(this.preferredStoreLocalStorageKey);\n }\n }\n\n @action\n public async openDialog(input: IStoreSelectionStateContext): Promise {\n if (this._context && this._context.id === input.id) {\n throw new Error('Dialog is already opened');\n }\n\n this._context = input;\n }\n\n @action\n public async closeDialog(): Promise {\n this._context = undefined;\n }\n\n private _removeCookie(key: string): void {\n if (!key) {\n return;\n }\n if (MsDyn365.isBrowser) {\n const storage = window.localStorage;\n storage.removeItem(key);\n }\n }\n\n private _writeToCookie(key: string, value: string | undefined): void {\n if (!key || !value) {\n return;\n }\n if (MsDyn365.isBrowser) {\n const storage = window.localStorage;\n storage.setItem(key, value);\n }\n }\n\n private _readFromToCookie(key: string): string | undefined {\n if (!key) {\n return undefined;\n }\n if (MsDyn365.isBrowser) {\n const storage = window.localStorage;\n const cookieValue = storage.getItem(key);\n if (cookieValue) {\n return cookieValue;\n }\n }\n\n return undefined;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext } from '@msdyn365-commerce/core';\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { action } from 'mobx';\n\nimport { BaseStoreSelectorStateManager } from './base-store-selector-state-manager';\nimport { ILoadMapApiInput, IStoreSelectorLocation } from './i-store-selection-state-manager';\nimport { IMapWindow, MapLocationsResult } from './models/map-data';\n\ndeclare const window: IMapWindow;\n\n/**\n * Instance of IStoreSelectorStateManager manager that uses Map service\n * for geo location.\n */\nexport class MapStoreSelectorStateManager extends BaseStoreSelectorStateManager {\n private readonly SERVICE_ENDPOINT: string = 'https://dev.virtualearth.net/REST/v1/';\n\n private readonly MAP_API_ENDPOINT: string = 'https://www.bing.com/api/maps/mapcontrol?callback=mapAPIReady';\n\n @action\n public async geoLocate(searchTerm: string, actionContext: IActionContext): Promise {\n if (\n !searchTerm ||\n !actionContext.requestContext.channel ||\n !actionContext.requestContext.channel.BingMapsApiKey ||\n !actionContext.requestContext.channel.BingMapsEnabled\n ) {\n return undefined;\n }\n\n let searchContent: string = searchTerm;\n\n const jsonp = `mapSearchCallback_${crypto.getRandomValues(new Uint32Array(1))[0]}`;\n\n if (actionContext.requestContext.channel.ChannelCountryRegionISOCode) {\n searchContent = `${searchTerm.trim()} ${actionContext.requestContext.channel.ChannelCountryRegionISOCode}`;\n }\n\n const query = encodeURI(searchContent);\n const key = encodeURI(actionContext.requestContext.channel.BingMapsApiKey);\n\n const geolocationApiUrl =\n actionContext.requestContext.app &&\n actionContext.requestContext.app.config &&\n actionContext.requestContext.app.config.geolocationApiUrl;\n const requestUrl = `${\n geolocationApiUrl ? geolocationApiUrl : this.SERVICE_ENDPOINT\n }/Locations?query=${query}&key=${key}&jsonp=${jsonp}`;\n\n return new Promise(resolve => {\n const script = document.createElement('script');\n script.setAttribute('type', 'text/javascript');\n script.setAttribute('src', requestUrl);\n\n window[jsonp] = (data: MapLocationsResult) => {\n delete window[jsonp];\n script.remove();\n\n if (data && data.resourceSets && data.resourceSets.length > 0 && data.resourceSets[0].resources.length > 0) {\n resolve({\n latitude: data.resourceSets[0].resources[0].point.coordinates[0],\n longitude: data.resourceSets[0].resources[0].point.coordinates[1]\n });\n }\n\n resolve(undefined);\n };\n\n document.body.appendChild(script);\n });\n }\n\n @action\n public async loadMapApi(input: ILoadMapApiInput): Promise {\n if (StringExtensions.isNullOrEmpty(input.key)) {\n return Promise.resolve();\n }\n\n const isScriptAlreadyLoaded = !!document?.getElementById('msdyn_map-api-script');\n\n if (isScriptAlreadyLoaded) {\n // Prevents from loading multiple script into the body\n return Promise.resolve();\n }\n\n const url = `${this.MAP_API_ENDPOINT}${input.key ? `&key=${input.key}` : ''}${input.lang ? `&setLang=${input.lang}` : ''}${\n input.market ? `&setMkt=${input.market}` : ''\n }`;\n\n return new Promise((resolve, reject) => {\n const script = document?.createElement('script');\n script.type = 'text/javascript';\n script.async = true;\n script.defer = true;\n script.src = url;\n script.id = 'msdyn_map-api-script';\n if (window) {\n window.mapAPIReady = () => {\n this.isMapApiLoaded = true;\n resolve();\n };\n }\n script.addEventListener('error', (error: string | Event) => {\n reject(error);\n });\n document?.body?.appendChild(script);\n });\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { createObservableDataAction, IAction, IActionInput, IAny, ICreateActionContext, IGeneric } from '@msdyn365-commerce/core';\nimport { GenericInput, getGenericAction } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { IStoreSelectorStateManager } from './i-store-selection-state-manager';\nimport { MapStoreSelectorStateManager } from './map-store-selector-state-manager';\n\nexport function createStoreSelectorStateInput(result: IStoreSelectorStateManager): GenericInput {\n return new GenericInput('mapSSSM', result, 'IStoreSelectorStateManager');\n}\n\nconst createStoreSelectorStateInputInternal = (inputData: ICreateActionContext>): IActionInput => {\n return createStoreSelectorStateInput(new MapStoreSelectorStateManager());\n};\n\nexport const getGenericActionDataAction = createObservableDataAction({\n action: >getGenericAction,\n input: createStoreSelectorStateInputInternal\n});\n\nexport default getGenericActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IBuyboxAddToCartViewProps,\n IBuyboxAddToOrderTemplateViewProps,\n IBuyboxAddToWishlistViewProps,\n IBuyboxCallbacks,\n IBuyboxData,\n IBuyboxFindInStoreViewProps,\n IBuyboxKeyInPriceViewProps,\n IBuyboxProductConfigureDropdownViewProps,\n IBuyboxProductConfigureViewProps,\n IBuyboxProductQuantityViewProps,\n IBuyboxProps,\n IBuyboxShopSimilarLookViewProps,\n IBuyboxState,\n IBuyboxViewProps\n} from '@msdyn365-commerce-modules/buybox';\nimport { IncrementalQuantity, ITelemetryContent, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBuyboxProps as IBuyboxExtentionProps,\n IBuyboxResources as IBuyboxExtentionResources\n} from '../definition-extensions/buybox.ext.props.autogenerated';\n\nconst BuyboxView: React.FC> = props => {\n const {\n ModuleProps,\n MediaGalleryContainerProps,\n ProductInfoContainerProps,\n addToCart,\n addToOrderTemplate,\n addToWishlist,\n telemetryContent,\n configure,\n description,\n findInStore,\n quantity,\n price,\n title,\n rating,\n callbacks,\n state,\n resources,\n inventoryLabel,\n shopSimilarLook,\n keyInPrice,\n quantityLimitsMessages,\n max,\n shopSimilarDescription,\n unitOfMeasure\n } = props;\n\n return (\n \n {props.mediaGallery}\n \n {title}\n {price}\n {unitOfMeasure}\n {props.bulkPurchaseLink}\n {description}\n {_renderTextBlock(props.slots.textBlocks)}\n {rating}\n {configure && _renderConfigure(configure)}\n {keyInPrice && _renderKeyInPrice(keyInPrice)}\n {quantity && _renderQuantity(quantity, callbacks, props, state, resources, quantityLimitsMessages, max, telemetryContent)}\n {inventoryLabel}\n {_renderCartAndActions(addToCart, addToOrderTemplate, addToWishlist)}\n {findInStore && _renderFindInStore(findInStore)}\n {_renderSocialShare(props.slots && props.slots.socialShare)}\n {shopSimilarLook && _renderShopSimilarItem(shopSimilarLook)}\n {shopSimilarDescription && _renderShopSimilarItem(shopSimilarDescription)}\n \n \n );\n};\n\nconst _renderTextBlock = (textBlocks: React.ReactNode[]): JSX.Element | undefined => {\n if (!textBlocks || textBlocks.length === 0) {\n return undefined;\n }\n\n return <>{textBlocks[0]};\n};\n\nconst _renderSocialShare = (socialShare: React.ReactNode[]): JSX.Element | undefined => {\n if (!socialShare || socialShare.length === 0) {\n return undefined;\n }\n\n return <>{socialShare[0]};\n};\n\nconst _renderCartAndActions = (\n addToCart?: IBuyboxAddToCartViewProps,\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps,\n addToWishlist?: IBuyboxAddToWishlistViewProps\n): JSX.Element | undefined => {\n if (!addToCart && !addToWishlist) {\n return undefined;\n }\n\n return (\n
    \n {addToCart && addToCart.errorBlock}\n {addToOrderTemplate && addToOrderTemplate.errorBlock}\n {addToWishlist && addToWishlist.errorBlock}\n
    \n {addToCart && addToCart.button}\n {addToOrderTemplate && addToOrderTemplate.button}\n {addToWishlist && addToWishlist.button}\n
    \n
    \n );\n};\n\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\n const { ContainerProps, dropdowns } = configure;\n\n return {dropdowns.map(_renderConfigureDropdown)};\n};\n\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\n\n return (\n \n \n {heading}\n {errors}\n \n {select}\n \n );\n};\n\nconst _renderFindInStore = (findInStore: IBuyboxFindInStoreViewProps): JSX.Element => {\n const { ContainerProps, storeSelector, heading, description, errors, button, modal, productPickupOptionList } = findInStore;\n\n return (\n \n {storeSelector}\n {heading}\n {productPickupOptionList}\n {description}\n {errors}\n {button}\n {modal}\n \n );\n};\n\n/**\n * On Change function.\n * @param callbacks -Callbacks.\n * @returns Update quantity.\n */\nconst onChangeHandler = (callbacks: IBuyboxCallbacks) => (newValue: number): boolean => {\n if (callbacks.updateQuantity) {\n return callbacks.updateQuantity(newValue);\n }\n return true;\n};\n\nconst _renderQuantity = (\n quantityComponent: IBuyboxProductQuantityViewProps,\n callbacks: IBuyboxCallbacks,\n props: IBuyboxProps,\n state: IBuyboxState,\n extentionResources: IBuyboxExtentionResources,\n quantityLimitsMessages: React.ReactNode,\n max: number | undefined,\n telemetryContent?: ITelemetryContent\n): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors } = quantityComponent;\n\n const { resources } = props;\n\n const { quantity } = state;\n\n return (\n \n \n {heading}\n {errors}\n \n\n \n {quantityLimitsMessages}\n \n );\n};\n\nconst _renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\n\n return (\n \n {heading}\n {input}\n \n );\n};\n\nconst _renderShopSimilarItem = (shopSimilarItem: IBuyboxShopSimilarLookViewProps): JSX.Element => {\n const { ContainerProps, errors, input } = shopSimilarItem;\n\n return (\n \n {errors}\n {input}\n \n );\n};\n\nexport default BuyboxView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n AddToOrderTemplateComponent,\n IAddToOrderTemplateDialogResources,\n IDuplicateItemsWhenAddingToOrderTemplateDialogResources,\n IItemAddedToOrderTemplateDialogResources,\n IOrderTemplateActionErrorResult,\n IOrderTemplateNameDialogResources\n} from '@msdyn365-commerce/components';\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport {\n getConfigureErrors,\n IBuyboxCallbacks,\n IBuyboxCommonResources,\n IBuyboxData,\n IBuyboxState,\n IBuyboxViewProps\n} from '@msdyn365-commerce-modules/buybox';\nimport * as React from 'react';\n\nimport { IBuyboxProps as IBuyboxExtentionProps } from '../../definition-extensions/buybox.ext.props.autogenerated';\n\n/**\n * To generate AddToOrderTemplateDialog resources.\n * @param resources - The resources.\n * @returns -- Returns the list of AddToOrderTemplateDialog resources..\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\n/**\n * To generate OrderTemplateNameDialog resources.\n * @param resources - The resources.\n * @returns -- Returns the list of OrderTemplateNameDialog resources..\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\n/**\n * To generate ItemAddedToOrderTemplateDialog resources.\n * @param resources - The resources.\n * @returns -- Returns the list of ItemAddedToOrderTemplateDialog resources..\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\n/**\n * To generate DuplicateItemsWhenAddingToOrderTemplateDialog resources.\n * @param resources - The resources.\n * @returns -- Returns the list of DuplicateItemsWhenAddingToOrderTemplateDialog resources..\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 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 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\n/**\n * RenderAddToOrderTemplateButton.\n * @param props - Buybox view props.\n * @param state - Buybox state.\n * @param callbacks - Buybox callbacks.\n * @param product - Product data.\n * @returns -- Returns JSX element.\n */\nexport const renderAddToOrderTemplateButton = (\n props: IBuyboxViewProps & IBuyboxExtentionProps,\n state: IBuyboxState,\n callbacks: IBuyboxCallbacks,\n product: SimpleProduct\n): React.ReactNode => {\n const {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n id,\n typeName,\n context,\n data: {\n orderTemplates: { result: orderTemplates },\n customerInformation: { result: customerInformation }\n },\n resources,\n config\n } = props;\n\n const { quantity } = state;\n\n const isShowButtonText = true;\n const isMultipleCatalogsFeatureEnabled = props.isChannelMultipleCatalogsFeatureEnabled || false;\n return (\n orderTemplates && (\n \n )\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AddToWishlistComponent, IWishlistActionErrorResult } from '@msdyn365-commerce/components';\nimport { format, ItemAvailability, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { IStoreInfo } from '@msdyn365-commerce-modules/bopis-utilities';\nimport {\n getConfigureErrors,\n IBuyboxAddToCartViewProps,\n IBuyboxCallbacks,\n IBuyboxCommonResources,\n IBuyboxData,\n IBuyboxFindInStoreViewProps,\n IBuyboxKeyInPriceViewProps,\n IBuyboxProductConfigureDropdownViewProps,\n IBuyboxProductConfigureViewProps,\n IBuyboxProductQuantityViewProps,\n IBuyboxResources as IBuyboxExtentionResources,\n IBuyboxShopSimilarLookViewProps,\n IBuyboxState,\n IBuyboxViewProps\n} from '@msdyn365-commerce-modules/buybox';\nimport {\n ArrayExtensions,\n getFullAvailableInventoryNearby,\n GetFullAvailableInventoryNearbyInput,\n IFullOrgUnitAvailability\n} from '@msdyn365-commerce-modules/retail-actions';\nimport { IncrementalQuantity, INodeProps, ITelemetryContent, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport { reaction } from 'mobx';\nimport * as React from 'react';\n\nimport { IBuyboxProps as IBuyboxExtentionProps, IBuyboxProps } from '../definition-extensions/buybox.ext.props.autogenerated';\nimport { renderAddToOrderTemplateButton } from './components/buybox-add-to-order-template';\n\n/**\n * BuyBoxConstants enum.\n */\nexport enum BuyBoxConstants {\n zero = 0\n}\n\n/**\n * On Change function.\n * @param callbacks -Callbacks.\n * @returns Update quantity.\n */\nconst onChangeHandler = (callbacks: IBuyboxCallbacks) => (newValue: number): boolean => {\n if (callbacks.updateQuantity) {\n return callbacks.updateQuantity(newValue);\n }\n return true;\n};\n\n/**\n * RenderQuantity.\n * @param quantityComponent - QuantityComponent.\n * @param callbacks - Callbacks.\n * @param props - Props.\n * @param state - State.\n * @param extentionResources - ExtentionResources.\n * @param quantityLimitsMessages - QuantityLimitsMessages.\n * @param max - Max.\n * @param telemetryContent - TelemetryContent.\n * @param unitOfMeasure - Unit Of Measure.\n * @returns -- Returns.\n */\nconst renderQuantity = (\n quantityComponent: IBuyboxProductQuantityViewProps,\n callbacks: IBuyboxCallbacks,\n props: IBuyboxProps,\n state: IBuyboxState,\n extentionResources: IBuyboxExtentionResources,\n quantityLimitsMessages: React.ReactNode,\n\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\n max: number | undefined,\n telemetryContent?: ITelemetryContent,\n unitOfMeasure?: React.ReactNode\n): JSX.Element => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\n const { ContainerProps, LabelContainerProps, heading, errors } = quantityComponent;\n\n const { resources } = props;\n\n const { quantity } = state;\n\n return (\n \n \n {heading}\n {errors}\n \n\n \n {unitOfMeasure}\n {quantityLimitsMessages}\n \n );\n};\n\n/**\n * Render key in price function.\n * @param keyInPrice - KeyInPrice.\n * @returns -- Returns.\n */\nconst renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\n\n return (\n \n {heading}\n {input}\n \n );\n};\n\n/**\n * RenderAddToCart.\n * @param addToCart - AddToCart.\n * @returns -- Returns.\n */\nconst renderAddToCart = (addToCart: IBuyboxAddToCartViewProps): JSX.Element => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\n const { ContainerProps, errorBlock, button } = addToCart;\n\n return (\n \n {errorBlock}\n {button}\n \n );\n};\n\n/**\n * RenderFindInStore.\n * @param findInStore - FindInStore.\n * @returns -- Returns.\n */\nconst renderFindInStore = (findInStore: IBuyboxFindInStoreViewProps): JSX.Element => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\n const { ContainerProps, storeSelector, heading, description, errors, button, modal, productPickupOptionList } = findInStore;\n\n return (\n \n {storeSelector}\n {heading}\n {productPickupOptionList}\n {description}\n {errors}\n {button}\n {modal}\n \n );\n};\n\n/**\n * RenderAddToOrderTemplate.\n * @param props - Buybox view props.\n * @param state - Buybox state.\n * @param callbacks - Buybox callbacks.\n * @returns -- Returns.\n */\nconst renderAddToOrderTemplate = (\n props: IBuyboxViewProps & IBuyboxExtentionProps,\n state: IBuyboxState,\n callbacks: IBuyboxCallbacks\n): JSX.Element | null => {\n const product = props.data.product.result;\n if (!props.addToOrderTemplate || !product) {\n return null;\n }\n\n const orderTemplateButton = renderAddToOrderTemplateButton(props, state, callbacks, product);\n\n return (\n \n {props.addToOrderTemplate.errorBlock}\n {orderTemplateButton}\n \n );\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\n/**\n * RenderAddToWishlist.\n * @param props - Buybox view props.\n * @param state - Buybox state.\n * @param callbacks - Buybox callbacks.\n * @param product - Product data.\n * @returns -- Returns.\n */\nconst renderAddtoWishlistButton = (\n props: IBuyboxViewProps & IBuyboxExtentionProps,\n state: IBuyboxState,\n callbacks: IBuyboxCallbacks,\n product: SimpleProduct\n): React.ReactNode => {\n const { context, resources } = props;\n const wishlists = props.data.wishlists.result;\n const isShowWishlitButtonText = true;\n return (\n \n );\n};\n\n/**\n * RenderAddToWishlist.\n * @param props - Buybox viewprops.\n * @param state - Buybox state.\n * @param callbacks - Buybox callbacks.\n * @returns -- Returns.\n */\nconst renderAddToWishlist = (\n props: IBuyboxViewProps & IBuyboxExtentionProps,\n state: IBuyboxState,\n callbacks: IBuyboxCallbacks\n): JSX.Element | null => {\n const product = props.data.product.result;\n if (!props.addToWishlist || !product) {\n return null;\n }\n\n if (!props.config.enableWishlist) {\n return null;\n }\n\n const wishlistButton = renderAddtoWishlistButton(props, state, callbacks, product);\n return (\n \n {props.addToWishlist.errorBlock}\n {wishlistButton}\n \n );\n};\n\n/**\n * RRenderShopSimilarItem.\n * @param shopSimilarItem - ShopSimilarItem.\n * @returns -- Returns.\n */\nconst renderShopSimilarItem = (shopSimilarItem: IBuyboxShopSimilarLookViewProps): JSX.Element => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\n const { ContainerProps, errors, input } = shopSimilarItem;\n\n return (\n \n {errors}\n {input}\n \n );\n};\n\n/**\n * RenderSocialShare.\n * @param socialShare - Social share react node array.\n * @returns -- Returns.\n */\nconst _renderSocialShare = (socialShare: React.ReactNode[]): JSX.Element | undefined => {\n if (!socialShare || socialShare.length === 0) {\n return undefined;\n }\n\n return <>{socialShare[0]};\n};\n\n/**\n * RenderConfigureDropdown.\n * @param dropdown - Buybox product configure dropdown view props.\n * @returns -- Returns JSX.Element.\n */\nconst renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\n\n return (\n \n {heading}\n {select}\n {errors}\n \n );\n};\n\n/**\n * RenderConfigure.\n * @param configure - Buybox product configure view props.\n * @returns -- Returns JSX.Element.\n */\nconst renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\n const { ContainerProps, dropdowns } = configure;\n\n return {dropdowns.map(renderConfigureDropdown)};\n};\n\n/**\n * BuyboxView.\n * @param props - Props.\n * @returns -- Returns.\n */\nconst BuyboxView: React.FC> = props => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\n const {\n ModuleProps,\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\n MediaGalleryContainerProps,\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\n ProductInfoContainerProps,\n addToCart,\n addToOrderTemplate,\n addToWishlist,\n productComparisonButton,\n configure,\n description,\n findInStore,\n quantity,\n price,\n title,\n rating,\n inventoryLabel,\n shopSimilarLook,\n keyInPrice,\n shopSimilarDescription,\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\n max,\n unitOfMeasure,\n callbacks,\n state,\n resources,\n quantityLimitsMessages,\n telemetryContent,\n app: { config: appConfig },\n catalogs\n } = props;\n let skuText: string = props.resources.skuText;\n skuText += props.data.product.result?.ItemId;\n const preferredStoreInfo: IStoreInfo | undefined = props.data.storeSelectorStateManager.result?.preferredStore;\n const preferredStoreId = preferredStoreInfo?.StoreId ? preferredStoreInfo.StoreId : '';\n const preferredStoreName = preferredStoreInfo?.StoreName ? preferredStoreInfo.StoreName : '';\n\n const [availability, setAvailability] = React.useState('');\n const [isStoreChange, setIsStoreChange] = React.useState(false);\n\n /**\n * GetStockInventoryLabel.\n * @param availabilityWithHours - Stock availability with hours.\n * @returns -- Returns.\n */\n const getStockInventoryLabel = (availabilityWithHours: IFullOrgUnitAvailability | undefined): string | undefined => {\n if (availabilityWithHours && ArrayExtensions.hasElements(availabilityWithHours.ProductInventoryInformation)) {\n for (const productInventoryInformation of availabilityWithHours.ProductInventoryInformation) {\n if (\n availabilityWithHours.OrgUnitAvailability?.OrgUnitLocation?.InventoryLocationId ===\n productInventoryInformation.InventLocationId\n ) {\n return productInventoryInformation.StockLevelLabel;\n }\n }\n }\n\n return undefined;\n };\n\n const getInventory = React.useCallback(async () => {\n const input = new GetFullAvailableInventoryNearbyInput(\n props.data.product.result?.RecordId,\n BuyBoxConstants.zero,\n BuyBoxConstants.zero,\n BuyBoxConstants.zero,\n BuyBoxConstants.zero,\n true\n );\n\n /**\n * IsProductInStock.\n * @param itemAvailabilities - Item availability array.\n * @returns -- Returns.\n */\n const isProductInStock = (itemAvailabilities: ItemAvailability[] | undefined): boolean => {\n if (!appConfig.enableStockCheck) {\n return true;\n }\n\n if (ArrayExtensions.hasElements(itemAvailabilities)) {\n return itemAvailabilities[BuyBoxConstants.zero].AvailableQuantity! > BuyBoxConstants.zero;\n }\n\n return false;\n };\n\n await getFullAvailableInventoryNearby(input, props.context.actionContext)\n .catch((error: Error) => {\n props.telemetry.error(error.message);\n })\n .then(response => {\n if (response && ArrayExtensions.hasElements(response)) {\n const isPreferredStore = (value: IFullOrgUnitAvailability) =>\n value.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitNumber === preferredStoreId;\n const filteredFullOrgUnitAvailability = response.filter(isPreferredStore);\n const preferredStoreAvailability = ArrayExtensions.hasElements(filteredFullOrgUnitAvailability)\n ? filteredFullOrgUnitAvailability[BuyBoxConstants.zero]\n : undefined;\n const stockStatusLabel: string | undefined = getStockInventoryLabel(preferredStoreAvailability);\n const isInStock = isProductInStock(preferredStoreAvailability?.OrgUnitAvailability?.ItemAvailabilities);\n const resourceLabel = isInStock ? props.resources.inStockText : props.resources.outOfStockText;\n const stockText: string | undefined = stockStatusLabel ? stockStatusLabel : resourceLabel;\n const preferredStoreAvailabilityText = `${format(\n props.resources.availabilityAtPreferredStoreText,\n preferredStoreName\n )} ${stockText}`;\n setAvailability(preferredStoreAvailabilityText);\n }\n });\n\n setIsStoreChange(false);\n }, [\n props.data.product.result?.RecordId,\n appConfig.enableStockCheck,\n preferredStoreId,\n preferredStoreName,\n props.context.actionContext,\n props.resources.availabilityAtPreferredStoreText,\n props.resources.inStockText,\n props.resources.outOfStockText,\n props.telemetry\n ]);\n\n React.useEffect(() => {\n if (props.config.displayStockAvailability) {\n getInventory().catch((error: Error) => {\n props.telemetry.error(error.message);\n });\n }\n }, [getInventory, isStoreChange, props.telemetry, props.config.displayStockAvailability]);\n\n reaction(\n () => props.data.storeSelectorStateManager.result?.selectedStoreLocationId,\n () => {\n setIsStoreChange(true);\n }\n );\n\n /**\n * RenderAvailabiltyAtPreferredStore.\n * @returns -- Returns.\n */\n const renderAvailabilityAtPreferredStore = (): JSX.Element | undefined => {\n const hasProductDimensions = ArrayExtensions.hasElements(props.data.product.result?.Dimensions);\n if (hasProductDimensions && props.data.product.result?.MasterProductId === undefined) {\n return undefined;\n }\n const containerProps: INodeProps = {\n className: 'ms-buybox__preferred-store-availability',\n tag: 'span'\n };\n\n return {availability};\n };\n return (\n \n {props.mediaGallery}\n \n {catalogs && catalogs[0].Name}\n {title}\n \n
    {skuText}
    \n {rating}\n
    \n \n
    {props.resources.priceText}
    \n {price}\n
    \n {configure && renderConfigure(configure)}\n {keyInPrice && renderKeyInPrice(keyInPrice)}\n \n
    \n {quantity &&\n renderQuantity(\n quantity,\n callbacks,\n props,\n state,\n resources,\n quantityLimitsMessages,\n max,\n telemetryContent,\n unitOfMeasure\n )}\n {props.bulkPurchaseLink}\n
    \n
    \n {props.config.displayStockAvailability && preferredStoreId && renderAvailabilityAtPreferredStore()}\n {inventoryLabel}\n {renderAddToCart(addToCart)}\n {findInStore && renderFindInStore(findInStore)}\n {addToWishlist && renderAddToWishlist(props, state, callbacks)}\n {productComparisonButton}\n {addToOrderTemplate && renderAddToOrderTemplate(props, state, callbacks)}\n {findInStore?.productPickupOptionList ? (\n
    {findInStore.productPickupOptionList}
    \n ) : null}\n {_renderSocialShare(props.slots && props.slots.socialShare)}\n
    {props.resources.shopText}
    \n \n {shopSimilarLook && renderShopSimilarItem(shopSimilarLook)}\n {shopSimilarDescription && renderShopSimilarItem(shopSimilarDescription)}\n \n \n
    {props.resources.descriptionText}
    \n {description}\n
    \n {ArrayExtensions.hasElements(props.slots.productSpecification) ? (\n {props.slots.productSpecification[0]}\n ) : null}\n
    \n
    \n );\n};\n\nexport default BuyboxView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport enum LogLevel {\n /**\n * For information that's typically valuable only for debugging. These messages may contain sensitive application data and so shouldn't be enabled in a production environment. Disabled by default.\n */\n Trace = 'trace',\n /**\n * For information that may be useful in development and debugging. Example: Entering method Configure with flag set to true. Enable Debug level logs in production only when troubleshooting, due to the high volume of logs.\n */\n Debug = 'debug',\n /**\n * For tracking the general flow of the app. These logs typically have some long-term value. Example: Request received for path /api/todo\n */\n Information = 'information',\n /**\n * For abnormal or unexpected events in the app flow.\n * These may include errors or other conditions that don't cause the app to stop but might need to be investigated. Handled exceptions are a common place to use the Warning log level. Example: FileNotFoundException for file quotes.txt.\n */\n Warning = 'warning',\n /**\n * For errors and exceptions that cannot be handled.\n * These messages indicate a failure in the current activity or operation (such as the current HTTP request), not an app-wide failure. Example log message: Cannot insert record due to duplicate key violation.\n */\n Error = 'error',\n /**\n * For failures that require immediate attention. Examples: data loss scenarios, out of disk space.\n */\n Critical = 'critical',\n None = 'none'\n}\n\n/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/**\n * Holds optional parameters for log statements\n */\nexport type TelemetryLogOptions = {\n /**\n * Holds any arguments that are meant for placeholders in the message template\n */\n values?: unknown[];\n\n /**\n * Array of custom tags to add to log\n */\n customTags?: string[];\n\n /**\n * Exception that can be attached to the log\n */\n exception?: Error;\n};\n\n\n/**\n * Interface exposing methods for trace logging, telemetry event logging, and data attribute rendering\n * @property trace {Function} - Logs the given message at a Trace level\n * @property debug {Function} - Logs the given message at a Debug level\n * @property information {Function} - Logs the given message at a Information level\n * @property warning {Function} - Logs the given message at a Warning level\n * @property error {Function} - Logs the given message at a Error level\n * @property critical {Function} - Logs the given message at a Critical level\n * @property exception {Function} - Logs the given error object\n */\nexport interface ITelemetry {\n /**\n * Logs a structured message at the given log level, with optional custom tags and/or an exception\n * @param logLevel LogLevel of the message\n * @param messageTemplate String to log, denoting placeholders with {placeholder}\n * @param logOptions Contains arguments to replace placeholders, custom tags for log, and optional error object\n */\n log(logLevel: LogLevel, messageTemplate: string, logOptions?: TelemetryLogOptions): void;\n\n}\n","module.exports = React;","module.exports = ReactDOM;"],"names":["evaluateCondition","condition","data","conditionWithValues","replace","match","propName","undefined","JSON","stringify","Function","calculateExpression","expression","eval","imageExists","url","http","XMLHttpRequest","open","send","status","BuyboxView","props","_data$product$result","_config$customiseLink","_data$product$result2","_data$product$result3","_data$product$result4","_data$product$result5","_productSpecification","_data$product$result6","_data$product$result7","rating","config","logDetails","context","app","debugMode","mediaLocationsForSelectedVariant","productSpecificationData","intlFormatter","cultureFormatter","currentSelectedProduct","setCurrentSelectedProduct","useState","buyBoxSelectors","setBuyBoxSelectors","openModal","setOpenModal","React","customPrice","setCustomPrice","selectedQuantity","setSelectedQuantity","backOrder","setBackOrder","isBackOrder","buttonLabel","backOrderDescription","sampleItemUrl","setSampleItemUrl","cartError","setCartError","getValue","setGetValue","constraints","setConstraints","applicable","setApplicable","mediaLocations","setMediaLocations","setDefaultMediaLocations","validImageLocations","result","length","map","media","Uri","push","currentSelectedProductVariant","setCurrentSelectedProductVariant","product","ObjectExtensions","isNullOrUndefined","ExtensionProperties","find","prop","Key","_product$ExtensionPro","insConfiguration","Value","StringValue","parseString","err","telemetry","log","LogLevel","Error","message","setTimeout","Msdyn365","isBrowser","window","location","href","includes","review","document","getElementById","scrollIntoView","behavior","_product$ExtensionPro2","_product$ExtensionPro3","_product$ExtensionPro4","_product$ExtensionPro5","BooleanValue","setValue","setDefaultConfiguration","formValidation","getPrice","price","formatCurrency","_props$data$product$r","priceFromXml","Model","Component","PriceCalculation","value","$","toLowerCase","parseFloat","totalPrice","Price","getSelectedValue","imageName","getURLSearchParams","forEach","searchValue","currentkey","Attribute","key","name","ItemId","imageUrl","getImageUrl","fetch","then","res","prevState","image","MediaPurpose","withoutConfigImage","filter","catch","TableConstraint","applicableVal","Column","colValue","_","index","Row","rowValue","Cell","colNameKey","colName","aValue","prevApp","slice","e","generateImageUrl","request","apiSettings","onValueChange","selectedValue","target","dataValue","currentTarget","dataset","updateSearchParams","contstraints","Set","table","col","add","async","actionContext","getVariantsByDimensionValuesAsync","callerContext","queryResultSettings","RecordId","channelId","varient","Dimensions","dim","_dim$DimensionValue","DimensionValue","toLocaleLowerCase","possibleValues","attr","get","default","isAddToCartBtnDisabled","setIsAddToCartBtnDisabled","form","requiredInputs","i","elements","element","tagName","hasAttribute","selectedValueList","size","updateQuantity","type","setPrimaryImage","primaryImage","className","src","alt","split","pop","onMouseOver","style","transform","onMouseOut","onError","justifyContent","overflowX","margin","cursor","onClick","AltText","border","Name","id","label","platform","color","icon","title","width","height","customiseLink","destinationUrl","rel","action","onChange","component","attribute","children","EnumDomain","evalue","enumDomainId","enumDefinitionId","BuyBoxSelector","configValue","hiddenAttributes","HiddenAttribute","faqLink","routes","faq","infoList","BuyBoxSelectorChildren","resetConfiguration","resetSearchParams","reload","toString","placeholder","min","max","parseInt","cartState","getCartState","_buyBoxSelectors$Mode","_buyBoxSelectors$Mode2","configarationValueXml","configarationXml","enumDomain","EnumValue","enumValue","displayName","displayValue","hiddenAttrValue","HiddenAttributeValue","hAttr","finalconfigarationValueXml","getUniqueId","uniqueId","hiddenAttr","operationXml","_buyBoxSelectors$Mode3","OperationLine","operation","Condition","constraintText","subPartXml","_buyBoxSelectors$Mode4","SubPart","finalConfigurationXml","_cartState$cart$CartL","_cartLines$ExtensionP","_cartLines$ExtensionP2","_cartLines$ExtensionP4","extensionProperties","insConfigValueXMl","configImage","backOrderExtensionProps","cartResult","addProductToCart","count","isPriceKeyedIn","validationResults","ErrorContext","cartLine","cartLines","cart","CartLines","_cartLines$ExtensionP3","updateCartLines","updatedCartLinesObject","refreshCart","disabled","hideEsimatedShipping","Description","colSpan","spec","TextValue","BuyBoxModal","imageFullUrl","PrimaryImageUrl","productPrice","productTitle","quantity","show","modalClose","closeModal","cartUrl","hiddenStyle","visibility","zIndex","display","visibleStyle","imageGridSettings","xs","w","h","lg","md","sm","xl","tabIndex","role","Msdyn","altText","gridSettings","itemProp","hideAttribute","a","b","MandatoryModifier","HiddenModifier","removeSearchParams","htmlFor","defaultValue","getSearchValue","required","info","RichTextComponent","text","URLSearchParams","search","paramKey","queryParams","delete","updatedSearch","newURL","pathname","history","pushState","path","returnValue","entries","set","console","binding","modules","dataActions","registerSanitizedActionPath","sanitizedActionPath","dataAction","prototype","RegistrationId","c","require","$type","da","runOn","iNM","ns","n","p","pdp","__bindings__","_objectSpread","viewDictionary","cn","BaseStoreSelectorStateManager","constructor","listMapViewState","displayList","displayMap","preferredStoreLocalStorageKey","this","isMapModuleLoaded","_readFromToCookie","storeInfo","parse","preferredStore","_unused","_context","input","storeId","selectedStoreLocationId","storeName","writeToCookie","arguments","StoreId","StoreName","Latitude","Longitude","_writeToCookie","latitude","longitude","lastInlineShownStoreInfo","_removeCookie","MsDyn365","localStorage","removeItem","setItem","cookieValue","getItem","__decorate","computed","observable","MapStoreSelectorStateManager","SERVICE_ENDPOINT","MAP_API_ENDPOINT","searchTerm","requestContext","channel","BingMapsApiKey","BingMapsEnabled","searchContent","jsonp","crypto","getRandomValues","Uint32Array","ChannelCountryRegionISOCode","trim","query","encodeURI","geolocationApiUrl","requestUrl","Promise","resolve","script","createElement","setAttribute","remove","resourceSets","resources","point","coordinates","body","appendChild","_document","StringExtensions","isNullOrEmpty","lang","market","reject","_document2","_document3","defer","mapAPIReady","isMapApiLoaded","addEventListener","error","createStoreSelectorStateInput","GenericInput","getGenericActionDataAction","createObservableDataAction","getGenericAction","inputData","_renderTextBlock","textBlocks","_renderSocialShare","socialShare","_renderCartAndActions","addToCart","addToOrderTemplate","addToWishlist","errorBlock","button","_renderConfigure","configure","ContainerProps","dropdowns","Node","Object","assign","_renderConfigureDropdown","dropdown","LabelContainerProps","heading","errors","select","_renderFindInStore","findInStore","storeSelector","description","modal","productPickupOptionList","onChangeHandler","callbacks","newValue","_renderQuantity","quantityComponent","state","extentionResources","quantityLimitsMessages","telemetryContent","IncrementalQuantity","currentCount","inputQuantityAriaLabel","decrementButtonAriaLabel","incrementButtonAriaLabel","minQuantityText","maxQuantityText","_renderKeyInPrice","keyInPrice","_renderShopSimilarItem","shopSimilarItem","ModuleProps","MediaGalleryContainerProps","ProductInfoContainerProps","inventoryLabel","shopSimilarLook","shopSimilarDescription","unitOfMeasure","Module","mediaGallery","bulkPurchaseLink","slots","generateAddToOrderTemplateDialogResources","addToOrderTemplateHeader","noOrderTemplatesMessage","noOrderTemplatesDescription","createAnOrderTemplateButtonText","createNewOrderTemplateButtonText","cancelOrderTemplateCreationButtonText","selectTemplatesText","addToTemplateButtonText","lineItemsText","generateOrderTemplateNameDialogResources","orderTemplateHeaderLabel","createOrderTemplateHeader","orderTemplateTitleLabel","orderTemplateTitle","orderTemplateNameAriaLabel","orderTemplateDescription","createOrderTemplateDescription","defaultOrderTemplateName","orderTemplateButtonLabel","createOrderTemplateButtonText","orderTemplateCancelButtonLabel","cancelNewOrderTemplateCreationButtonText","generateItemAddedToOrderTemplateDialogResources","viewOrderTemplateButtonText","continueShoppingButtonText","itemAddedToOrderTemplateHeaderItemOneText","itemAddedToOrderTemplateHeaderItemFormatText","itemAddedToOrderTemplateHeaderMessageText","freePriceText","priceFree","originalPriceText","currentPriceText","generateDuplicateItemsWhenAddingToOrderTemplateDialogResources","duplicatedProductsHeader","duplicatedProductsDescription","updateQuantityButtonText","cancelDuplicateItemsButtonText","onAddToOrderTemplateFailed","updateErrorState","errorHost","configureErrors","getConfigureErrors","missingDimensions","IsGiftCard","BuyBoxConstants","renderAddToOrderTemplate","orderTemplateButton","renderAddToOrderTemplateButton","typeName","orderTemplates","customerInformation","isMultipleCatalogsFeatureEnabled","isChannelMultipleCatalogsFeatureEnabled","AddToOrderTemplateComponent","addToOrderTemplateButtonText","addToOrderTemplateButtonTooltip","addToOrderTemplateDialogResources","createOrderTemplateDialogResources","itemAddedToOrderTemplateDialogResources","duplicateItemsWhenAddingToOrderTemplateDialogResources","shouldShowButtonFailedTooltip","isCustomPriceSelected","showButtonTooltip","showButtonText","imageSettings","isMultipleCatalogFeatureEnabledInHq","catalogId","currentCatalogId","onAddToWishlistFailed","renderAddToWishlist","enableWishlist","wishlistButton","renderAddtoWishlistButton","wishlists","AddToWishlistComponent","addToWishlistButtonText","removeFromWishlistButtonText","addToWishlistMessage","removedFromWishlistMessage","addItemToWishlistError","removeItemFromWishlistError","nameOfWishlist","ariaRole","getSelectedProduct","selectedProduct","renderShopSimilarItem","renderConfigureDropdown","_props$data$storeSele","_props$data$product$r3","productComparisonButton","appConfig","catalogs","skuText","preferredStoreInfo","storeSelectorStateManager","preferredStoreId","preferredStoreName","availability","setAvailability","isStoreChange","setIsStoreChange","getInventory","_props$data$product$r2","GetFullAvailableInventoryNearbyInput","zero","getFullAvailableInventoryNearby","response","ArrayExtensions","hasElements","_preferredStoreAvaila","isPreferredStore","_value$OrgUnitAvailab","OrgUnitAvailability","OrgUnitLocation","OrgUnitNumber","filteredFullOrgUnitAvailability","preferredStoreAvailability","stockStatusLabel","availabilityWithHours","ProductInventoryInformation","productInventoryInformation","_availabilityWithHour","InventoryLocationId","InventLocationId","StockLevelLabel","getStockInventoryLabel","resourceLabel","itemAvailabilities","ItemAvailabilities","enableStockCheck","AvailableQuantity","inStockText","outOfStockText","stockText","preferredStoreAvailabilityText","format","availabilityAtPreferredStoreText","displayStockAvailability","reaction","_props$data$storeSele2","priceText","renderConfigure","renderKeyInPrice","renderQuantity","renderAvailabilityAtPreferredStore","_props$data$product$r4","_props$data$product$r5","MasterProductId","tag","renderAddToCart","renderFindInStore","shopText","descriptionText","productSpecification","module","exports","ReactDOM"],"sourceRoot":""}