{"version":3,"file":"static/js/e609d8b7c8be679e61f9.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, resources } = 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 {/*

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

*/}\r\n

{data.product.result?.Description}

\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 {resources.writeReviewLabel}\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 updateQuantity('decrease')}\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 updateQuantity('increase')}\r\n >\r\n +\r\n \r\n
\r\n
\r\n\r\n \r\n {backOrder.isBackOrder ? backOrder.buttonLabel : resources.addToCartText}\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 \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}
    Description{data.product.result?.Description}
    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\nimport { IBuyboxResources } from '../../definition-extensions/buybox.ext.props.autogenerated';\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 resources: IBuyboxResources & IBuyboxResources;\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, resources } = props;\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {{resources.buyBoxMultiLineItemFormatText.replace('{0}', `${quantity}`)}}\r\n {resources.buyBoxHeaderMessageText}\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 {resources.buyBoxGoToCartText}\r\n \r\n \r\n {resources.buyBoxContinueShoppingText}\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:'cartConfiguration', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-cart-configuration', 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-cart-configuration';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-cart-configuration');\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 if (window) {\n const currentWindowAPI = window.mapAPIReady;\n window.mapAPIReady = () => {\n if (currentWindowAPI) {\n currentWindowAPI();\n }\n this.isMapApiLoaded = true;\n };\n }\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 min,\n max,\n applyDefaultOrderSettings,\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 &&\n _renderQuantity(\n quantity,\n callbacks,\n props,\n state,\n resources,\n quantityLimitsMessages,\n min,\n max,\n applyDefaultOrderSettings,\n telemetryContent\n )}\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 min: number | undefined,\n max: number | undefined,\n applyDefaultOrderSettings?: boolean,\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 min: number | undefined,\n max: number | undefined,\n applyDefaultOrderSettings?: boolean,\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 min,\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\n max,\n applyDefaultOrderSettings,\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 min,\n max,\n applyDefaultOrderSettings,\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","_data$product$result2","_config$customiseLink","_data$product$result3","_data$product$result4","_data$product$result5","_productSpecification","_data$product$result6","_data$product$result7","rating","config","resources","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","Description","id","label","platform","color","icon","title","width","height","writeReviewLabel","customiseLink","destinationUrl","rel","action","onChange","component","attribute","children","EnumDomain","evalue","enumDomainId","enumDefinitionId","BuyBoxSelector","configValue","hiddenAttributes","HiddenAttribute","faqLink","routes","faq","infoList","BuyBoxSelectorChildren","resetConfiguration","resetSearchParams","reload","decrementButtonAriaLabel","toString","parseInt","incrementButtonAriaLabel","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","addToCartText","hideEsimatedShipping","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","buyBoxMultiLineItemFormatText","buyBoxHeaderMessageText","Msdyn","altText","gridSettings","itemProp","buyBoxGoToCartText","buyBoxContinueShoppingText","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","isDialogOpen","_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","point","coordinates","body","appendChild","_document","StringExtensions","isNullOrEmpty","currentWindowAPI","mapAPIReady","isMapApiLoaded","lang","market","reject","_document2","_document3","defer","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","min","max","applyDefaultOrderSettings","telemetryContent","IncrementalQuantity","currentCount","inputQuantityAriaLabel","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":""}