{"version":3,"file":"static/js/32.2df12dbd6915ec19199c.chunk.js","mappings":"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","sources":["webpack://msdyn365.commerce.online/./src/Utilities/brand-code-parser.tsx?7ce1","webpack://msdyn365.commerce.online/./src/themes/blend/views/checkout.view.tsx?e433","webpack://msdyn365.commerce.online/./src/themes/blend/views/search.view.tsx?75dd","webpack://msdyn365.commerce.online/./src/themes/colsolare/views/checkout.view.tsx?47fb","webpack://msdyn365.commerce.online/./src/themes/colsolare/views/search.view.tsx?e776","webpack://msdyn365.commerce.online/./src/themes/columbiacrest/views/checkout.view.tsx?a201","webpack://msdyn365.commerce.online/./src/themes/columbiacrest/views/search.view.tsx?d65b","webpack://msdyn365.commerce.online/./src/themes/conn-creek/views/checkout.view.tsx?f556","webpack://msdyn365.commerce.online/./src/themes/conn-creek/views/search.view.tsx?cf9a","webpack://msdyn365.commerce.online/./src/themes/elicit/views/checkout.view.tsx?6341","webpack://msdyn365.commerce.online/./src/themes/elicit/views/search.view.tsx?af64","webpack://msdyn365.commerce.online/./src/themes/emp/views/checkout.view.tsx?36c1","webpack://msdyn365.commerce.online/./src/themes/emp/views/search.view.tsx?f1a4","webpack://msdyn365.commerce.online/./src/themes/enoteca/views/checkout.view.tsx?67e3","webpack://msdyn365.commerce.online/./src/themes/enoteca/views/search.view.tsx?9c84","webpack://msdyn365.commerce.online/./src/themes/erath/views/checkout.view.tsx?528a","webpack://msdyn365.commerce.online/./src/themes/erath/views/search.view.tsx?f581","webpack://msdyn365.commerce.online/./src/themes/fth/views/search.view.tsx?4cac","webpack://msdyn365.commerce.online/./src/themes/generazioni/views/checkout.view.tsx?846b","webpack://msdyn365.commerce.online/./src/themes/generazioni/views/search.view.tsx?6dfe","webpack://msdyn365.commerce.online/./src/themes/intrinsic-wine-co/views/checkout.view.tsx?c362","webpack://msdyn365.commerce.online/./src/themes/intrinsic-wine-co/views/search.view.tsx?fb27","webpack://msdyn365.commerce.online/./src/themes/north-star/views/checkout.view.tsx?c12e","webpack://msdyn365.commerce.online/./src/themes/north-star/views/search.view.tsx?6201","webpack://msdyn365.commerce.online/./src/themes/patzhall/views/checkout.view.tsx?192e","webpack://msdyn365.commerce.online/./src/themes/patzhall/views/search.view.tsx?93d2","webpack://msdyn365.commerce.online/./src/themes/spring-valley-vineyard/views/checkout.view.tsx?477b","webpack://msdyn365.commerce.online/./src/themes/spring-valley-vineyard/views/search.view.tsx?5fec","webpack://msdyn365.commerce.online/./src/themes/stagsleap/views/checkout.view.tsx?817f","webpack://msdyn365.commerce.online/./src/themes/stagsleap/views/search.view.tsx?2a3f","webpack://msdyn365.commerce.online/./src/themes/stemichelle-new/views/search.view.tsx?bd72","webpack://msdyn365.commerce.online/./src/themes/stemichelle/views/checkout.view.tsx?1d5e","webpack://msdyn365.commerce.online/./src/themes/stemichelle/views/search.view.tsx?e690","webpack://msdyn365.commerce.online/./src/themes/wine-estates/views/search.view.tsx?169f","webpack://msdyn365.commerce.online/./src/modules/msdyn365-pva-chat-connector/msdyn365-pva-chat-connector.tsx?797a","webpack://msdyn365.commerce.online/./node_modules/@msdyn365-commerce-modules/chat/node_modules/uuid/dist/esm-browser/rng.js?7d39","webpack://msdyn365.commerce.online/./node_modules/@msdyn365-commerce-modules/chat/node_modules/uuid/dist/esm-browser/regex.js?255d","webpack://msdyn365.commerce.online/./node_modules/@msdyn365-commerce-modules/chat/node_modules/uuid/dist/esm-browser/validate.js?f4cd","webpack://msdyn365.commerce.online/./node_modules/@msdyn365-commerce-modules/chat/node_modules/uuid/dist/esm-browser/stringify.js?688d","webpack://msdyn365.commerce.online/./node_modules/@msdyn365-commerce-modules/chat/node_modules/uuid/dist/esm-browser/v4.js?0bec","webpack://msdyn365.commerce.online/./src/modules/msdyn365-pva-chat-connector/proactive/triggers/proactive-chat-trigger.ts?ab51","webpack://msdyn365.commerce.online/./src/modules/msdyn365-pva-chat-connector/proactive/triggers/cart-amount-trigger.ts?b0a3","webpack://msdyn365.commerce.online/./src/modules/msdyn365-pva-chat-connector/proactive/triggers/cart-number-of-items-trigger.ts?5c1e","webpack://msdyn365.commerce.online/./src/modules/msdyn365-pva-chat-connector/proactive/triggers/cart-specific-product-trigger.ts?5985","webpack://msdyn365.commerce.online/./src/modules/msdyn365-pva-chat-connector/helpers/consts.ts?4dc3","webpack://msdyn365.commerce.online/./src/modules/msdyn365-pva-chat-connector/proactive/triggers/date-range-trigger.ts?d574","webpack://msdyn365.commerce.online/./src/modules/msdyn365-pva-chat-connector/proactive/triggers/from-specific-page-trigger.ts?37c0","webpack://msdyn365.commerce.online/./src/modules/msdyn365-pva-chat-connector/proactive/triggers/page-visits-trigger.ts?66a6","webpack://msdyn365.commerce.online/./src/modules/msdyn365-pva-chat-connector/proactive/triggers/specific-CountryRegion-trigger.ts?5c72","webpack://msdyn365.commerce.online/./src/modules/msdyn365-pva-chat-connector/proactive/triggers/specific-page-trigger.ts?9295","webpack://msdyn365.commerce.online/./src/modules/msdyn365-pva-chat-connector/proactive/triggers/wait-on-time-trigger.ts?63fd","webpack://msdyn365.commerce.online/./src/modules/msdyn365-pva-chat-connector/proactive/index.ts?ef6c","webpack://msdyn365.commerce.online/./src/modules/msdyn365-pva-chat-connector/helpers/ContextProvider.ts?20ff","webpack://msdyn365.commerce.online/./src/modules/msdyn365-pva-chat-connector/helpers/StyleComposers.ts?0cc6","webpack://msdyn365.commerce.online/./src/modules/msdyn365-pva-chat-connector/helpers/CommerceChatStore.ts?9abc","webpack://msdyn365.commerce.online/./src/modules/msdyn365-pva-chat-connector/components/ChatCore.tsx?1b5f","webpack://msdyn365.commerce.online/./src/modules/msdyn365-pva-chat-connector/components/Chat.tsx?5004","webpack://msdyn365.commerce.online/./src/modules/msdyn365-pva-chat-connector/msdyn365-pva-chat-connector.view.tsx?cb2f","webpack://msdyn365.commerce.online/./src/modules/distributor-selector/components/distributor-selector-small-components.tsx?a27a","webpack://msdyn365.commerce.online/./src/modules/distributor-selector/components/distributor-selector-line-item.components.tsx?0d4f","webpack://msdyn365.commerce.online/./src/modules/distributor-selector/components/distributor-selector-lines.tsx?3695","webpack://msdyn365.commerce.online/./src/modules/distributor-selector/components/distributor-payment-option-list.tsx?d919","webpack://msdyn365.commerce.online/./src/modules/distributor-selector/components/distributor-selector-search-form.tsx?6f95","webpack://msdyn365.commerce.online/./src/modules/distributor-selector/distributor-selector.tsx?f21b","webpack://msdyn365.commerce.online/./src/modules/distributor-selector/distributor-selector.view.tsx?0f28"],"sourcesContent":["import { ICoreContext } from '@msdyn365-commerce/core-internal';\r\ninterface IBrandCodeProps {\r\n description?: string;\r\n appContext: ICoreContext<{\r\n // any is just matching the types here.\r\n // tslint:disable-next-line: no-any\r\n [x: string]: any;\r\n }>;\r\n}\r\n\r\ntype BrandCodeTable = {\r\n brandName: string;\r\n brandCode: string;\r\n}[];\r\n\r\n/**\r\n * for converting a brand code to a brand name\r\n *\r\n */\r\nexport function brandCodeParser({ description, appContext }: IBrandCodeProps): string {\r\n\r\n // for mocking\r\n // const brandCodeTable: BrandCodeTable = [{ brandName: '14Hands', brandCode: 'FTH' }];\r\n\r\n const brandCodeTable = appContext.app.config.brandCodeTable as BrandCodeTable;\r\n\r\n // this is a safety check to ensure that brand code table does NOT crash in local or\r\n // if brand code table is somehow not connecting right to the global config. it will\r\n // essentially act as if there are no brand codes declared - keeping how everything\r\n // looks originally\r\n if (!brandCodeTable) { return ''; }\r\n\r\n // a brand code may and may only appear in the first three characters of a string\r\n // we are lowercasing in the off-chance that the authors type them differently between\r\n // the sources\r\n const currentBrandCode = description && description.slice(0, 3).toLowerCase();\r\n const brandFound = brandCodeTable.find(brand => brand.brandCode.toLowerCase() === currentBrandCode);\r\n if (brandFound) { return brandFound.brandName; }\r\n return '';\r\n}","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { ICheckoutData, ICheckoutViewProps, ILineItem, ILineItemDeliveryGroup, ILineItems, IOrderSummary, IPickUpAtStore } from '@msdyn365-commerce-modules/checkout';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport { ICoreContext } from '@msdyn365-commerce/core-internal';\r\nimport { CartLine } from '@msdyn365-commerce/retail-proxy';\r\nimport * as React from 'react';\r\nimport { brandCodeParser } from '../../../Utilities/brand-code-parser';\r\n\r\nexport const PickUpAtStoreComponent: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const LineItemComponent: React.FC<{ line: ILineItem; cartItem?: CartLine; context: ICoreContext }> = ({ line: { LineItem, item, pickUpAtStore }, cartItem, context }) => {\r\n let brandCode: string = '';\r\n if (cartItem) {\r\n brandCode = brandCodeParser({ description: cartItem.Description, appContext: context });\r\n }\r\n return (\r\n \r\n {brandCode &&
{brandCode}
}\r\n {item}\r\n {pickUpAtStore && }\r\n
\r\n );\r\n};\r\n\r\nexport const LineItemGroupComponent: React.FC<{ group: ILineItemDeliveryGroup; data: ICheckoutData; context: ICoreContext }> = ({ group: { LineItemDeliveryGroup, LineItemList, heading, lineItems }, data, context }) => (\r\n \r\n {heading}\r\n \r\n {lineItems.map(lineItem => {\r\n // get the item and send it to the component\r\n const item = data.checkout.result?.checkoutCart.cart.CartLines?.find(cartItem => cartItem.LineId === lineItem.LineId);\r\n return (\r\n \r\n );\r\n })}\r\n \r\n \r\n);\r\n\r\nexport const LineItemsComponent: React.FC<{ lineItems: ILineItems; data: ICheckoutData; context: ICoreContext }> = ({ lineItems: { LineItems, Header, heading, editLink, itemsForPickup, itemsForShip }, data, context }) => (\r\n \r\n \r\n {heading}\r\n {editLink}\r\n \r\n {itemsForPickup && }\r\n {itemsForShip && }\r\n \r\n);\r\n\r\nconst OrderSummaryComponent: React.FC = ({ heading, lines }) => (\r\n
\r\n {heading}\r\n
\r\n {lines && (\r\n <>\r\n {lines.subtotal}\r\n {lines.shipping}\r\n {lines.tax}\r\n {lines.totalDiscounts}\r\n {lines.loyalty}\r\n {lines.giftCard}\r\n {lines.orderTotal}\r\n \r\n )}\r\n
\r\n
\r\n);\r\n\r\nconst CheckoutView: React.FC = props => {\r\n const {\r\n canShow,\r\n checkoutProps,\r\n mainProps,\r\n mainControlProps,\r\n sideProps,\r\n loading,\r\n alert,\r\n guidedForm,\r\n orderSummary,\r\n lineItems,\r\n placeOrderButton,\r\n data,\r\n context\r\n } = props;\r\n return (\r\n \r\n {loading}\r\n {alert}\r\n {canShow && (\r\n <>\r\n \r\n {guidedForm}\r\n \r\n {placeOrderButton}\r\n \r\n \r\n \r\n {orderSummary && }\r\n {lineItems && }\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps } from '@msdyn365-commerce-modules/search/src/modules/search/./components';\r\nimport { ISearchViewProps } from '@msdyn365-commerce-modules/search/src/modules/search/./search';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n \r\n {_renderForm(form as ISearchFormViewProps, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n {form.submitBtn}\r\n
\r\n
\r\n {form.input}\r\n
\r\n {form.cancelBtn}\r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price}\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport {\r\n ICheckoutViewProps,\r\n ILineItem,\r\n ILineItemDeliveryGroup,\r\n ILineItems,\r\n IOrderSummary,\r\n IPickUpAtStore\r\n} from '@msdyn365-commerce-modules/checkout/dist/types';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport const PickUpAtStoreComponent: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const LineItemComponent: React.FC = ({ LineItem, item, pickUpAtStore }) => (\r\n \r\n {item}\r\n {pickUpAtStore && }\r\n \r\n);\r\n\r\nexport const LineItemGroupComponent: React.FC = ({ LineItemDeliveryGroup, LineItemList, heading, lineItems }) => (\r\n \r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemsComponent: React.FC = ({ LineItems, Header, heading, editLink, itemsForPickup, itemsForShip }) => (\r\n \r\n \r\n {heading}\r\n {editLink}\r\n \r\n {itemsForPickup && }\r\n {itemsForShip && }\r\n \r\n);\r\n\r\nconst OrderSummaryComponent: React.FC = ({ heading, lines }) => (\r\n\r\n
\r\n {heading}\r\n
\r\n {lines && (\r\n <>\r\n {lines.subtotal}\r\n {lines.shipping}\r\n {lines.tax}\r\n {lines.totalDiscounts}\r\n {lines.loyalty}\r\n {lines.giftCard}\r\n {lines.orderTotal}\r\n \r\n )}\r\n
\r\n
\r\n);\r\n\r\nconst CheckoutView: React.FC = props => {\r\n const {\r\n canShow,\r\n checkoutProps,\r\n headerProps,\r\n bodyProps,\r\n mainProps,\r\n mainControlProps,\r\n sideProps,\r\n sideControlFirstProps,\r\n sideControlSecondProps,\r\n loading,\r\n alert,\r\n title,\r\n guidedForm,\r\n orderSummary,\r\n lineItems,\r\n placeOrderButton,\r\n keepShoppingButton\r\n } = props;\r\n\r\n return (\r\n \r\n {title}\r\n \r\n {loading}\r\n {alert}\r\n {canShow && (\r\n <>\r\n \r\n {guidedForm}\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n {orderSummary && }\r\n \r\n {/* {placeOrderButton}\r\n {keepShoppingButton} */}\r\n \r\n {lineItems && }\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CheckoutView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport {\r\n ICheckoutViewProps,\r\n ILineItem,\r\n ILineItemDeliveryGroup,\r\n ILineItems,\r\n IOrderSummary,\r\n IPickUpAtStore\r\n} from '@msdyn365-commerce-modules/checkout/dist/types';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport const PickUpAtStoreComponent: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const LineItemComponent: React.FC = ({ LineItem, item, pickUpAtStore }) => (\r\n \r\n {item}\r\n {pickUpAtStore && }\r\n \r\n);\r\n\r\nexport const LineItemGroupComponent: React.FC = ({ LineItemDeliveryGroup, LineItemList, heading, lineItems }) => (\r\n \r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemsComponent: React.FC = ({ LineItems, Header, heading, editLink, itemsForPickup, itemsForShip }) => (\r\n \r\n \r\n {heading}\r\n {editLink}\r\n \r\n {itemsForPickup && }\r\n {itemsForShip && }\r\n \r\n);\r\n\r\nconst OrderSummaryComponent: React.FC = ({ heading, lines }) => (\r\n\r\n
\r\n {heading}\r\n
\r\n {lines && (\r\n <>\r\n {lines.subtotal}\r\n {lines.shipping}\r\n {lines.tax}\r\n {lines.totalDiscounts}\r\n {lines.loyalty}\r\n {lines.giftCard}\r\n {lines.orderTotal}\r\n \r\n )}\r\n
\r\n
\r\n);\r\n\r\nconst CheckoutView: React.FC = props => {\r\n const {\r\n canShow,\r\n checkoutProps,\r\n headerProps,\r\n bodyProps,\r\n mainProps,\r\n mainControlProps,\r\n sideProps,\r\n sideControlFirstProps,\r\n sideControlSecondProps,\r\n loading,\r\n alert,\r\n title,\r\n guidedForm,\r\n orderSummary,\r\n lineItems,\r\n placeOrderButton,\r\n keepShoppingButton\r\n } = props;\r\n\r\n return (\r\n \r\n {title}\r\n \r\n {loading}\r\n {alert}\r\n {canShow && (\r\n <>\r\n \r\n {guidedForm}\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n {orderSummary && }\r\n \r\n {/* {placeOrderButton}\r\n {keepShoppingButton} */}\r\n \r\n {lineItems && }\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CheckoutView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport {\r\n ICheckoutViewProps,\r\n ILineItem,\r\n ILineItemDeliveryGroup,\r\n ILineItems,\r\n IOrderSummary,\r\n IPickUpAtStore\r\n} from '@msdyn365-commerce-modules/checkout/dist/types';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport const PickUpAtStoreComponent: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const LineItemComponent: React.FC = ({ LineItem, item, pickUpAtStore }) => (\r\n \r\n {item}\r\n {pickUpAtStore && }\r\n \r\n);\r\n\r\nexport const LineItemGroupComponent: React.FC = ({ LineItemDeliveryGroup, LineItemList, heading, lineItems }) => (\r\n \r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemsComponent: React.FC = ({ LineItems, Header, heading, editLink, itemsForPickup, itemsForShip }) => (\r\n \r\n \r\n {heading}\r\n {editLink}\r\n \r\n {itemsForPickup && }\r\n {itemsForShip && }\r\n \r\n);\r\n\r\nconst OrderSummaryComponent: React.FC = ({ heading, lines }) => (\r\n\r\n
\r\n {heading}\r\n
\r\n {lines && (\r\n <>\r\n {lines.subtotal}\r\n {lines.shipping}\r\n {lines.tax}\r\n {lines.totalDiscounts}\r\n {lines.loyalty}\r\n {lines.giftCard}\r\n {lines.orderTotal}\r\n \r\n )}\r\n
\r\n
\r\n);\r\n\r\nconst CheckoutView: React.FC = props => {\r\n const {\r\n canShow,\r\n checkoutProps,\r\n headerProps,\r\n bodyProps,\r\n mainProps,\r\n mainControlProps,\r\n sideProps,\r\n sideControlFirstProps,\r\n sideControlSecondProps,\r\n loading,\r\n alert,\r\n title,\r\n guidedForm,\r\n orderSummary,\r\n lineItems,\r\n placeOrderButton,\r\n keepShoppingButton\r\n } = props;\r\n\r\n return (\r\n \r\n {title}\r\n \r\n {loading}\r\n {alert}\r\n {canShow && (\r\n <>\r\n \r\n {guidedForm}\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n {orderSummary && }\r\n \r\n {/* {placeOrderButton}\r\n {keepShoppingButton} */}\r\n \r\n {lineItems && }\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CheckoutView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { ICheckoutData, ICheckoutViewProps, ILineItem, ILineItemDeliveryGroup, ILineItems, IOrderSummary, IPickUpAtStore } from '@msdyn365-commerce-modules/checkout';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport { ICoreContext } from '@msdyn365-commerce/core-internal';\r\nimport { CartLine } from '@msdyn365-commerce/retail-proxy';\r\nimport * as React from 'react';\r\nimport { brandCodeParser } from '../../../Utilities/brand-code-parser';\r\n\r\nexport const PickUpAtStoreComponent: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const LineItemComponent: React.FC<{ line: ILineItem; cartItem?: CartLine; context: ICoreContext }> = ({ line: { LineItem, item, pickUpAtStore }, cartItem, context }) => {\r\n let brandCode: string = '';\r\n if (cartItem) {\r\n brandCode = brandCodeParser({ description: cartItem.Description, appContext: context });\r\n }\r\n return (\r\n \r\n {brandCode &&
{brandCode}
}\r\n {item}\r\n {pickUpAtStore && }\r\n
\r\n );\r\n};\r\n\r\nexport const LineItemGroupComponent: React.FC<{ group: ILineItemDeliveryGroup; data: ICheckoutData; context: ICoreContext }> = ({ group: { LineItemDeliveryGroup, LineItemList, heading, lineItems }, data, context }) => (\r\n \r\n {heading}\r\n \r\n {lineItems.map(lineItem => {\r\n // get the item and send it to the component\r\n const item = data.checkout.result?.checkoutCart.cart.CartLines?.find(cartItem => cartItem.LineId === lineItem.LineId);\r\n return (\r\n \r\n );\r\n })}\r\n \r\n \r\n);\r\n\r\nexport const LineItemsComponent: React.FC<{ lineItems: ILineItems; data: ICheckoutData; context: ICoreContext }> = ({ lineItems: { LineItems, Header, heading, editLink, itemsForPickup, itemsForShip }, data, context }) => (\r\n \r\n \r\n {heading}\r\n {editLink}\r\n \r\n {itemsForPickup && }\r\n {itemsForShip && }\r\n \r\n);\r\n\r\nconst OrderSummaryComponent: React.FC = ({ heading, lines }) => (\r\n
\r\n {heading}\r\n
\r\n {lines && (\r\n <>\r\n {lines.subtotal}\r\n {lines.shipping}\r\n {lines.tax}\r\n {lines.totalDiscounts}\r\n {lines.loyalty}\r\n {lines.giftCard}\r\n {lines.orderTotal}\r\n \r\n )}\r\n
\r\n
\r\n);\r\n\r\nconst CheckoutView: React.FC = props => {\r\n const {\r\n canShow,\r\n checkoutProps,\r\n mainProps,\r\n mainControlProps,\r\n sideProps,\r\n loading,\r\n alert,\r\n guidedForm,\r\n orderSummary,\r\n lineItems,\r\n placeOrderButton,\r\n data,\r\n context\r\n } = props;\r\n return (\r\n \r\n {loading}\r\n {alert}\r\n {canShow && (\r\n <>\r\n \r\n {guidedForm}\r\n \r\n {placeOrderButton}\r\n \r\n \r\n \r\n {orderSummary && }\r\n {lineItems && }\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { ICheckoutData, ICheckoutViewProps, ILineItem, ILineItemDeliveryGroup, ILineItems, IOrderSummary, IPickUpAtStore } from '@msdyn365-commerce-modules/checkout';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport { ICoreContext } from '@msdyn365-commerce/core-internal';\r\nimport { CartLine } from '@msdyn365-commerce/retail-proxy';\r\nimport * as React from 'react';\r\nimport { brandCodeParser } from '../../../Utilities/brand-code-parser';\r\n\r\nexport const PickUpAtStoreComponent: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const LineItemComponent: React.FC<{ line: ILineItem; cartItem?: CartLine; context: ICoreContext }> = ({ line: { LineItem, item, pickUpAtStore }, cartItem, context }) => {\r\n let brandCode: string = '';\r\n if (cartItem) {\r\n brandCode = brandCodeParser({ description: cartItem.Description, appContext: context });\r\n }\r\n return (\r\n \r\n {brandCode &&
{brandCode}
}\r\n {item}\r\n {pickUpAtStore && }\r\n
\r\n );\r\n};\r\n\r\nexport const LineItemGroupComponent: React.FC<{ group: ILineItemDeliveryGroup; data: ICheckoutData; context: ICoreContext }> = ({ group: { LineItemDeliveryGroup, LineItemList, heading, lineItems }, data, context }) => (\r\n \r\n {heading}\r\n \r\n {lineItems.map(lineItem => {\r\n // get the item and send it to the component\r\n const item = data.checkout.result?.checkoutCart.cart.CartLines?.find(cartItem => cartItem.LineId === lineItem.LineId);\r\n return (\r\n \r\n );\r\n })}\r\n \r\n \r\n);\r\n\r\nexport const LineItemsComponent: React.FC<{ lineItems: ILineItems; data: ICheckoutData; context: ICoreContext }> = ({ lineItems: { LineItems, Header, heading, editLink, itemsForPickup, itemsForShip }, data, context }) => (\r\n \r\n \r\n {heading}\r\n {editLink}\r\n \r\n {itemsForPickup && }\r\n {itemsForShip && }\r\n \r\n);\r\n\r\nconst OrderSummaryComponent: React.FC = ({ heading, lines }) => (\r\n
\r\n {heading}\r\n
\r\n {lines && (\r\n <>\r\n {lines.subtotal}\r\n {lines.shipping}\r\n {lines.tax}\r\n {lines.totalDiscounts}\r\n {lines.loyalty}\r\n {lines.giftCard}\r\n {lines.orderTotal}\r\n \r\n )}\r\n
\r\n
\r\n);\r\n\r\nconst CheckoutView: React.FC = props => {\r\n const {\r\n canShow,\r\n checkoutProps,\r\n headerProps,\r\n bodyProps,\r\n mainProps,\r\n mainControlProps,\r\n sideProps,\r\n sideControlFirstProps,\r\n sideControlSecondProps,\r\n loading,\r\n alert,\r\n title,\r\n guidedForm,\r\n orderSummary,\r\n lineItems,\r\n placeOrderButton,\r\n keepShoppingButton,\r\n data,\r\n context\r\n } = props;\r\n return (\r\n \r\n {title}\r\n \r\n {loading}\r\n {alert}\r\n {canShow && (\r\n <>\r\n \r\n {guidedForm}\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n {orderSummary && }\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n {lineItems && }\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CheckoutView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport {\r\n ICheckoutViewProps,\r\n ILineItem,\r\n ILineItemDeliveryGroup,\r\n ILineItems,\r\n IOrderSummary,\r\n IPickUpAtStore\r\n} from '@msdyn365-commerce-modules/checkout/dist/types';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport const PickUpAtStoreComponent: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const LineItemComponent: React.FC = ({ LineItem, item, pickUpAtStore }) => (\r\n \r\n {item}\r\n {pickUpAtStore && }\r\n \r\n);\r\n\r\nexport const LineItemGroupComponent: React.FC = ({ LineItemDeliveryGroup, LineItemList, heading, lineItems }) => (\r\n \r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemsComponent: React.FC = ({ LineItems, Header, heading, editLink, itemsForPickup, itemsForShip }) => (\r\n \r\n \r\n {heading}\r\n {editLink}\r\n \r\n {itemsForPickup && }\r\n {itemsForShip && }\r\n \r\n);\r\n\r\nconst OrderSummaryComponent: React.FC = ({ heading, lines }) => (\r\n\r\n
\r\n {heading}\r\n
\r\n {lines && (\r\n <>\r\n {lines.subtotal}\r\n {lines.shipping}\r\n {lines.tax}\r\n {lines.totalDiscounts}\r\n {lines.loyalty}\r\n {lines.giftCard}\r\n {lines.orderTotal}\r\n \r\n )}\r\n
\r\n
\r\n);\r\n\r\nconst CheckoutView: React.FC = props => {\r\n const {\r\n canShow,\r\n checkoutProps,\r\n headerProps,\r\n bodyProps,\r\n mainProps,\r\n mainControlProps,\r\n sideProps,\r\n sideControlFirstProps,\r\n sideControlSecondProps,\r\n loading,\r\n alert,\r\n title,\r\n guidedForm,\r\n orderSummary,\r\n lineItems,\r\n placeOrderButton,\r\n keepShoppingButton\r\n } = props;\r\n\r\n return (\r\n \r\n {title}\r\n \r\n {loading}\r\n {alert}\r\n {canShow && (\r\n <>\r\n \r\n {guidedForm}\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n {orderSummary && }\r\n \r\n {/* {placeOrderButton}\r\n {keepShoppingButton} */}\r\n \r\n {lineItems && }\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CheckoutView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport {\r\n ICheckoutViewProps,\r\n ILineItem,\r\n ILineItemDeliveryGroup,\r\n ILineItems,\r\n IOrderSummary,\r\n IPickUpAtStore\r\n} from '@msdyn365-commerce-modules/checkout/dist/types';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport const PickUpAtStoreComponent: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const LineItemComponent: React.FC = ({ LineItem, item, pickUpAtStore }) => (\r\n \r\n {item}\r\n {pickUpAtStore && }\r\n \r\n);\r\n\r\nexport const LineItemGroupComponent: React.FC = ({ LineItemDeliveryGroup, LineItemList, heading, lineItems }) => (\r\n \r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemsComponent: React.FC = ({ LineItems, Header, heading, editLink, itemsForPickup, itemsForShip }) => (\r\n \r\n \r\n {heading}\r\n {editLink}\r\n \r\n {itemsForPickup && }\r\n {itemsForShip && }\r\n \r\n);\r\n\r\nconst OrderSummaryComponent: React.FC = ({ heading, lines }) => (\r\n\r\n
\r\n {heading}\r\n
\r\n {lines && (\r\n <>\r\n {lines.subtotal}\r\n {lines.shipping}\r\n {lines.tax}\r\n {lines.totalDiscounts}\r\n {lines.loyalty}\r\n {lines.giftCard}\r\n {lines.orderTotal}\r\n \r\n )}\r\n
\r\n
\r\n);\r\n\r\nconst CheckoutView: React.FC = props => {\r\n const {\r\n canShow,\r\n checkoutProps,\r\n headerProps,\r\n bodyProps,\r\n mainProps,\r\n mainControlProps,\r\n sideProps,\r\n sideControlFirstProps,\r\n sideControlSecondProps,\r\n loading,\r\n alert,\r\n title,\r\n guidedForm,\r\n orderSummary,\r\n lineItems,\r\n placeOrderButton,\r\n keepShoppingButton\r\n } = props;\r\n\r\n return (\r\n \r\n {title}\r\n \r\n {loading}\r\n {alert}\r\n {canShow && (\r\n <>\r\n \r\n {guidedForm}\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n {orderSummary && }\r\n \r\n {/* {placeOrderButton}\r\n {keepShoppingButton} */}\r\n \r\n {lineItems && }\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CheckoutView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps } from '@msdyn365-commerce-modules/search/src/modules/search/./components';\r\nimport { ISearchViewProps } from '@msdyn365-commerce-modules/search/src/modules/search/./search';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n \r\n {_renderForm(form as ISearchFormViewProps, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n {form.submitBtn}\r\n
\r\n
\r\n {form.input}\r\n
\r\n {form.cancelBtn}\r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price}\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport {\r\n ICheckoutViewProps,\r\n ILineItem,\r\n ILineItemDeliveryGroup,\r\n ILineItems,\r\n IOrderSummary,\r\n IPickUpAtStore\r\n} from '@msdyn365-commerce-modules/checkout/dist/types';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport const PickUpAtStoreComponent: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const LineItemComponent: React.FC = ({ LineItem, item, pickUpAtStore }) => (\r\n \r\n {item}\r\n {pickUpAtStore && }\r\n \r\n);\r\n\r\nexport const LineItemGroupComponent: React.FC = ({ LineItemDeliveryGroup, LineItemList, heading, lineItems }) => (\r\n \r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemsComponent: React.FC = ({ LineItems, Header, heading, editLink, itemsForPickup, itemsForShip }) => (\r\n \r\n \r\n {heading}\r\n {editLink}\r\n \r\n {itemsForPickup && }\r\n {itemsForShip && }\r\n \r\n);\r\n\r\nconst OrderSummaryComponent: React.FC = ({ heading, lines }) => (\r\n\r\n
\r\n {heading}\r\n
\r\n {lines && (\r\n <>\r\n {lines.subtotal}\r\n {lines.shipping}\r\n {lines.tax}\r\n {lines.totalDiscounts}\r\n {lines.loyalty}\r\n {lines.giftCard}\r\n {lines.orderTotal}\r\n \r\n )}\r\n
\r\n
\r\n);\r\n\r\nconst CheckoutView: React.FC = props => {\r\n const {\r\n canShow,\r\n checkoutProps,\r\n headerProps,\r\n bodyProps,\r\n mainProps,\r\n mainControlProps,\r\n sideProps,\r\n sideControlFirstProps,\r\n sideControlSecondProps,\r\n loading,\r\n alert,\r\n title,\r\n guidedForm,\r\n orderSummary,\r\n lineItems,\r\n placeOrderButton,\r\n keepShoppingButton\r\n } = props;\r\n\r\n return (\r\n \r\n {title}\r\n \r\n {loading}\r\n {alert}\r\n {canShow && (\r\n <>\r\n \r\n {guidedForm}\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n {orderSummary && }\r\n \r\n {/* {placeOrderButton}\r\n {keepShoppingButton} */}\r\n \r\n {lineItems && }\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CheckoutView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport {\r\n ICheckoutViewProps,\r\n ILineItem,\r\n ILineItemDeliveryGroup,\r\n ILineItems,\r\n IOrderSummary,\r\n IPickUpAtStore\r\n} from '@msdyn365-commerce-modules/checkout/dist/types';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport const PickUpAtStoreComponent: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const LineItemComponent: React.FC = ({ LineItem, item, pickUpAtStore }) => (\r\n \r\n {item}\r\n {pickUpAtStore && }\r\n \r\n);\r\n\r\nexport const LineItemGroupComponent: React.FC = ({ LineItemDeliveryGroup, LineItemList, heading, lineItems }) => (\r\n \r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemsComponent: React.FC = ({ LineItems, Header, heading, editLink, itemsForPickup, itemsForShip }) => (\r\n \r\n \r\n {heading}\r\n {editLink}\r\n \r\n {itemsForPickup && }\r\n {itemsForShip && }\r\n \r\n);\r\n\r\nconst OrderSummaryComponent: React.FC = ({ heading, lines }) => (\r\n\r\n
\r\n {heading}\r\n
\r\n {lines && (\r\n <>\r\n {lines.subtotal}\r\n {lines.shipping}\r\n {lines.tax}\r\n {lines.totalDiscounts}\r\n {lines.loyalty}\r\n {lines.giftCard}\r\n {lines.orderTotal}\r\n \r\n )}\r\n
\r\n
\r\n);\r\n\r\nconst CheckoutView: React.FC = props => {\r\n const {\r\n canShow,\r\n checkoutProps,\r\n headerProps,\r\n bodyProps,\r\n mainProps,\r\n mainControlProps,\r\n sideProps,\r\n sideControlFirstProps,\r\n sideControlSecondProps,\r\n loading,\r\n alert,\r\n title,\r\n guidedForm,\r\n orderSummary,\r\n lineItems,\r\n placeOrderButton,\r\n keepShoppingButton\r\n } = props;\r\n\r\n return (\r\n \r\n {title}\r\n \r\n {loading}\r\n {alert}\r\n {canShow && (\r\n <>\r\n \r\n {guidedForm}\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n {orderSummary && }\r\n \r\n {/* {placeOrderButton}\r\n {keepShoppingButton} */}\r\n \r\n {lineItems && }\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CheckoutView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport {\r\n ICheckoutViewProps,\r\n ILineItem,\r\n ILineItemDeliveryGroup,\r\n ILineItems,\r\n IOrderSummary,\r\n IPickUpAtStore\r\n} from '@msdyn365-commerce-modules/checkout/dist/types';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport const PickUpAtStoreComponent: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const LineItemComponent: React.FC = ({ LineItem, item, pickUpAtStore }) => (\r\n \r\n {item}\r\n {pickUpAtStore && }\r\n \r\n);\r\n\r\nexport const LineItemGroupComponent: React.FC = ({ LineItemDeliveryGroup, LineItemList, heading, lineItems }) => (\r\n \r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemsComponent: React.FC = ({ LineItems, Header, heading, editLink, itemsForPickup, itemsForShip }) => (\r\n \r\n \r\n {heading}\r\n {editLink}\r\n \r\n {itemsForPickup && }\r\n {itemsForShip && }\r\n \r\n);\r\n\r\nconst OrderSummaryComponent: React.FC = ({ heading, lines }) => (\r\n\r\n
\r\n {heading}\r\n
\r\n {lines && (\r\n <>\r\n {lines.subtotal}\r\n {lines.shipping}\r\n {lines.tax}\r\n {lines.totalDiscounts}\r\n {lines.loyalty}\r\n {lines.giftCard}\r\n {lines.orderTotal}\r\n \r\n )}\r\n
\r\n
\r\n);\r\n\r\nconst CheckoutView: React.FC = props => {\r\n const {\r\n canShow,\r\n checkoutProps,\r\n headerProps,\r\n bodyProps,\r\n mainProps,\r\n mainControlProps,\r\n sideProps,\r\n sideControlFirstProps,\r\n sideControlSecondProps,\r\n loading,\r\n alert,\r\n title,\r\n guidedForm,\r\n orderSummary,\r\n lineItems,\r\n placeOrderButton,\r\n keepShoppingButton\r\n } = props;\r\n\r\n return (\r\n \r\n {title}\r\n \r\n {loading}\r\n {alert}\r\n {canShow && (\r\n <>\r\n \r\n {guidedForm}\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n {orderSummary && }\r\n \r\n {/* {placeOrderButton}\r\n {keepShoppingButton} */}\r\n \r\n {lineItems && }\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CheckoutView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport {\r\n ICheckoutViewProps,\r\n ILineItem,\r\n ILineItemDeliveryGroup,\r\n ILineItems,\r\n IOrderSummary,\r\n IPickUpAtStore\r\n} from '@msdyn365-commerce-modules/checkout/dist/types';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport const PickUpAtStoreComponent: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const LineItemComponent: React.FC = ({ LineItem, item, pickUpAtStore }) => (\r\n \r\n {item}\r\n {pickUpAtStore && }\r\n \r\n);\r\n\r\nexport const LineItemGroupComponent: React.FC = ({ LineItemDeliveryGroup, LineItemList, heading, lineItems }) => (\r\n \r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemsComponent: React.FC = ({ LineItems, Header, heading, editLink, itemsForPickup, itemsForShip }) => (\r\n \r\n \r\n {heading}\r\n {editLink}\r\n \r\n {itemsForPickup && }\r\n {itemsForShip && }\r\n \r\n);\r\n\r\nconst OrderSummaryComponent: React.FC = ({ heading, lines }) => (\r\n\r\n
\r\n {heading}\r\n
\r\n {lines && (\r\n <>\r\n {lines.subtotal}\r\n {lines.shipping}\r\n {lines.tax}\r\n {lines.totalDiscounts}\r\n {lines.loyalty}\r\n {lines.giftCard}\r\n {lines.orderTotal}\r\n \r\n )}\r\n
\r\n
\r\n);\r\n\r\nconst CheckoutView: React.FC = props => {\r\n const {\r\n canShow,\r\n checkoutProps,\r\n headerProps,\r\n bodyProps,\r\n mainProps,\r\n mainControlProps,\r\n sideProps,\r\n sideControlFirstProps,\r\n sideControlSecondProps,\r\n loading,\r\n alert,\r\n title,\r\n guidedForm,\r\n orderSummary,\r\n lineItems,\r\n placeOrderButton,\r\n keepShoppingButton\r\n } = props;\r\n\r\n return (\r\n \r\n {title}\r\n \r\n {loading}\r\n {alert}\r\n {canShow && (\r\n <>\r\n \r\n {guidedForm}\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n {orderSummary && }\r\n \r\n {/* {placeOrderButton}\r\n {keepShoppingButton} */}\r\n \r\n {lineItems && }\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CheckoutView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport {\r\n ICheckoutViewProps,\r\n ILineItem,\r\n ILineItemDeliveryGroup,\r\n ILineItems,\r\n IOrderSummary,\r\n IPickUpAtStore\r\n} from '@msdyn365-commerce-modules/checkout/dist/types';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport const PickUpAtStoreComponent: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const LineItemComponent: React.FC = ({ LineItem, item, pickUpAtStore }) => (\r\n \r\n {item}\r\n {pickUpAtStore && }\r\n \r\n);\r\n\r\nexport const LineItemGroupComponent: React.FC = ({ LineItemDeliveryGroup, LineItemList, heading, lineItems }) => (\r\n \r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemsComponent: React.FC = ({ LineItems, Header, heading, editLink, itemsForPickup, itemsForShip }) => (\r\n \r\n \r\n {heading}\r\n {editLink}\r\n \r\n {itemsForPickup && }\r\n {itemsForShip && }\r\n \r\n);\r\n\r\nconst OrderSummaryComponent: React.FC = ({ heading, lines }) => (\r\n\r\n
\r\n {heading}\r\n
\r\n {lines && (\r\n <>\r\n {lines.subtotal}\r\n {lines.shipping}\r\n {lines.tax}\r\n {lines.totalDiscounts}\r\n {lines.loyalty}\r\n {lines.giftCard}\r\n {lines.orderTotal}\r\n \r\n )}\r\n
\r\n
\r\n);\r\n\r\nconst CheckoutView: React.FC = props => {\r\n const {\r\n canShow,\r\n checkoutProps,\r\n headerProps,\r\n bodyProps,\r\n mainProps,\r\n mainControlProps,\r\n sideProps,\r\n sideControlFirstProps,\r\n sideControlSecondProps,\r\n loading,\r\n alert,\r\n title,\r\n guidedForm,\r\n orderSummary,\r\n lineItems,\r\n placeOrderButton,\r\n keepShoppingButton\r\n } = props;\r\n\r\n return (\r\n \r\n {title}\r\n \r\n {loading}\r\n {alert}\r\n {canShow && (\r\n <>\r\n \r\n {guidedForm}\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n {orderSummary && }\r\n \r\n {/* {placeOrderButton}\r\n {keepShoppingButton} */}\r\n \r\n {lineItems && }\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CheckoutView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport {\r\n ICheckoutViewProps,\r\n ILineItem,\r\n ILineItemDeliveryGroup,\r\n ILineItems,\r\n IOrderSummary,\r\n IPickUpAtStore\r\n} from '@msdyn365-commerce-modules/checkout/dist/types';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport const PickUpAtStoreComponent: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const LineItemComponent: React.FC = ({ LineItem, item, pickUpAtStore }) => (\r\n \r\n {item}\r\n {pickUpAtStore && }\r\n \r\n);\r\n\r\nexport const LineItemGroupComponent: React.FC = ({ LineItemDeliveryGroup, LineItemList, heading, lineItems }) => (\r\n \r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemsComponent: React.FC = ({ LineItems, Header, heading, editLink, itemsForPickup, itemsForShip }) => (\r\n \r\n \r\n {heading}\r\n {editLink}\r\n \r\n {itemsForPickup && }\r\n {itemsForShip && }\r\n \r\n);\r\n\r\nconst OrderSummaryComponent: React.FC = ({ heading, lines }) => (\r\n\r\n
\r\n {heading}\r\n
\r\n {lines && (\r\n <>\r\n {lines.subtotal}\r\n {lines.shipping}\r\n {lines.tax}\r\n {lines.totalDiscounts}\r\n {lines.loyalty}\r\n {lines.giftCard}\r\n {lines.orderTotal}\r\n \r\n )}\r\n
\r\n
\r\n);\r\n\r\nconst CheckoutView: React.FC = props => {\r\n const {\r\n canShow,\r\n checkoutProps,\r\n headerProps,\r\n bodyProps,\r\n mainProps,\r\n mainControlProps,\r\n sideProps,\r\n sideControlFirstProps,\r\n sideControlSecondProps,\r\n loading,\r\n alert,\r\n title,\r\n guidedForm,\r\n orderSummary,\r\n lineItems,\r\n placeOrderButton,\r\n keepShoppingButton\r\n } = props;\r\n\r\n return (\r\n \r\n {title}\r\n \r\n {loading}\r\n {alert}\r\n {canShow && (\r\n <>\r\n \r\n {guidedForm}\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n {orderSummary && }\r\n \r\n {/* {placeOrderButton}\r\n {keepShoppingButton} */}\r\n \r\n {lineItems && }\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CheckoutView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps } from '@msdyn365-commerce-modules/search/src/modules/search/./components';\r\nimport { ISearchViewProps } from '@msdyn365-commerce-modules/search/src/modules/search/./search';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n \r\n {_renderForm(form as ISearchFormViewProps, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n {form.submitBtn}\r\n
\r\n
\r\n {form.input}\r\n
\r\n {form.cancelBtn}\r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price}\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport {\r\n ICheckoutViewProps,\r\n ILineItem,\r\n ILineItemDeliveryGroup,\r\n ILineItems,\r\n IOrderSummary,\r\n IPickUpAtStore\r\n} from '@msdyn365-commerce-modules/checkout/dist/types';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport const PickUpAtStoreComponent: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const LineItemComponent: React.FC = ({ LineItem, item, pickUpAtStore }) => (\r\n \r\n {item}\r\n {pickUpAtStore && }\r\n \r\n);\r\n\r\nexport const LineItemGroupComponent: React.FC = ({ LineItemDeliveryGroup, LineItemList, heading, lineItems }) => (\r\n \r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemsComponent: React.FC = ({ LineItems, Header, heading, editLink, itemsForPickup, itemsForShip }) => (\r\n \r\n \r\n {heading}\r\n {editLink}\r\n \r\n {itemsForPickup && }\r\n {itemsForShip && }\r\n \r\n);\r\n\r\nconst OrderSummaryComponent: React.FC = ({ heading, lines }) => (\r\n\r\n
\r\n {heading}\r\n
\r\n {lines && (\r\n <>\r\n {lines.subtotal}\r\n {lines.shipping}\r\n {lines.tax}\r\n {lines.totalDiscounts}\r\n {lines.loyalty}\r\n {lines.giftCard}\r\n {lines.orderTotal}\r\n \r\n )}\r\n
\r\n
\r\n);\r\n\r\nconst CheckoutView: React.FC = props => {\r\n const {\r\n canShow,\r\n checkoutProps,\r\n headerProps,\r\n bodyProps,\r\n mainProps,\r\n mainControlProps,\r\n sideProps,\r\n sideControlFirstProps,\r\n sideControlSecondProps,\r\n loading,\r\n alert,\r\n title,\r\n guidedForm,\r\n orderSummary,\r\n lineItems,\r\n placeOrderButton,\r\n keepShoppingButton\r\n } = props;\r\n\r\n return (\r\n \r\n {title}\r\n \r\n {loading}\r\n {alert}\r\n {canShow && (\r\n <>\r\n \r\n {guidedForm}\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n {orderSummary && }\r\n \r\n {/* {placeOrderButton}\r\n {keepShoppingButton} */}\r\n \r\n {lineItems && }\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CheckoutView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps } from '@msdyn365-commerce-modules/search/src/modules/search/./components';\r\nimport { ISearchViewProps } from '@msdyn365-commerce-modules/search/src/modules/search/./search';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n \r\n {_renderForm(form as ISearchFormViewProps, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n {form.submitBtn}\r\n
\r\n
\r\n {form.input}\r\n
\r\n {form.cancelBtn}\r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price}\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\nimport { isOboRequest } from '@msdyn365-commerce/core-internal';\nimport { IMsdyn365PvaChatConnectorData } from './msdyn365-pva-chat-connector.data';\nimport { IMsdyn365PvaChatConnectorConfig, IMsdyn365PvaChatConnectorProps } from './msdyn365-pva-chat-connector.props.autogenerated';\n\nexport interface IPvaChatConnectorViewProps extends IMsdyn365PvaChatConnectorProps {\n config: IMsdyn365PvaChatConnectorConfig;\n}\n\n/**\n * PvaChatConnector component\n * @extends {React.PureComponent>}\n */\nclass PvaChatConnector extends React.PureComponent> {\n // Loads CDN version of Botframework-Webchat library\n public componentDidMount(): void {\n if (isOboRequest(this.props.context.request)) {\n return;\n }\n\n const url = this.props.config.botFrameworkCDNURL || this.props.context.app.config.pvaChatConnectorBotFrameworkCDNURL;\n const script = document.createElement('script');\n script.src = url;\n script.async = true;\n script.crossOrigin = 'anonymous';\n document.body.appendChild(script);\n }\n\n public render(): JSX.Element | null {\n if (isOboRequest(this.props.context.request)) {\n return null;\n }\n\n return this.props.renderView(this.props);\n }\n}\n\nexport default PvaChatConnector;\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IProactiveChatTrigger } from '../../interfaces';\nimport { IChatContext, TContextProvider } from '../../../interfaces';\nimport { IPvaChatConnectorViewProps } from '../../msdyn365-pva-chat-connector';\n\n/**\n * ProactiveChatTrigger class - checks if Proactive Chat should be triggered, starts the chat and sets context\n */\nabstract class ProactiveChatTrigger implements IProactiveChatTrigger {\n public props: IPvaChatConnectorViewProps;\n public context: IChatContext;\n constructor(props: IPvaChatConnectorViewProps, context: IChatContext) {\n this.props = props;\n this.context = context;\n }\n\n /**\n * Generates Chat Context with included properties related to Proactive Chat\n * @returns TContextProvider - Chat Context\n */\n public abstract getContextProvider(): TContextProvider;\n\n /**\n * Generates chat welcome message to be used if Proactive Chat is triggered\n * @returns string - chat welcome message\n */\n public abstract getMessage(): string;\n\n /**\n * Validate specific trigger conditions if Proactive Chat should be initiated\n * @returns boolean (TRUE if Proactive Chat should be triggered)\n */\n public abstract validate(): Promise;\n}\n\nexport default ProactiveChatTrigger;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// @ts-ignore\nimport { getCartState, ICartState } from '@msdyn365-commerce/global-state';\nimport { IChatContext, TContextProvider } from '../../../interfaces';\nimport { IPvaChatConnectorViewProps } from '../../msdyn365-pva-chat-connector';\nimport ProactiveChatTrigger from './proactive-chat-trigger';\n\n/**\n * CartAmountTrigger class - proactive chat is triggered if cArt amount is in preset boundaries (config.proactiveOnCartAmountMin, config.proactiveOnCartAmountMax)\n */\nclass CartAmountTrigger extends ProactiveChatTrigger {\n private min?: number;\n private max?: number;\n private totalInCart: number = 0;\n\n constructor(props: IPvaChatConnectorViewProps, context: IChatContext) {\n super(props, context);\n this.min = this.props.config.proactiveOnCartAmountMin;\n this.max = this.props.config.proactiveOnCartAmountMax;\n this.props.context.telemetry.debug(\n `[Chat][${CartAmountTrigger.name}] Cart amount proactive chat initialized with min: '${this.min}'; max: '${this.max}'.`\n );\n }\n\n public async validate(): Promise {\n const cart = await this._getCart();\n if (cart.isEmpty) {\n this.props.context.telemetry.debug(`[Chat][${CartAmountTrigger.name}] Cart was empty. Validation returning 'false'.`);\n return false;\n }\n\n this.totalInCart = cart.cart.TotalAmount || 0;\n let retVal = false;\n if (this.min) {\n if (this.max) {\n retVal = this.min <= this.totalInCart && this.totalInCart <= this.max;\n } else {\n retVal = this.min <= this.totalInCart;\n }\n } else {\n if (this.max) {\n retVal = this.totalInCart <= this.max;\n } else {\n retVal = false;\n }\n }\n this.props.context.telemetry.debug(\n `[Chat][${CartAmountTrigger.name}] Validation result: '${retVal}'; Cart total: '${this.totalInCart}'.`\n );\n return retVal;\n }\n\n public getContextProvider(): TContextProvider {\n return () => {\n return {\n ...this.context,\n eCommerceCustIsProactiveChat: 'True',\n eCommerceCustProactiveType: 'Cart Amount',\n eCommerceCustProactiveShoppingCartAmount: `${this.totalInCart}`\n };\n };\n }\n\n public getMessage(): string {\n // @TODO: Add message processing if needed\n return this.props.config.proactiveOnCartAmountMessage || this.props.config.proactiveDefaultMessage;\n }\n\n private async _getCart(): Promise {\n return getCartState(this.props.context.actionContext);\n }\n}\n\nexport default CartAmountTrigger;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// @ts-ignore\nimport { getCartState, ICartState } from '@msdyn365-commerce/global-state';\nimport { IChatContext, TContextProvider } from '../../../interfaces';\nimport { IPvaChatConnectorViewProps } from '../../msdyn365-pva-chat-connector';\nimport ProactiveChatTrigger from './proactive-chat-trigger';\n\n/**\n * CartNumberOfItemsTrigger class - proactive chat is triggered if Cart Number of Items is in preset boundaries (config.proactiveOnCartNoOfItemsMin, config.proactiveOnCartNoOfItemsMax)\n */\nclass CartNumberOfItemsTrigger extends ProactiveChatTrigger {\n private min?: number;\n private max?: number;\n private numberOfItems: number = 0;\n\n constructor(props: IPvaChatConnectorViewProps, context: IChatContext) {\n super(props, context);\n this.min = this.props.config.proactiveOnCartNoOfItemsMin;\n this.max = this.props.config.proactiveOnCartNoOfItemsMax;\n\n this.props.context.telemetry.debug(\n `[${CartNumberOfItemsTrigger.name}] Cart number of items proactive chat initialized with min: '${this.min}'; max: '${this.max}'.`\n );\n }\n\n public async validate(): Promise {\n const cart = await this._getCart();\n if (cart.isEmpty) {\n this.props.context.telemetry.debug(`[Chat][${CartNumberOfItemsTrigger.name}] Cart was empty. Validation returning 'false'.`);\n return false;\n }\n\n this.numberOfItems = cart.cart.TotalItems || 0;\n\n let retVal = false;\n if (this.min) {\n if (this.max) {\n retVal = this.min <= this.numberOfItems && this.numberOfItems <= this.max;\n } else {\n retVal = this.min <= this.numberOfItems;\n }\n } else {\n if (this.max) {\n retVal = this.numberOfItems <= this.max;\n } else {\n retVal = false;\n }\n }\n this.props.context.telemetry.debug(\n `[${CartNumberOfItemsTrigger.name}] Validation result: '${retVal}'; Number of items in cart: '${this.numberOfItems}'.`\n );\n return retVal;\n }\n\n public getContextProvider(): TContextProvider {\n return () => {\n return {\n ...this.context,\n eCommerceCustIsProactiveChat: 'True',\n eCommerceCustProactiveType: 'Cart Number of Items',\n eCommerceCustProactiveShoppingCartNumberOfItems: `${this.numberOfItems}`\n };\n };\n }\n\n public getMessage(): string {\n // @TODO: Add message processing if needed\n return this.props.config.proactiveOnCartNoOfItemsMessage || this.props.config.proactiveDefaultMessage;\n }\n\n private async _getCart(): Promise {\n return getCartState(this.props.context.actionContext);\n }\n}\n\nexport default CartNumberOfItemsTrigger;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// @ts-ignore\nimport { getCartState, ICartState } from '@msdyn365-commerce/global-state';\nimport { TContextProvider } from '../../../interfaces';\nimport ProactiveChatTrigger from './proactive-chat-trigger';\n\n/**\n * CartSpecificProductTrigger class - proactive chat is triggered if a Product in the Cart is in preset list of products (config.proactiveOnCartSpecificProductList)\n */\nclass CartSpecificProductTrigger extends ProactiveChatTrigger {\n private product: string = '';\n\n public async validate(): Promise {\n let isValid = false;\n const cart = await this._getCart();\n if (!cart.isEmpty) {\n if (cart.cart.CartLines) {\n this.props.context.telemetry.debug(\n `[${CartSpecificProductTrigger.name}] Number of cart line items was '${cart.cart.CartLines?.length}'`\n );\n for (let i = 0; i < cart.cart.CartLines?.length; i++) {\n if (cart.cart.CartLines[i]) {\n if (this.props.config.proactiveOnCartSpecificProductList) {\n this.props.context.telemetry.debug(\n `[${CartSpecificProductTrigger.name}] Number of cart specific products was configured for proactive chat was '${this.props.config.proactiveOnCartSpecificProductList?.length}'`\n );\n // Find first item, from user-defined list of products, that matches the cart lines' itemId in the cart.\n for (let j = 0; j < (this.props.config.proactiveOnCartSpecificProductList?.length || 0); j++) {\n if (\n this.props.config.proactiveOnCartSpecificProductList &&\n cart.cart.CartLines[i].ItemId &&\n this.props.config.proactiveOnCartSpecificProductList[j] === cart.cart.CartLines[i].ItemId\n ) {\n this.props.context.telemetry.debug(\n `[${CartSpecificProductTrigger.name}] Matched cart line item ID '${cart.cart.CartLines[i].ItemId}' against user-defined list of specific products for proactive chat.`\n );\n isValid = true;\n break;\n }\n }\n }\n } else {\n // Rest of the CartLines are undefined\n break;\n }\n }\n } else {\n this.props.context.telemetry.debug(`[Chat][${CartSpecificProductTrigger.name}] Cart did not contain any cart lines.`);\n }\n } else {\n this.props.context.telemetry.debug(`[Chat][${CartSpecificProductTrigger.name}] Cart was empty.`);\n }\n this.props.context.telemetry.debug(`[Chat][${CartSpecificProductTrigger.name}] Validation returning '${isValid}'.`);\n return isValid;\n }\n\n public getContextProvider(): TContextProvider {\n return () => {\n return {\n ...this.context,\n eCommerceCustIsProactiveChat: 'True',\n eCommerceCustProactiveType: 'Cart Specific Product',\n eCommerceCustProactiveShoppingCartSpecificProduct: `${this.product}`\n };\n };\n }\n\n public getMessage(): string {\n // @TODO: Add message processing if needed\n return this.props.config.proactiveOnCartSpecificProductMessage || this.props.config.proactiveDefaultMessage;\n }\n\n private async _getCart(): Promise {\n return getCartState(this.props.context.actionContext);\n }\n}\n\nexport default CartSpecificProductTrigger;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport enum ProactiveChatNames {\n DateRange = 'Date Range',\n FromSpecificPage = 'From Specific Page',\n PageVisits = 'Page Visits',\n SpecificLocation = 'Specific Location',\n SpecificPage = 'Specific Page',\n WaitOnTime = 'Wait On Time'\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ProactiveChatNames } from '../../helpers/consts';\nimport { IChatContext, TContextProvider } from '../../../interfaces';\nimport { IPvaChatConnectorViewProps } from '../../msdyn365-pva-chat-connector';\nimport ProactiveChatTrigger from './proactive-chat-trigger';\n\n/**\n * DateRangeTrigger class - proactive chat is triggered if current date is in preset date boundaries (config.proactiveOnDateRangeStart, config.proactiveOnDateRangeEnd)\n */\nclass DateRangeTrigger extends ProactiveChatTrigger {\n private start?: Date;\n private end?: Date;\n\n constructor(props: IPvaChatConnectorViewProps, context: IChatContext) {\n super(props, context);\n this.start = this._toDate(this.props.config.proactiveOnDateRangeStart);\n this.end = this._toDate(this.props.config.proactiveOnDateRangeEnd);\n\n this.props.context.telemetry.debug(\n `[${DateRangeTrigger.name}] Proactive chat initialized with startDate: '${this.start}'; max: '${this.end}'.`\n );\n }\n\n public async validate(): Promise {\n const now = new Date();\n now.setHours(0, 0, 0, 0);\n\n let retVal = false;\n if (this.start) {\n if (this.end) {\n retVal = this.start.getTime() <= now.getTime() && now.getTime() <= this.end.getTime();\n } else {\n retVal = this.start.getTime() <= now.getTime();\n }\n } else if (this.end) {\n retVal = now.getTime() <= this.end.getTime();\n }\n\n this.props.context.telemetry.debug(\n `[${DateRangeTrigger.name}] Validation result: '${retVal}'; Current date used to compare: '${now}'.`\n );\n return retVal;\n }\n\n public getContextProvider(): TContextProvider {\n return () => {\n return {\n ...this.context,\n eCommerceCustIsProactiveChat: 'True',\n eCommerceCustProactiveType: ProactiveChatNames.DateRange,\n eCommerceCustProactiveFromDate: this.start ? this.start.toUTCString() : '',\n eCommerceCustProactiveToDate: this.end ? this.end.toUTCString() : ''\n };\n };\n }\n\n public getMessage(): string {\n // @TODO: Add message processing if needed\n return this.props.config.proactiveOnDateRangeMessage || this.props.config.proactiveDefaultMessage;\n }\n\n /**\n * Converts string(us-en) to date\n * @param date string (mm/dd/yyyy)\n * @returns Date or undefined\n */\n private _toDate(date?: string): Date | undefined {\n if (date) {\n const dateParts = date.split('/');\n return new Date(+dateParts[2], +dateParts[1] - 1, +dateParts[0]);\n } else {\n return undefined;\n }\n }\n}\n\nexport default DateRangeTrigger;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ProactiveChatNames } from '../../helpers/consts';\nimport { TContextProvider } from '../../../interfaces';\nimport ProactiveChatTrigger from './proactive-chat-trigger';\n\n/**\n * FromSpecificPageTrigger class - proactive chat is triggered if user has come from specific page (the one listed in config.proactiveOnFromSpecificPageList)\n */\nclass FromSpecificPageTrigger extends ProactiveChatTrigger {\n public async validate(): Promise {\n let isValid = false;\n if (this.props.config.proactiveOnFromSpecificPageList) {\n this.props.context.telemetry.debug(\n `[${FromSpecificPageTrigger.name}] Number of items in user-defined list of 'From Specific Page' was '${this.props.config.proactiveOnFromSpecificPageList?.length}'.`\n );\n for (let i = 0; i < (this.props.config.proactiveOnFromSpecificPageList?.length || 0); i++) {\n const fromSpecificPageTrimmed: string = this.props.config.proactiveOnFromSpecificPageList[i].trim();\n this.props.context.telemetry.debug(\n `[Chat][${FromSpecificPageTrigger.name}] Current page URL: '${window.document.referrer}'.`\n );\n this.props.context.telemetry.debug(\n `[${FromSpecificPageTrigger.name}] Current item from user-defined list of 'From Specific Page': '${fromSpecificPageTrimmed}'.`\n );\n\n if (window.document.referrer.indexOf(fromSpecificPageTrimmed) > -1) {\n isValid = true;\n break;\n }\n }\n } else {\n this.props.context.telemetry.debug(\n `[Chat][${FromSpecificPageTrigger.name}] User-defined 'From Specific Page' list was undefined.`\n );\n }\n this.props.context.telemetry.debug(`[Chat][${FromSpecificPageTrigger.name}] Validation returning '${isValid}'.`);\n return isValid;\n }\n public getContextProvider(): TContextProvider {\n return () => {\n return {\n ...this.context,\n eCommerceCustIsProactiveChat: 'True',\n eCommerceCustProactiveType: ProactiveChatNames.FromSpecificPage,\n eCommerceCustProactiveCameFromPage: window.document.referrer\n };\n };\n }\n public getMessage(): string {\n // @TODO: Add message processing if needed\n return this.props.config.proactiveOnFromSpecificPageMessage || this.props.config.proactiveDefaultMessage;\n }\n}\n\nexport default FromSpecificPageTrigger;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ICookieContext } from '@msdyn365-commerce/core-internal/dist/types/interfaces/context/ICookieContext';\nimport { ProactiveChatNames } from '../../helpers/consts';\nimport { IChatContext, TContextProvider } from '../../../interfaces';\nimport { IPvaChatConnectorViewProps } from '../../msdyn365-pva-chat-connector';\nimport ProactiveChatTrigger from './proactive-chat-trigger';\n\n/**\n * PageVisitTrigger class - proactive chat is triggered if user has visited current page for (config.proactiveOnPageVisitNumber) or more times\n */\nclass PageVisitTrigger extends ProactiveChatTrigger {\n public visits: number = 0;\n private cookieName: string = 'TimesPageVisited';\n private expdate: Date;\n private cookies: ICookieContext;\n\n constructor(props: IPvaChatConnectorViewProps, context: IChatContext) {\n super(props, context);\n this.cookies = this.props.context.request.cookies;\n this.expdate = new Date();\n // Set expiry date to 365 days.\n this.expdate.setTime(this.expdate.getTime() + 24 * 60 * 60 * 1000 * 365);\n this.props.context.telemetry.debug(`[Chat][${PageVisitTrigger.name}] Cookie expiry date set to: '${this.expdate}'.`);\n\n this.props.context.telemetry.debug(`[Chat][${PageVisitTrigger.name}] Cookie context is given: '${this.cookies.isConsentGiven()}'.`);\n if (this.cookies.isConsentGiven()) {\n this.cookies.setConsentCookie();\n }\n\n this._updateVisitCounter();\n }\n\n public async validate(): Promise {\n let retVal: boolean = false;\n\n if (this.props.config.proactiveOnPageVisitNumber) {\n retVal = this.visits >= this.props.config.proactiveOnPageVisitNumber;\n }\n\n this.props.context.telemetry.debug(`[Chat][${PageVisitTrigger.name}] Validation result: '${retVal}'.`);\n return retVal;\n }\n\n public clear(): void {\n this.props.context.telemetry.debug(`[Chat][${PageVisitTrigger.name}] Clearing cookie for page visit counter.`);\n this.cookies.set(this.cookieName, 0, {\n domain: window.location.hostname,\n path: window.location.pathname,\n expires: this.expdate\n });\n }\n\n public getContextProvider(): TContextProvider {\n return () => {\n return {\n ...this.context,\n eCommerceCustIsProactiveChat: 'True',\n eCommerceCustProactiveType: ProactiveChatNames.PageVisits,\n eCommerceCustProactiveNumberOfVisits: `${this.visits}`\n };\n };\n }\n\n public getMessage(): string {\n // @TODO: Add message processing if needed\n return this.props.config.proactiveOnPageVisitMessage || this.props.config.proactiveDefaultMessage;\n }\n\n private _updateVisitCounter(): void {\n this.visits = this.cookies.get(this.cookieName).value || 0;\n this.props.context.telemetry.debug(`[Chat][${PageVisitTrigger.name}] Page visit counter BEFORE update: '${this.visits}.`);\n ++this.visits;\n this.props.context.telemetry.debug(`[Chat][${PageVisitTrigger.name}] Page visit counter AFTER update: '${this.visits}.`);\n\n this.cookies.set(this.cookieName, this.visits, {\n domain: window.location.hostname,\n path: window.location.pathname,\n expires: this.expdate\n });\n }\n}\n\nexport default PageVisitTrigger;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ProactiveChatNames } from '../../helpers/consts';\nimport { IExtendedRequest } from '../../interfaces';\nimport { IChatContext, TContextProvider } from '../../../interfaces';\nimport { IPvaChatConnectorViewProps } from '../../msdyn365-pva-chat-connector';\nimport ProactiveChatTrigger from './proactive-chat-trigger';\n\n/**\n * SpecificPageTrigger class - proactive chat is triggered if user geographically uses the website from specific country/regions(config.proactiveOnSpecificCountryRegionCountry)\n */\nclass SpecificCountryRegionTrigger extends ProactiveChatTrigger {\n private customerCountryCode: string;\n constructor(props: IPvaChatConnectorViewProps, context: IChatContext) {\n super(props, context);\n this.customerCountryCode = (this.props.context.request).suggestedMarket || 'n/a';\n this.props.context.telemetry.debug(\n `[${SpecificCountryRegionTrigger.name}] Customer country code set to: '${this.customerCountryCode}.'`\n );\n }\n\n public async validate(): Promise {\n const retVal: boolean = this.props.config.proactiveOnSpecificLocation\n ? this.props.config.proactiveOnSpecificLocation.toLowerCase().indexOf(this.customerCountryCode.toLowerCase()) > -1\n : false;\n this.props.context.telemetry.debug(`[Chat][${SpecificCountryRegionTrigger.name}] Validation returning '${retVal}'.`);\n return retVal;\n }\n public getContextProvider(): TContextProvider {\n return () => {\n return {\n ...this.context,\n eCommerceCustIsProactiveChat: 'True',\n eCommerceCustProactiveCountryCode: this.props.config.proactiveOnSpecificLocation || '',\n eCommerceCustProactiveType: ProactiveChatNames.SpecificLocation\n };\n };\n }\n public getMessage(): string {\n // @TODO: Add message processing if needed\n return this.props.config.proactiveOnSpecificCountryRegionMessage || this.props.config.proactiveDefaultMessage;\n }\n}\n\nexport default SpecificCountryRegionTrigger;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ProactiveChatNames } from '../../helpers/consts';\nimport { TContextProvider } from '../../../interfaces';\nimport ProactiveChatTrigger from './proactive-chat-trigger';\n\n/**\n * SpecificPageTrigger class - proactive chat is triggered if current page is listed in config.proactiveOnSpecificPageList\n */\nclass SpecificPageTrigger extends ProactiveChatTrigger {\n public async validate(): Promise {\n let isValid = false;\n if (this.props.config.proactiveOnSpecificPageList) {\n this.props.context.telemetry.debug(\n `[${SpecificPageTrigger.name}] Number of items in user-defined list of 'Specific Pages' was '${this.props.config.proactiveOnSpecificPageList?.length}'.`\n );\n for (let i = 0; i < (this.props.config.proactiveOnSpecificPageList?.length || 0); i++) {\n const specificPageTrimmed: string = this.props.config.proactiveOnSpecificPageList[i].trim();\n this.props.context.telemetry.debug(`[] Current location URL: ${window.location.href}.`);\n this.props.context.telemetry.debug(`[] Current item from user-defined list of 'Specific Page': ${specificPageTrimmed}.`);\n if (window.location.href.indexOf(specificPageTrimmed) > -1) {\n isValid = true;\n break;\n }\n }\n } else {\n this.props.context.telemetry.debug(`[Chat][${SpecificPageTrigger.name}] User-defined 'Specific Page' list was undefined.`);\n }\n this.props.context.telemetry.debug(`[Chat][${SpecificPageTrigger.name}] Validation returning '${isValid}'.`);\n return isValid;\n }\n\n public getContextProvider(): TContextProvider {\n return () => {\n return {\n ...this.context,\n eCommerceCustIsProactiveChat: 'True',\n eCommerceCustProactiveType: ProactiveChatNames.SpecificPage\n };\n };\n }\n\n public getMessage(): string {\n // @TODO: Add message processing if needed\n return this.props.config.proactiveOnSpecificPageMessage || this.props.config.proactiveDefaultMessage;\n }\n}\n\nexport default SpecificPageTrigger;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ProactiveChatNames } from '../../helpers/consts';\nimport { IChatContext, TContextProvider } from '../../../interfaces';\nimport { IPvaChatConnectorViewProps } from '../../msdyn365-pva-chat-connector';\nimport ProactiveChatTrigger from './proactive-chat-trigger';\n\n/**\n * WaitOnTimeTrigger - proactive chat is triggered if user stays on current page for more than (config.proactiveOnWaitTimeSeconds) seconds\n */\nclass WaitOnTimeTrigger extends ProactiveChatTrigger {\n private waitTimeInMilliseconds: number | undefined;\n\n constructor(props: IPvaChatConnectorViewProps, context: IChatContext) {\n super(props, context);\n if (this.props.config.proactiveOnWaitTimeSeconds && !isNaN(this.props.config.proactiveOnWaitTimeSeconds)) {\n this.waitTimeInMilliseconds = Number(this.props.config.proactiveOnWaitTimeSeconds) * 1000;\n this.props.context.telemetry.debug(\n `[Chat][${WaitOnTimeTrigger.name}] Wait time (ms) set to: '${this.waitTimeInMilliseconds}'.`\n );\n }\n }\n\n public async validate(): Promise {\n const retVal: boolean = this.waitTimeInMilliseconds !== undefined;\n this.props.context.telemetry.debug(`[Chat][${WaitOnTimeTrigger.name}] Validation returning '${retVal}'.`);\n return retVal;\n }\n\n public getContextProvider(): TContextProvider {\n const triggerTime = Date.now() + (this.waitTimeInMilliseconds || 0);\n return () => {\n return triggerTime > Date.now()\n ? this.context\n : {\n ...this.context,\n eCommerceCustIsProactiveChat: 'True',\n eCommerceCustProactiveType: ProactiveChatNames.WaitOnTime,\n eCommerceCustProactiveTimeOnPage: `${this.waitTimeInMilliseconds ? this.waitTimeInMilliseconds : 0}`\n };\n };\n }\n\n public getMessage(): string {\n // @TODO: Add message processing if needed\n return this.props.config.proactiveOnWaitTimeMessage || this.props.config.proactiveDefaultMessage;\n }\n}\n\nexport default WaitOnTimeTrigger;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport CartAmountTrigger from './triggers/cart-amount-trigger';\nimport CartNumberOfItemsTrigger from './triggers/cart-number-of-items-trigger';\nimport CartSpecificProductTrigger from './triggers/cart-specific-product-trigger';\nimport DateRangeTrigger from './triggers/date-range-trigger';\nimport FromSpecificPageTrigger from './triggers/from-specific-page-trigger';\nimport PageVisitTrigger from './triggers/page-visits-trigger';\nimport SpecificCountryRegionTrigger from './triggers/specific-CountryRegion-trigger';\nimport SpecificPageTrigger from './triggers/specific-page-trigger';\nimport WaitOnTimeTrigger from './triggers/wait-on-time-trigger';\n\ntype ProactiveChat =\n | typeof DateRangeTrigger\n | typeof SpecificPageTrigger\n | typeof FromSpecificPageTrigger\n | typeof PageVisitTrigger\n | typeof SpecificCountryRegionTrigger\n | typeof CartAmountTrigger\n | typeof CartNumberOfItemsTrigger\n | typeof CartSpecificProductTrigger\n | typeof WaitOnTimeTrigger;\n\n/**\n * List of Proactive Chat Validators in order of validation (first proactive chat that pass validation is triggered, the rest are ommited)\n */\nexport const ProactiveTriggers: ProactiveChat[] = [\n DateRangeTrigger,\n SpecificPageTrigger,\n FromSpecificPageTrigger,\n PageVisitTrigger,\n SpecificCountryRegionTrigger,\n CartAmountTrigger,\n CartNumberOfItemsTrigger,\n CartSpecificProductTrigger,\n WaitOnTimeTrigger\n];\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IRequestContextUser } from '@msdyn365-commerce/core-internal/dist/types/interfaces/context/IRequestContext';\nimport { v4 as uuidv4 } from 'uuid';\nimport { ProactiveTriggers } from '../proactive';\nimport ProactiveChatTrigger from '../proactive/triggers/proactive-chat-trigger';\nimport { IPvaChatConnectorViewProps } from '../msdyn365-pva-chat-connector';\nimport { IProactiveData } from './../interfaces';\nimport { IChatContext, TContextProvider } from '../../interfaces';\n\n/**\n *\n * ContextProvider class - generates chat context, and checks for proactive triggers\n */\nclass ContextProvider {\n public data: IProactiveData;\n public props: IPvaChatConnectorViewProps;\n private user: IRequestContextUser;\n private userId: string;\n private context: IChatContext;\n private provider: TContextProvider | undefined;\n\n constructor(props: IPvaChatConnectorViewProps) {\n this.props = props;\n this.user = this.props.context.request.user;\n this.userId = `dl_${uuidv4()}`;\n this.context = this._getContext();\n // Proactive Chat related data\n this.data = {\n enabled: false,\n timeout: this.props.config.proactiveOnWaitTimeSeconds || 0,\n message: this.props.config.proactiveDefaultMessage\n };\n }\n\n /**\n * Executes Proactive Chat validation\n * @returns TContextProvider - a function returning IChatContext object\n */\n public async init(): Promise {\n try {\n await this._proactiveCheck();\n } catch (e) {\n // Use ?debug=true to see telemetry\n // If previous block fails, chat will still be available (no need to display any errors to user)\n this.props.telemetry.exception(e);\n }\n return this.provider || this._getProvider();\n }\n\n /**\n * Returns TContextProvider - a function returning IChatContext object\n */\n private _getProvider(): TContextProvider {\n return () => {\n return {\n eCommerceOperatingUnitNumber: this.props.context.request.apiSettings.oun,\n eCommerceBaseUrl: this.props.context.request.apiSettings.baseUrl,\n eCommerceDataAreaId: this.props.context.request.channel?.InventLocationDataAreaId,\n UserId: this.userId,\n // eCommerceCust...\n AccountNumber: this.user.customerAccountNumber ? this.user.customerAccountNumber : 'N/A',\n Email: this.user.emailAddress ? this.user.emailAddress : 'N/A',\n FirstName: this.user.firstName ? this.user.firstName : this.props.config.anonymousUserName,\n LastName: this.user.lastName ? this.user.lastName : 'N/A',\n Name: this.user.name ? this.user.name : this.props.config.anonymousUserName,\n eCommerceCustPageURL: window.location.href,\n eCommerceCustChatType: 'pva',\n // Proactive chat\n eCommerceCustIsProactiveChat: 'False',\n eCommerceCustProactiveType: 'N/A',\n // Date Range\n eCommerceCustProactiveFromDate: 'N/A',\n eCommerceCustProactiveToDate: 'N/A',\n // From Specific Page\n eCommerceCustProactiveCameFromPage: 'N/A',\n // No. Page Visits\n eCommerceCustProactiveNumberOfVisits: 'N/A',\n // Specific CountryRegion\n eCommerceCustProactiveCountryCode: 'N/A',\n // Specific Page => eCommerceCustPageURL\n // eCommerceCustProactiveSpecificPage: 'N/A',\n // Wait On Time\n eCommerceCustProactiveTimeOnPage: 'N/A',\n // Shopping cart amount\n eCommerceCustProactiveShoppingCartAmount: 'N/A',\n // Shopping cart number of items\n eCommerceCustProactiveShoppingCartNumberOfItems: 'N/A',\n // Shopping cart specific product\n eCommerceCustProactiveShoppingCartSpecificProduct: 'N/A'\n };\n };\n }\n\n /**\n * Returns default IChatContext object\n */\n private _getContext(): IChatContext {\n return this._getProvider()();\n }\n\n /**\n * Validates proactive triggers to check if proactive chat should be initialized\n */\n private async _proactiveCheck(): Promise {\n if (this.props.config.proactiveChatEnabled) {\n for (let i = 0; i < ProactiveTriggers.length; i++) {\n const proactive = new ProactiveTriggers[i](this.props, this.context);\n // Only first detected proactive trigger gets executed\n if (await this._isProactive(proactive)) {\n this.props.context.telemetry.debug(`First detected proactive trigger to be executed: ${proactive}`);\n break;\n }\n }\n }\n }\n\n /**\n * Validates if proactive chat should be triggered for given ProactiveTrigger\n * @param proactive ProactiveChatTrigger\n * @returns boolean\n */\n private async _isProactive(proactive: ProactiveChatTrigger): Promise {\n this.data.enabled = await proactive.validate();\n if (this.data.enabled) {\n this.provider = proactive.getContextProvider();\n this.data.message = proactive.getMessage();\n }\n return this.data.enabled;\n }\n}\n\nexport default ContextProvider;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/**\n * Style generating functions\n */\nimport { IAvatarStyling, IBubbleStyling, IChatCustomStyle, IChatStyling, IOtherStyling, ISuggestedActionStyling } from '../interfaces';\nimport { IMsdyn365PvaChatConnectorConfig } from '../msdyn365-pva-chat-connector.props.autogenerated';\n\nconst getChatWrapperStyle = (config: IMsdyn365PvaChatConnectorConfig): React.CSSProperties => {\n return {\n position: config.position || 'inherit',\n top: config.top ? config.top : 'inherit',\n right: config.right ? config.right : 'inherit',\n bottom: config.bottom ? config.bottom : 'inherit',\n left: config.left ? config.left : 'inherit',\n zIndex: 1000,\n display: 'flex',\n justifyContent: 'flex-end'\n };\n};\n\nconst getMaximizedChatWrapperStyle = (config: IMsdyn365PvaChatConnectorConfig, isMobileDevice: boolean): React.CSSProperties => {\n if (isMobileDevice) {\n return {\n height: '90%',\n width: '100%',\n bottom: '0.5em',\n right: '0',\n padding: '5px'\n };\n }\n return {\n height: config.chatHeight ? config.chatHeight : '80%',\n width: config.chatWidth ? config.chatWidth : 'inherit'\n };\n};\n\nconst getChatButtonStyle = (config: IMsdyn365PvaChatConnectorConfig): React.CSSProperties => {\n return {\n display: 'flex',\n alignItems: 'center',\n backgroundColor: config.startChatButtonBackgroundColor || 'white',\n color: config.startChatButtonTextColor || 'inherit',\n borderColor: config.startChatButtonBorderColor || 'inherit',\n borderRadius: config.startChatButtonBorderRadius || '0px',\n borderStyle: config.startChatButtonBorderStyle || 'solid',\n borderWidth: config.startChatButtonBorderWidth ? config.startChatButtonBorderWidth : '0px',\n padding: config.storeLogoURL ? '2px 20px 2px 2px' : '10px 20px 10px 20px',\n cursor: 'pointer',\n outlineStyle: 'none',\n alignSelf: 'flex-end',\n boxShadow: '0 0 4px rgba(102,102,102,.5)',\n WebkitBoxShadow: '0 0 4px rgba(102,102,102,.5)',\n MozBoxShadow: '0 0 4px rgba(102,102,102,.5)'\n };\n};\n\nconst getButtonStoreLogoStyle = (config: IMsdyn365PvaChatConnectorConfig): React.CSSProperties => {\n return {\n backgroundColor: config.headerBackgroundColor || 'inherit',\n color: config.headerTextColor || 'inherit',\n borderRadius: '50%',\n padding: '11px',\n width: '30px',\n height: '30px',\n marginRight: '12px',\n borderStyle: 'solid',\n borderWidth: '1px',\n boxSizing: 'content-box'\n };\n};\n\nconst getChatStoreLogoStyle = (config: IMsdyn365PvaChatConnectorConfig): React.CSSProperties => {\n return {\n backgroundColor: config.headerBackgroundColor || 'inherit',\n color: config.headerTextColor || 'inherit',\n borderRadius: '50%',\n padding: '11px',\n width: '30px',\n height: '30px',\n margin: '5px 12px 5px 5px',\n alignSelf: 'center',\n borderStyle: 'solid',\n borderWidth: '1px',\n boxSizing: 'content-box'\n };\n};\n\nconst getChatMessagesStyle = (config: IMsdyn365PvaChatConnectorConfig, minimized: boolean): React.CSSProperties => {\n return {\n display: minimized ? 'none' : 'block',\n backgroundColor: config.backgroundColor || 'White',\n height: '100%',\n width: '100%',\n boxSizing: 'border-box',\n position: 'relative'\n };\n};\n\nconst getChatMessageHeader = (config: IMsdyn365PvaChatConnectorConfig): React.CSSProperties => {\n config.chatHeaderHeight = config.chatHeaderHeight || '70px';\n return {\n backgroundColor: config.headerBackgroundColor || 'inherit',\n backgroundImage: `url(\"${config.headerBackgroundImageURL}\")` || 'none',\n color: config.headerTextColor || 'inherit',\n backgroundRepeat: 'no-repeat',\n display: 'flex',\n alignItems: 'flex-start',\n flexDirection: 'row',\n width: '100%',\n position: 'absolute',\n top: config.chatHeaderHeight ? `-${config.chatHeaderHeight}` : '',\n height: config.chatHeaderHeight,\n borderColor: config.headerBackgroundColor ? config.headerBackgroundColor : 'inherit',\n borderStyle: config.chatBorderStyle ? config.chatBorderStyle : 'none',\n borderWidth: config.chatBorderWidth ? config.chatBorderWidth : '0px'\n };\n};\n\nconst getMinimizeButtonStyle = (config: IMsdyn365PvaChatConnectorConfig): React.CSSProperties => {\n config.chatHeaderHeight = config.chatHeaderHeight || '70px';\n return {\n borderTop: 'none',\n borderLeft: 'none',\n borderRight: 'none',\n borderBottom: `solid 2px ${config.headerTextColor || 'White'}`,\n backgroundColor: 'transparent',\n padding: '5px 10px 3px 10px',\n cursor: 'pointer',\n outlineStyle: 'none',\n marginTop: '7px',\n marginRight: '7px'\n };\n};\n\nconst getCloseButtonStyle = (config: IMsdyn365PvaChatConnectorConfig): React.CSSProperties => {\n config.chatHeaderHeight = config.chatHeaderHeight || '70px';\n return {\n border: 'none',\n color: config.headerTextColor || 'White',\n backgroundColor: 'transparent',\n padding: '0px 0px 0px 7px',\n cursor: 'pointer',\n outlineStyle: 'none',\n marginTop: '7px',\n marginRight: '7px'\n };\n};\n\nconst getChatMessageContent = (config: IMsdyn365PvaChatConnectorConfig): React.CSSProperties => {\n config.chatHeaderHeight = config.chatHeaderHeight || '70px';\n return {\n height: '100%',\n width: '100%',\n borderColor: config.chatBorderColor ? config.chatBorderColor : 'inherit',\n borderStyle: config.chatBorderStyle ? config.chatBorderStyle : 'none',\n borderWidth: config.chatBorderWidth ? config.chatBorderWidth : '0px'\n };\n};\n\nconst getProactiveWrapperStyle = (config: IMsdyn365PvaChatConnectorConfig): React.CSSProperties => {\n return {\n flexDirection: 'column',\n display: 'flex',\n justifyContent: 'flex-end',\n backgroundColor: config.backgroundColor || 'White'\n };\n};\n\nconst getProactiveMessageHeader = (config: IMsdyn365PvaChatConnectorConfig): React.CSSProperties => {\n config.chatHeaderHeight = config.chatHeaderHeight || '70px';\n return {\n backgroundColor: config.headerBackgroundColor || 'inherit',\n backgroundImage: `url(\"${config.headerBackgroundImageURL}\")` || 'none',\n color: config.headerTextColor || 'inherit',\n backgroundRepeat: 'no-repeat',\n display: 'flex',\n alignItems: 'flex-start',\n flexDirection: 'row',\n boxSizing: 'border-box',\n width: '100%',\n height: config.chatHeaderHeight,\n borderColor: config.headerBackgroundColor ? config.headerBackgroundColor : 'inherit',\n borderStyle: config.chatBorderStyle ? config.chatBorderStyle : 'none',\n borderWidth: config.chatBorderWidth ? config.chatBorderWidth : '0px'\n };\n};\n\nconst getProactiveMessageContent = (config: IMsdyn365PvaChatConnectorConfig): React.CSSProperties => {\n config.chatHeaderHeight = config.chatHeaderHeight || '70px';\n return {\n width: '100%',\n padding: '10px 20px',\n boxSizing: 'border-box',\n borderColor: config.chatBorderColor ? config.chatBorderColor : 'inherit',\n borderStyle: config.chatBorderStyle ? config.chatBorderStyle : 'none',\n borderWidth: config.chatBorderWidth ? config.chatBorderWidth : '0px'\n };\n};\n\nconst getProactiveButtonStyle = (config: IMsdyn365PvaChatConnectorConfig): React.CSSProperties => {\n config.chatHeaderHeight = config.chatHeaderHeight || '70px';\n return {\n color: config.headerTextColor || 'inherit',\n cursor: 'pointer',\n padding: '5px 10px',\n outline: 'none',\n border: 'none',\n backgroundColor: config.headerBackgroundColor || 'inherit',\n borderRadius: '25px'\n };\n};\n\nconst getRedDotStyle = (config: IMsdyn365PvaChatConnectorConfig): React.CSSProperties => {\n return {\n background: 'Red',\n borderRadius: '50%',\n height: '5px',\n width: '5px',\n position: 'absolute',\n right: '10px',\n bottom: '33px'\n };\n};\n\n/**\n * Generates styles for the chat wrapper, and proactive chat parts\n * @param config IMsdyn365PvaChatConnectorConfig\n * @param minimized boolean\n * @returns IChatCustomStyle\n */\nexport const getChatStyling = (config: IMsdyn365PvaChatConnectorConfig, minimized: boolean, isMobileDevice: boolean): IChatCustomStyle => {\n return {\n ChatWrapperStyle: getChatWrapperStyle(config),\n MaximizedChatWrapperStyle: getMaximizedChatWrapperStyle(config, isMobileDevice),\n ChatButtonStyle: getChatButtonStyle(config),\n ButtonStoreLogoStyle: getButtonStoreLogoStyle(config),\n ChatStoreLogoStyle: getChatStoreLogoStyle(config),\n ChatMessagesStyle: getChatMessagesStyle(config, minimized),\n ChatMessageHeader: getChatMessageHeader(config),\n MinimizeButtonStyle: getMinimizeButtonStyle(config),\n CloseButtonStyle: getCloseButtonStyle(config),\n ChatMessageContent: getChatMessageContent(config),\n ProactiveWrapperStyle: getProactiveWrapperStyle(config),\n ProactiveMessageHeader: getProactiveMessageHeader(config),\n ProactiveMessageContent: getProactiveMessageContent(config),\n ProactiveButtonStyle: getProactiveButtonStyle(config),\n RedDotStyle: getRedDotStyle(config)\n };\n};\n\nconst fontFormat = (font?: string): string | undefined => {\n if (font && font.length > 0) {\n const arr = font.split(',');\n for (let i = 0; i < arr.length; i++) {\n arr[i] = `'${arr[i].trim()}'`;\n }\n font = arr.join(', ');\n } else {\n font = \"'Calibri', 'Helvetica Neue', 'Arial', 'sans-serif'\";\n }\n\n return font;\n};\n\nconst getBubbleStyling = (config: IMsdyn365PvaChatConnectorConfig): IBubbleStyling => {\n return {\n bubbleBackground: config.bubbleBackground || 'White',\n bubbleTextColor: config.bubbleTextColor || 'Black',\n bubbleBorderColor: config.bubbleBorderColor || '#e6e6e6',\n bubbleBorderRadius: config.bubbleBorderRadius || '2',\n bubbleBorderStyle: config.bubbleBorderStyle || 'solid',\n bubbleBorderWidth: config.bubbleBorderWidth || '1',\n bubbleFromUserBackground: config.bubbleFromUserBackground || 'White',\n bubbleFromUserTextColor: config.bubbleFromUserTextColor || 'Black',\n bubbleFromUserBorderColor: config.bubbleFromUserBorderColor || '#e6e6e6',\n bubbleFromUserBorderRadius: config.bubbleFromUserBorderRadius || '2',\n bubbleFromUserBorderStyle: config.bubbleFromUserBorderStyle || 'solid',\n bubbleFromUserBorderWidth: config.bubbleFromUserBorderWidth || '1'\n };\n};\n\n// eslint-disable-next-line complexity\nconst getOtherStyling = (config: IMsdyn365PvaChatConnectorConfig): IOtherStyling => {\n return {\n groupTimestamp: config.groupTimestamp || true,\n sendTimeout: config.sendTimeout || '20000',\n sendTimeoutForAttachments: config.sendTimeoutForAttachments || '120000',\n timestampColor: config.timestampColor || 'undefined',\n timestampFormat: config.timestampFormat || 'undefined',\n notificationDebounceTimeout: config.notificationDebounceTimeout || '400',\n hideToaster: config.hideToaster || true,\n toasterHeight: config.toasterHeight || '32',\n toasterMaxHeight: config.toasterMaxHeight || '32 * 5',\n toasterSingularMaxHeight: config.toasterSingularMaxHeight || '50',\n toastFontSize: config.toastFontSize || '87.5%',\n toastIconWidth: config.toastIconWidth || '36',\n toastSeparatorColor: config.toastSeparatorColor || '#E8EAEC',\n toastTextPadding: config.toastTextPadding || '6',\n toastErrorBackgroundColor: config.toastErrorBackgroundColor || '#FDE7E9',\n toastErrorColor: config.toastErrorColor || '#A80000',\n toastInfoBackgroundColor: config.toastInfoBackgroundColor || '#CEF1FF',\n toastInfoColor: config.toastInfoColor || '#105E7D',\n toastSuccessBackgroundColor: config.toastSuccessBackgroundColor || '#DFF6DD',\n toastSuccessColor: config.toastSuccessColor || '#107C10',\n toastWarnBackgroundColor: config.toastWarnBackgroundColor || '#FFF4CE',\n toastWarnColor: config.toastWarnColor || '#3B3A39',\n typingAnimationBackgroundImage: config.typingAnimationBackgroundImage || 'undefined',\n typingAnimationDuration: config.typingAnimationDuration || '5000',\n typingAnimationHeight: config.typingAnimationHeight || '20',\n typingAnimationWidth: config.typingAnimationWidth || '64',\n videoHeight: config.videoHeight || '270',\n markdownExternalLinkIconImage:\n config.markdownExternalLinkIconImage ||\n 'url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIzIDMgMTggMTgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTcuMjUwMSA0LjUwMDE3SDEwLjc0OTVDMTEuMTYzNyA0LjUwMDE3IDExLjQ5OTUgNC44MzU5NiAxMS40OTk1IDUuMjUwMTdDMTEuNDk5NSA1LjYyOTg2IDExLjIxNzMgNS45NDM2NiAxMC44NTEzIDUuOTkzMzJMMTAuNzQ5NSA2LjAwMDE3SDcuMjQ5NzRDNi4wNzA3OSA1Ljk5OTYxIDUuMTAzNDkgNi45MDY1NiA1LjAwNzg2IDguMDYxMTJMNS4wMDAyOCA4LjIyMDAzTDUuMDAzMTIgMTYuNzUwN0M1LjAwMzQzIDE3Ljk0MTUgNS45Mjg4NSAxOC45MTYxIDcuMDk5NjYgMTguOTk0OUw3LjI1MzcxIDE5LjAwMDFMMTUuNzUxOCAxOC45ODg0QzE2Ljk0MTUgMTguOTg2OCAxNy45MTQ1IDE4LjA2MiAxNy45OTM1IDE2Ljg5MjNMMTcuOTk4NyAxNi43Mzg0VjEzLjIzMjFDMTcuOTk4NyAxMi44MTc5IDE4LjMzNDUgMTIuNDgyMSAxOC43NDg3IDEyLjQ4MjFDMTkuMTI4NCAxMi40ODIxIDE5LjQ0MjIgMTIuNzY0MyAxOS40OTE4IDEzLjEzMDNMMTkuNDk4NyAxMy4yMzIxVjE2LjczODRDMTkuNDk4NyAxOC43NDA3IDE3LjkyOTMgMjAuMzc2OSAxNS45NTI4IDIwLjQ4MjlMMTUuNzUzOCAyMC40ODg0TDcuMjU4MjcgMjAuNTAwMUw3LjA1NDk1IDIwLjQ5NDlDNS4xNDIzOSAyMC4zOTU0IDMuNjA4OTUgMTguODYyNyAzLjUwODM3IDE2Ljk1MDJMMy41MDMxMiAxNi43NTExTDMuNTAwODkgOC4yNTI3TDMuNTA1MjkgOC4wNTAyQzMuNjA1MzkgNi4xMzc0OSA1LjEzODY3IDQuNjA0NDkgNy4wNTA5NiA0LjUwNTI3TDcuMjUwMSA0LjUwMDE3SDEwLjc0OTVINy4yNTAxWk0xMy43NDgxIDMuMDAxNDZMMjAuMzAxOCAzLjAwMTk3TDIwLjQwMTQgMy4wMTU3NUwyMC41MDIyIDMuMDQzOTNMMjAuNTU5IDMuMDY4MDNDMjAuNjEyMiAzLjA5MTIyIDIwLjY2MzQgMy4xMjE2MyAyMC43MTExIDMuMTU4ODVMMjAuNzgwNCAzLjIyMTU2TDIwLjg2NDEgMy4zMjAxNEwyMC45MTgzIDMuNDEwMjVMMjAuOTU3IDMuNTAwNTdMMjAuOTc2MiAzLjU2NDc2TDIwLjk4OTggMy42Mjg2MkwyMC45OTkyIDMuNzIyODJMMjAuOTk5NyAxMC4yNTU0QzIwLjk5OTcgMTAuNjY5NiAyMC42NjM5IDExLjAwNTQgMjAuMjQ5NyAxMS4wMDU0QzE5Ljg3IDExLjAwNTQgMTkuNTU2MiAxMC43MjMyIDE5LjUwNjUgMTAuMzU3MUwxOS40OTk3IDEwLjI1NTRMMTkuNDk4OSA1LjU2MTQ3TDEyLjI3OTcgMTIuNzg0N0MxMi4wMTM0IDEzLjA1MSAxMS41OTY4IDEzLjA3NTMgMTEuMzAzMSAxMi44NTc1TDExLjIxOSAxMi43ODQ5QzEwLjk1MjcgMTIuNTE4NyAxMC45Mjg0IDEyLjEwMjEgMTEuMTQ2MiAxMS44MDg0TDExLjIxODggMTEuNzI0M0wxOC40MzY5IDQuNTAxNDZIMTMuNzQ4MUMxMy4zNjg0IDQuNTAxNDYgMTMuMDU0NiA0LjIxOTMxIDEzLjAwNSAzLjg1MzI0TDEyLjk5ODEgMy43NTE0NkMxMi45OTgxIDMuMzcxNzcgMTMuMjgwMyAzLjA1Nzk3IDEzLjY0NjQgMy4wMDgzMUwxMy43NDgxIDMuMDAxNDZaIiBmaWxsPSIjMjEyMTIxIiAvPjwvc3ZnPg==)',\n markdownRespectCRLF: config.markdownRespectCRLF || 'true',\n internalLiveRegionFadeAfter: config.internalLiveRegionFadeAfter || '1000',\n accent: config.accent || '#0063B1',\n subtle: config.subtle || '#767676'\n };\n};\n\nconst getAvatarStyling = (config: IMsdyn365PvaChatConnectorConfig): IAvatarStyling => {\n return {\n avatarBorderRadius: config.avatarBorderRadius || '50%',\n avatarSize: config.avatarSize || '40',\n botAvatarBackgroundColor: config.botAvatarBackgroundColor || 'undefined',\n botAvatarImage: config.botAvatarImage || '',\n botAvatarInitials: config.botAvatarInitials || '',\n userAvatarBackgroundColor: config.userAvatarBackgroundColor || 'undefined',\n userAvatarImage: config.userAvatarImage || '',\n userAvatarInitials: config.userAvatarInitials || '',\n showAvatarInGroup: config.showAvatarInGroup || 'status'\n };\n};\n\nconst getSuggestedActionStyling = (config: IMsdyn365PvaChatConnectorConfig): ISuggestedActionStyling => {\n return {\n suggestedActionLayout: config.suggestedActionLayout || 'carousel',\n suggestedActionBackground: config.suggestedActionBackground || 'White',\n suggestedActionTextColor: config.suggestedActionTextColor || '',\n suggestedActionBorderColor: config.suggestedActionBorderColor || '',\n suggestedActionBorderRadius: config.suggestedActionBorderRadius || '0',\n suggestedActionBorderStyle: config.suggestedActionBorderStyle || 'solid',\n suggestedActionBorderWidth: config.suggestedActionBorderWidth || '2',\n suggestedActionDisabledBorderStyle: config.suggestedActionDisabledBorderStyle || 'solid',\n suggestedActionDisabledBorderWidth: config.suggestedActionDisabledBorderWidth || '2',\n suggestedActionDisabledTextColor: config.suggestedActionDisabledTextColor || '',\n suggestedActionHeight: config.suggestedActionHeight || '40',\n suggestedActionImageHeight: config.suggestedActionImageHeight || '20',\n suggestedActionsCarouselFlipperCursor: config.suggestedActionsCarouselFlipperCursor || '',\n suggestedActionsCarouselFlipperBoxWidth: config.suggestedActionsCarouselFlipperBoxWidth || '40',\n suggestedActionsCarouselFlipperSize: config.suggestedActionsCarouselFlipperSize || '20',\n suggestedActionsFlowMaxHeight: config.suggestedActionsFlowMaxHeight || '',\n suggestedActionsStackedHeight: config.suggestedActionsStackedHeight || '',\n suggestedActionsStackedOverflow: config.suggestedActionsStackedOverflow || '2',\n suggestedActionsStackedLayoutButtonMaxHeight: config.suggestedActionsStackedLayoutButtonMaxHeight || '',\n suggestedActionsStackedLayoutButtonTextWrap: config.suggestedActionsStackedLayoutButtonTextWrap || false\n };\n};\n\n/**\n * Generates style options for the Botframework-WebChat widget\n * @param config IMsdyn365PvaChatConnectorConfig\n * @returns IChatStyling\n */\nexport const getChatStyleOptions = (config: IMsdyn365PvaChatConnectorConfig): IChatStyling => {\n const bubbleStyling = getBubbleStyling(config);\n const avatarStyling = getAvatarStyling(config);\n const suggestedActionStyling = getSuggestedActionStyling(config);\n const otherStyling = getOtherStyling(config);\n return {\n hideUploadButton: true,\n primaryFont: fontFormat(config.primaryFont),\n backgroundColor: config.backgroundColor || 'White',\n ...bubbleStyling,\n ...avatarStyling,\n ...suggestedActionStyling,\n ...otherStyling\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React from 'react';\nimport { IAction, IDispatch, INext } from '../interfaces';\nimport { TContextProvider } from '../../interfaces';\nimport { IPvaChatConnectorViewProps } from '../msdyn365-pva-chat-connector';\n\nexport class CommerceChatStore {\n private props: IPvaChatConnectorViewProps;\n private setNewMessageAction: React.Dispatch>;\n private provider?: TContextProvider;\n\n /**\n * Gets conversation token\n * @param props IPvaChatConnectorViewProps\n */\n public static async getDirectLineToken(props: IPvaChatConnectorViewProps): Promise {\n if (props.config.powervaDirectlineTokenURL && props.config.botID && props.config.tenantID) {\n // use direct line token url, bot id and tenant id from module config to get conversation token\n const url = `${props.config.powervaDirectlineTokenURL}?botId=${props.config.botID}&tenantId=${props.config.tenantID}`;\n const options = { method: 'GET' };\n return fetch(url, options)\n .then(r => r.json())\n .then(r => {\n if (r.token) {\n return r.token;\n } else {\n throw r;\n }\n });\n }\n\n // use direct line token url, bot id and tenant id from app config to get conversation token\n const url = `${props.context.app.config.pvaChatConnectorPowervaDirectlineTokenURL}?botId=${props.context.app.config.pvaChatConnectorBotID}&tenantId=${props.context.app.config.pvaChatConnectorTenantID}`;\n const options = {\n method: 'GET'\n };\n return fetch(url, options)\n .then(r => r.json())\n .then(r => {\n if (r.token) {\n return r.token;\n } else {\n throw r;\n }\n });\n }\n\n /**\n * Creates a new instance of commerce store for WebChat\n * @param props IPvaChatConnectorViewProps\n * @param provider TContextProvider\n * @param setNewMessage React.Dispatch>\n */\n constructor(\n props: IPvaChatConnectorViewProps,\n provider: TContextProvider | undefined,\n setNewMessage: React.Dispatch>\n ) {\n this.props = props;\n this.provider = provider;\n this.setNewMessageAction = setNewMessage;\n }\n\n /**\n * Handles custom chat actions\n * @param param0 {\n * dispatch: IDispatch;\n * next: INext;\n * action: IAction;\n * }\n */\n public async actionHandler({ dispatch, next, action }: { dispatch: IDispatch; next: INext; action: IAction }): Promise {\n const atype = action.type;\n\n switch (atype) {\n case 'DIRECT_LINE/CONNECT_FULFILLED': {\n // sets language\n dispatch({\n type: 'WEB_CHAT/SEND_EVENT',\n payload: {\n name: 'webchat/join',\n value: { language: window.navigator.language }\n }\n });\n break;\n }\n case 'DIRECT_LINE/INCOMING_ACTIVITY': {\n const activity = action.payload.activity;\n if (activity?.from?.role === 'bot') {\n // Sets flag for new message (will be use to indicate new messages from bot when chat is minimized)\n this.setNewMessageAction(true);\n }\n break;\n }\n case 'DIRECT_LINE/POST_ACTIVITY_FULFILLED': {\n switch (action.payload.activity.name) {\n case 'webchat/join':\n {\n if (this.provider !== undefined) {\n // Sets Chat Context\n dispatch({\n type: 'WEB_CHAT/SEND_EVENT',\n payload: {\n name: 'pvaSetContext',\n value: this.provider()\n }\n });\n }\n }\n break;\n case 'pvaSetContext':\n {\n if (this.props.config.triggerQuery) {\n // Initialize chat after Chat Context is set\n dispatch({\n type: 'WEB_CHAT/SEND_MESSAGE_BACK',\n payload: {\n text: this.props.config.triggerQuery\n }\n });\n }\n }\n break;\n default: {\n // default nothing\n }\n }\n break;\n }\n default: {\n // default nothing\n }\n }\n\n return next(action);\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React, { FunctionComponent, useMemo, useState } from 'react';\nimport { getChatStyleOptions } from '../helpers/StyleComposers';\nimport { IChatCoreProps, IAction, IDispatch } from '../interfaces';\nimport { CommerceChatStore } from '../helpers/CommerceChatStore';\n\n/**\n * Just a core Chat component\n * @param props\n */\n\nconst ChatCore: FunctionComponent = (props: IChatCoreProps) => {\n const { ReactWebChat } = window.WebChat;\n\n const [userId, setUserId] = useState('');\n useMemo(() => {\n if (props.provider) {\n const ctx = props.provider();\n if (ctx.UserId) {\n setUserId(typeof ctx.UserId === 'string' ? ctx.UserId : ctx.UserId.value.toString());\n }\n }\n }, [props.provider]);\n\n const directLine = useMemo(() => {\n return window.WebChat.createDirectLine({ token: props.directLineToken });\n }, [props.directLineToken]);\n\n const commerceChatStore = useMemo(() => {\n if (directLine && props.provider) {\n return new CommerceChatStore(props.config, props.provider, props.setNewMessage);\n }\n return undefined;\n }, [props.provider, directLine]);\n\n const store = useMemo(() => {\n return window.WebChat.createStore(\n {},\n ({ dispatch }: { dispatch: IDispatch }) => (next: (action: IAction) => IDispatch) => (action: IAction) => {\n commerceChatStore?.actionHandler({ dispatch, next, action });\n }\n );\n }, [commerceChatStore]);\n const styleOptions = getChatStyleOptions(props.config.config);\n\n return props.directLineToken !== '' ? (\n \n ) : (\n

Please wait while we are connecting.

\n );\n};\n\nexport default ChatCore;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React, { FunctionComponent, useEffect, useState } from 'react';\nimport { isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport ContextProvider from '../helpers/ContextProvider';\nimport { getChatStyling } from '../helpers/StyleComposers';\nimport { TContextProvider } from '../../interfaces';\nimport { IPvaChatConnectorViewProps } from '../msdyn365-pva-chat-connector';\nimport { CommerceChatStore } from '../helpers';\nimport ChatCore from './ChatCore';\n\nconst INVALID_TOKEN = 'INVALID_TOKEN';\nconst CLOSE_IMG_DATA =\n 'M443.6,387.1L312.4,255.4l131.5-130c5.4-5.4,5.4-14.2,0-19.6l-37.4-37.6c-2.6-2.6-6.1-4-9.8-4c-3.7,0-7.2,1.5-9.8,4 L256,197.8L124.9,68.3c-2.6-2.6-6.1-4-9.8-4c-3.7,0-7.2,1.5-9.8,4L68,105.9c-5.4,5.4-5.4,14.2,0,19.6l131.5,130L68.4,387.1 c-2.6,2.6-4.1,6.1-4.1,9.8c0,3.7,1.4,7.2,4.1,9.8l37.4,37.6c2.7,2.7,6.2,4.1,9.8,4.1c3.5,0,7.1-1.3,9.8-4.1L256,313.1l130.7,131.1 c2.7,2.7,6.2,4.1,9.8,4.1c3.5,0,7.1-1.3,9.8-4.1l37.4-37.6c2.6-2.6,4.1-6.1,4.1-9.8C447.7,393.2,446.2,389.7,443.6,387.1z';\n\n/**\n * Outer chat component, displays chat button, and proactive chat, and handles custom actions\n * @param props IPvaChatConnectorViewProps\n */\nconst Chat: FunctionComponent = (props: IPvaChatConnectorViewProps) => {\n const [loaded, setLoaded] = useState(false); // loaded & minimized are needed as ChatWidget should not be removed from DOM (it resets chat)\n const [minimized, setMinimized] = useState(true);\n const [newMessage, setNewMessage] = useState(false); // TODO: use this to indicate new message in minimized chat\n const [token, setToken] = useState(''); // holds conversation token for WebChat\n const [isProactive, setIsProactive] = useState(false); // if proactive chat is triggered\n const [proactiveMessage, setProactiveMessage] = useState(props.config.proactiveDefaultMessage);\n const [closed, setClosed] = useState(false);\n const [provider, setProvider] = useState();\n const isMobileDevice =\n isMobile({ variant: VariantType.Browser, context: props.context.request }) === 'xs' ||\n isMobile({ variant: VariantType.Viewport, context: props.context.request }) === 'xs';\n const chatStyle = getChatStyling(props.config, minimized, isMobileDevice); // generates chat style objects based on configuration\n const handleMaximizeButtonClick = () => {\n setLoaded(true);\n setMinimized(false);\n setNewMessage(false);\n };\n const handleMinimizeButtonClick = () => {\n setMinimized(true);\n setNewMessage(false);\n };\n const handleCloseButtonClick = () => {\n setClosed(true);\n setLoaded(false);\n setMinimized(true);\n setNewMessage(false);\n setIsProactive(false);\n };\n useEffect(() => {\n if (loaded) {\n CommerceChatStore.getDirectLineToken(props)\n .then(directLineToken => {\n setToken(directLineToken);\n })\n .catch(e => {\n setToken(INVALID_TOKEN);\n props.telemetry.exception(e);\n });\n }\n }, [loaded]);\n useEffect(() => {\n (async () => {\n const contextProvider = new ContextProvider(props); // Generates context (provider) and checks for proactive chat triggers\n const prov = await contextProvider.init();\n if (contextProvider.data.enabled) {\n props.context.telemetry.debug(`[Chat] Proactive chat was enabled: '${contextProvider.data.enabled}'.`);\n // if proactive chat is triggered\n const timeout = contextProvider.data.timeout * 1000; // timeout is there only for WaitOnTime trigger\n setTimeout(() => {\n if (!loaded) {\n props.context.telemetry.debug(`[Chat] Proactive chat was loaded: ${loaded}.`);\n setProactiveMessage(contextProvider.data.message);\n setIsProactive(true);\n }\n }, timeout);\n }\n setProvider(() => prov);\n })().catch(e => props.telemetry.exception(e));\n }, []);\n useEffect(() => {\n if (closed) {\n setClosed(false);\n }\n }, [token, provider]);\n const isValidToken = (): boolean => {\n return `${token}` !== INVALID_TOKEN;\n };\n return (\n \n {minimized && (!isProactive || (isProactive && loaded)) && (\n \n )}\n {minimized && isProactive && !loaded && (\n
\n
\n {props.config.storeLogoURL && (\n logo\n )}\n
\n
\n
\n

{proactiveMessage}

\n \n
\n
\n )}\n {loaded && isValidToken() && (\n
\n
\n {props.config.storeLogoURL && (\n logo\n )}\n
\n \n
\n
\n \n
\n
\n )}\n {!isValidToken() &&
{props.config.unableToLoadChatMessage}
}\n
\n );\n};\n\nexport default Chat;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\nimport { Chat, IPvaChatConnectorViewProps } from './index';\n\nexport default (props: IPvaChatConnectorViewProps) => {\n // Only for CDN loading check, won't be needed with npm package of Botframework-WebChat\n const [loaded, setLoaded] = React.useState(false);\n const p = {\n ...props\n };\n\n // Just to verify that CDN Chat Widget js lib is loaded\n // Remove this block if moving to npm package of Botframework-WebChat\n const interval = setInterval(() => {\n const t = typeof window;\n if (t !== 'undefined' && window.WebChat) {\n setLoaded(true);\n clearInterval(interval);\n }\n }, 100);\n\n return
{loaded && }
;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IDistributorInfo } from '@msdyn365-commerce-modules/retail-actions';\nimport React from 'react';\nimport classnames from 'classnames';\nimport { ITermsOfServiceLinkData } from '../distributor-selector.props.autogenerated';\n\nexport interface IDistributorSelectorFoundResultsMessage {\n distributorCountMessage: string;\n distributors?: IDistributorInfo[];\n}\n\nexport interface IDistributorSelectorTermsOfServiceProps {\n link?: ITermsOfServiceLinkData;\n requestContext: Msdyn365.IRequestContext;\n onTextChange?(event: Msdyn365.ContentEditableEvent): void;\n}\n\nexport interface IDistributorDoNotShowProps {\n onChange(event: React.ChangeEvent): void;\n doNotShowAgainMessage: string;\n}\n\nexport interface IDistributorButtonProps {\n onClick(event: React.MouseEvent): void;\n text: string;\n className: string;\n}\n\nexport interface IDistributorEmptyMessageProps {\n emptyLocationsText?: string;\n}\n\nexport const DistributorSelectorCountMessage: React.FC = ({\n distributors,\n distributorCountMessage\n}) => {\n if (distributors) {\n return (\n
\n {distributorCountMessage.replace('{count}', distributors.length.toString())}\n
\n );\n }\n\n return null;\n};\n\nexport const DistributorSelectorTermsOfService: React.FC = ({\n link,\n requestContext,\n onTextChange\n}) => {\n if (link) {\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-distributor-selector__terms-link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link'\n };\n\n return (\n
\n \n
\n );\n }\n return null;\n};\n\nexport const DistributorSelectorWaiting: React.FC = () => {\n return
;\n};\n\nexport const DistributorSelectorDoNotShowAgain: React.FC = ({ onChange, doNotShowAgainMessage }) => {\n return (\n
\n \n {doNotShowAgainMessage}\n
\n );\n};\n\nexport const DistributorSelectorButton: React.FC = ({ onClick, text, className }) => {\n return (\n \n );\n};\n\nexport const DistributorEmptyMessage: React.FC = ({ emptyLocationsText }) => (\n
\n

{emptyLocationsText}

\n
\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions, IDistributorInfo } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n IPayLoad,\n ITelemetryContent,\n TelemetryConstant,\n getPayloadObject,\n getTelemetryAttributes\n} from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\n/**\n * Distributor selector line item resources.\n */\n// @ts-ignore\nexport interface IDistributorSelectorDistributorLineItemResources {\n currentDistributorText: string;\n locationHeadingText: string;\n primaryContactText: string;\n paymentTypeText: string;\n viewAllDistributorText: string;\n deliveryMethodHeadingText: string;\n}\n\n/**\n * Distributor Locator line item props.\n */\nexport interface IDistributorSelectorLineItemProps {\n mainClassName: string;\n selectDistributorText?: string;\n distributor: IDistributorInfo;\n resources: IDistributorSelectorDistributorLineItemResources;\n index: string;\n currentDistributorId: number | undefined;\n distributorDetailsToBeShown?: string[];\n shouldShowIndex?: boolean;\n /**\n * The telemetry content.\n */\n telemetryContent?: ITelemetryContent;\n handlers: {\n onSetAsCurrentDistributor(distributorId: number | undefined): void;\n onViewAllDistributorDetails(distributorId: number | undefined): void;\n };\n}\n\n/**\n * Set Preferred distributor functionality.\n * @param props -Distributor locator location items.\n * @returns Distributor locator selected location line item action.\n */\nconst onSetCurrentDistributorClickHandler = (props: IDistributorSelectorLineItemProps) => () => {\n props.handlers.onSetAsCurrentDistributor(props.distributor.OrgUnit?.RecordId);\n};\n\nconst onViewAllDistributorDetailsClickHandler = (props: IDistributorSelectorLineItemProps) => () => {\n props.handlers.onViewAllDistributorDetails(props.distributor.OrgUnit?.RecordId);\n};\n\n/**\n * Renders distributor selector line items.\n * @param props - Distributor selector line items props.\n * @returns - HTML.\n */\nconst distributorSelectorLineItem: React.FC = (props: IDistributorSelectorLineItemProps) => {\n const {\n distributor,\n resources,\n index,\n currentDistributorId,\n telemetryContent,\n shouldShowIndex,\n selectDistributorText,\n distributorDetailsToBeShown,\n mainClassName\n } = props;\n\n const distributorName: string | undefined = distributor.OrgUnit?.OrgUnitName;\n const isCurrentDistributor = currentDistributorId === distributor.OrgUnit?.RecordId;\n const payLoad: IPayLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.CurrentDistributor);\n const currentDistributorAttributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const distributorAddress = distributor.OrgUnit?.OrgUnitAddress?.FullAddress;\n const distributorPhoneNo = distributor.OrgUnit?.OrgUnitAddress?.Phone;\n const deliveryMethods = distributor?.OrgUnitDeliveryOptions?.DeliveryOptions;\n\n return (\n
\n {isCurrentDistributor ? (\n
\n
{resources.currentDistributorText}
\n
\n ) : null}\n
\n {shouldShowIndex && {index}}\n {distributorName}\n
\n
\n {distributorDetailsToBeShown && distributorDetailsToBeShown.indexOf('location') > -1 ? (\n
\n {resources.locationHeadingText}\n {distributorAddress && (\n
\n \n {distributorAddress}\n
\n )}\n
\n ) : null}\n {distributorDetailsToBeShown && distributorDetailsToBeShown.indexOf('primaryContact') > -1 ? (\n
\n {resources.primaryContactText}\n {distributorPhoneNo && (\n
\n \n {distributorPhoneNo}\n
\n )}\n
\n ) : null}\n {distributorDetailsToBeShown && distributorDetailsToBeShown.indexOf('deliveryMethod') > -1 ? (\n
\n {resources.deliveryMethodHeadingText}\n {ArrayExtensions.hasElements(deliveryMethods) && (\n
\n <>\n {deliveryMethods?.map(deliveryMethod => {\n return (\n \n {deliveryMethod.Description}\n \n );\n })}\n \n
\n )}\n
\n ) : null}\n \n {resources.viewAllDistributorText}\n \n {!isCurrentDistributor ? (\n \n {selectDistributorText}\n \n ) : null}\n
\n
\n );\n};\n\n/**\n * Distributor line item component.\n */\nexport const DistributorSelectorLineItemComponent = distributorSelectorLineItem as (\n props: IDistributorSelectorLineItemProps\n) => JSX.Element;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions, IDistributorInfo } from '@msdyn365-commerce-modules/retail-actions';\nimport { ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { OrgUnit } from '@msdyn365-commerce/retail-proxy';\nimport React from 'react';\nimport { observable, reaction } from 'mobx';\nimport classnames from 'classnames';\nimport { IDistributorSelectorResources } from '../distributor-selector.props.autogenerated';\nimport { DistributorSelectorLineItemComponent } from './distributor-selector-line-item.components';\n\n/**\n * Distributor selector lines props interface.\n */\nexport interface IDistributorSelectorLinesProps {\n mainClassName: string;\n distributors?: IDistributorInfo[];\n resources: IDistributorSelectorResources;\n selectedDistributorId?: number;\n shouldDisplayList?: boolean;\n isLocationDisabled?: boolean;\n currentDistributorId: number | undefined;\n shouldShowIndex: boolean;\n distributorDetailsToBeShown?: string[];\n selectDistributorText?: string;\n /**\n * The telemetry content.\n */\n telemetryContent?: ITelemetryContent;\n onDistributorSelected(distributor: OrgUnit | undefined): void;\n onSetAsCurrentDistributor: (distributorId: number | undefined) => void;\n onViewAllDistributorDetails: (distributorId: number | undefined) => void;\n}\n\nexport class DistributorSelectorLines extends React.PureComponent {\n private readonly selectedDistributorRef: React.RefObject;\n private distributorCounter: number;\n @observable private shouldDisplayList: boolean | undefined;\n\n public constructor(props: IDistributorSelectorLinesProps) {\n super(props);\n this.selectedDistributorRef = React.createRef();\n this.distributorCounter = 0;\n this.shouldDisplayList = this.props.shouldDisplayList;\n }\n\n public componentDidMount(): void {\n reaction(\n () => this.shouldDisplayList,\n () => {\n setTimeout(() => {\n this._scrollIntoView();\n }, 0);\n }\n );\n }\n\n public componentDidUpdate(previousProps: IDistributorSelectorLinesProps): void {\n if (this.props.selectedDistributorId !== previousProps.selectedDistributorId) {\n this._scrollIntoView();\n }\n }\n\n public render(): JSX.Element | null {\n const { distributors, mainClassName } = this.props;\n this.shouldDisplayList = this.props.shouldDisplayList;\n\n if (!ArrayExtensions.hasElements(distributors)) {\n return null;\n }\n\n this.distributorCounter = 0;\n\n return (\n
\n {distributors.map((distributor, index) => {\n return this._renderDistributor(distributor, index);\n })}\n
\n );\n }\n\n /**\n * On click Handler function.\n * @param orgUnit -OrgUnit distributor.\n * @returns Click action on orgUnit Distributor.\n */\n private readonly onDistributorSelected = (orgUnit: OrgUnit | undefined) => () => {\n this.props.onDistributorSelected(orgUnit);\n };\n\n private _renderDistributor(distributor: IDistributorInfo, index: number): JSX.Element | undefined {\n const {\n distributors,\n mainClassName,\n currentDistributorId,\n resources,\n telemetryContent,\n distributorDetailsToBeShown,\n selectDistributorText,\n shouldShowIndex,\n onSetAsCurrentDistributor,\n onViewAllDistributorDetails\n } = this.props;\n const selectedDistributorId = this.props.selectedDistributorId;\n const defaultAriaSetsize = 0;\n const orgUnit = distributor?.OrgUnit;\n if (distributor) {\n ++this.distributorCounter;\n return (\n \n \n
\n );\n }\n return undefined;\n }\n\n /**\n * Scroll into view.\n */\n private readonly _scrollIntoView = () => {\n const selectedDistributorDiv = this.selectedDistributorRef.current;\n // In devices with a screen width of less than 768px, we display a toggle button that allows users to switch between the distributor list and the map.\n // The distributor list is initially shown in the list view, followed by the map. Each view has its own scrolling behavior, and they are contained within separate parent wrapper div's.\n const parent = this.props.shouldDisplayList\n ? selectedDistributorDiv?.parentElement?.parentElement\n : selectedDistributorDiv?.parentElement;\n if (selectedDistributorDiv && parent) {\n if (this.props.shouldDisplayList) {\n if (parent.scrollTop > selectedDistributorDiv.offsetTop) {\n parent.scrollTop = selectedDistributorDiv.offsetTop - 10;\n } else if (\n selectedDistributorDiv.offsetTop + selectedDistributorDiv.clientHeight >\n parent.scrollTop + parent.clientHeight\n ) {\n parent.scrollTop = selectedDistributorDiv.offsetTop + selectedDistributorDiv.clientHeight - parent.clientHeight - 10;\n }\n } else {\n if (parent.scrollLeft > selectedDistributorDiv.offsetLeft) {\n parent.scrollLeft = selectedDistributorDiv.offsetLeft;\n } else if (\n selectedDistributorDiv.offsetLeft + selectedDistributorDiv.clientHeight >\n parent.scrollLeft + parent.clientHeight\n ) {\n parent.scrollLeft = selectedDistributorDiv.offsetLeft + selectedDistributorDiv.clientHeight - parent.clientHeight - 10;\n }\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 { TenderType } from '@msdyn365-commerce/retail-proxy';\nimport * as React from 'react';\n\n/**\n * Distributor Payment type list interface.\n */\nexport interface IDistributorPaymentTypesListProps {\n mainClassName: string;\n paymentTypesMenuText?: string;\n paymentTypesList?: TenderType[];\n defaultOptionText?: string;\n onChange(paymentType: string): Promise;\n}\n\n/**\n * Distributor Payment types state interface.\n */\nexport interface IDistributorPaymentTypeListState {\n isFilterExpanded: boolean;\n selectedPaymentTypes?: string;\n}\n\n/**\n * Distributor payment option list Filter\n */\nexport class DistributorPaymentOptionList extends React.PureComponent {\n private readonly _distributorPaymentTypesMenu: React.RefObject;\n\n public constructor(props: IDistributorPaymentTypesListProps) {\n super(props);\n this._distributorPaymentTypesMenu = React.createRef();\n this.state = {\n isFilterExpanded: false,\n selectedPaymentTypes: ''\n };\n }\n\n public render(): JSX.Element {\n const { mainClassName, paymentTypesMenuText, paymentTypesList, defaultOptionText } = this.props;\n const selectedPaymentTypesDesc = defaultOptionText\n ? defaultOptionText\n : paymentTypesList?.find((payment: TenderType) => payment.TenderTypeId === this.state.selectedPaymentTypes)?.Name;\n const role = 'menu';\n return (\n
\n \n {this.state.isFilterExpanded ? (\n
    \n {paymentTypesList?.map((tenderType: TenderType) => {\n return (\n \n \n {tenderType.Name}\n \n \n );\n })}\n
\n ) : null}\n
\n );\n }\n\n /**\n * Method to call when drop down get selected.\n */\n private readonly _renderTenderTypes = () => {\n const isExpandOptionsState = this.state.isFilterExpanded;\n this.setState({\n isFilterExpanded: !isExpandOptionsState\n });\n };\n\n private readonly handleFilterSelection = async (event: React.SyntheticEvent): Promise => {\n event.preventDefault();\n const paymentCode = event.currentTarget.getAttribute('data-value');\n if (paymentCode !== null) {\n this.setState({\n selectedPaymentTypes: paymentCode\n });\n\n this._renderTenderTypes();\n await this.props.onChange(paymentCode);\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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport {\n IPayLoad,\n ITelemetryContent,\n TelemetryConstant,\n getPayloadObject,\n getTelemetryAttributes\n} from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\nimport { TenderType } from '@msdyn365-commerce/retail-proxy';\nimport { DistributorPaymentOptionList } from './distributor-payment-option-list';\n\n/**\n * Distributor Selector Search Form Props interface.\n */\nexport interface IDistributorSelectorSearchFormProps {\n mainClassName: string;\n shouldDisplayList?: boolean;\n telemetryContent?: ITelemetryContent;\n viewMapText: string;\n viewListText: string;\n paymentFilterMenuHeading: string;\n paymentFilterByHeading: string;\n showLocatorView?: boolean;\n showPaymentTypeFilter?: boolean;\n paymentTypes?: TenderType[];\n filteredPaymentType?: string;\n onPaymentFilterSelected(tenderTypeId: string): void;\n onToggleListMapViewState(): void;\n}\n\n/**\n * Simple search form consisting of search text and a search button.\n */\nexport class DistributorSelectorSearchForm extends React.PureComponent {\n private readonly toggleMapViewAttributes: Msdyn365.IDictionary | undefined;\n\n public constructor(props: IDistributorSelectorSearchFormProps) {\n super(props);\n const payLoad: IPayLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.ToggleMapView);\n this.toggleMapViewAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n }\n\n public render(): JSX.Element {\n const {\n mainClassName,\n shouldDisplayList,\n viewMapText,\n viewListText,\n showLocatorView,\n paymentTypes,\n paymentFilterMenuHeading,\n paymentFilterByHeading,\n showPaymentTypeFilter,\n onToggleListMapViewState\n } = this.props;\n const toggleButtonText = shouldDisplayList ? viewMapText : viewListText;\n const toggleButtonClass = shouldDisplayList ? 'view-map' : 'list-view';\n\n return (\n
\n
\n {showLocatorView && (\n \n {toggleButtonText}\n \n )}\n {showPaymentTypeFilter &&\n this.renderPaymentTypeList(this.props, paymentTypes, paymentFilterMenuHeading, paymentFilterByHeading)}\n
\n
\n );\n }\n\n /**\n * Method called on payment filter change.\n * @returns - Void.\n */\n private readonly _onChangeHandler = () => async (tenderTypeId: string): Promise => {\n this.props.onPaymentFilterSelected(tenderTypeId);\n return Promise.resolve();\n };\n\n private readonly renderPaymentTypeList = (\n props: IDistributorSelectorSearchFormProps,\n paymentTypesOptions: TenderType[] | undefined,\n paymentFilterMenuHeading: string | undefined,\n paymentFilterByHeading: string | undefined\n ): JSX.Element | null => {\n return (\n <>\n
{paymentFilterByHeading}
\n \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\n/// \n\nimport * as React from 'react';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport classname from 'classnames';\nimport { reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n isMobile,\n ITelemetryContent,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n NodeTag,\n TelemetryConstant,\n VariantType\n} from '@msdyn365-commerce-modules/utilities';\nimport { ArrayExtensions, IDistributorInfo } from '@msdyn365-commerce-modules/retail-actions';\nimport { OrgUnit, TenderType } from '@msdyn365-commerce/retail-proxy';\nimport { IDistributorSelectorData } from './distributor-selector.data';\nimport { IDistributorSelectorProps } from './distributor-selector.props.autogenerated';\nimport {\n DistributorSelectorButton,\n DistributorSelectorDoNotShowAgain,\n DistributorSelectorCountMessage,\n DistributorSelectorTermsOfService,\n DistributorSelectorWaiting,\n DistributorEmptyMessage\n} from './components/distributor-selector-small-components';\nimport { DistributorSelectorLines } from './components/distributor-selector-lines';\nimport { DistributorSelectorSearchForm } from './components/distributor-selector-search-form';\n\n/**\n * Distributor State Interface.\n */\nexport interface IDistributorState {\n isSearchInProgress: boolean;\n searchTerm?: string;\n isLocationDisabled?: boolean;\n showDistributorDetails?: boolean;\n showWarningDialog?: boolean;\n warningDialogState?: boolean;\n currentSelectedDistributor?: IDistributorInfo;\n distributorId: number | undefined;\n distributorDetailsFromPopup: boolean;\n filteredPaymentTypeId: string;\n}\n\nexport interface ICurrentDistributor {\n DistributorName?: string;\n DistributorId?: number;\n}\n\n/**\n * Distributor View Props Interface.\n */\nexport interface IDistributorSelectorViewProps extends IDistributorSelectorProps {\n state: IDistributorState;\n\n // Current distributor button props\n currentDistributorContainer?: IModuleProps;\n currentDistributorButton: React.ReactNode;\n\n // Containers:\n moduleProps: IModuleProps;\n bodyContainerProps: INodeProps;\n footerContainerProps: INodeProps;\n headerContainerProps: INodeProps;\n\n // Distributor warning Props\n distributorWarningHeaderProps?: React.ReactNode;\n distributorWarningContentHeadingProps?: React.ReactNode;\n distributorWarningContent?: React.ReactNode;\n distributorWarningDoNotShowAgain?: React.ReactNode;\n distributorWarningContinue?: React.ReactNode;\n distributorWarningCancel?: React.ReactNode;\n distributorWarningButtonWrapper: INodeProps;\n\n // Distributor selector Props\n distributorSelectorHeaderProps?: React.ReactNode;\n // Components\n distributorCountMessage?: React.ReactNode;\n searchForm?: React.ReactNode;\n spinner?: React.ReactNode;\n noDistributorsMessage?: React.ReactNode;\n mapContainerProps?: INodeProps;\n maps?: React.ReactNode;\n isMobileView?: boolean;\n distributorDetailsModal?: INodeProps;\n bodyWrapperProps?: INodeProps;\n distributorsResultContainerProps: INodeProps;\n distributorsResultWrapperProps: INodeProps;\n distributorLinesViewProps?: React.ReactNode;\n terms?: React.ReactNode;\n\n // distributor details modal popup\n showDistributorDetailsPopup: boolean;\n distributorDetailsModalPopup: IModuleProps;\n distributorDetailsModalHeader: INodeProps;\n distributorDetailsHeaderProps: React.ReactNode;\n distributorDetailsModalBody: INodeProps;\n distributorDetailsModalBodyContainer: INodeProps;\n\n distributorDetailsLocation: React.ReactNode;\n distributorDetailsPrimaryContact: React.ReactNode;\n distributorDetailsDeliveryMethods: React.ReactNode;\n distributorDetailsViewAllDetails: React.ReactNode;\n distributorDetailsModalFooter: INodeProps;\n distributorDetailsChangeDistributor: React.ReactNode;\n\n // distributor details slider\n distributorDetailsSliderWrapper: INodeProps;\n distributorDetailsSliderHeaderContainer: INodeProps;\n distributorDetailsSliderFooterContainer: INodeProps;\n distributorDetailsSliderBodyContainer: INodeProps;\n distributorDetailsSliderDistributorName: React.ReactNode;\n distributorDetailsSliderHeaderContent: React.ReactNode;\n distributorDetailsSliderInformationWrapper: INodeProps;\n distributorDetailsSliderCurrentDistributorTitle: React.ReactNode;\n distributorDetailsSliderSelectDistributor: React.ReactNode;\n}\n\n/**\n * ILocationHours Interface.\n */\nexport interface ILocationHours {\n openFrom?: string;\n openTo?: string;\n}\n\n/**\n *\n * DistributorSelector component\n * @extends {React.Component>}\n */\n@observer\nclass DistributorSelector extends React.Component, IDistributorState> {\n private readonly telemetryContent: ITelemetryContent;\n private mainClass = 'ms-distributor-selector';\n private headerClass = 'ms-header__current-distributor';\n private readonly currentDistributorBtnRef: React.RefObject = React.createRef();\n private currentDistributor?: ICurrentDistributor;\n\n public constructor(props: IDistributorSelectorProps) {\n super(props);\n this.state = {\n isSearchInProgress: true,\n searchTerm: '',\n showWarningDialog: false,\n showDistributorDetails: false,\n distributorId: undefined,\n distributorDetailsFromPopup: false,\n filteredPaymentTypeId: ''\n };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.currentDistributor = this.getCurrentDistributor();\n }\n\n public async componentDidMount(): Promise {\n const {\n context: {\n actionContext: {\n requestContext: { channel }\n },\n request: { user }\n }\n } = this.props;\n\n if (this.props.data.distributorSelectorStateManager.result) {\n await this._getAndUpdateDistributorList();\n this.checkUserStateAndOpenDialog(user);\n }\n\n reaction(\n () => this.props.data.distributorSelectorStateManager.result,\n async () => {\n await this._getAndUpdateDistributorList();\n this.checkUserStateAndOpenDialog(user);\n }\n );\n\n reaction(\n () => this.props.data.distributorSelectorStateManager.result?.loadMapApi,\n () => {\n this.props.data.distributorSelectorStateManager.result?.loadMapApi({\n key: channel?.BingMapsEnabled ? channel.BingMapsApiKey : '',\n lang: this.props.context.actionContext.requestContext.locale,\n market: this.props.context.actionContext.requestContext.channel?.ChannelCountryRegionISOCode\n });\n }\n );\n }\n\n public render(): JSX.Element | null {\n const {\n config: {\n className,\n distributorSelectorHeading,\n distributorWarningDialogHeading,\n distributorWarningContent,\n termsOfServiceLink,\n distributorDetailsToBeShown,\n selectDistributorText,\n doNotShowAgainCheckbox,\n noDistributorFoundText\n },\n data: {\n distributorSelectorStateManager: { result: distributorSelectorStateManager }\n },\n context: {\n request: { user }\n },\n slots: { maps: mapSlot },\n resources\n } = this.props;\n const { showWarningDialog } = this.state;\n const currentDistributorId = this.currentDistributor?.DistributorId;\n const currentDistributorName = this.currentDistributor?.DistributorName;\n const headerText = currentDistributorName ? currentDistributorName : resources.headerCurrentDistributorText;\n\n let distributorInfoList = distributorSelectorStateManager?.distributorList;\n const paymentTypes = this.getUniquePaymentTypes(distributorInfoList);\n\n const hasMapSlot = ArrayExtensions.hasElements(mapSlot);\n const isMobileDevice = isMobile({ variant: VariantType.Viewport, context: this.props.context.request }) === 'xs';\n const selectedDistributorId = distributorSelectorStateManager?.selectedDistributorId;\n\n const distributorDetails = this.state.showDistributorDetails\n ? this.getDistributorDetails(this.state.distributorId)\n : this.getDistributorDetails(currentDistributorId);\n const isCurrentDistributorSelected = this.state.distributorId === currentDistributorId;\n const shouldOpenDistributorSelectorDialog = !!distributorSelectorStateManager?.isDistributorSelectorDialogOpen;\n const shouldOpenDistributorDetailPopup = !!(distributorSelectorStateManager?.isDistributorDetailPopupOpen && distributorDetails);\n const shouldDisplayList = distributorSelectorStateManager?.listMapViewState?.displayList;\n if (this.state.filteredPaymentTypeId && distributorInfoList) {\n distributorInfoList = this.filterDistributorsByPaymentTypes(distributorInfoList, this.state.filteredPaymentTypeId);\n }\n const sortedDistributorList = distributorInfoList ? this._sortDistributor(distributorInfoList, currentDistributorId) : [];\n\n const canShowLocationView =\n (distributorSelectorStateManager?.distributorSelectorContext?.showMapViewLink === undefined ||\n distributorSelectorStateManager.distributorSelectorContext.showMapViewLink) &&\n distributorSelectorStateManager?.isMapModuleLoaded &&\n hasMapSlot;\n\n const showDistributorDetailsOnMap = distributorSelectorStateManager?.showDistributorDetailsOnMap;\n\n // @ts-ignore\n const viewProps: IDistributorSelectorViewProps = {\n ...(this.props as IDistributorSelectorProps),\n state: this.state,\n maps: hasMapSlot ? mapSlot[0] : undefined,\n showDistributorDetailsPopup: shouldOpenDistributorDetailPopup,\n currentDistributorContainer: this.shouldShowDistributors(user)\n ? {\n tag: 'div' as NodeTag,\n moduleProps: this.props,\n className: `${this.headerClass}-container`\n }\n : undefined,\n currentDistributorButton: (\n \n {headerText}\n \n ),\n moduleProps: {\n tag: Modal,\n moduleProps: this.props,\n className: classname(hasMapSlot ? `${this.mainClass} maps` : `${this.mainClass}`, className),\n autoFocus: true,\n fade: true,\n isOpen: shouldOpenDistributorSelectorDialog,\n 'aria-label': showWarningDialog ? distributorWarningDialogHeading : distributorSelectorHeading,\n onClosed: this._closeDistributorSelectorDialog,\n horizontalPosition: 'center',\n verticalPosition: 'center',\n toggle:\n currentDistributorId || !ArrayExtensions.hasElements(distributorInfoList)\n ? this._closeDistributorSelectorDialog\n : undefined\n },\n isMobileView: isMobileDevice,\n headerContainerProps: {\n tag: ModalHeader,\n className: `${this.mainClass}-modal-header`,\n toggle:\n currentDistributorId || !ArrayExtensions.hasElements(distributorInfoList)\n ? this._closeDistributorSelectorDialog\n : undefined\n },\n distributorSelectorHeaderProps: distributorSelectorHeading && (\n \n ),\n distributorWarningHeaderProps: distributorWarningDialogHeading && (\n \n ),\n distributorWarningContent: distributorWarningContent && (\n \n ),\n footerContainerProps: {\n tag: ModalFooter,\n className: classname(`${this.mainClass}__modal-footer`, this.state.showWarningDialog ? 'distributor-warning-footer' : '')\n },\n bodyContainerProps: {\n tag: ModalBody,\n className: classname(`${this.mainClass}__modal-body`, this.state.showWarningDialog ? 'distributor-warning' : '')\n },\n bodyWrapperProps: {\n tag: 'div' as NodeTag,\n className: `${this.mainClass}__body_wrapper`\n },\n distributorsResultContainerProps: {\n tag: 'div' as NodeTag,\n className: classname(`${this.mainClass}__distributor_container`, shouldDisplayList ? 'show' : 'hide')\n },\n distributorsResultWrapperProps: {\n tag: 'div' as NodeTag,\n className: classname(`${this.mainClass}__distributors_wrapper`, !showDistributorDetailsOnMap ? 'hide' : '')\n },\n mapContainerProps: hasMapSlot\n ? {\n tag: 'div' as NodeTag,\n className: classname(`${this.mainClass}__map_container`, !shouldDisplayList ? 'show' : 'hide')\n }\n : undefined,\n distributorCountMessage: (\n \n ),\n searchForm: (\n \n ),\n spinner: ,\n distributorLinesViewProps: ArrayExtensions.hasElements(distributorInfoList) ? (\n \n ) : (\n undefined\n ),\n noDistributorsMessage: ,\n terms: (\n \n ),\n distributorWarningButtonWrapper: {\n tag: 'div' as NodeTag,\n className: `${this.mainClass}__footer-button-wrapper`\n },\n distributorWarningDoNotShowAgain: doNotShowAgainCheckbox && (\n \n ),\n distributorWarningContinue: (\n \n ),\n distributorWarningCancel: (\n \n ),\n ...this.renderDistributorDetailsViewProps(distributorDetails),\n ...this.renderDistributorSliderViewProps(distributorDetails, isCurrentDistributorSelected)\n };\n return this.props.renderView(viewProps);\n }\n\n public toggleListMapViewState = async (): Promise => {\n const {\n data: {\n distributorSelectorStateManager: { result: distributorSelectorStateManager }\n }\n } = this.props;\n await distributorSelectorStateManager?.toggleListMapViewState();\n };\n\n /**\n * Method to be called on the click on don't show again checkbox.\n */\n public onChangeForDoNotShow = (event: React.ChangeEvent): void => {\n this.setState({ warningDialogState: event.target.checked });\n };\n\n public onSelectDistributor = async (): Promise => {\n if (this.state.distributorId) {\n await this._setCurrentDistributor(this.state.distributorId);\n }\n };\n\n public onChangeDistributorClick = async (): Promise => {\n const {\n data: {\n distributorSelectorStateManager: { result: distributorSelectorStateManager }\n }\n } = this.props;\n if (distributorSelectorStateManager) {\n // Set selected distributor id\n await distributorSelectorStateManager.setSelectedDistributorId(undefined);\n\n if (distributorSelectorStateManager.isDistributorDetailPopupOpen) {\n // close the detail popup\n await distributorSelectorStateManager.closeDistributorDetailPopup();\n }\n\n if (distributorSelectorStateManager.isDistributorSelectorDialogOpen) {\n this.setState({ distributorId: undefined, showDistributorDetails: false, distributorDetailsFromPopup: false });\n } else {\n // Open the distributor selector modal\n await distributorSelectorStateManager.openDistributorSelectorDialog({\n parentElementRef: this.currentDistributorBtnRef\n });\n }\n }\n };\n\n public onDistributorCloseButtonClick = async () => {\n const {\n data: {\n distributorSelectorStateManager: { result: distributorSelectorStateManager }\n }\n } = this.props;\n if (distributorSelectorStateManager) {\n await distributorSelectorStateManager.closeDistributorDetailPopup();\n }\n };\n\n /**\n * Method to be called on the click on the continue button.\n */\n public continueButtonClick = async (): Promise => {\n const {\n context: {\n actionContext: {\n requestContext: { cookies }\n }\n },\n data: {\n distributorSelectorStateManager: { result: distributorSelectorStateManager }\n }\n } = this.props;\n\n const currentDistributor = this.state.currentSelectedDistributor;\n\n if (this.state.warningDialogState) {\n distributorSelectorStateManager?.hideWarningMessage(cookies.isConsentGiven());\n }\n\n await this._closeDistributorSelectorDialog();\n this.redirectToDistributorURL(currentDistributor);\n };\n\n /**\n * Method to be called on click on the cancel button.\n */\n public cancelButtonClick = async (): Promise => {\n await this._closeDistributorSelectorDialog();\n this.setState({ warningDialogState: false, showWarningDialog: false, currentSelectedDistributor: undefined });\n };\n\n public backToSearchClick = async (): Promise => {\n const {\n data: {\n distributorSelectorStateManager: { result: distributorSelectorStateManager }\n }\n } = this.props;\n this.setState({ showDistributorDetails: false, distributorId: undefined });\n await distributorSelectorStateManager?.setSelectedDistributorId(undefined);\n };\n\n public onViewAllDistributorDetailsFromPopup = async (): Promise => {\n const {\n data: {\n distributorSelectorStateManager: { result: distributorSelectorStateManager }\n }\n } = this.props;\n\n if (distributorSelectorStateManager) {\n if (!this.currentDistributor?.DistributorId) {\n return;\n }\n\n // close the detail popup\n await distributorSelectorStateManager.closeDistributorDetailPopup();\n\n // Open the distributor selector modal\n await distributorSelectorStateManager.openDistributorSelectorDialog({\n parentElementRef: this.currentDistributorBtnRef\n });\n\n // Set selected distributor id\n await distributorSelectorStateManager.setSelectedDistributorId(this.currentDistributor?.DistributorId);\n\n this.setState({\n distributorId: this.currentDistributor?.DistributorId,\n showDistributorDetails: true,\n distributorDetailsFromPopup: true\n });\n }\n };\n\n public onViewAllDistributorDetails = async (distributorId: number | undefined): Promise => {\n if (!distributorId) {\n return;\n }\n this.setState({ distributorId: distributorId, showDistributorDetails: true });\n };\n\n private getCurrentDistributor = (): ICurrentDistributor | undefined => {\n const {\n context: {\n request: {\n url: { requestUrl },\n user\n }\n }\n } = this.props;\n\n // We show the distributor selector module when the user is signed-in.\n if (user.isAuthenticated) {\n const distributorList = this.props.data.distributorList?.result;\n\n const currentDistributor = distributorList?.find(distributor =>\n distributor.MarketSettings?.localeItems.some(\n locale => requestUrl.href.toLowerCase().indexOf(locale.localeBaseUrl.toLowerCase()) >= 0\n )\n );\n\n if (currentDistributor) {\n return {\n DistributorId: currentDistributor.OrgUnit?.RecordId,\n DistributorName: currentDistributor.OrgUnit?.OrgUnitName\n };\n } else {\n return undefined;\n }\n }\n return undefined;\n };\n\n private getUniquePaymentTypes = (distributors?: IDistributorInfo[]) => {\n const uniquePaymentTypes = new Set();\n distributors?.forEach(distributor => {\n distributor.PaymentTypes?.forEach(paymentType => {\n uniquePaymentTypes.add(paymentType);\n });\n });\n return [...uniquePaymentTypes];\n };\n\n /**\n * The method to be called for filtering store locations based on the user's selected filters.\n * @param distributors - Distributors List.\n * @param filteredPaymentTypeId - Filter selected by the user.\n * @returns -Filtered distributors.\n */\n private readonly filterDistributorsByPaymentTypes = (distributors: IDistributorInfo[], filteredPaymentTypeId: string) => {\n return distributors.filter(distributor => {\n return distributor?.PaymentTypes?.some(paymentType => {\n return paymentType.TenderTypeId === filteredPaymentTypeId;\n });\n });\n };\n\n /**\n * Redirect user to the distributor selector site.\n * @param currentDistributor - Current distributor details\n */\n private redirectToDistributorURL = (currentDistributor: IDistributorInfo | undefined) => {\n const { telemetry } = this.props;\n const marketSettings = currentDistributor?.MarketSettings;\n\n // Check if the current locale is present.\n const currentLocale = marketSettings?.localeItems.find(localeItem => localeItem.locale === this.props.context.request.locale);\n let distributorURL = '';\n if (currentLocale) {\n distributorURL = currentLocale.localeBaseUrl;\n } else {\n // Check if the default locale is set.\n let defaultLocale = marketSettings?.localeItems.find(localeItem => localeItem.isDefaultLocale);\n if (!defaultLocale) {\n defaultLocale = ArrayExtensions.hasElements(marketSettings?.localeItems) ? marketSettings?.localeItems[0] : undefined;\n } else {\n distributorURL = defaultLocale.localeBaseUrl;\n }\n }\n\n if (distributorURL) {\n if (!distributorURL.startsWith('https://')) {\n distributorURL = `https://${distributorURL}`;\n }\n window.location.href = distributorURL;\n } else if (telemetry) {\n telemetry.debug('redirectToDistributorURL: Distributor URL is empty');\n }\n };\n\n /**\n * Handle click on the distributor selector.\n * @returns : Promise void.\n */\n private handleDistributorSelectorClick = async () => {\n const distributorSelectorStateManager = this.props.data.distributorSelectorStateManager?.result;\n\n if (this.currentDistributor?.DistributorId) {\n if (distributorSelectorStateManager?.isDistributorDetailPopupOpen) {\n distributorSelectorStateManager?.closeDistributorDetailPopup();\n } else {\n await distributorSelectorStateManager?.openDistributorDetailPopup({\n parentElementRef: this.currentDistributorBtnRef\n });\n }\n return;\n }\n };\n\n /**\n * Filter distributors by payment types.\n * @param tenderTypeId -Delivery Code.\n */\n private readonly onFilteredPaymentType = (tenderTypeId: string) => {\n this.setState({ filteredPaymentTypeId: tenderTypeId });\n };\n\n /**\n * Creates the distributor details view props.\n * @param distributorDetails: Distributor details\n * @returns : View props for the distributor details.\n */\n private renderDistributorDetailsViewProps = (distributorDetails: IDistributorInfo | undefined) => {\n const {\n config: { switchDistributorText, distributorDetailsToBeShown },\n resources\n } = this.props;\n const distributorAddress = distributorDetails?.OrgUnit?.OrgUnitAddress?.FullAddress;\n const distributorPhoneNo = distributorDetails?.OrgUnit?.OrgUnitAddress?.Phone;\n const deliveryMethods = distributorDetails?.OrgUnitDeliveryOptions?.DeliveryOptions;\n\n const distributorDetailsViewProps = {\n distributorDetailsModalPopup: {\n tag: 'div',\n moduleProps: this.props,\n className: classname(`${this.mainClass}__details_dialog`)\n },\n distributorDetailsModalHeader: {\n tag: 'div',\n className: `${this.mainClass}__dialog__header`\n },\n distributorDetailsHeaderProps: (\n <>\n {distributorDetails?.OrgUnit?.OrgUnitName || ''}\n \n \n ),\n distributorDetailsModalBody: {\n tag: 'div',\n className: `${this.mainClass}__dialog__body`\n },\n distributorDetailsModalBodyContainer: {\n tag: 'div',\n className: `${this.mainClass}__dialog__container`\n },\n distributorDetailsLocation: (this.state.showDistributorDetails ||\n (distributorDetailsToBeShown && distributorDetailsToBeShown.indexOf('location') > -1)) && (\n
\n {resources.locationHeadingText}\n {distributorAddress && (\n
\n \n {distributorAddress}\n
\n )}\n
\n ),\n distributorDetailsPrimaryContact: (this.state.showDistributorDetails ||\n (distributorDetailsToBeShown && distributorDetailsToBeShown?.indexOf('primaryContact') > -1)) && (\n
\n {resources.primaryContactText}\n {distributorPhoneNo && (\n
\n \n {distributorPhoneNo}\n
\n )}\n
\n ),\n distributorDetailsDeliveryMethods: (this.state.showDistributorDetails ||\n (distributorDetailsToBeShown && distributorDetailsToBeShown.indexOf('deliveryMethod') > -1)) && (\n
\n {resources.deliveryMethodHeadingText}\n {ArrayExtensions.hasElements(deliveryMethods) && (\n
\n <>\n {deliveryMethods?.map(deliveryMethod => {\n return (\n \n {deliveryMethod.Description}\n \n );\n })}\n \n
\n )}\n
\n ),\n distributorDetailsViewAllDetails: (\n \n {resources.viewAllDistributorText}\n \n ),\n distributorDetailsChangeDistributor: (\n \n ),\n distributorDetailsModalFooter: {\n tag: 'div',\n className: `${this.mainClass}__dialog__footer`\n },\n distributorDetailsSliderWrapper: {\n tag: 'div',\n className: classname(\n `${this.mainClass}__details-slider-wrapper`,\n this.state.showDistributorDetails ? 'show' : '',\n this.state.distributorDetailsFromPopup ? 'no-header' : ''\n )\n }\n };\n return distributorDetailsViewProps;\n };\n\n private renderDistributorSliderViewProps = (\n distributorDetails: IDistributorInfo | undefined,\n isCurrentDistributorSelected: boolean\n ) => {\n const {\n resources,\n config: { selectDistributorText }\n } = this.props;\n const payLoad: IPayLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.CurrentDistributor);\n const currentDistributorAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n\n const distributorSliderViewProps = {\n distributorDetailsSliderDistributorName: (\n
{distributorDetails?.OrgUnit?.OrgUnitName}
\n ),\n distributorDetailsSliderHeaderContent: (\n \n {resources.distributorSliderBackToSearch}\n \n ),\n distributorDetailsSliderHeaderContainer: {\n tag: 'div',\n className: `${this.mainClass}__details-slider-heading`\n },\n distributorDetailsSliderBodyContainer: {\n tag: 'div',\n className: `${this.mainClass}__details-slider-body`\n },\n distributorDetailsSliderFooterContainer: {\n tag: 'div',\n className: `${this.mainClass}__details-slider-footer`\n },\n distributorDetailsSliderInformationWrapper: {\n tag: 'div',\n className: `${this.mainClass}__details-slider-info-wrapper`\n },\n distributorDetailsSlidercurrentDistributorTitle: isCurrentDistributorSelected && (\n
\n
{resources.currentDistributorText}
\n
\n ),\n distributorDetailsSliderSelectDistributor: !isCurrentDistributorSelected && (\n \n {\n \n }\n \n )\n };\n return distributorSliderViewProps;\n };\n\n /**\n * Method to be called on heading change.\n * @param event -Content Edit Event.\n */\n private handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n if (this.state.showWarningDialog) {\n this.props.config.distributorWarningDialogHeading = event.target.value;\n } else {\n this.props.config.distributorSelectorHeading = event.target.value;\n }\n };\n\n /**\n * Method to be called on warning text change.\n * @param event -Content Edit Event.\n */\n private handleWarningTextChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.distributorWarningContent = event.target.value;\n };\n\n /**\n * Method to be called on term of service text change.\n * @param event -Content Edit Event.\n */\n private handleLinkTextChange = (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.termsOfServiceLink) {\n this.props.config.termsOfServiceLink.linkText = event.target.value;\n }\n };\n\n /**\n * Method to be called on distributor text change.\n * @param event -Content Edit Event.\n */\n private handleSelectDistributorTextChange = (event: Msdyn365.ContentEditableEvent): void => {\n event.preventDefault();\n event.stopPropagation();\n if (this.props.config.selectDistributorText) {\n this.props.config.selectDistributorText = event.target.value;\n }\n };\n\n /**\n * Method to be called on link text change.\n * @param event -Content Edit Event.\n */\n private handleChangeDistributorTextChange = (event: Msdyn365.ContentEditableEvent): void => {\n event.preventDefault();\n event.stopPropagation();\n if (this.props.config.switchDistributorText) {\n this.props.config.switchDistributorText = event.target.value;\n }\n };\n\n private shouldShowDistributors = (user: Msdyn365.IRequestContextUser): boolean => {\n const isOboRequest = Msdyn365.isOboRequest(this.props.context.request);\n const isOBOAccountSelected = isOboRequest && !!this.props.context.request.cookies.getAccountSelectionCookie();\n return isOBOAccountSelected || (!isOboRequest && !!user.isSignedIn);\n };\n\n /**\n * If the user is authenticated but has no current distributor, open the distributor selector dialog.\n * @param user - IRequestContextUser\n */\n private checkUserStateAndOpenDialog = (user: Msdyn365.IRequestContextUser) => {\n if (!this.currentDistributor && this.shouldShowDistributors(user)) {\n const distributorSelectorStateManager = this.props.data.distributorSelectorStateManager.result;\n distributorSelectorStateManager?.openDistributorSelectorDialog({\n parentElementRef: this.currentDistributorBtnRef\n });\n }\n };\n\n /**\n * Get the distributor details from the distributorId\n * @param distributorId - Distributor Id\n * @returns - Returns the distributor info.\n */\n private getDistributorDetails = (distributorId: number | undefined): IDistributorInfo | undefined => {\n const {\n data: {\n distributorList: { result: distributorList }\n }\n } = this.props;\n\n return distributorList?.find(distributor => distributor.OrgUnit?.RecordId === distributorId);\n };\n\n /**\n * Method to be called updating the distributor list.\n */\n private readonly _getAndUpdateDistributorList = async (): Promise => {\n const {\n data: {\n distributorList: { result: distributorList }\n }\n } = this.props;\n\n this.setState({ isSearchInProgress: true });\n\n if (distributorList) {\n await this._updateDistributorListInStateManager(distributorList);\n }\n\n this.setState({ isSearchInProgress: false });\n };\n\n /**\n * Method to update the distributor state manager.\n * @param distributorList - distributor Info Object.\n * @returns Void promise.\n */\n private readonly _updateDistributorListInStateManager = async (distributorList: IDistributorInfo[]): Promise => {\n const {\n data: {\n distributorSelectorStateManager: { result: distributorSelectorStateManager }\n },\n telemetry\n } = this.props;\n\n if (!distributorSelectorStateManager || !distributorList) {\n return;\n }\n\n const currentDistributorId = this.currentDistributor?.DistributorId;\n const sortedDistributorList = this._sortDistributor(distributorList, currentDistributorId);\n\n // When serializing the distributor selector state manager, functions get stripped.\n if (distributorSelectorStateManager.setDistributorsList) {\n await distributorSelectorStateManager.setDistributorsList(sortedDistributorList).catch((error: Error) => {\n if (telemetry) {\n telemetry.error(error.message);\n telemetry.debug('Unable to Update distributor state');\n }\n });\n }\n };\n\n /**\n * Method will sort all distributor.\n * @param distributors - Distributor List.\n * @param currentDistributorId - Distributor Id.\n * @returns List of distributor.\n */\n private _sortDistributor(distributors: IDistributorInfo[], currentDistributorId: number | undefined): IDistributorInfo[] {\n const isCurrentDistributor = (value: IDistributorInfo) => currentDistributorId && value.OrgUnit?.RecordId === currentDistributorId;\n\n return [...distributors.filter(isCurrentDistributor), ...distributors.filter(distributor => !isCurrentDistributor(distributor))];\n }\n\n /**\n * Method to be called closing the distributor selector dialog.\n * @returns Void promise.\n */\n private readonly _closeDistributorSelectorDialog = async (): Promise => {\n const {\n data: {\n distributorSelectorStateManager: { result: distributorSelectorStateManager }\n }\n } = this.props;\n if (distributorSelectorStateManager) {\n distributorSelectorStateManager.distributorSelectorContext?.parentElementRef?.current?.focus();\n // Update the distributor map visibility to true.\n distributorSelectorStateManager.updateDistributorMapVisibility(true);\n await distributorSelectorStateManager.setSelectedDistributorId(undefined);\n await distributorSelectorStateManager.closeDistributorSelectorDialog();\n this.setState({\n searchTerm: '',\n showWarningDialog: false,\n currentSelectedDistributor: undefined,\n distributorDetailsFromPopup: false,\n showDistributorDetails: false,\n distributorId: undefined\n });\n }\n };\n\n /**\n * On Selecting distributor.\n * @param distributorId - Distributor Id.\n */\n private readonly _setSelectedDistributor = async (orgUnit: OrgUnit | undefined): Promise => {\n const {\n data: {\n distributorSelectorStateManager: { result: distributorSelectorStateManager }\n }\n } = this.props;\n\n if (!distributorSelectorStateManager || !orgUnit) {\n return;\n }\n\n await distributorSelectorStateManager.setSelectedDistributorId(orgUnit.RecordId);\n };\n\n /**\n * On Selecting Current Distributor.\n * @param distributorId - Distributor Id.\n */\n private readonly _setCurrentDistributor = async (distributorId: number | undefined): Promise => {\n if (!distributorId) {\n return;\n }\n\n const {\n data: {\n distributorSelectorStateManager: { result: distributorSelectorStateManager }\n }\n } = this.props;\n\n if (!distributorSelectorStateManager) {\n return;\n }\n const distributorList = distributorSelectorStateManager?.distributorList;\n const currentDistributor = distributorList?.find(distributor => distributor.OrgUnit?.RecordId === distributorId);\n if (distributorSelectorStateManager.hideDistributorWarning || !this.currentDistributor) {\n this.redirectToDistributorURL(currentDistributor);\n await this._closeDistributorSelectorDialog();\n } else {\n this.setState({ showWarningDialog: true, currentSelectedDistributor: currentDistributor });\n }\n };\n}\n\nexport default DistributorSelector;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport { IDistributorSelectorViewProps } from './distributor-selector';\n\n/**\n * Render the body of the popup.\n * @param props -- Distributor selector view props.\n * @returns -- Returns the html.\n */\nconst renderDistributorSelectorBody: React.FC = props => {\n const {\n bodyContainerProps,\n state,\n spinner,\n distributorLinesViewProps,\n maps,\n bodyWrapperProps,\n distributorsResultContainerProps,\n distributorsResultWrapperProps,\n mapContainerProps,\n distributorCountMessage,\n searchForm,\n noDistributorsMessage\n } = props;\n\n return (\n \n \n {searchForm}\n \n {state.isSearchInProgress ? (\n spinner\n ) : (\n \n {distributorLinesViewProps ? (\n <>\n {distributorCountMessage}\n {distributorLinesViewProps}\n \n ) : (\n <>{noDistributorsMessage}\n )}\n \n )}\n \n {mapContainerProps ? (\n \n {maps}\n {distributorLinesViewProps}\n \n ) : (\n undefined\n )}\n \n \n );\n};\n\nconst renderDistributorDetails: React.FC = props => {\n const {\n distributorDetailsSliderWrapper,\n distributorDetailsSliderHeaderContainer,\n distributorDetailsSliderHeaderContent,\n distributorDetailsSliderBodyContainer,\n distributorDetailsSliderCurrentDistributorTitle,\n distributorDetailsSliderFooterContainer,\n distributorDetailsSliderDistributorName,\n distributorDetailsSliderInformationWrapper,\n distributorDetailsLocation,\n distributorDetailsPrimaryContact,\n distributorDetailsSliderSelectDistributor,\n terms,\n distributorDetailsChangeDistributor,\n state,\n distributorDetailsDeliveryMethods\n } = props;\n\n return (\n \n {!state.distributorDetailsFromPopup ? (\n {distributorDetailsSliderHeaderContent}\n ) : null}\n \n {distributorDetailsSliderCurrentDistributorTitle}\n {distributorDetailsSliderDistributorName}\n \n {distributorDetailsLocation}\n {distributorDetailsPrimaryContact}\n {distributorDetailsDeliveryMethods}\n \n {distributorDetailsSliderSelectDistributor}\n {state.distributorDetailsFromPopup ? distributorDetailsChangeDistributor : null}\n \n {terms}\n \n );\n};\n\nconst renderDistributorWarningBody: React.FC = props => {\n const { bodyContainerProps, distributorWarningContent } = props;\n\n return {distributorWarningContent};\n};\n\nconst renderDistributorSelectorModal: React.FC = props => {\n const { footerContainerProps, headerContainerProps, distributorSelectorHeaderProps, moduleProps, terms } = props;\n return (\n \n {renderDistributorDetails(props)}\n {distributorSelectorHeaderProps}\n {renderDistributorSelectorBody(props)}\n {terms}\n \n );\n};\n\nconst renderDistributorDetailsPopup = (props: IDistributorSelectorViewProps): JSX.Element | null => {\n const {\n distributorDetailsModalPopup,\n distributorDetailsModalHeader,\n distributorDetailsHeaderProps,\n distributorDetailsModalBody,\n distributorDetailsModalBodyContainer,\n distributorDetailsLocation,\n distributorDetailsPrimaryContact,\n distributorDetailsViewAllDetails,\n distributorDetailsChangeDistributor,\n distributorDetailsModalFooter,\n showDistributorDetailsPopup,\n distributorDetailsDeliveryMethods\n } = props;\n if (showDistributorDetailsPopup) {\n return (\n \n {distributorDetailsHeaderProps}\n \n \n {distributorDetailsLocation}\n {distributorDetailsPrimaryContact}\n {distributorDetailsDeliveryMethods}\n \n {distributorDetailsViewAllDetails}\n \n {distributorDetailsChangeDistributor}\n \n );\n }\n return null;\n};\n\nconst renderWarningDialog = (props: IDistributorSelectorViewProps): JSX.Element | undefined => {\n const {\n footerContainerProps,\n headerContainerProps,\n distributorWarningHeaderProps,\n moduleProps,\n distributorWarningButtonWrapper,\n distributorWarningDoNotShowAgain,\n distributorWarningContinue,\n distributorWarningCancel\n } = props;\n return (\n \n {distributorWarningHeaderProps}\n {renderDistributorWarningBody(props)}\n \n {distributorWarningDoNotShowAgain}\n \n {distributorWarningCancel} {distributorWarningContinue}\n \n \n \n );\n};\n\n/**\n * Distributor selector view props.\n * @param props - Distributor selector view props.\n * @returns - HTML.\n */\nconst DistributorSelectorView: React.FC = props => {\n const { currentDistributorContainer, currentDistributorButton, state } = props;\n\n return currentDistributorContainer ? (\n \n {currentDistributorButton}\n {renderDistributorDetailsPopup(props)}\n {state.showWarningDialog ? renderWarningDialog(props) : renderDistributorSelectorModal(props)}\n \n ) : null;\n};\n\nexport default DistributorSelectorView;\n"],"names":["brandCodeParser","_ref","description","appContext","brandCodeTable","app","config","currentBrandCode","slice","toLowerCase","brandFound","find","brand","brandCode","brandName","PickUpAtStoreComponent","PickUpAtStore","label","location","React","Node","Object","assign","LineItemComponent","_ref2","line","LineItem","item","pickUpAtStore","cartItem","context","Description","className","LineItemGroupComponent","_ref3","group","LineItemDeliveryGroup","LineItemList","heading","lineItems","data","map","lineItem","_data$checkout$result","checkout","result","checkoutCart","cart","CartLines","LineId","key","LineItemsComponent","_ref4","LineItems","Header","editLink","itemsForPickup","itemsForShip","OrderSummaryComponent","_ref5","lines","subtotal","shipping","tax","totalDiscounts","loyalty","giftCard","orderTotal","props","canShow","checkoutProps","mainProps","mainControlProps","sideProps","loading","alert","guidedForm","orderSummary","placeOrderButton","Module","_renderForm","form","FormWrapper","submitBtn","input","cancelBtn","_renderKeywordSuggestions","KeywordSuggest","UlKeyword","keywordSuggestions","text","_renderProductSuggestions","ProductSuggest","UlProduct","productSuggestions","title","items","index","LiProduct","id","AProduct","thumbnail","price","_renderCategorySuggestions","CategorySuggest","UlCategory","categorySuggestions","Search","AutoSuggestAriaLabel","AutoSuggestAriaLabelText","searchText","AutoSuggest","autosuggestCategory","autosuggestKeyword","autosuggestProduct","SearchForm","length","headerProps","bodyProps","sideControlFirstProps","sideControlSecondProps","keepShoppingButton","PvaChatConnector","componentDidMount","isOboRequest","this","request","url","botFrameworkCDNURL","pvaChatConnectorBotFrameworkCDNURL","script","document","createElement","src","async","crossOrigin","body","appendChild","render","renderView","getRandomValues","rnds8","Uint8Array","rng","crypto","bind","msCrypto","Error","uuid","REGEX","test","byteToHex","i","push","toString","substr","arr","offset","arguments","undefined","validate","TypeError","options","buf","rnds","random","stringify","constructor","CartAmountTrigger","ProactiveChatTrigger","super","totalInCart","min","proactiveOnCartAmountMin","max","proactiveOnCartAmountMax","telemetry","debug","name","_getCart","isEmpty","TotalAmount","retVal","getContextProvider","_objectSpread","eCommerceCustIsProactiveChat","eCommerceCustProactiveType","eCommerceCustProactiveShoppingCartAmount","getMessage","proactiveOnCartAmountMessage","proactiveDefaultMessage","getCartState","actionContext","CartNumberOfItemsTrigger","numberOfItems","proactiveOnCartNoOfItemsMin","proactiveOnCartNoOfItemsMax","TotalItems","eCommerceCustProactiveShoppingCartNumberOfItems","proactiveOnCartNoOfItemsMessage","CartSpecificProductTrigger","product","isValid","_cart$cart$CartLines","_cart$cart$CartLines2","proactiveOnCartSpecificProductList","_this$props$config$pr","j","_this$props$config$pr2","ItemId","eCommerceCustProactiveShoppingCartSpecificProduct","proactiveOnCartSpecificProductMessage","ProactiveChatNames","DateRangeTrigger","start","_toDate","proactiveOnDateRangeStart","end","proactiveOnDateRangeEnd","now","Date","setHours","getTime","DateRange","eCommerceCustProactiveFromDate","toUTCString","eCommerceCustProactiveToDate","proactiveOnDateRangeMessage","date","dateParts","split","FromSpecificPageTrigger","proactiveOnFromSpecificPageList","fromSpecificPageTrimmed","trim","window","referrer","indexOf","FromSpecificPage","eCommerceCustProactiveCameFromPage","proactiveOnFromSpecificPageMessage","PageVisitTrigger","visits","cookieName","cookies","expdate","setTime","isConsentGiven","setConsentCookie","_updateVisitCounter","proactiveOnPageVisitNumber","clear","set","domain","hostname","path","pathname","expires","PageVisits","eCommerceCustProactiveNumberOfVisits","proactiveOnPageVisitMessage","get","value","SpecificCountryRegionTrigger","customerCountryCode","suggestedMarket","proactiveOnSpecificLocation","eCommerceCustProactiveCountryCode","SpecificLocation","proactiveOnSpecificCountryRegionMessage","SpecificPageTrigger","proactiveOnSpecificPageList","specificPageTrimmed","href","SpecificPage","proactiveOnSpecificPageMessage","WaitOnTimeTrigger","proactiveOnWaitTimeSeconds","isNaN","waitTimeInMilliseconds","Number","triggerTime","WaitOnTime","eCommerceCustProactiveTimeOnPage","proactiveOnWaitTimeMessage","ProactiveTriggers","user","userId","uuidv4","_getContext","enabled","timeout","message","_proactiveCheck","e","exception","provider","_getProvider","_this$props$context$r","eCommerceOperatingUnitNumber","apiSettings","oun","eCommerceBaseUrl","baseUrl","eCommerceDataAreaId","channel","InventLocationDataAreaId","UserId","AccountNumber","customerAccountNumber","Email","emailAddress","FirstName","firstName","anonymousUserName","LastName","lastName","Name","eCommerceCustPageURL","eCommerceCustChatType","proactiveChatEnabled","proactive","_isProactive","getChatWrapperStyle","position","top","right","bottom","left","zIndex","display","justifyContent","getMaximizedChatWrapperStyle","isMobileDevice","height","width","padding","chatHeight","chatWidth","getChatButtonStyle","alignItems","backgroundColor","startChatButtonBackgroundColor","color","startChatButtonTextColor","borderColor","startChatButtonBorderColor","borderRadius","startChatButtonBorderRadius","borderStyle","startChatButtonBorderStyle","borderWidth","startChatButtonBorderWidth","storeLogoURL","cursor","outlineStyle","alignSelf","boxShadow","WebkitBoxShadow","MozBoxShadow","getButtonStoreLogoStyle","headerBackgroundColor","headerTextColor","marginRight","boxSizing","getChatStoreLogoStyle","margin","getChatMessagesStyle","minimized","getChatMessageHeader","chatHeaderHeight","backgroundImage","headerBackgroundImageURL","backgroundRepeat","flexDirection","chatBorderStyle","chatBorderWidth","getMinimizeButtonStyle","borderTop","borderLeft","borderRight","borderBottom","marginTop","getCloseButtonStyle","border","getChatMessageContent","chatBorderColor","getProactiveWrapperStyle","getProactiveMessageHeader","getProactiveMessageContent","getProactiveButtonStyle","outline","fontFormat","font","join","CommerceChatStore","setNewMessage","setNewMessageAction","powervaDirectlineTokenURL","botID","tenantID","fetch","method","then","r","json","token","pvaChatConnectorPowervaDirectlineTokenURL","pvaChatConnectorBotID","pvaChatConnectorTenantID","dispatch","next","action","type","payload","language","navigator","_activity$from","activity","from","role","triggerQuery","ReactWebChat","WebChat","setUserId","useState","useMemo","ctx","directLine","createDirectLine","directLineToken","commerceChatStore","store","createStore","actionHandler","styleOptions","bubbleStyling","bubbleBackground","bubbleTextColor","bubbleBorderColor","bubbleBorderRadius","bubbleBorderStyle","bubbleBorderWidth","bubbleFromUserBackground","bubbleFromUserTextColor","bubbleFromUserBorderColor","bubbleFromUserBorderRadius","bubbleFromUserBorderStyle","bubbleFromUserBorderWidth","getBubbleStyling","avatarStyling","avatarBorderRadius","avatarSize","botAvatarBackgroundColor","botAvatarImage","botAvatarInitials","userAvatarBackgroundColor","userAvatarImage","userAvatarInitials","showAvatarInGroup","getAvatarStyling","suggestedActionStyling","suggestedActionLayout","suggestedActionBackground","suggestedActionTextColor","suggestedActionBorderColor","suggestedActionBorderRadius","suggestedActionBorderStyle","suggestedActionBorderWidth","suggestedActionDisabledBorderStyle","suggestedActionDisabledBorderWidth","suggestedActionDisabledTextColor","suggestedActionHeight","suggestedActionImageHeight","suggestedActionsCarouselFlipperCursor","suggestedActionsCarouselFlipperBoxWidth","suggestedActionsCarouselFlipperSize","suggestedActionsFlowMaxHeight","suggestedActionsStackedHeight","suggestedActionsStackedOverflow","suggestedActionsStackedLayoutButtonMaxHeight","suggestedActionsStackedLayoutButtonTextWrap","getSuggestedActionStyling","otherStyling","groupTimestamp","sendTimeout","sendTimeoutForAttachments","timestampColor","timestampFormat","notificationDebounceTimeout","hideToaster","toasterHeight","toasterMaxHeight","toasterSingularMaxHeight","toastFontSize","toastIconWidth","toastSeparatorColor","toastTextPadding","toastErrorBackgroundColor","toastErrorColor","toastInfoBackgroundColor","toastInfoColor","toastSuccessBackgroundColor","toastSuccessColor","toastWarnBackgroundColor","toastWarnColor","typingAnimationBackgroundImage","typingAnimationDuration","typingAnimationHeight","typingAnimationWidth","videoHeight","markdownExternalLinkIconImage","markdownRespectCRLF","internalLiveRegionFadeAfter","accent","subtle","getOtherStyling","hideUploadButton","primaryFont","getChatStyleOptions","userID","INVALID_TOKEN","loaded","setLoaded","setMinimized","newMessage","setToken","isProactive","setIsProactive","proactiveMessage","setProactiveMessage","closed","setClosed","setProvider","isMobile","variant","VariantType","Browser","Viewport","chatStyle","getChatStyling","ChatWrapperStyle","MaximizedChatWrapperStyle","ChatButtonStyle","ButtonStoreLogoStyle","ChatStoreLogoStyle","ChatMessagesStyle","ChatMessageHeader","MinimizeButtonStyle","CloseButtonStyle","ChatMessageContent","ProactiveWrapperStyle","ProactiveMessageHeader","ProactiveMessageContent","ProactiveButtonStyle","RedDotStyle","background","handleMaximizeButtonClick","useEffect","getDirectLineToken","catch","contextProvider","ContextProvider","prov","init","setTimeout","isValidToken","style","onClick","alt","fontWeight","fontSize","chatButtonHeader","chatButtonText","flexGrow","handleMinimizeButtonClick","handleCloseButtonClick","version","viewBox","xmlSpace","d","fill","ChatCore","unableToLoadChatMessage","p","interval","setInterval","clearInterval","Chat","DistributorSelectorCountMessage","distributors","distributorCountMessage","replace","DistributorSelectorTermsOfService","link","requestContext","onTextChange","editableLink","ariaLabel","linkText","linkUrl","destinationUrl","openInNewTab","Msdyn365","editProps","DistributorSelectorWaiting","classnames","DistributorSelectorDoNotShowAgain","onChange","doNotShowAgainMessage","DistributorSelectorButton","DistributorEmptyMessage","emptyLocationsText","onSetCurrentDistributorClickHandler","_props$distributor$Or","handlers","onSetAsCurrentDistributor","distributor","OrgUnit","RecordId","onViewAllDistributorDetailsClickHandler","_props$distributor$Or2","onViewAllDistributorDetails","DistributorSelectorLineItemComponent","_distributor$OrgUnit","_distributor$OrgUnit2","_distributor$OrgUnit3","_distributor$OrgUnit4","_distributor$OrgUnitD","resources","currentDistributorId","telemetryContent","shouldShowIndex","selectDistributorText","distributorDetailsToBeShown","mainClassName","distributorName","OrgUnitName","isCurrentDistributor","payLoad","getPayloadObject","TelemetryConstant","CurrentDistributor","currentDistributorAttributes","getTelemetryAttributes","distributorAddress","OrgUnitAddress","FullAddress","distributorPhoneNo","Phone","deliveryMethods","OrgUnitDeliveryOptions","DeliveryOptions","currentDistributorText","locationHeadingText","primaryContactText","deliveryMethodHeadingText","ArrayExtensions","hasElements","deliveryMethod","viewAllDistributorText","DistributorSelectorLines","onDistributorSelected","orgUnit","_scrollIntoView","_selectedDistributorD","selectedDistributorDiv","selectedDistributorRef","current","parent","shouldDisplayList","parentElement","scrollTop","offsetTop","clientHeight","scrollLeft","offsetLeft","distributorCounter","reaction","componentDidUpdate","previousProps","selectedDistributorId","_renderDistributor","selected","ref","__decorate","observable","DistributorPaymentOptionList","_renderTenderTypes","isExpandOptionsState","state","isFilterExpanded","setState","handleFilterSelection","event","preventDefault","paymentCode","currentTarget","getAttribute","selectedPaymentTypes","_distributorPaymentTypesMenu","_paymentTypesList$fin","paymentTypesMenuText","paymentTypesList","defaultOptionText","selectedPaymentTypesDesc","payment","TenderTypeId","tenderType","tabIndex","onKeyDown","DistributorSelectorSearchForm","_onChangeHandler","onPaymentFilterSelected","tenderTypeId","Promise","resolve","renderPaymentTypeList","paymentTypesOptions","paymentFilterMenuHeading","paymentFilterByHeading","filteredPaymentType","ToggleMapView","toggleMapViewAttributes","viewMapText","viewListText","showLocatorView","paymentTypes","showPaymentTypeFilter","onToggleListMapViewState","toggleButtonText","toggleButtonClass","DistributorSelector","mainClass","headerClass","currentDistributorBtnRef","toggleListMapViewState","distributorSelectorStateManager","onChangeForDoNotShow","warningDialogState","target","checked","onSelectDistributor","distributorId","_setCurrentDistributor","onChangeDistributorClick","setSelectedDistributorId","isDistributorDetailPopupOpen","closeDistributorDetailPopup","isDistributorSelectorDialogOpen","showDistributorDetails","distributorDetailsFromPopup","openDistributorSelectorDialog","parentElementRef","onDistributorCloseButtonClick","continueButtonClick","currentDistributor","currentSelectedDistributor","hideWarningMessage","_closeDistributorSelectorDialog","redirectToDistributorURL","cancelButtonClick","showWarningDialog","backToSearchClick","onViewAllDistributorDetailsFromPopup","_this$currentDistribu","_this$currentDistribu2","_this$currentDistribu3","DistributorId","getCurrentDistributor","requestUrl","isAuthenticated","_this$props$data$dist","distributorList","_distributor$MarketSe","MarketSettings","localeItems","some","locale","localeBaseUrl","_currentDistributor$O","_currentDistributor$O2","DistributorName","getUniquePaymentTypes","uniquePaymentTypes","Set","forEach","_distributor$PaymentT","PaymentTypes","paymentType","add","filterDistributorsByPaymentTypes","filteredPaymentTypeId","filter","_distributor$PaymentT2","marketSettings","currentLocale","localeItem","distributorURL","defaultLocale","isDefaultLocale","startsWith","handleDistributorSelectorClick","_this$props$data$dist2","_this$currentDistribu4","openDistributorDetailPopup","onFilteredPaymentType","renderDistributorDetailsViewProps","distributorDetails","_distributorDetails$O","_distributorDetails$O2","_distributorDetails$O3","_distributorDetails$O4","switchDistributorText","distributorDetailsModalPopup","tag","moduleProps","classname","distributorDetailsModalHeader","distributorDetailsHeaderProps","closeDistributorDetailPopupButtonAriaLabel","distributorDetailsModalBody","distributorDetailsModalBodyContainer","distributorDetailsLocation","distributorDetailsPrimaryContact","distributorDetailsDeliveryMethods","distributorDetailsViewAllDetails","distributorDetailsChangeDistributor","onEdit","handleChangeDistributorTextChange","distributorDetailsModalFooter","distributorDetailsSliderWrapper","renderDistributorSliderViewProps","isCurrentDistributorSelected","_distributorDetails$O5","distributorDetailsSliderDistributorName","distributorDetailsSliderHeaderContent","distributorSliderBackToSearch","distributorDetailsSliderHeaderContainer","distributorDetailsSliderBodyContainer","distributorDetailsSliderFooterContainer","distributorDetailsSliderInformationWrapper","distributorDetailsSlidercurrentDistributorTitle","distributorDetailsSliderSelectDistributor","handleSelectDistributorTextChange","handleHeadingChange","distributorWarningDialogHeading","distributorSelectorHeading","handleWarningTextChange","distributorWarningContent","handleLinkTextChange","termsOfServiceLink","stopPropagation","shouldShowDistributors","getAccountSelectionCookie","isSignedIn","checkUserStateAndOpenDialog","getDistributorDetails","_getAndUpdateDistributorList","isSearchInProgress","_updateDistributorListInStateManager","_this$currentDistribu5","sortedDistributorList","_sortDistributor","setDistributorsList","error","_distributorSelectorS","distributorSelectorContext","focus","updateDistributorMapVisibility","closeDistributorSelectorDialog","searchTerm","_setSelectedDistributor","hideDistributorWarning","getTelemetryObject","telemetryPageName","friendlyName","_this$props$data$dist3","loadMapApi","_this$props$data$dist4","_this$props$context$a","BingMapsEnabled","BingMapsApiKey","lang","market","ChannelCountryRegionISOCode","_this$currentDistribu6","_this$currentDistribu7","_distributorSelectorS2","_distributorSelectorS3","doNotShowAgainCheckbox","noDistributorFoundText","slots","maps","mapSlot","currentDistributorName","headerText","headerCurrentDistributorText","distributorInfoList","hasMapSlot","shouldOpenDistributorSelectorDialog","shouldOpenDistributorDetailPopup","listMapViewState","displayList","canShowLocationView","showMapViewLink","isMapModuleLoaded","showDistributorDetailsOnMap","viewProps","showDistributorDetailsPopup","currentDistributorContainer","currentDistributorButton","headerCurrentDistributorAriaLabel","Modal","autoFocus","fade","isOpen","onClosed","horizontalPosition","verticalPosition","toggle","isMobileView","headerContainerProps","ModalHeader","distributorSelectorHeaderProps","distributorWarningHeaderProps","footerContainerProps","ModalFooter","bodyContainerProps","ModalBody","bodyWrapperProps","distributorsResultContainerProps","distributorsResultWrapperProps","mapContainerProps","searchForm","spinner","distributorLinesViewProps","isLocationDisabled","noDistributorsMessage","terms","distributorWarningButtonWrapper","distributorWarningDoNotShowAgain","distributorWarningContinue","distributorWarningCancel","_value$OrgUnit","observer","renderDistributorSelectorModal","distributorDetailsSliderCurrentDistributorTitle","renderDistributorDetails","renderDistributorSelectorBody","renderWarningDialog","renderDistributorWarningBody","renderDistributorDetailsPopup"],"sourceRoot":""}