{"version":3,"file":"static/js/25.f6a138d8ab8b762a021f.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/themes/b2b/views/content-block.view.tsx?5a73","webpack://Msdyn365.Commerce.Online/./src/themes/b2b/views/order-history.view.tsx?e915","webpack://Msdyn365.Commerce.Online/./src/themes/b2b/views/ratings-histogram.view.tsx?b6f7","webpack://Msdyn365.Commerce.Online/./src/themes/b2b/views/reviews-list.view.tsx?54cf","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.tsx?a0b5","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.view.tsx?530d","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-button.tsx?e669","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-error.tsx?eadf","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-input.tsx?5c72","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-label.tsx?4793","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-loading-icon.tsx?fba0","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-loading-message.tsx?7cf0","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-button.tsx?a869","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-error.tsx?fbfd","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-input.tsx?20d9","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-label.tsx?6ef1","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-loading-icon.tsx?8828","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-loading-message.tsx?a980","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/password-reset.tsx?0983","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/password-reset.view.tsx?b341","webpack://Msdyn365.Commerce.Online/./src/modules/msdyn365-pva-chat-connector/msdyn365-pva-chat-connector.tsx?797a","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/check-in-for-pickup/check-in-confirmation.tsx?406f","webpack://Msdyn365.Commerce.Online/./src/modules/check-in-for-pickup/check-in-error.tsx?e789","webpack://Msdyn365.Commerce.Online/./src/modules/check-in-for-pickup/check-in-for-pickup.tsx?8686","webpack://Msdyn365.Commerce.Online/./src/modules/check-in-for-pickup/check-in-for-pickup.view.tsx?bd7a","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/order-details.view.tsx?1ce1","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/order-history.view.tsx?a21d","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/ratings-histogram.view.tsx?6e01","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/reviews-list.view.tsx?cd2e","webpack://Msdyn365.Commerce.Online/./src/modules/iframe/iframe.tsx?65fe","webpack://Msdyn365.Commerce.Online/./src/modules/iframe/iframe.view.tsx?a7d6","webpack://Msdyn365.Commerce.Online/./src/modules/order-lookup/utilities/order-lookup-utility.tsx?c60b","webpack://Msdyn365.Commerce.Online/./src/modules/order-lookup/components/order-lookup-additional-fields.tsx?9951","webpack://Msdyn365.Commerce.Online/./src/modules/order-lookup/components/order-lookup-fields.tsx?297b","webpack://Msdyn365.Commerce.Online/./src/modules/order-lookup/order-lookup.tsx?72d3","webpack://Msdyn365.Commerce.Online/./src/modules/order-lookup/order-lookup.view.tsx?b8e5","webpack://Msdyn365.Commerce.Online/./src/modules/tile-list/tile-list.tsx?78cb","webpack://Msdyn365.Commerce.Online/./src/modules/tile-list/tile-list.view.tsx?1b00","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/b2b-requests-status.view.tsx?de3b","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/checkout-customer-account-payment.view.tsx?0efc","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/order-details.view.tsx?027b","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/order-history.view.tsx?692d","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/components/search.categorysuggest.tsx?6bcf","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/components/search.mobile.empty.tsx?ff32","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/components/search.form.tsx?d41a","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/components/search.keywordsuggest.tsx?2724","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/components/search.productsuggest.tsx?6616","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/search.view.tsx?bfa7","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/sign-in.view.tsx?048a"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\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 { IContentBlockViewProps } from '@msdyn365-commerce-modules/content-block';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\nimport { IContentBlockProps } from '../definition-extensions/content-block.ext.props.autogenerated';\r\n\r\nconst ContentBlockView: React.FC> = props => {\r\n const {\r\n contentBlockContainer,\r\n imageContainer,\r\n detailsContainer,\r\n title,\r\n text,\r\n links,\r\n image,\r\n contentBlockAnchorTag,\r\n imageLink,\r\n imageAriaLabel\r\n } = props;\r\n\r\n const { additionalParagraph } = props.config;\r\n\r\n const contentBlockAdditionalText = additionalParagraph && (\r\n \r\n \r\n \r\n );\r\n\r\n if (imageLink) {\r\n return (\r\n \r\n \r\n {image}\r\n \r\n \r\n {title}\r\n {text}\r\n {links}\r\n {contentBlockAdditionalText}\r\n \r\n \r\n );\r\n } else {\r\n return (\r\n \r\n {image}\r\n \r\n {title}\r\n {text}\r\n {links}\r\n {contentBlockAdditionalText}\r\n \r\n \r\n );\r\n }\r\n};\r\n\r\nexport default ContentBlockView;\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 IGroup,\r\n IGroupDelivery,\r\n IGroups,\r\n IHeader,\r\n IList,\r\n IOrderHistoryViewProps,\r\n IOrderInformation,\r\n ISalesOrder\r\n} from '@msdyn365-commerce-modules/order-management';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport const OrderHistoryOrderInfomation: React.FC = ({\r\n orderInformationProps,\r\n receiptId,\r\n channelName,\r\n createdDate,\r\n count,\r\n amount,\r\n channelReferenceId\r\n}) => (\r\n \r\n {channelName}\r\n {receiptId}\r\n {createdDate}\r\n {count}\r\n {amount}\r\n {channelReferenceId}\r\n \r\n);\r\n\r\nexport const OrderHistoryGroupDelivery: React.FC = ({\r\n deliveryProps,\r\n heading,\r\n count,\r\n processing,\r\n address,\r\n trackingInfo\r\n}) => (\r\n \r\n {heading}\r\n {count}\r\n {processing}\r\n {address}\r\n {trackingInfo}\r\n \r\n);\r\n\r\nexport const OrderHistoryGroup: React.FC = ({ groupProps, salesLinesProps, salesLines }) => (\r\n \r\n {salesLines && (\r\n \r\n {salesLines.map(salesLine => (\r\n {salesLine.salesLine}\r\n ))}\r\n \r\n )}\r\n \r\n);\r\n\r\nexport const OrderHistoryGroups: React.FC = ({ groupsProps, groups }) => (\r\n \r\n {groups.map((group, index) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport const OrderHistoryHeader: React.FC = ({ headerProps, heading, extraActions }) => (\r\n \r\n {heading}\r\n {extraActions}\r\n \r\n);\r\n\r\nexport const OrderHistorySalesOder: React.FC = ({ salesOrderProps, orderInfomation, orderDetailsLink }) => (\r\n \r\n {orderInfomation && }\r\n {orderDetailsLink}\r\n \r\n);\r\n\r\nexport const OrderHistoryList: React.FC = ({ listProps, salesOrders }) => (\r\n \r\n {salesOrders && salesOrders.map((salesOrder, index) => )}\r\n \r\n);\r\n\r\nconst OrderHistoryView: React.FC = ({\r\n orderHistoryProps,\r\n header,\r\n alert,\r\n loading,\r\n emptyMessage,\r\n backToShoppingLink,\r\n list,\r\n moreButton\r\n}) => (\r\n \r\n {header && }\r\n {loading}\r\n {alert && (\r\n <>\r\n {alert}\r\n {backToShoppingLink}\r\n \r\n )}\r\n {emptyMessage && (\r\n <>\r\n {emptyMessage}\r\n {backToShoppingLink}\r\n \r\n )}\r\n {list && }\r\n {moreButton && moreButton}\r\n \r\n);\r\n\r\nexport default OrderHistoryView;\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 { IHistogramItemViewProps, IRatingsHistogramViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst RatingsHistogramView: React.FC = props => {\r\n const { heading, histogramItems, histogramProps, moduleProps } = props;\r\n return (\r\n \r\n {heading}\r\n \r\n {histogramItems.map(item => {\r\n return histogramItem(item);\r\n })}\r\n \r\n \r\n );\r\n};\r\n\r\nconst histogramItem = (props: IHistogramItemViewProps) => {\r\n return (\r\n \r\n {props.starLabel}\r\n {props.bar}\r\n {props.percentage}\r\n \r\n );\r\n};\r\n\r\nexport default RatingsHistogramView;\r\n","import { IReviewModalViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\r\nimport {\r\n IReportReviewModalViewProps,\r\n IReviewCardViewProps,\r\n IReviewsListState,\r\n IReviewsListViewProps\r\n} from '@msdyn365-commerce-modules/ratings-reviews/src/modules/reviews-list';\r\nimport { IModuleProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst ReviewsListview: React.FC = props => {\r\n const {\r\n averageRating,\r\n filterByDropdown,\r\n moduleProps,\r\n noReviewsMessage,\r\n noReviewsWithFilterMessage,\r\n pageControls,\r\n refineReviewsProps,\r\n reportReviewModal,\r\n reviewsListProps,\r\n reviewCards,\r\n reviewCount,\r\n reviewModal,\r\n sortByDropdown,\r\n state,\r\n userReview\r\n } = props;\r\n\r\n if (!userReview && reviewCards.length === 0 && !state.isFilterApplied) {\r\n return {noReviewsMessage};\r\n }\r\n\r\n return (\r\n \r\n {averageRating}\r\n {reviewCount}\r\n {\r\n \r\n {sortByDropdown}\r\n {filterByDropdown}\r\n \r\n }\r\n \r\n {userReview && buildReviewCard(userReview)}\r\n {reviewCards.map(review => {\r\n return buildReviewCard(review);\r\n })}\r\n \r\n {reviewCards.length === 0 && state.isFilterApplied && noReviewsWithFilterMessage}\r\n {pageControls}\r\n {createReviewModal(reviewModal, moduleProps)}\r\n {createReportModal(reportReviewModal, state)}\r\n \r\n );\r\n};\r\n\r\nconst buildReviewCard = (props: IReviewCardViewProps) => {\r\n return (\r\n \r\n \r\n {props.rating}\r\n {props.name}\r\n {props.date}\r\n \r\n \r\n \r\n {props.reviewTitle}\r\n {props.reviewText}\r\n \r\n \r\n {props.responseName}\r\n {props.responseDate}\r\n {props.responseText}\r\n \r\n \r\n {props.ratingHelpfulLabel}\r\n {props.like}\r\n {props.dislike}\r\n {props.edit}\r\n {props.report}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst createReviewModal = (props: IReviewModalViewProps, moduleProps: IModuleProps): JSX.Element => {\r\n return (\r\n \r\n {props.modalHeader}\r\n \r\n \r\n \r\n {props.rating}\r\n {props.ratingLabel}\r\n \r\n \r\n {props.titleLabel}\r\n {props.titleInput}\r\n \r\n \r\n {props.textLabel}\r\n {props.textInput}\r\n \r\n {props.privacyPolicyUrl}\r\n {props.error}\r\n \r\n \r\n \r\n {props.submitButton}\r\n {props.cancelButton}\r\n \r\n \r\n );\r\n};\r\n\r\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\r\n return (\r\n \r\n {state.reported ? props.headerSubmitted : props.header}\r\n \r\n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\r\n \r\n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\r\n \r\n );\r\n};\r\n\r\nexport default ReviewsListview;\r\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 { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileEditConfig, IAccountProfileEditProps } from './account-profile-edit.props.autogenerated';\nimport AccountProfileEditButtonComponent from './components/account-profile-edit-button';\nimport AccountProfileEditErrorComponent from './components/account-profile-edit-error';\nimport AccountProfileEditInputComponent from './components/account-profile-edit-input';\nimport AccountProfileEditLabelComponent from './components/account-profile-edit-label';\nimport AccountProfileEditLoadingIconComponent from './components/account-profile-edit-loading-icon';\nimport AccountProfileEditLoadingMessageComponent from './components/account-profile-edit-loading-message';\n\nexport interface IAccountProfileEditViewState {\n isShowLoading: boolean;\n}\n\nexport interface IAccountProfileEditItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IAccountProfileEditLocalAccount {\n localAccount: INodeProps;\n items: IAccountProfileEditItem[];\n errorMessage: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IAccountProfileEditLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IAccountProfileEditViewProps {\n className: string;\n viewState: IAccountProfileEditViewState;\n loading: IAccountProfileEditLoading;\n accountProfileEdit: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n accountProfileEditLocalAccount: IAccountProfileEditLocalAccount;\n}\n\n/**\n *\n * AccountProfileEdit component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass AccountProfileEdit extends React.Component> {\n private readonly moduleClassName: string = 'ms-account-profile-edit';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @observable private givenName: string;\n\n @observable private surname: string;\n\n @observable private email: string;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IAccountProfileEditProps) {\n super(props);\n this.givenName = '';\n this.surname = '';\n this.email = '';\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IAccountProfileEditProps,\n nextState: IAccountProfileEditViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n accountProfileEdit: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && config.heading.text && (\n \n ),\n accountProfileEditLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public onTextBoxChange = (event: React.ChangeEvent) => {\n const id = event.target.id;\n const value = event.target.value;\n\n switch (id.toLowerCase()) {\n case 'givenname': {\n this.givenName = value;\n break;\n }\n case 'surname': {\n this.surname = value;\n break;\n }\n case 'email': {\n this.emailRegex = value;\n break;\n }\n default:\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n const { resources } = this.props;\n const invalidEmailAddressError = resources.invalidEmailAddressError || 'Please enter a valid email address.';\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map(\n (obj: { ID: string; PRE: string; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string }) => {\n const value = obj.PRE ? this._htmlDecode(obj.PRE) : '';\n switch (obj.ID.toLowerCase()) {\n case 'givenname': {\n this.givenName = value;\n break;\n }\n case 'surname': {\n this.surname = value;\n break;\n }\n case 'email': {\n this.email = value;\n this.emailRegex = obj.PAT;\n obj.PAT_DESC = invalidEmailAddressError;\n break;\n }\n default:\n }\n }\n );\n }\n };\n\n private _htmlDecode(str: string): string {\n const e = document.createElement('div');\n\n e.innerHTML = str;\n return e.childNodes.length === 0 ? '' : e.childNodes[0].nodeValue || '';\n }\n\n private readonly _updateErrorMessage = () => {\n const { resources } = this.props;\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n required_field: resources.requiredFieldMissingError,\n verifying_blurb: resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n };\n\n private _renderLocalAccount(): IAccountProfileEditLocalAccount {\n const { config, resources } = this.props;\n const localAccount = {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('givenName', 'text', this.givenName, resources.firstNameLabelText, resources.firstNameMaxLength),\n this._renderInput('surname', 'text', this.surname, resources.lastNameLabelText, resources.lastNameMaxLength)\n ],\n errorMessage: [\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n\n if (config.showEmail && this.email !== '') {\n localAccount.items.push(\n this._renderInput('email', 'email', this.email, resources.emailAddressLabelText, undefined, this.emailRegex)\n );\n }\n\n return localAccount;\n }\n\n private _renderInput(\n id: string,\n type: string,\n value: string,\n labelText: string,\n maxLength?: string,\n pattern?: string\n ): IAccountProfileEditItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default AccountProfileEdit;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IAccountProfileEditItem,\n IAccountProfileEditLoading,\n IAccountProfileEditLocalAccount,\n IAccountProfileEditViewProps\n} from './account-profile-edit';\n\nconst AccountProfileEditItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n {items &&\n items.map((item: IAccountProfileEditItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n );\n};\n\nconst AccountProfileEditLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst AccountProfileEditView: React.FC = props => {\n const { accountProfileEdit, viewState, loading, defaultAADConainer, aadConainer, heading, accountProfileEditLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(accountProfileEditLocalAccount)}\n \n \n );\n};\n\nexport default AccountProfileEditView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst AccountProfileEditButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n disabled,\n telemetryContent,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n );\n};\n\nexport default AccountProfileEditButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst AccountProfileEditError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default AccountProfileEditError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IAccountProfileEditInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst AccountProfileEditInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default AccountProfileEditInput;\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';\n\nexport interface IAccountProfileEditLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst AccountProfileEditLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default AccountProfileEditLabel;\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';\n\nexport interface IAccountProfileEditLoadingIcon {\n className: string;\n}\n\nconst AccountProfileEditLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default AccountProfileEditLoadingIcon;\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';\n\nexport interface IAccountProfileEditLoadingMessage {\n className: string;\n message: string;\n}\n\nconst AccountProfileEditLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default AccountProfileEditLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst PasswordResetButton: React.FC = ({ id, className, text, ariaLabel, disabled, telemetryContent, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default PasswordResetButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IPasswordResetInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst PasswordResetInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default PasswordResetInput;\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';\n\nexport interface IPasswordResetLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetLabel;\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';\n\nexport interface IPasswordResetLoadingIcon {\n className: string;\n}\n\nconst PasswordResetLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default PasswordResetLoadingIcon;\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';\n\nexport interface IPasswordResetLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default PasswordResetLoadingMessage;\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 { PasswordRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport PasswordResetButtonComponent from './components/password-reset-button';\nimport PasswordResetErrorComponent from './components/password-reset-error';\nimport PasswordResetInputComponent from './components/password-reset-input';\nimport PasswordResetLabelComponent from './components/password-reset-label';\nimport PasswordResetLoadingIconComponent from './components/password-reset-loading-icon';\nimport PasswordResetLoadingMessageComponent from './components/password-reset-loading-message';\nimport { IPasswordResetConfig, IPasswordResetProps } from './password-reset.props.autogenerated';\n\nexport interface IPasswordResetViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetLocalAccount {\n localAccount: INodeProps;\n items: IPasswordResetItem[];\n errorMessage: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetViewProps {\n className: string;\n viewState: IPasswordResetViewState;\n loading: IPasswordResetLoading;\n passwordReset: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetLocalAccount: IPasswordResetLocalAccount;\n}\n\n/**\n *\n * PasswordReset component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordReset extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n @observable private newPasswordRegex: string;\n\n @observable private reenterPasswordRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IPasswordResetProps) {\n super(props);\n\n this.newPasswordRegex = PasswordRegex.defaultRegex.source;\n this.reenterPasswordRegex = PasswordRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: IPasswordResetProps, nextState: IPasswordResetViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n passwordReset: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && (\n \n ),\n passwordResetLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map((obj: { ID: string; PAT: string }) => {\n switch (obj.ID.toLowerCase()) {\n case 'newpassword': {\n this.newPasswordRegex = obj.PAT;\n break;\n }\n case 'reenterpassword': {\n this.reenterPasswordRegex = obj.PAT;\n break;\n }\n default:\n }\n });\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const { resources } = this.props;\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n verifying_blurb: resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n };\n\n private _renderLocalAccount(): IPasswordResetLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('newPassword', 'password', resources.newPasswordLabelText, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, this.reenterPasswordRegex)\n ],\n errorMessage: [\n ,\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n }\n\n private _renderInput(id: string, type: string, labelText: string, pattern?: string): IPasswordResetItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default PasswordReset;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IPasswordResetItem, IPasswordResetLoading, IPasswordResetLocalAccount, IPasswordResetViewProps } from './password-reset';\n\nconst PasswordResetItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n {items &&\n items.map((item: IPasswordResetItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n );\n};\n\nconst PasswordResetLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetView: React.FC = props => {\n const { passwordReset, viewState, loading, defaultAADConainer, aadConainer, heading, passwordResetLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetView;\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 { 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","/*!\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 from './components/Chat';\nimport { IPvaChatConnectorViewProps } from './msdyn365-pva-chat-connector';\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 QRCode from 'qrcode.react';\nimport * as React from 'react';\n\n/**\n * CheckInConfirmation component Properties.\n */\nexport interface ICheckInConfirmationProps {\n /**\n * The confirmation text to show.\n */\n confirmationText: string;\n\n /**\n * Should the order confirmation number shown as QR code or not.\n * If false, the order confirmation number (channel reference ID) will be shown as text.\n */\n shouldShowQrCode: boolean;\n\n /**\n * The label shows for channel reference ID.\n */\n channelReferenceIdLabel: string;\n\n /**\n * The channel reference ID to show. When shouldShowQrCode is true, the ID is shown as QR code, otherwise it is shown as text.\n */\n channelReferenceId?: string;\n}\n\n/**\n * CheckInConfirmation component for showing confirmation information after check-in succeed.\n * @param confirmationProps - The confirmation properties.\n * @param confirmationProps.confirmationText - The confirmation text.\n * @param confirmationProps.shouldShowQrCode - Should the order confirmation number shown as QR code or not.\n * If false, the order confirmation number (channel reference ID) will be shown as text.\n * @param confirmationProps.channelReferenceIdLabel - The label shows for channel reference ID.\n * @param confirmationProps.channelReferenceId - The channel reference ID to show.\n * When shouldShowQrCode is true, the ID is shown as QR code, otherwise it is shown as text.\n * @returns The check-in confirmation component.\n */\nexport const CheckInConfirmationComponent: React.FC = ({\n confirmationText,\n shouldShowQrCode,\n channelReferenceIdLabel,\n channelReferenceId\n}) => {\n return (\n
\n

{confirmationText}

\n {channelReferenceId && (\n

\n {`${channelReferenceIdLabel} ${channelReferenceId}`}\n

\n )}\n {channelReferenceId && shouldShowQrCode && (\n \n \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 * as React from 'react';\n\n/**\n * Check-in error properties.\n */\nexport interface ICheckInErrorProps {\n errorMessage?: string;\n}\n\n/**\n * Check-in error.\n * @param errorProps - The error properties.\n * @param errorProps.errorMessage - The error message to show.\n * @returns The alert element showing check-in errors.\n */\nexport const CheckInErrorComponent: React.FC = ({ errorMessage }) => {\n if (!errorMessage) {\n return null;\n }\n\n return (\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 { IDictionary } from '@msdyn365-commerce/core';\nimport { CommerceProperty, SalesOrdersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\nimport { CheckInConfirmationComponent } from './check-in-confirmation';\nimport { CheckInErrorComponent } from './check-in-error';\nimport { IAdditionalInformationKeysData, ICheckInForPickupConfig, ICheckInForPickupProps } from './check-in-for-pickup.props.autogenerated';\n\n/**\n * The interface representing a piece of additional information data.\n */\ninterface IAdditionalInformation {\n formKey: IAdditionalInformationKeysData;\n value: string;\n}\n\n/**\n * The state for check-in view.\n */\nexport interface ICheckInViewState {\n /**\n * If the module has header error to show.\n */\n isHeaderError: boolean;\n\n /**\n * If the customer has checked in.\n */\n isCheckedIn: boolean;\n\n /**\n * Additional information to capture.\n */\n additionalInformation: IDictionary[];\n}\n\n/**\n * The properties for check-in view.\n */\nexport interface ICheckInViewProps extends ICheckInForPickupProps {\n headerError: React.ReactNode;\n confirmationComponent: React.ReactNode;\n viewState: ICheckInViewState;\n additionalInformationValues: string[];\n checkInForOrderPickup(additionalInformation?: IAdditionalInformation[]): Promise;\n}\n\n/**\n * The state of the CheckInForPickup module.\n */\nexport interface ICheckInForPickupState {\n /**\n * The header error message.\n */\n headerErrorMessage: string;\n\n /**\n * If the customer has checked in successfully.\n */\n isCheckedIn: boolean;\n}\n\n/**\n *\n * CheckIn component.\n * @extends {React.Component, ICheckInForPickupState>}\n */\nclass CheckInForPickup extends React.Component, ICheckInForPickupState> {\n public constructor(props: ICheckInForPickupProps) {\n super(props);\n this.state = {\n headerErrorMessage: '',\n isCheckedIn: false\n };\n }\n\n public render(): JSX.Element | null {\n const isHeaderError: boolean = this.state.headerErrorMessage !== '';\n\n const viewProps = {\n ...this.props,\n headerError: ,\n confirmationComponent: (\n \n ),\n checkInForOrderPickup: this.checkInForOrderPickup,\n additionalInformationValues: this.props.config.additionalInformationKeys\n ? this.props.config.additionalInformationKeys.map(() => {\n return {};\n })\n : undefined,\n viewState: {\n isHeaderError,\n isCheckedIn: this.state.isCheckedIn\n }\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public shouldComponentUpdate(nextProps: ICheckInForPickupProps, nextState: ICheckInForPickupState): boolean {\n if (\n this.props.config.additionalInformationHeading !== nextProps.config.additionalInformationHeading ||\n this.props.config.confirmationText !== nextProps.config.confirmationText\n ) {\n return true;\n }\n if (this.state.headerErrorMessage !== nextState.headerErrorMessage || this.state.isCheckedIn !== nextState.isCheckedIn) {\n return true;\n }\n return false;\n }\n\n public async componentDidMount(): Promise {\n await this._onInit();\n }\n\n /**\n * The async callback for submitting check-in.\n * @param additionalInformationList - The optional additional information captured.\n * @returns The async result.\n */\n public checkInForOrderPickup = async (additionalInformationList?: IAdditionalInformation[]): Promise => {\n const channelId: number = Number.parseInt(this.props.context.request.query!.channelId, 10);\n const channelReferenceId: string = this.props.context.request.query!.channelReferenceId;\n const packingSlipId: string = this.props.context.request.query!.packingSlipId;\n\n const additionalInformationToSubmit: { formKey: string; value: string }[] | undefined = additionalInformationList?.map(\n additionalInformationKeyValuePair => {\n return {\n formKey: additionalInformationKeyValuePair.formKey.resourceId ?? '',\n value: additionalInformationKeyValuePair.value\n };\n }\n );\n const extensionPropertyList: CommerceProperty[] = [];\n if (!ObjectExtensions.isNullOrUndefined(additionalInformationToSubmit)) {\n for (const additionalInformation of additionalInformationToSubmit) {\n extensionPropertyList.push({\n Key: additionalInformation.formKey,\n Value: {\n StringValue: additionalInformation.value\n }\n });\n }\n }\n try {\n await SalesOrdersDataActions.checkInForOrderPickupAsync(\n { callerContext: this.props.context.actionContext, queryResultSettings: {} },\n channelId,\n packingSlipId,\n channelReferenceId,\n extensionPropertyList\n );\n } catch (error) {\n this.setState({ headerErrorMessage: this.props.resources.genericErrorMessage, isCheckedIn: false });\n this.props.telemetry.error(error);\n return Promise.resolve();\n }\n this.setState({ headerErrorMessage: '', isCheckedIn: true });\n return Promise.resolve();\n };\n\n /**\n * The action performed on module initialization.\n * @returns The async result.\n */\n private readonly _onInit = async (): Promise => {\n const channelId: number = Number.parseInt(this.props.context.request.query?.channelId ?? '', 10);\n const channelReferenceId: string | undefined = this.props.context.request.query?.channelReferenceId;\n const packingSlipId: string | undefined = this.props.context.request.query?.packingSlipId;\n if (Number.isNaN(channelId) || !channelReferenceId || !packingSlipId) {\n // No error message shown in editor mode.\n if (this.props.context.request.params.isEditor) {\n return Promise.resolve();\n } else if (this.props.context.request.params.isPreview) {\n this.setState({ headerErrorMessage: this.props.resources.requiredParameterMissingErrorMessage });\n } else {\n this.setState({ headerErrorMessage: this.props.resources.genericErrorMessage });\n }\n this.props.context.telemetry.error(\n 'One or more required URL parameters are missing. ' +\n 'Please make sure you have pass in channelId, channelReferenceId and packingSlipId through URL parameter.'\n );\n return Promise.resolve();\n }\n\n const { additionalInformationKeys } = this.props.config;\n\n const hasAdditionalInformation: boolean = ArrayExtensions.hasElements(additionalInformationKeys);\n\n // Call check-in-for-pickup directly if no additional information to capture.\n if (!hasAdditionalInformation) {\n try {\n await SalesOrdersDataActions.checkInForOrderPickupAsync(\n { callerContext: this.props.context.actionContext, queryResultSettings: {} },\n channelId,\n packingSlipId,\n channelReferenceId\n );\n } catch (error) {\n this.setState({ headerErrorMessage: this.props.resources.genericErrorMessage, isCheckedIn: false });\n this.props.telemetry.error(error);\n return Promise.resolve();\n }\n this.setState({ headerErrorMessage: '', isCheckedIn: true });\n }\n return Promise.resolve();\n };\n}\n\nexport default CheckInForPickup;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { FormBuilder } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICheckInViewProps } from './check-in-for-pickup';\n\n/**\n * The check-in view for submitting check-in, capturing additional information, and showing check-in confirmation.\n * @param props - The check-in view properties.\n * @returns The check-in view as a react component.\n */\nconst CheckInViewComponent: React.FC = (props: ICheckInViewProps) => {\n const { headerError, checkInForOrderPickup, confirmationComponent, viewState } = props;\n return (\n <>\n {viewState.isHeaderError && headerError}\n {!viewState.isHeaderError && ArrayExtensions.hasElements(props.config.additionalInformationKeys) && (\n \n )}\n {!viewState.isHeaderError &&\n !ArrayExtensions.hasElements(props.config.additionalInformationKeys) &&\n viewState.isCheckedIn &&\n confirmationComponent}\n \n );\n};\n\nexport default CheckInViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHelp,\n IOrderDetailsViewProps,\n IOrderInformation,\n IOrderSummary,\n IPaymentMethods,\n ISalesLine\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n createdDate,\n count,\n amount,\n channelReferenceId,\n channelName,\n channelAddress\n}) => (\n \n {channelName}\n {channelAddress}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const SalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton, errors }) => (\n \n {salesLine}\n {buyAgainButton}\n {errors}\n \n);\n\nexport const GroupDelivery: React.FC = ({ deliveryProps, heading, count }) => (\n \n {heading}\n {count}\n \n);\n\nexport const Group: React.FC = ({ groupProps, delivery, address, salesLinesProps, salesLines, isCashAndCarryTransaction }) => (\n \n {delivery && }\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n \n {salesLine.data.deliveryType === 'ship' && salesLine.data.shipment ? salesLine.trackingInfo : null}\n \n {!isCashAndCarryTransaction && salesLine.salesStatus}\n \n ))}\n \n )}\n {!delivery.showTimeslot && address}\n {delivery.showTimeslot && (\n \n {address}\n {delivery.pickupDateTimeslot}\n \n )}\n \n \n);\n\nexport const Groups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderSummary: React.FC = ({\n orderSummaryProps,\n heading,\n subtotal,\n shipping,\n tax,\n totalAmount,\n earnedPoints\n}) => (\n \n {heading}\n {subtotal}\n {shipping}\n {tax}\n {totalAmount}\n {earnedPoints}\n \n);\n\nexport const Payment: React.FC = ({ paymentMethodsProps, title, methods }) => (\n \n {title}\n {methods}\n \n);\n\nexport const Help: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\n \n {needHelpLabel}\n {helpLineNumberLabel}\n {contactNumber}\n \n);\n\nconst OrderDetailsView: React.FC = ({\n moduleProps,\n viewModes,\n tableViewActions,\n table,\n placedBy,\n heading,\n alert,\n loading,\n orderInfomation,\n orderSummary,\n payment,\n help,\n groups\n}) => {\n return (\n \n {placedBy}\n {heading}\n {alert}\n {loading}\n {orderInfomation && }\n {tableViewActions}\n {viewModes}\n {table}\n {groups && }\n \n {orderSummary && }\n {payment && }\n \n {help && }\n \n );\n};\n\nexport default OrderDetailsView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHeader,\n IList,\n IOrderHistoryViewProps,\n IOrderInformation,\n ISalesOrder\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderHistoryOrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n channelName,\n createdDate,\n count,\n amount,\n channelReferenceId\n}) => (\n \n {channelName}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const OrderHistoryGroupDelivery: React.FC = ({\n deliveryProps,\n heading,\n count,\n processing,\n address,\n trackingInfo\n}) => (\n \n {heading}\n {count}\n {processing}\n {address}\n {trackingInfo}\n \n);\n\nexport const OrderHistoryGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n {salesLine.salesLine}\n ))}\n \n )}\n \n);\n\nexport const OrderHistoryGroups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderHistoryHeader: React.FC = ({ headerProps, heading, orderCountLabel, extraActions }) => (\n \n {heading}\n {orderCountLabel}\n {extraActions}\n \n);\n\nexport const OrderHistorySalesOder: React.FC = ({\n salesOrderProps,\n orderInfomation,\n groups,\n orderDetailsLink,\n expandProductsButton\n}) => (\n \n {orderInfomation && }\n {groups && }\n {expandProductsButton}\n {orderDetailsLink}\n \n);\n\nexport const OrderHistoryList: React.FC = ({ listProps, salesOrders }) => (\n \n {salesOrders && salesOrders.map((salesOrder, index) => )}\n \n);\n\nconst OrderHistoryView: React.FC = ({\n orderHistoryProps,\n header,\n alert,\n loading,\n emptyMessage,\n backToShoppingLink,\n list,\n table,\n moreButton\n}) => (\n \n {header && }\n {loading}\n {alert && (\n <>\n {alert}\n {backToShoppingLink}\n \n )}\n {emptyMessage && (\n \n {emptyMessage}\n {backToShoppingLink}\n \n )}\n {list && }\n {table}\n {moreButton && moreButton}\n \n);\n\nexport default OrderHistoryView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IHistogramItemViewProps, IRatingsHistogramViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst RatingsHistogramView: React.FC = props => {\n const { heading, histogramItems, histogramProps, moduleProps } = props;\n return (\n \n {heading}\n \n {histogramItems.map(item => {\n return histogramItem(item);\n })}\n \n \n );\n};\n\nconst histogramItem = (props: IHistogramItemViewProps) => {\n return (\n \n {props.starLabel}\n {props.bar}\n {props.percentage}\n \n );\n};\n\nexport default RatingsHistogramView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IReviewModalViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport {\n IReportReviewModalViewProps,\n IReviewCardViewProps,\n IReviewsListState,\n IReviewsListViewProps\n} from '@msdyn365-commerce-modules/ratings-reviews/src/modules/reviews-list';\nimport { IModuleProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst ReviewsListview: React.FC = props => {\n const {\n averageRating,\n filterByDropdown,\n moduleProps,\n noReviewsMessage,\n noReviewsWithFilterMessage,\n pageControls,\n refineReviewsProps,\n reportReviewModal,\n reviewsListProps,\n reviewCards,\n reviewCount,\n reviewModal,\n sortByDropdown,\n state,\n userReview\n } = props;\n\n if (!userReview && reviewCards.length === 0 && !state.isFilterApplied) {\n return {noReviewsMessage};\n }\n\n return (\n \n {averageRating}\n {reviewCount}\n \n {sortByDropdown}\n {filterByDropdown}\n \n \n {userReview && buildReviewCard(userReview)}\n {reviewCards.map(review => {\n return buildReviewCard(review);\n })}\n \n {reviewCards.length === 0 && state.isFilterApplied && noReviewsWithFilterMessage}\n {pageControls}\n {createReviewModal(reviewModal, moduleProps)}\n {createReportModal(reportReviewModal, state)}\n \n );\n};\n\nconst buildReviewCard = (props: IReviewCardViewProps) => {\n return (\n \n \n {props.rating}\n {props.name}\n {props.date}\n \n \n \n {props.reviewTitle}\n {props.reviewText}\n \n \n {props.responseName}\n {props.responseDate}\n {props.responseText}\n \n \n {props.ratingHelpfulLabel}\n {props.like}\n {props.dislike}\n {props.edit}\n {props.report}\n \n \n \n );\n};\n\nconst createReviewModal = (props: IReviewModalViewProps, moduleProps: IModuleProps): JSX.Element => {\n return (\n \n {props.modalHeader}\n \n \n \n {props.rating}\n {props.ratingLabel}\n \n \n {props.titleLabel}\n {props.titleInput}\n \n \n {props.textLabel}\n {props.textInput}\n \n {props.privacyPolicyUrl}\n {props.error}\n \n \n \n {props.submitButton}\n {props.cancelButton}\n \n \n );\n};\n\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\n return (\n \n {state.reported ? props.headerSubmitted : props.header}\n \n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\n \n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\n \n );\n};\n\nexport default ReviewsListview;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Heading, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IHeadingData, IIframeConfig, IIframeProps } from './iframe.props.autogenerated';\n\nexport interface IIframeViewProps extends IIframeProps {\n Heading: React.ReactNode;\n IframeContainer: IModuleProps;\n IFrame: React.ReactNode;\n alert?: React.ReactNode;\n cookieConsentAccepted?: boolean;\n}\n\n/**\n *\n * Iframe component.\n * @extends {React.PureComponent}\n */\nclass Iframe extends React.PureComponent> {\n private readonly iframeRef: React.RefObject;\n\n constructor(props: IIframeProps) {\n super(props);\n this.iframeRef = React.createRef();\n }\n\n public render(): JSX.Element | null {\n const { config, resources } = this.props;\n const isConsentGiven =\n this.props.context.request &&\n this.props.context.request.cookies &&\n this.props.context.request.cookies.isConsentGiven &&\n this.props.context.request.cookies.isConsentGiven();\n\n if (!(config && config.target && config.target.destinationUrl)) {\n return null;\n }\n\n let srcURL;\n try {\n srcURL = new URL(config.target.destinationUrl);\n } catch (error) {\n this.props.telemetry.exception(error);\n return null;\n }\n\n if (srcURL && srcURL.protocol && srcURL.protocol.toLocaleLowerCase() !== 'https:') {\n return null;\n }\n const iframeClassName = classnames('ms-iframe', config.className);\n\n let viewProps: IIframeViewProps = {\n ...(this.props as IIframeProps),\n Heading: this._createHeading(config.heading!),\n IframeContainer: {\n moduleProps: this.props,\n className: iframeClassName\n },\n IFrame: this._createIframe()\n };\n\n if (!isConsentGiven) {\n viewProps = {\n ...viewProps,\n alert: this._renderAlert(resources.cookieConsentRequiredMessage)\n };\n } else {\n viewProps = {\n ...viewProps,\n cookieConsentAccepted: true\n };\n }\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\n if (!heading || !heading.text || heading.text.length === 0) {\n return null;\n }\n\n return ;\n }\n\n private _renderAlert(message: string): React.ReactNode | null {\n return (\n

\n {message}\n

\n );\n }\n\n private _createIframe(): React.ReactNode | null {\n const { config } = this.props;\n const targetURL = config.target.destinationUrl;\n\n return (\n \n );\n }\n}\n\nexport default Iframe;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IIframeViewProps } from './iframe';\n\n/**\n *\n * IFrameView component.\n * @extends {React.PureComponent}\n */\nexport class IFrameView extends React.PureComponent {\n public render(): JSX.Element | null {\n const { Heading, IframeContainer, IFrame, alert, cookieConsentAccepted } = this.props;\n\n return (\n \n {alert}\n {cookieConsentAccepted && cookieConsentAccepted ? (\n <>\n {Heading}\n {IFrame}\n \n ) : null}\n \n );\n }\n}\nexport default IFrameView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ExtensibleEnumeration } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\nimport { IOrderLookupResources, IOrderLookupSearchAdditionalFieldsData } from '../order-lookup.props.autogenerated';\n\n/**\n * Render label.\n * @param className - Classname for label.\n * @param value - Text for label.\n * @returns -The JSX Element.\n */\nexport const labelGroup = (className: string, value: string): JSX.Element => {\n return
{value}
;\n};\n\n/**\n * Error label.\n * @param responseErrorMessage - Error message for label.\n * @param errorMessageClassName - Error message for class name.\n * @returns - Error ReactNode.\n */\nexport const renderErrorLabel = (responseErrorMessage: string, errorMessageClassName: string): React.ReactNode => {\n return responseErrorMessage &&
{responseErrorMessage}
;\n};\n\n/**\n * Registered user message.\n * @param resources - Resource values.\n * @param signInUrl - Signin url.\n * @param signInLinkClassName - Signin link classname.\n * @param registeredUserClassName - Registered user message classname.\n * @returns - ReactNode.\n */\nexport const renderRegisteredUserMessage = (\n resources: IOrderLookupResources,\n signInUrl: string,\n signInLinkClassName: string,\n registeredUserClassName: string\n): React.ReactNode => {\n const { orderLookupRegisteredUserText, orderLookupViewAccountText, orderLookupSignInLinkText } = resources;\n const message: string = orderLookupRegisteredUserText;\n const infoMessage: string = orderLookupViewAccountText;\n const signInText: string = orderLookupSignInLinkText;\n return (\n
\n {message}\n \n {signInText}\n \n {infoMessage}\n
\n );\n};\n\n/**\n * EmailValid submit.\n * @param email - Onsubmit of form and button click.\n * @returns - Boolean.\n */\nexport const isEmailValid = (email: string): boolean => {\n return EmailRegex.defaultRegex.test(email);\n};\n\n/**\n * Additional field validation for on submit.\n * @param name - Onsubmit of form and button click.\n * @returns - Boolean.\n */\nexport const isAdditionalFieldValid = (name: string): boolean => {\n const regEx = new RegExp('^(?!\\\\s)[A-Za-z0-9\\\\s]+$', 'u');\n return regEx.test(name);\n};\n\n/**\n * Validate order lookup field against extensible enum.\n * @param orderStatusLookUpParameter - Order lookup parameter.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateOrderLookupField = (\n orderStatusLookUpParameter: string,\n orderLookupExtensibleEnum: ExtensibleEnumeration[]\n): boolean => {\n let isValidField: boolean = false;\n for (const item of orderLookupExtensibleEnum) {\n if (item.Name.toLocaleLowerCase() === orderStatusLookUpParameter.toLocaleLowerCase()) {\n isValidField = true;\n return isValidField;\n }\n }\n return isValidField;\n};\n\n/**\n * Validate order lookup additional fields with proxy values.\n * @param value - Value to be validated.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateAdditionalFieldWithProxy = (value: string, orderLookupExtensibleEnum: ExtensibleEnumeration[]): boolean => {\n return !orderLookupExtensibleEnum.some(item => item.Name.toLocaleLowerCase() === value.toLocaleLowerCase());\n};\n\n/**\n * Validate order lookup additional fields against extensible enum.\n * @param orderStatusLookUpAdditionalParameters - Order lookup parameter.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateOrderLookupAdditionalField = (\n orderStatusLookUpAdditionalParameters: IOrderLookupSearchAdditionalFieldsData[],\n orderLookupExtensibleEnum: ExtensibleEnumeration[]\n): boolean => {\n let isValidAdditionalField: boolean = false;\n if (ArrayExtensions.hasElements(orderStatusLookUpAdditionalParameters)) {\n orderStatusLookUpAdditionalParameters.map(item => {\n const fieldKey: string = item.fieldKey ?? '';\n if (!isValidAdditionalField) {\n isValidAdditionalField = validateAdditionalFieldWithProxy(fieldKey, orderLookupExtensibleEnum);\n }\n return isValidAdditionalField;\n });\n } else {\n isValidAdditionalField = false;\n }\n return isValidAdditionalField;\n};\n\n/**\n * Render validation message if field does not matches with extensible enum.\n * @param orderLookupFieldValidationErrorMessage - Order lookup validation message.\n * @returns - ReactNode.\n */\nexport const renderFieldErrors = (orderLookupFieldValidationErrorMessage: string): React.ReactNode => {\n return
{orderLookupFieldValidationErrorMessage}
;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { labelGroup } from '../utilities/order-lookup-utility';\n\n/**\n * Additional input field props.\n */\nexport interface IOrderLookupAdditionalFieldInfoInput {\n className: string;\n ariaLabel: string;\n inputType: string;\n value: string;\n name: string;\n additionalFieldLabel: string;\n additionalFieldLabelClassName: string;\n isValidAdditionalFieldName: boolean;\n additionalFieldValidationMessage: string;\n onChange(event: React.ChangeEvent): void;\n}\n\n/**\n * Order lookup additional field props.\n */\nexport interface IOrderLookupAdditionalFieldInfo {\n additionalFieldLabel: React.ReactNode;\n additionalFieldInput: React.ReactNode;\n additionalFieldError: React.ReactNode;\n}\n\n/**\n * RenderOrderLookupAdditionalFieldInput component.\n */\n@observer\nexport default class RenderOrderLookupAdditionalFieldInput extends React.Component {\n public constructor(props: IOrderLookupAdditionalFieldInfoInput) {\n super(props);\n }\n\n public shouldComponentUpdate(nextProps: IOrderLookupAdditionalFieldInfoInput): boolean {\n if (this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | undefined {\n return (\n
\n {this._getOrderLookupAdditionalFields().additionalFieldLabel}\n {this._getOrderLookupAdditionalFields().additionalFieldError}\n {this._getOrderLookupAdditionalFields().additionalFieldInput}\n
\n );\n }\n\n /**\n * Function to create the order lookup additional fields.\n * @returns IOrderLookupFieldInfo.\n */\n private _getOrderLookupAdditionalFields(): IOrderLookupAdditionalFieldInfo {\n return {\n additionalFieldLabel: labelGroup(this.props.additionalFieldLabelClassName, this.props.additionalFieldLabel),\n additionalFieldInput: (\n
\n \n
\n ),\n additionalFieldError: (\n
\n {!this.props.isValidAdditionalFieldName ? this.props.additionalFieldValidationMessage : ''}\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 { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { labelGroup } from '../utilities/order-lookup-utility';\n\n/**\n * Input field props.\n */\nexport interface IOrderLookupFieldInfoInput {\n inputReference?: React.RefObject;\n className: string;\n ariaLabel: string;\n inputType: string;\n value: string;\n name: string;\n orderLookupLabel: string;\n orderLookupLabelClassName: string;\n fieldErrorClassName: string;\n isInputTypeError: boolean;\n isValidInputField: boolean;\n renderAlert(className: string): JSX.Element;\n onChange(event: React.ChangeEvent): void;\n}\n\n/**\n * Order lookup field props.\n */\nexport interface IOrderLookupFieldInfo {\n label: React.ReactNode;\n input: React.ReactNode;\n error: React.ReactNode;\n}\n\n/**\n * RenderOrderLookupInputs component.\n */\n@observer\nexport default class RenderOrderLookupFormFields extends React.Component {\n public constructor(props: IOrderLookupFieldInfoInput) {\n super(props);\n }\n\n public shouldComponentUpdate(nextProps: IOrderLookupFieldInfoInput): boolean {\n if (this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | undefined {\n return (\n
\n {this._getOrderLookupFields().label}\n {this._getOrderLookupFields().error}\n {this._getOrderLookupFields().input}\n
\n );\n }\n\n /**\n * Function to create the order lookup fields.\n * @returns IOrderLookupFieldInfo.\n */\n private _getOrderLookupFields(): IOrderLookupFieldInfo {\n return {\n label: labelGroup(this.props.orderLookupLabelClassName, this.props.orderLookupLabel),\n input: (\n
\n \n
\n ),\n error: (\n
\n {this.props.isInputTypeError ? this.props.renderAlert(this.props.name) : ''}\n {this.props.isValidInputField ? this.props.renderAlert(this.props.name) : ''}\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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IActionContext } from '@msdyn365-commerce/core-internal';\nimport { ExtensibleEnumeration, StoreOperationsDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport RenderOrderLookupAdditionalFieldInput from './components/order-lookup-additional-fields';\nimport RenderOrderLookupFormFields from './components/order-lookup-fields';\nimport {\n IOrderLookupProps,\n IOrderLookupSearchAdditionalFieldsData,\n orderStatusLookUpParametersType as orderStatusLookUpParametersTypes\n} from './order-lookup.props.autogenerated';\nimport {\n isAdditionalFieldValid,\n isEmailValid,\n renderErrorLabel,\n renderFieldErrors,\n renderRegisteredUserMessage,\n validateOrderLookupAdditionalField,\n validateOrderLookupField\n} from './utilities/order-lookup-utility';\n\n/**\n * OrderLookup view props.\n */\nexport interface IOrderLookupViewProps extends IOrderLookupProps<{}> {\n additionalProperties: JSX.Element[] | undefined;\n orderLookup: IModuleProps;\n orderLookupContainer: INodeProps;\n orderLookupAdditionalFieldContainer: INodeProps;\n paragraph?: React.ReactNode;\n heading?: React.ReactNode;\n submitButton?: INodeProps;\n submitButtonLabelText?: string;\n orderLookupForm?: INodeProps;\n renderOrderLookupInputField: JSX.Element | undefined;\n orderNumberInput?: JSX.Element | undefined;\n errorMessage?: React.ReactNode;\n fieldErrorMessage?: React.ReactNode;\n registeredUserMessage?: React.ReactNode;\n onChange?(event: React.ChangeEvent): void;\n submit?(): void;\n}\n\n/**\n * OrderLookupSearchValues -- supported values.\n */\nenum OrderLookupSearchValues {\n email = 'email',\n ordernumber = 'ordernumber'\n}\n\n/**\n * To render and handle state for additional order lookup fields.\n */\nexport interface IOrderLookupAdditionalFields {\n labelName: string;\n isValidFieldName: boolean;\n fieldValue: string;\n ariaLabel: string;\n additionalfieldErrorMessage: string;\n}\n\n/**\n * OrderLookup view props.\n */\nexport interface IOrderLookupFormState {\n orderNumber: string;\n email: string;\n isOrdNumberError: boolean;\n isEmailError: boolean;\n isValidEmailError: boolean;\n isReqError: boolean;\n isDisabled: boolean;\n isValidLookupField: boolean;\n isValidAdditionalLookupField: boolean;\n responseErrorMessage: string;\n additionalProperties: IOrderLookupAdditionalFields[];\n}\n\n/**\n *\n * OrderLookup component.\n * @extends {React.PureComponent>}\n */\nclass OrderLookup extends React.PureComponent, IOrderLookupFormState> {\n public orderNumberInputRef: React.RefObject;\n\n public emailInputRef: React.RefObject;\n\n public isEmailValue: boolean = false;\n\n private requiredErrorMessage: string | undefined;\n\n private emailValidationErrorMessage: string | undefined;\n\n private isOrderNumberValue: boolean = false;\n\n private orderLookupExtensibleEnum: ExtensibleEnumeration[] = [];\n\n public constructor(props: IOrderLookupProps<{}>) {\n super(props);\n this.orderNumberInputRef = React.createRef();\n this.emailInputRef = React.createRef();\n const { config } = this.props;\n const { orderLookupSearchAdditionalFields } = config;\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n\n if (orderLookupSearchAdditionalFields) {\n for (const item of orderLookupSearchAdditionalFields) {\n additionalPropertyStates.push({\n labelName: item.labelName ?? '',\n isValidFieldName: true,\n fieldValue: '',\n ariaLabel: item.ariaLabel ?? '',\n additionalfieldErrorMessage: item.validationMessage ?? ''\n });\n }\n }\n\n this.state = {\n orderNumber: '',\n email: '',\n isOrdNumberError: false,\n isEmailError: false,\n isValidEmailError: false,\n isReqError: false,\n isDisabled: true,\n isValidLookupField: true,\n isValidAdditionalLookupField: false,\n responseErrorMessage: '',\n additionalProperties: additionalPropertyStates\n };\n }\n\n public render(): JSX.Element | null {\n const {\n config: { paragraph, heading },\n resources,\n context\n } = this.props;\n\n const {\n orderLookupDefaultHeadingText,\n orderLookupButtonLabel,\n orderLookupFormAriaLabel,\n orderLookupOrderNumberLabel,\n orderLookupOrderNumberAriaLabel,\n orderLookupSubmitAriaLabel,\n orderLookupFieldValidationErrorMessage\n } = resources;\n\n const { responseErrorMessage, isDisabled, orderNumber, isOrdNumberError } = this.state;\n\n const headingText = StringExtensions.isNullOrEmpty(heading?.text) ? orderLookupDefaultHeadingText : heading?.text;\n const headingTag = heading?.tag ?? 'h1';\n\n const moduleClassName = 'ms-order-lookup';\n const orderLookupContainerClassName = `${moduleClassName}__details`;\n const orderLookupHeadingClassName = `${orderLookupContainerClassName}__heading`;\n const orderLookupFormClassName = `${orderLookupContainerClassName}__form`;\n const orderLookupAdditionalFiledContainerClassName = `${orderLookupFormClassName}__additional-fields-container`;\n const orderLookupFormFieldsClassName = `${orderLookupFormClassName}__fields`;\n const orderNumberLabelClassName = `${orderLookupFormFieldsClassName}__order-number-label`;\n const orderNumberInputErrorClassName = `${orderLookupFormFieldsClassName}__order-number-input-error`;\n const submitButtonClassName = `${orderLookupFormClassName}__submit`;\n const labelErrorMessageClassName = `${moduleClassName}__error-message`;\n const registeredUserClassName = `${moduleClassName}__registered-user`;\n const signinLinkClassName = `${registeredUserClassName}__sign-in-link msc-btn`;\n\n const orderLookupHeading = (\n \n );\n\n const viewProps: IOrderLookupViewProps = {\n ...this.props,\n orderLookup: {\n moduleProps: this.props,\n className: moduleClassName\n },\n\n orderLookupContainer: {\n className: orderLookupContainerClassName\n },\n orderLookupAdditionalFieldContainer: {\n className: orderLookupAdditionalFiledContainerClassName\n },\n paragraph: paragraph && this._createParagraph(paragraph),\n heading: orderLookupHeading,\n\n renderOrderLookupInputField: this._renderOrderLookupInput(),\n orderLookupForm: {\n className: orderLookupFormClassName,\n tag: 'form',\n 'aria-label': orderLookupFormAriaLabel,\n name: 'orderLookupForm',\n role: 'form',\n autoComplete: 'off',\n onSubmit: this.handleSubmit\n },\n orderNumberInput: (\n \n ),\n\n submitButton: {\n className: submitButtonClassName,\n tag: Button,\n 'aria-label': orderLookupSubmitAriaLabel,\n type: 'submit',\n role: 'button',\n title: orderLookupButtonLabel,\n onClick: this.handleSubmit,\n disabled: isDisabled\n },\n\n submitButtonLabelText: orderLookupButtonLabel,\n errorMessage: renderErrorLabel(responseErrorMessage, labelErrorMessageClassName),\n fieldErrorMessage:\n (!this.state.isValidLookupField || this.state.isValidAdditionalLookupField) &&\n renderFieldErrors(orderLookupFieldValidationErrorMessage),\n registeredUserMessage: renderRegisteredUserMessage(\n resources,\n context.request.user.signInUrl ?? '',\n signinLinkClassName,\n registeredUserClassName\n ),\n onChange: this.onChange,\n submit: this.handleSubmit,\n additionalProperties: this._renderAdditionalFields()\n };\n return this.props.renderView(viewProps);\n }\n\n public async componentDidMount(): Promise {\n const { config, context } = this.props;\n const { actionContext } = context;\n const { orderStatusLookUpParametersType, orderLookupSearchAdditionalFields } = config;\n let isOrderLookupAdditionalFieldValid: boolean = false;\n let isOrderLookupFieldValid: boolean = false;\n\n const getExtensibleEnumerations = await StoreOperationsDataActions.getExtensibleEnumerationsAsync({ callerContext: actionContext });\n this.orderLookupExtensibleEnum =\n getExtensibleEnumerations.find(item => item.TypeName === 'OrderLookupAdditionalCriteriaType')?.ExtensibleEnumerations ?? [];\n\n const orderLookupParameter: string = orderStatusLookUpParametersType ?? '';\n const orderLookupAdditionalParameter: IOrderLookupSearchAdditionalFieldsData[] = orderLookupSearchAdditionalFields ?? [];\n\n isOrderLookupFieldValid = validateOrderLookupField(orderLookupParameter, this.orderLookupExtensibleEnum);\n isOrderLookupAdditionalFieldValid = validateOrderLookupAdditionalField(\n orderLookupAdditionalParameter,\n this.orderLookupExtensibleEnum\n );\n this.setLookupFieldState(isOrderLookupFieldValid, isOrderLookupAdditionalFieldValid);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n const { config } = this.props;\n config.paragraph = event.target.value;\n };\n\n /**\n * Sets isValidLookupField after validating with extensible emun.\n * @param isValidField - Sets the property.\n * @param isValidAdditionalField - Sets the additional field property.\n */\n public setLookupFieldState(isValidField: boolean, isValidAdditionalField: boolean): void {\n this.setState({ isValidLookupField: isValidField, isValidAdditionalLookupField: isValidAdditionalField });\n }\n\n /**\n * HandleSubmit submit.\n */\n public readonly handleSubmit = (): void => {\n const { config, context } = this.props;\n const { actionContext } = context;\n const { additionalProperties, orderNumber, email } = this.state;\n const orderLookupValue = email;\n const { orderStatusLookUpParametersType } = config;\n const orderLookupName = orderStatusLookUpParametersType !== undefined ? orderStatusLookUpParametersType : '';\n const isValid: boolean = this._validateOrderLookupForm();\n if (isValid) {\n const actionContextValue: IActionContext = actionContext;\n const orderDetailsPath = Msdyn365.getUrlSync('orderDetails', actionContextValue) ?? '';\n if (orderDetailsPath) {\n const baseUrl = new URL(window.location.origin);\n const redirectUrl = new URL(orderDetailsPath, baseUrl);\n const searchParameters = redirectUrl.searchParams;\n\n searchParameters.set('confirmationId', orderNumber);\n searchParameters.set('propertyName', orderLookupName);\n searchParameters.set('propertyValue', orderLookupValue);\n\n if (ArrayExtensions.hasElements(additionalProperties)) {\n additionalProperties.map((item, index) => {\n const fieldName = !StringExtensions.isNullOrWhitespace(item.ariaLabel)\n ? item.ariaLabel.replace(' ', '').toLocaleLowerCase()\n : '';\n const fieldValue = !StringExtensions.isNullOrWhitespace(item.fieldValue) ? item.fieldValue : '';\n searchParameters.set(`field${index + 1}Name`, fieldName);\n searchParameters.set(`field${index + 1}Value`, fieldValue);\n return item;\n });\n }\n\n window.location.assign(redirectUrl.toString());\n }\n }\n };\n\n /**\n * OnChange event.\n * @param event - Value of input field.\n */\n public readonly onChange = (event: React.ChangeEvent): void => {\n const { additionalProperties } = this.state;\n const { config } = this.props;\n const { orderStatusLookUpParametersType } = config;\n const name = event.target.name || '';\n const value = event.target.value || '';\n this.isOrderNumberValue = !StringExtensions.isNullOrWhitespace(this.orderNumberInputRef.current?.value);\n this.isEmailValue = !StringExtensions.isNullOrWhitespace(this.emailInputRef.current?.value);\n\n if (orderStatusLookUpParametersType?.toLocaleLowerCase() === 'none') {\n this.isEmailValue = true;\n }\n\n this.setState({ responseErrorMessage: '' });\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n let isAdditionalFieldError: boolean = true as boolean;\n let isKeyExistInAdditionalFieldArray: boolean = false as boolean;\n\n for (const item of additionalProperties) {\n const fieldName: string = item.ariaLabel.replace(' ', '');\n if (fieldName.toLocaleLowerCase() === name.toLocaleLowerCase()) {\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: true,\n fieldValue: value,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n } else {\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: item.isValidFieldName,\n fieldValue: item.fieldValue,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n }\n if (fieldName.toLocaleLowerCase() === orderStatusLookUpParametersType?.toLocaleLowerCase()) {\n isKeyExistInAdditionalFieldArray = true;\n }\n }\n\n for (const items of additionalPropertyStates) {\n if (StringExtensions.isNullOrWhitespace(items.fieldValue)) {\n isAdditionalFieldError = false;\n }\n }\n\n this.setState({ additionalProperties: additionalPropertyStates });\n\n if (!isKeyExistInAdditionalFieldArray) {\n switch (name.toLocaleLowerCase()) {\n case OrderLookupSearchValues.ordernumber: {\n this.setState({\n orderNumber: value,\n isOrdNumberError: false,\n isReqError: false\n });\n break;\n }\n case OrderLookupSearchValues.email: {\n this.setState({\n email: value,\n isEmailError: false,\n isValidEmailError: false,\n isReqError: false\n });\n break;\n }\n default: {\n this.setState({ isReqError: false });\n }\n }\n }\n\n if (\n this.isOrderNumberValue &&\n this.isEmailValue &&\n isAdditionalFieldError &&\n this.state.isValidLookupField &&\n !this.state.isValidAdditionalLookupField\n ) {\n this.setState({ isDisabled: false });\n } else {\n this.setState({ isDisabled: true });\n }\n };\n\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\n const { context } = this.props;\n const { request } = context;\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n /**\n * Render order lookup validation message.\n * @param className - Class name for error field.\n * @returns - JSX.Element.\n */\n private readonly _renderAlert = (className: string): JSX.Element => {\n const {\n resources: { orderLookupEmailValidationErrorMessage, orderLookupRequiredTextErrorMessage }\n } = this.props;\n\n const { isEmailError, email, isValidEmailError, isReqError } = this.state;\n if (isEmailError) {\n this.requiredErrorMessage = orderLookupRequiredTextErrorMessage;\n }\n\n if (!StringExtensions.isNullOrEmpty(email) && isValidEmailError) {\n this.emailValidationErrorMessage = orderLookupEmailValidationErrorMessage;\n }\n\n const isRequireError = isReqError;\n const isEmailValidError = isValidEmailError;\n const isValidEmailInput = className.toLocaleLowerCase() === OrderLookupSearchValues.email;\n return (\n <>\n {isRequireError && (\n \n {this.requiredErrorMessage}\n \n )}\n {isEmailValidError && isValidEmailInput && (\n \n {this.emailValidationErrorMessage}\n \n )}\n \n );\n };\n\n /**\n * Render order number validation message.\n * @param className - Class name for error field.\n * @returns - JSX.Element.\n */\n private readonly _renderOrderNumberAlert = (className: string): JSX.Element => {\n const {\n resources: { orderLookupOrderNumberValidationErrorMessage, orderLookupRequiredTextErrorMessage }\n } = this.props;\n\n const { isOrdNumberError, isReqError } = this.state;\n return (\n <>\n {isReqError && (\n \n {orderLookupRequiredTextErrorMessage}\n \n )}\n {isOrdNumberError && (\n \n {orderLookupOrderNumberValidationErrorMessage}\n \n )}\n \n );\n };\n\n private _renderAdditionalFields(): JSX.Element[] | undefined {\n const { additionalProperties } = this.state;\n const additionalFieldsInput: JSX.Element[] = [];\n for (const item of additionalProperties) {\n const name: string = item.ariaLabel.replace(' ', '');\n additionalFieldsInput.push(\n \n );\n }\n return additionalFieldsInput;\n }\n\n /**\n * Render Input field for order lookup.\n * @returns - IOrderLookupFieldInfo.\n */\n private readonly _renderOrderLookupInput = (): JSX.Element | undefined => {\n const { email, isEmailError, isValidEmailError } = this.state;\n const {\n config: { orderStatusLookUpParametersType },\n resources: { orderLookupEmailLabel, orderLookupEmailAriaLabel }\n } = this.props;\n\n switch (orderStatusLookUpParametersType) {\n case orderStatusLookUpParametersTypes.none:\n return undefined;\n case orderStatusLookUpParametersTypes.email:\n default:\n return (\n \n );\n }\n };\n\n /**\n * _validation for additional fields.\n * @returns - Returns IOrderLookupAdditionalFields[].\n */\n private readonly _additionalFieldValidation = (): IOrderLookupAdditionalFields[] => {\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n for (const item of this.state.additionalProperties) {\n const isFieldValid: boolean = !StringExtensions.isNullOrWhitespace(item.fieldValue) && isAdditionalFieldValid(item.fieldValue);\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: isFieldValid,\n fieldValue: item.fieldValue,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n }\n return additionalPropertyStates;\n };\n\n /**\n * _validateOrderLookupForm submit.\n * @returns - Returns boolean.\n */\n private readonly _validateOrderLookupForm = (): boolean => {\n const { config } = this.props;\n const { orderNumber, email } = this.state;\n const { orderStatusLookUpParametersType } = config;\n let additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n let isValid = false;\n let isDisable = false;\n\n if (ArrayExtensions.hasElements(this.state.additionalProperties)) {\n additionalPropertyStates = this._additionalFieldValidation();\n for (const item of additionalPropertyStates) {\n if (!item.isValidFieldName) {\n isDisable = true;\n }\n }\n\n if (isDisable) {\n this.setState({\n additionalProperties: additionalPropertyStates,\n isDisabled: true\n });\n }\n }\n\n if (StringExtensions.isNullOrWhitespace(orderNumber)) {\n this.setState({\n isOrdNumberError: true,\n isReqError: true,\n isDisabled: true\n });\n } else if (orderNumber.trim() !== orderNumber) {\n this.setState({\n isOrdNumberError: true,\n isReqError: false,\n isDisabled: true\n });\n } else if (\n orderStatusLookUpParametersType === orderStatusLookUpParametersTypes.email &&\n StringExtensions.isNullOrWhitespace(email)\n ) {\n this.setState({\n isEmailError: true,\n isReqError: true,\n isDisabled: true\n });\n } else if (orderStatusLookUpParametersType === orderStatusLookUpParametersTypes.email && !isEmailValid(email)) {\n this.setState({\n isValidEmailError: true,\n isDisabled: true\n });\n } else if (isDisable || !this.state.isValidLookupField || this.state.isValidAdditionalLookupField) {\n this.setState({\n isDisabled: true\n });\n } else {\n this.setState({\n isDisabled: false\n });\n isValid = true;\n }\n return isValid;\n };\n}\n\nexport default OrderLookup;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrderLookupViewProps } from './order-lookup';\n\n/**\n * View component.\n * @param props - The view properties.\n * @returns - Returns JSX Element.\n */\nexport const OrderLookupViewComponent: React.FC = props => {\n const {\n orderLookup,\n orderLookupContainer,\n orderLookupAdditionalFieldContainer,\n heading,\n paragraph,\n orderLookupForm,\n renderOrderLookupInputField,\n orderNumberInput,\n errorMessage,\n submitButton,\n additionalProperties,\n registeredUserMessage,\n fieldErrorMessage\n } = props;\n return (\n \n \n {heading}\n {paragraph}\n \n {orderNumberInput}\n {renderOrderLookupInputField}\n {ArrayExtensions.hasElements(additionalProperties) && (\n \n {additionalProperties.map((item: JSX.Element) => (\n {item}\n ))}\n \n )}\n {fieldErrorMessage}\n \n {props.submitButtonLabelText}\n \n {errorMessage}\n \n {registeredUserMessage}\n \n \n );\n};\n\nexport default OrderLookupViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getTelemetryObject,\n Heading,\n IComponentNodeProps,\n INodeProps,\n ISingleSlideCarouselProps,\n ITelemetryContent,\n NodeTag,\n SingleSlideCarousel\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ITileListProps, ITitleData } from './tile-list.props.autogenerated';\n\n/**\n * Tile-list view props.\n */\nexport interface ITileListViewProps extends ITileListProps<{}> {\n title?: React.ReactNode;\n tiles: React.ReactNode[];\n tileItemContainer: INodeProps;\n tileListContainer: INodeProps;\n tileListHeading: INodeProps;\n singleSlideCarouselComponentProps: INodeProps;\n}\n\n/**\n *\n * TileList component.\n * @extends {React.PureComponent>}\n */\nexport class TileList extends React.PureComponent> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n private static _createHeading(heading?: ITitleData): React.ReactNode | null {\n if (!heading || !heading.text || StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n return ;\n }\n public constructor(props: ITileListProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { resources } = this.props;\n const { title, className } = this.props.config;\n const propsCarousel: IComponentNodeProps = {\n tag: SingleSlideCarousel,\n className: this.props.config.className ?? '',\n flipperPrevLabel: resources.flipperPrevious,\n flipperNextLabel: resources.flipperNext,\n parentId: this.props.id,\n telemetryContent: this._telemetryContent,\n vertical: false\n };\n\n const viewProps = {\n ...this.props,\n title: TileList._createHeading(title),\n singleSlideCarouselComponentProps: propsCarousel,\n tileItemContainer: {\n tag: 'li' as NodeTag,\n className: 'ms-tile__item',\n role: 'listitem'\n },\n tileListContainer: { className: classnames('ms-tile-list', className) },\n tileListHeading: { className: 'ms-tile-list__heading' },\n tiles: this.props.slots.content\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n}\n\nexport default TileList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ITileListViewProps } from './tile-list';\n\n/**\n * View component.\n * @param props - The view properties.\n * @returns Returns props.\n */\nexport const tileListView: React.FC = props => {\n const { title, tiles, tileListContainer, tileListHeading, tileItemContainer, singleSlideCarouselComponentProps } = props;\n return (\n \n {title}\n \n {tiles.map((tileItem: ReactNode, index: number) => {\n const keyIndex = `tile-list-item__${index}`;\n return (\n \n {tileItem}\n \n );\n })}\n \n \n );\n};\n\nexport default tileListView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync } from '@msdyn365-commerce/core';\nimport { IB2bRequestsStatusViewProps } from '@msdyn365-commerce-modules/account-management';\nimport { Button, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { IB2bRequestsStatusProps, IB2bRequestsStatusResources } from '../definition-extensions/b2b-requests-status.ext.props.autogenerated';\n\n/**\n * B2b Request status View.\n * @param props - The view props.\n * @returns The JSX Element.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\nconst B2bRequestsStatusView: React.FC> = props => {\n const { b2bRequestsStatus, heading, table } = props;\n const { continueShoppingButtonTitle } = props.resources;\n const initialCount = 0;\n\n if (props.data.operationRequests.result?.length === initialCount) {\n return (\n \n {heading}\n \n
\n

{props.resources.headingForEmptyRequestStatus}

\n

{props.resources.textForEmptyRequestStatus}

\n \n \n {continueShoppingButtonTitle}\n \n \n
\n
\n
\n );\n }\n return (\n \n {heading}\n {table}\n \n );\n};\n\nexport default B2bRequestsStatusView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICheckoutCustomerAccountPaymentViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/checkout-customer-account-payment';\nimport { IAccountPaymentEditViewForm } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/components/get-account-payment-form-edit-mode';\nimport { IAccountPaymentSummaryViewForm } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/components/get-account-payment-form-summary-mode';\n\nexport const SummaryForm: React.FC = ({\n formProps,\n label,\n addPaymentButton,\n appliedLine,\n bottomBorder,\n paymentAmountInput\n}) => (\n \n <>\n {label}\n {paymentAmountInput}\n {addPaymentButton}\n {appliedLine}\n {bottomBorder}\n \n \n);\n\nexport const EditForm: React.FC = ({\n formProps,\n inputLabel,\n inputAmount,\n addPaymentButton,\n customerName,\n customerAccountNumber,\n customerSince,\n accountCredit,\n alert,\n accountDetails,\n appliedLine,\n bottomBorder\n}) => (\n \n <>\n {customerName}\n {customerAccountNumber}\n {customerSince}\n {accountCredit}\n {accountDetails}\n {inputLabel}\n {alert}\n {inputAmount}\n {addPaymentButton}\n {appliedLine}\n {bottomBorder}\n \n \n);\n\nconst CheckoutCustomerAccountView: React.FC = props => {\n const { checkoutCustomerAccount, checkoutErrorRef, summaryView, editView, moduleState, alert } = props;\n return (\n \n {alert}\n {moduleState.isReady && summaryView && }\n {!moduleState.isReady && editView && }\n \n );\n};\n\nexport default CheckoutCustomerAccountView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHelp,\n IOrderDetailsViewProps,\n IOrderInformation,\n IOrderSummary,\n IPaymentMethods,\n ISalesLine\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n createdDate,\n count,\n amount,\n channelReferenceId,\n channelName,\n channelAddress\n}) => (\n \n {channelName}\n {channelAddress}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const SalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton, errors }) => (\n \n {salesLine}\n {buyAgainButton}\n {errors}\n \n);\n\nexport const GroupDelivery: React.FC = ({ deliveryProps, heading, count }) => (\n \n {heading}\n {count}\n \n);\n\nexport const Group: React.FC = ({ groupProps, delivery, address, salesLinesProps, salesLines, isCashAndCarryTransaction }) => (\n \n {delivery && }\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n \n {!isCashAndCarryTransaction && salesLine.salesStatus}\n {salesLine.data.deliveryType === 'ship' && salesLine.data.shipment ? salesLine.trackingInfo : null}\n \n \n ))}\n \n )}\n {!delivery.showTimeslot && address}\n {delivery.showTimeslot && (\n \n {address}\n {delivery.pickupDateTimeslot}\n \n )}\n \n \n);\n\nexport const Groups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderSummary: React.FC = ({\n orderSummaryProps,\n heading,\n subtotal,\n shipping,\n tax,\n totalAmount,\n earnedPoints\n}) => (\n \n {heading}\n {subtotal}\n {shipping}\n {tax}\n {totalAmount}\n {earnedPoints}\n \n);\n\nexport const Payment: React.FC = ({ paymentMethodsProps, title, methods }) => (\n \n {title}\n {methods}\n \n);\n\nexport const Help: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\n \n {needHelpLabel}\n {helpLineNumberLabel}\n {contactNumber}\n \n);\n\nconst OrderDetailsView: React.FC = ({\n moduleProps,\n viewModes,\n tableViewActions,\n table,\n placedBy,\n heading,\n alert,\n loading,\n orderInfomation,\n orderSummary,\n payment,\n help,\n groups\n}) => {\n return (\n \n {placedBy}\n {heading}\n {alert}\n {loading}\n {orderInfomation && }\n {tableViewActions}\n {viewModes}\n {table}\n {groups && }\n \n {orderSummary && }\n {payment && }\n \n {help && }\n \n );\n};\n\nexport default OrderDetailsView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHeader,\n IList,\n IOrderHistoryViewProps,\n IOrderInformation,\n ISalesOrder\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderHistoryOrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n channelName,\n createdDate,\n count,\n amount,\n channelReferenceId\n}) => (\n \n {channelName}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const OrderHistoryGroupDelivery: React.FC = ({\n deliveryProps,\n heading,\n count,\n processing,\n address,\n trackingInfo\n}) => (\n \n {heading}\n {count}\n {processing}\n {address}\n {trackingInfo}\n \n);\n\nexport const OrderHistoryGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n {salesLine.salesLine}\n ))}\n \n )}\n \n);\n\nexport const OrderHistoryGroups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderHistoryHeader: React.FC = ({ headerProps, heading, orderCountLabel, extraActions }) => (\n \n {heading}\n {orderCountLabel}\n {extraActions}\n \n);\n\nexport const OrderHistorySalesOder: React.FC = ({\n salesOrderProps,\n orderInfomation,\n groups,\n orderDetailsLink,\n expandProductsButton\n}) => (\n \n
\n {orderInfomation.placedBy && {orderInfomation.placedBy}}\n
{orderInfomation && }
\n
\n {groups && }\n {expandProductsButton}\n {orderDetailsLink}\n
\n);\n\nexport const OrderHistoryList: React.FC = ({ listProps, salesOrders }) => (\n \n {salesOrders && salesOrders.map((salesOrder, index) => )}\n \n);\n\nconst OrderHistoryView: React.FC = ({\n orderHistoryProps,\n header,\n alert,\n loading,\n emptyMessage,\n backToShoppingLink,\n list,\n table,\n moreButton\n}) => (\n \n {header && }\n {loading}\n {alert && (\n <>\n {alert}\n {backToShoppingLink}\n \n )}\n {emptyMessage && (\n \n {emptyMessage}\n {backToShoppingLink}\n \n )}\n {list && }\n {table}\n {moreButton && moreButton}\n \n);\n\nexport default OrderHistoryView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ISearchData, ISearchViewProps } from '@msdyn365-commerce-modules/search';\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\n\n/**\n * Render Categories heading.\n * @param inCategoriesHeading - The Keywords result heading.\n * @returns The JSX Element.\n */\nconst renderCategorySuggestionsTitle = (inCategoriesHeading: string): JSX.Element => {\n const categoryAutoSuggestionHeading = inCategoriesHeading ? inCategoriesHeading : 'In categories';\n\n return
{categoryAutoSuggestionHeading}
;\n};\n\n/**\n * Render Categories suggestion result.\n * @param inCategoriesHeading - The Categories result heading.\n * @param noResultText - The \"No Result\" text.\n * @param props - The Categories suggestion result.\n * @param isLoadingAutoSuggest - The autosuggestion loading flag.\n * @param isLoadingNode - The autosuggestion loading node.\n * @returns The JSX Element.\n */\nexport const CategorySuggestionsComponent = (\n inCategoriesHeading: string,\n noResultText: string,\n props: ISearchViewProps & ISearchProps,\n isLoadingAutoSuggest?: boolean,\n isLoadingNode?: React.ReactNode\n): JSX.Element => {\n return props.autosuggestCategory ? (\n \n {renderCategorySuggestionsTitle(inCategoriesHeading)}\n \n {isLoadingAutoSuggest && isLoadingNode}\n {!isLoadingAutoSuggest &&\n props.autosuggestCategory.text.map(text => {\n return text;\n })}\n \n \n ) : (\n \n {renderCategorySuggestionsTitle(inCategoriesHeading)}\n \n
  • {noResultText}
  • \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 { IImageData, Image } from '@msdyn365-commerce/core';\nimport { ISearchData } from '@msdyn365-commerce-modules/search';\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\n\n/**\n * Render Products Suggestion result heading.\n * @param props -The props.\n * @returns The JSX Element.\n */\nconst renderProductNotFoundResultsImage = (props: ISearchProps): JSX.Element | null => {\n const noSearchResultImage: IImageData | undefined = props.config.noSearchResultImage;\n if (!noSearchResultImage || !noSearchResultImage.src) {\n return null;\n }\n const imageSettings = {\n lazyload: true,\n viewports: {\n xs: { w: 100, h: 100, q: 'w=100&h=100&q=60&m=6' }\n }\n };\n return (\n \n );\n};\n\n/**\n * Render Product suggestion result.\n * @param props -The props.\n * @returns The JSX Element.\n */\nexport const MobileAutoSuggestEmptyComponent = (props: ISearchProps): JSX.Element => {\n return (\n \n
    {renderProductNotFoundResultsImage(props)}
    \n
    \n
    {props.resources.emptyMobileSearchTextHeading}
    \n
    {props.resources.emptyMobileSearchText}
    \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 { ISearchData, ISearchFormViewProps } from '@msdyn365-commerce-modules/search';\nimport { Button, INodeProps, Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\nimport { MobileAutoSuggestEmptyComponent } from './search.mobile.empty';\n\n/**\n * Render Clear button for mobile viewport.\n * @param clearSearchButtonText -The Clear button text.\n * @param clearSearch -Clear Search callback.\n * @returns -The JSX Element.\n */\nconst renderClearButton = (clearSearchButtonText: string, clearSearch: () => void): JSX.Element => {\n return (\n \n );\n};\n\n/**\n * Render Search form.\n * @param form -Form view props.\n * @param searchForm -Search Form props.\n * @param formWrapper -Form Wrapper props.\n * @param isMobile -Is mobile viewport flag.\n * @param clearSearchButtonText -The Clear button text.\n * @param props -The props for resource.\n * @param isSearchText -Is SearchText flag for input text.\n * @param clearSearch -Clear Search callback.\n * @returns -The JSX Element.\n */\nexport const FormComponent = (\n form: ISearchFormViewProps,\n searchForm: INodeProps,\n formWrapper: INodeProps,\n isMobile: boolean,\n clearSearchButtonText: string,\n props: ISearchProps,\n isSearchText: boolean,\n clearSearch: () => void\n): JSX.Element => {\n const cancelButtonNode = (\n \n );\n\n return isMobile ? (\n \n {form.cancelBtn}\n \n {form.input}\n {isSearchText && renderClearButton(clearSearchButtonText, clearSearch)}\n {!isSearchText ? MobileAutoSuggestEmptyComponent(props) : null}\n \n \n ) : (\n \n \n {form.submitBtn}\n {form.input}\n {isSearchText && cancelButtonNode}\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 { ISearchKeywordViewProps } from '@msdyn365-commerce-modules/search';\nimport { INodeProps, Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\n/**\n * Render keywords heading.\n * @param keywordsHeading -The Keywords result heading.\n * @returns The JSX Element.\n */\nconst renderKeywordSuggestionsTitle = (keywordsHeading: string): JSX.Element => {\n const categoryAutoSuggestionHeading = keywordsHeading ? keywordsHeading : 'Keywords';\n\n return
    {categoryAutoSuggestionHeading}
    ;\n};\n\n/**\n * Render keywords reults.\n * @param keywordSuggest -The Keywords suggest Node props.\n * @param ulKeyword -The List Node props.\n * @param keywordsHeading -The Keywords result heading.\n * @param noResultText -The \"No Result\" text.\n * @param keywordSuggestions -The Keywords suggestion result.\n * @param isLoadingAutoSuggest - The autosuggestion loading flag.\n * @param isLoadingNode - The autosuggestion loading node.\n * @returns -The JSX Element.\n */\nexport const KeywordSuggestionsComponent = (\n keywordSuggest: INodeProps,\n ulKeyword: INodeProps,\n keywordsHeading: string,\n noResultText: string,\n keywordSuggestions?: ISearchKeywordViewProps,\n isLoadingAutoSuggest?: boolean,\n isLoadingNode?: React.ReactNode\n): JSX.Element => {\n return keywordSuggestions ? (\n \n {renderKeywordSuggestionsTitle(keywordsHeading)}\n \n {isLoadingAutoSuggest && isLoadingNode}\n {!isLoadingAutoSuggest &&\n keywordSuggestions.text.map(text => {\n return text;\n })}\n \n \n ) : (\n \n {renderKeywordSuggestionsTitle(keywordsHeading)}\n \n
  • {noResultText}
  • \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 { IImageData, Image } from '@msdyn365-commerce/core';\nimport { ISearchData, ISearchProductViewProps } from '@msdyn365-commerce-modules/search';\nimport { INodeProps, Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\n\n/**\n * Render Products Suggestion result heading.\n * @param productSuggestionsHeading -The products suggestion result heading.\n * @returns The JSX Element.\n */\nconst renderProductSuggestionsTitle = (productSuggestionsHeading: string): JSX.Element => {\n const productAutoSuggestionHeading = productSuggestionsHeading ? productSuggestionsHeading : 'Products';\n\n return
    {productAutoSuggestionHeading}
    ;\n};\n\n/**\n * Render Products Suggestion result heading.\n * @param props -The props.\n * @returns The JSX Element.\n */\nconst renderProductNotFoundResultsImage = (props: ISearchProps): JSX.Element | null => {\n const noSearchResultImage: IImageData | undefined = props.config.noSearchResultImage;\n if (!noSearchResultImage || !noSearchResultImage.src) {\n return null;\n }\n return (\n \n );\n};\n\n/**\n * Render Products No result section.\n * @param props -The props.\n * @returns The JSX Element.\n */\nconst renderProductNotFoundResults = (props: ISearchProps): JSX.Element => {\n return (\n \n
    {renderProductNotFoundResultsImage(props)}
    \n
    {props.resources.noResultContentHeadingText}
    \n
    \n {props.resources.noResultContentParagraphText}\n
    \n
    \n );\n};\n\n/**\n * Render Product suggestion result.\n * @param productSuggest -The product suggest Node props.\n * @param ulProduct -The List Node props.\n * @param props -The props.\n * @param productSuggestions -The Product suggestion result.\n * @param isLoadingAutoSuggest - The autosuggestion loading flag.\n * @param isLoadingNode - The autosuggestion loading node.\n * @returns The JSX Element.\n */\nexport const ProductSuggestionsComponent = (\n productSuggest: INodeProps,\n ulProduct: INodeProps,\n props: ISearchProps,\n productSuggestions?: ISearchProductViewProps,\n isLoadingAutoSuggest?: boolean,\n isLoadingNode?: React.ReactNode\n): JSX.Element => {\n const liProduct: INodeProps = {\n tag: 'li',\n className: 'msc-no-result-content'\n };\n return productSuggestions ? (\n \n {renderProductSuggestionsTitle(props.resources.productSuggestionHeading)}\n \n {isLoadingAutoSuggest && isLoadingNode}\n {!isLoadingAutoSuggest &&\n productSuggestions.items.map((item, index) => {\n return (\n \n \n {item.thumbnail}\n {item.text}\n {item.price}\n \n \n );\n })}\n \n \n ) : (\n \n {renderProductSuggestionsTitle(props.resources.productSuggestionHeading)}\n \n {renderProductNotFoundResults(props)}\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 { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { ISearchData, ISearchFormViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search';\nimport { Button, format, isMobile, Module, Node, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport React, { useCallback, useEffect, useState } from 'react';\n\nimport { ISearchProps } from '../definition-extensions/search.ext.props.autogenerated';\nimport { CategorySuggestionsComponent } from './components/search.categorysuggest';\nimport { FormComponent } from './components/search.form';\nimport { KeywordSuggestionsComponent } from './components/search.keywordsuggest';\nimport { ProductSuggestionsComponent } from './components/search.productsuggest';\n\n/**\n * Render Title for AutoSuggest.\n * @param searchSuggestionHeading -The heading resource string.\n * @param searchText -The search string.\n * @returns -The JSX Element.\n */\nconst renderTitle = (searchSuggestionHeading: string, searchText: string): JSX.Element => {\n const searchTextString = '\"'.concat(searchText.concat('\"'));\n const searchAutoSuggestionHeading = searchSuggestionHeading\n ? format(searchSuggestionHeading, searchTextString)\n : `Search for ${searchTextString}`;\n\n return {searchAutoSuggestionHeading};\n};\n\n/**\n * Search View.\n * @param props - The view props.\n * @returns The JSX Element.\n */\nconst SearchView: React.FC> = (\n props: ISearchViewProps & ISearchProps\n): JSX.Element => {\n const {\n Search,\n AutoSuggestAriaLabel,\n AutoSuggestAriaLabelText,\n searchText,\n AutoSuggest,\n KeywordSuggest,\n ProductSuggest,\n UlKeyword,\n UlProduct,\n form,\n autosuggestKeyword,\n autosuggestProduct,\n SearchForm,\n FormWrapper,\n label,\n context,\n isLoadingAutoSuggest,\n isLoadingNode,\n callbacks: { handleCancelSearchFocused }\n } = props;\n\n const { searchSuggestionHeading, categorySuggestionHeading, keywordsHeading, noResultText, clearSearchButtonText } = props.resources;\n\n const [searchTextString, setSearchTextString] = useState();\n const [isMobilePort, setIsMobile] = useState(false);\n\n useEffect(() => {\n setSearchTextString(searchText);\n }, [searchText]);\n\n /**\n * ClearSearch callback method to clear search string.\n */\n const clearSearch = (): void => {\n setSearchTextString('');\n\n const propsForm = props.form as ISearchFormViewProps;\n const propsFormInput = propsForm.input as React.DetailedHTMLProps, HTMLInputElement>;\n const propsFormInputCurrent = (propsFormInput.ref as React.RefObject).current;\n\n if (propsFormInputCurrent) {\n propsFormInputCurrent.value = '';\n }\n\n propsFormInput.value = '';\n props.searchText = '';\n props.FormWrapper.action = '';\n };\n\n const isMobileViewport = useCallback(() => {\n const isMobileView = isMobile({ variant: VariantType.Browser, context: context.request }) === 'xs';\n setIsMobile(isMobileView);\n }, [context]);\n\n useEffect(() => {\n window.addEventListener('resize', isMobileViewport);\n isMobileViewport();\n }, [isMobileViewport]);\n\n const viewport = isMobile({ variant: VariantType.Browser, context: context.request });\n\n const isMobileView = viewport === 'sm' || viewport === 'xs';\n\n AutoSuggest.className = !StringExtensions.isNullOrEmpty(searchTextString)\n ? `${AutoSuggest.className} show`\n : `${AutoSuggest.className} hide`;\n const isSearchText: boolean = !StringExtensions.isNullOrEmpty(searchTextString);\n\n return (\n \n {label}\n {FormComponent(\n form as ISearchFormViewProps,\n SearchForm,\n FormWrapper,\n isMobilePort,\n clearSearchButtonText,\n props,\n isSearchText,\n clearSearch\n )}\n {!isMobileView && (\n \n {!StringExtensions.isNullOrEmpty(searchTextString) ? (\n {AutoSuggestAriaLabelText}\n ) : (\n ''\n )}\n {!StringExtensions.isNullOrEmpty(searchTextString) ? (\n <>\n \n \n {renderTitle(searchSuggestionHeading, searchText)}\n \n \n \n {CategorySuggestionsComponent(\n categorySuggestionHeading,\n noResultText,\n props,\n isLoadingAutoSuggest,\n isLoadingNode\n )}\n {KeywordSuggestionsComponent(\n KeywordSuggest,\n UlKeyword,\n keywordsHeading,\n noResultText,\n autosuggestKeyword,\n isLoadingAutoSuggest,\n isLoadingNode\n )}\n \n {ProductSuggestionsComponent(\n ProductSuggest,\n UlProduct,\n props,\n autosuggestProduct,\n isLoadingAutoSuggest,\n isLoadingNode\n )}\n \n \n ) : null}\n \n )}\n {isMobileView && props.isSearchFormExpanded && (\n \n {!StringExtensions.isNullOrEmpty(searchTextString) ? (\n {AutoSuggestAriaLabelText}\n ) : (\n ''\n )}\n {!StringExtensions.isNullOrEmpty(searchTextString) ? (\n <>\n \n {(form as ISearchFormViewProps).cancelBtn}\n {renderTitle(searchSuggestionHeading, searchText)}\n \n \n \n {CategorySuggestionsComponent(\n categorySuggestionHeading,\n noResultText,\n props,\n isLoadingAutoSuggest,\n isLoadingNode\n )}\n {KeywordSuggestionsComponent(\n KeywordSuggest,\n UlKeyword,\n keywordsHeading,\n noResultText,\n autosuggestKeyword,\n isLoadingAutoSuggest,\n isLoadingNode\n )}\n \n {ProductSuggestionsComponent(\n ProductSuggest,\n UlProduct,\n props,\n autosuggestProduct,\n isLoadingAutoSuggest,\n isLoadingNode\n )}\n \n \n ) : null}\n \n )}\n \n );\n};\nexport default SearchView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, getTelemetryObject, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n ISignInItem,\n ISignInLoading,\n ISignInLocalAccount,\n ISignInSocialAccount,\n ISignInSocialItem,\n ISignInB2BAccount,\n ISignInB2BItem,\n ISignInViewProps,\n ISignInButton\n} from '@msdyn365-commerce-modules/account-management';\n\nimport { ISignInProps, ISignInResources } from '../definition-extensions/sign-in.ext.props.autogenerated';\n\nconst LocalAccount: React.FC = ({ localAccount, items, forgetPassword, disclaimer, error, signInButton }) => {\n return (\n \n {items &&\n items.map((item: ISignInItem) => {\n return (\n \n {item.label}\n {item.error}\n {item.input}\n \n );\n })}\n {forgetPassword}\n {disclaimer}\n {error}\n {signInButton}\n \n );\n};\n\nconst SocialAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInSocialItem) => {\n return (\n \n {item.image}\n {item.text}\n \n );\n })}\n \n );\n};\n\nconst B2BAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInB2BItem) => {\n return (\n item && (\n \n {item.text}\n \n )\n );\n })}\n \n );\n};\n\nconst SignInLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\nconst SignInButton: React.FC = ({ id, className, text, ariaLabel, telemetryContent, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n {text}\n \n );\n};\n\nconst signUpButton: React.FC> = (\n props: ISignInViewProps & ISignInProps\n) => {\n const {\n resources,\n telemetry,\n friendlyName,\n context: {\n request: { telemetryPageName }\n }\n } = props;\n const telemetryContent = getTelemetryObject(telemetryPageName!, friendlyName, telemetry);\n const attributes = {\n href: '#'\n };\n\n return (\n \n );\n};\n\nconst SignInView: React.FC> = props => {\n const {\n signIn,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n signInSection,\n signUpSection,\n signInSectionHeading,\n signInLocalAccount,\n signInSocialAccount,\n signUpSectionHeading,\n signInB2BAccount,\n signUpDescription\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n \n {signInSectionHeading}\n {LocalAccount(signInLocalAccount)}\n {SocialAccount(signInSocialAccount)}\n \n \n {signUpSectionHeading}\n {signUpDescription}\n {signUpButton(props)}\n \n
    \n
    \n or\n
    \n {B2BAccount(signInB2BAccount)}\n
    \n
    \n
    \n );\n};\n\nexport default SignInView;\n"],"names":["props","contentBlockContainer","imageContainer","detailsContainer","title","text","links","image","contentBlockAnchorTag","imageLink","imageAriaLabel","additionalParagraph","config","contentBlockAdditionalText","React","Node","className","Msdyn365","Module","Object","assign","href","OrderHistoryOrderInfomation","_ref","orderInformationProps","receiptId","channelName","createdDate","count","amount","channelReferenceId","OrderHistoryGroupDelivery","_ref2","deliveryProps","heading","processing","address","trackingInfo","OrderHistoryGroup","_ref3","groupProps","salesLinesProps","salesLines","map","salesLine","key","data","LineId","OrderHistoryGroups","_ref4","groupsProps","groups","group","index","OrderHistoryHeader","_ref5","headerProps","extraActions","OrderHistorySalesOder","_ref6","salesOrderProps","orderInfomation","orderDetailsLink","OrderHistoryList","_ref7","listProps","salesOrders","salesOrder","_ref8","orderHistoryProps","header","alert","loading","emptyMessage","backToShoppingLink","list","moreButton","histogramItem","buttonProps","starLabel","bar","percentage","histogramItems","histogramProps","moduleProps","item","buildReviewCard","cardProps","rating","name","date","cardBodyProps","reviewProps","reviewTitle","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","ratingHelpfulLabel","like","dislike","edit","report","createReviewModal","modal","modalHeader","modalBody","form","inputRow","ratingLabel","titleLabel","titleInput","textLabel","textInput","privacyPolicyUrl","error","modalFooter","submitButton","cancelButton","createReportModal","state","reported","headerSubmitted","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton","averageRating","filterByDropdown","noReviewsMessage","noReviewsWithFilterMessage","pageControls","refineReviewsProps","reportReviewModal","reviewsListProps","reviewCards","reviewCount","reviewModal","sortByDropdown","userReview","length","isFilterApplied","review","AccountProfileEdit","constructor","super","moduleClassName","handleHeadingChange","event","this","target","value","onTextBoxChange","id","toLowerCase","givenName","surname","emailRegex","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","setTimeout","clearInterval","window","isInitialized","resources","invalidEmailAddressError","obj","PRE","_htmlDecode","ID","email","PAT","PAT_DESC","message","required_field","requiredFieldMissingError","verifying_blurb","loadingMessage","EmailRegex","defaultRegex","source","telemetryContent","getTelemetryObject","context","request","telemetryPageName","friendlyName","telemetry","componentDidMount","componentDidUpdate","shouldComponentUpdate","nextProps","nextState","render","viewProps","_objectSpread","viewState","isShowLoading","accountProfileEdit","classnames","tag","Modal","isOpen","ModalBody","icon","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","defaultAADConainer","style","display","aadConainer","editProps","onEdit","requestContext","accountProfileEditLocalAccount","_renderLocalAccount","renderView","str","e","document","createElement","innerHTML","childNodes","nodeValue","localAccount","items","_renderInput","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","errorMessage","AccountProfileEditErrorComponent","requiredFieldMissingSummaryError","fieldIncorrectError","buttonsWrapper","buttons","AccountProfileEditButtonComponent","ariaLabel","saveButtonAriaLabel","saveButtonText","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","showEmail","push","emailAddressLabelText","undefined","type","labelText","maxLength","pattern","wrapper","label","AccountProfileEditLabelComponent","forId","input","AccountProfileEditInputComponent","onChange","__decorate","observable","observer","AccountProfileEditItem","AccountProfileEditLoading","button","LocalAccount","disabled","onClick","payLoad","getPayloadObject","attributes","getTelemetryAttributes","Button","errorClassName","role","GetMaxLength","parsedMaxLength","Number","parseInt","isNaN","htmlFor","PasswordReset","newPasswordRegex","reenterPasswordRegex","PasswordRegex","passwordReset","PasswordResetLoadingIconComponent","PasswordResetLoadingMessageComponent","passwordResetLocalAccount","newPasswordLabelText","confirmPasswordLabelText","PasswordResetErrorComponent","passwordEntryMismatchError","PasswordResetButtonComponent","PasswordResetLabelComponent","PasswordResetInputComponent","PasswordResetItem","PasswordResetLoading","PvaChatConnector","isOboRequest","url","botFrameworkCDNURL","app","pvaChatConnectorBotFrameworkCDNURL","script","src","async","crossOrigin","body","appendChild","CartAmountTrigger","ProactiveChatTrigger","totalInCart","min","proactiveOnCartAmountMin","max","proactiveOnCartAmountMax","debug","cart","_getCart","isEmpty","TotalAmount","retVal","getContextProvider","eCommerceCustIsProactiveChat","eCommerceCustProactiveType","eCommerceCustProactiveShoppingCartAmount","getMessage","proactiveOnCartAmountMessage","proactiveDefaultMessage","getCartState","actionContext","CartNumberOfItemsTrigger","numberOfItems","proactiveOnCartNoOfItemsMin","proactiveOnCartNoOfItemsMax","TotalItems","eCommerceCustProactiveShoppingCartNumberOfItems","proactiveOnCartNoOfItemsMessage","CartSpecificProductTrigger","product","isValid","CartLines","_cart$cart$CartLines","i","_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","dateParts","split","FromSpecificPageTrigger","proactiveOnFromSpecificPageList","fromSpecificPageTrimmed","trim","referrer","indexOf","FromSpecificPage","eCommerceCustProactiveCameFromPage","proactiveOnFromSpecificPageMessage","PageVisitTrigger","visits","cookieName","cookies","expdate","setTime","isConsentGiven","setConsentCookie","_updateVisitCounter","proactiveOnPageVisitNumber","clear","set","domain","location","hostname","path","pathname","expires","PageVisits","eCommerceCustProactiveNumberOfVisits","proactiveOnPageVisitMessage","get","SpecificCountryRegionTrigger","customerCountryCode","suggestedMarket","proactiveOnSpecificLocation","eCommerceCustProactiveCountryCode","SpecificLocation","proactiveOnSpecificCountryRegionMessage","SpecificPageTrigger","proactiveOnSpecificPageList","specificPageTrimmed","SpecificPage","proactiveOnSpecificPageMessage","WaitOnTimeTrigger","proactiveOnWaitTimeSeconds","waitTimeInMilliseconds","triggerTime","WaitOnTime","eCommerceCustProactiveTimeOnPage","proactiveOnWaitTimeMessage","ProactiveTriggers","user","userId","uuidv4","_getContext","enabled","timeout","_proactiveCheck","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","validate","getChatWrapperStyle","position","top","right","bottom","left","zIndex","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","arr","join","CommerceChatStore","setNewMessage","setNewMessageAction","powervaDirectlineTokenURL","botID","tenantID","fetch","method","then","r","json","token","pvaChatConnectorPowervaDirectlineTokenURL","pvaChatConnectorBotID","pvaChatConnectorTenantID","dispatch","next","action","payload","language","navigator","_activity$from","activity","from","triggerQuery","ReactWebChat","WebChat","setUserId","useState","useMemo","ctx","toString","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","isValidToken","alt","fontWeight","fontSize","chatButtonHeader","chatButtonText","flexGrow","handleMinimizeButtonClick","handleCloseButtonClick","version","viewBox","xmlSpace","d","fill","ChatCore","unableToLoadChatMessage","p","interval","Chat","CheckInConfirmationComponent","confirmationText","shouldShowQrCode","channelReferenceIdLabel","QRCode","size","CheckInErrorComponent","CheckInForPickup","checkInForOrderPickup","channelId","query","packingSlipId","additionalInformationToSubmit","additionalInformationList","additionalInformationKeyValuePair","_additionalInformatio","formKey","resourceId","extensionPropertyList","ObjectExtensions","isNullOrUndefined","additionalInformation","Key","Value","StringValue","SalesOrdersDataActions","callerContext","queryResultSettings","setState","headerErrorMessage","genericErrorMessage","isCheckedIn","Promise","resolve","_this$props$context$r2","_this$props$context$r3","_this$props$context$r4","params","isEditor","isPreview","requiredParameterMissingErrorMessage","additionalInformationKeys","ArrayExtensions","hasElements","_this$props$context$r5","isHeaderError","headerError","confirmationComponent","defaultConfirmationText","confirmationIdLabel","additionalInformationValues","additionalInformationHeading","_props$config$additio","FormBuilder","additionalInformationDefaultHeading","submitButtonText","additionalInformationSubmitButtonText","keys","requiredValueMissingErrorMessage","onSubmit","OrderInfomation","salesId","channelAddress","SalesLine","salesLineProps","buyAgainButton","errors","GroupDelivery","Group","delivery","isCashAndCarryTransaction","deliveryType","shipment","salesStatus","showTimeslot","pickupProps","pickupDateTimeslot","Groups","OrderSummary","orderSummaryProps","subtotal","shipping","tax","totalAmount","earnedPoints","Payment","paymentMethodsProps","methods","Help","helpProps","needHelpLabel","helpLineNumberLabel","contactNumber","_ref9","viewModes","tableViewActions","table","placedBy","orderSummary","payment","help","orderCountLabel","expandProductsButton","Iframe","iframeRef","destinationUrl","srcURL","URL","protocol","toLocaleLowerCase","iframeClassName","Heading","_createHeading","IframeContainer","IFrame","_createIframe","cookieConsentAccepted","_renderAlert","cookieConsentRequiredMessage","targetURL","iframeAriaLabel","ref","IFrameView","labelGroup","renderErrorLabel","responseErrorMessage","errorMessageClassName","renderRegisteredUserMessage","signInUrl","signInLinkClassName","registeredUserClassName","orderLookupRegisteredUserText","orderLookupViewAccountText","orderLookupSignInLinkText","infoMessage","signInText","renderFieldErrors","orderLookupFieldValidationErrorMessage","RenderOrderLookupAdditionalFieldInput","_getOrderLookupAdditionalFields","additionalFieldLabel","additionalFieldError","additionalFieldInput","additionalFieldLabelClassName","inputType","isValidAdditionalFieldName","additionalFieldValidationMessage","RenderOrderLookupFormFields","_getOrderLookupFields","orderLookupLabelClassName","orderLookupLabel","inputReference","fieldErrorClassName","isInputTypeError","renderAlert","isValidInputField","OrderLookupSearchValues","OrderLookup","isEmailValue","isOrderNumberValue","orderLookupExtensibleEnum","handleTextChange","handleParagraphChange","paragraph","handleSubmit","additionalProperties","orderNumber","orderLookupValue","orderStatusLookUpParametersType","orderLookupName","_validateOrderLookupForm","_Msdyn365$getUrlSync","actionContextValue","orderDetailsPath","origin","redirectUrl","searchParameters","searchParams","fieldName","StringExtensions","isNullOrWhitespace","replace","fieldValue","_this$orderNumberInpu","_this$emailInputRef$c","orderNumberInputRef","current","emailInputRef","additionalPropertyStates","isAdditionalFieldError","isKeyExistInAdditionalFieldArray","labelName","isValidFieldName","additionalfieldErrorMessage","ordernumber","isOrdNumberError","isReqError","isEmailError","isValidEmailError","isValidLookupField","isValidAdditionalLookupField","isDisabled","orderLookupEmailValidationErrorMessage","orderLookupRequiredTextErrorMessage","requiredErrorMessage","isNullOrEmpty","emailValidationErrorMessage","isRequireError","isEmailValidError","isValidEmailInput","_renderOrderNumberAlert","orderLookupOrderNumberValidationErrorMessage","_renderOrderLookupInput","orderLookupEmailLabel","orderLookupEmailAriaLabel","_additionalFieldValidation","isFieldValid","RegExp","test","isDisable","isEmailValid","orderLookupSearchAdditionalFields","_item$labelName","_item$ariaLabel","_item$validationMessa","validationMessage","_heading$tag","_context$request$user","orderLookupDefaultHeadingText","orderLookupButtonLabel","orderLookupFormAriaLabel","orderLookupOrderNumberLabel","orderLookupOrderNumberAriaLabel","orderLookupSubmitAriaLabel","headingText","headingTag","orderLookupContainerClassName","orderLookupFormClassName","orderLookupAdditionalFiledContainerClassName","orderLookupFormFieldsClassName","orderNumberLabelClassName","orderNumberInputErrorClassName","submitButtonClassName","signinLinkClassName","orderLookupHeading","orderLookup","orderLookupContainer","orderLookupAdditionalFieldContainer","_createParagraph","renderOrderLookupInputField","orderLookupForm","autoComplete","orderNumberInput","submitButtonLabelText","fieldErrorMessage","registeredUserMessage","submit","_renderAdditionalFields","_getExtensibleEnumera","_getExtensibleEnumera2","isOrderLookupAdditionalFieldValid","isOrderLookupFieldValid","getExtensibleEnumerations","StoreOperationsDataActions","find","TypeName","ExtensibleEnumerations","orderLookupAdditionalParameter","validateOrderLookupField","orderStatusLookUpParameter","isValidField","validateOrderLookupAdditionalField","orderStatusLookUpAdditionalParameters","isValidAdditionalField","_item$fieldKey","fieldKey","validateAdditionalFieldWithProxy","some","setLookupFieldState","additionalFieldsInput","OrderLookupViewComponent","_orderLookupForm$clas","_submitButton$classNa","TileList","_telemetryContent","_this$props$config$cl","propsCarousel","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","vertical","singleSlideCarouselComponentProps","tileItemContainer","tileListContainer","tileListHeading","tiles","slots","content","tileListView","tileItem","keyIndex","_props$data$operation","b2bRequestsStatus","continueShoppingButtonTitle","operationRequests","result","headingForEmptyRequestStatus","textForEmptyRequestStatus","getUrlSync","SummaryForm","formProps","addPaymentButton","appliedLine","bottomBorder","paymentAmountInput","EditForm","inputLabel","inputAmount","customerName","customerSince","accountCredit","accountDetails","checkoutCustomerAccount","checkoutErrorRef","summaryView","editView","moduleState","isReady","renderCategorySuggestionsTitle","inCategoriesHeading","categoryAutoSuggestionHeading","CategorySuggestionsComponent","noResultText","isLoadingAutoSuggest","isLoadingNode","autosuggestCategory","CategorySuggest","UlCategory","MobileAutoSuggestEmptyComponent","noSearchResultImage","Image","altText","gridSettings","imageSettings","lazyload","viewports","xs","w","h","q","renderProductNotFoundResultsImage","emptyMobileSearchTextHeading","emptyMobileSearchText","FormComponent","searchForm","formWrapper","clearSearchButtonText","isSearchText","clearSearch","cancelButtonNode","cancelBtnAriaLabel","cancelBtn","renderClearButton","submitBtn","renderKeywordSuggestionsTitle","keywordsHeading","KeywordSuggestionsComponent","keywordSuggest","ulKeyword","keywordSuggestions","renderProductSuggestionsTitle","productSuggestionsHeading","productAutoSuggestionHeading","renderProductNotFoundResults","noResultContentHeadingText","noResultContentParagraphText","ProductSuggestionsComponent","productSuggest","ulProduct","productSuggestions","productSuggestionHeading","_item$id","LiProduct","AProduct","thumbnail","price","renderTitle","searchSuggestionHeading","searchText","searchTextString","concat","searchAutoSuggestionHeading","format","Search","AutoSuggestAriaLabel","AutoSuggestAriaLabelText","AutoSuggest","KeywordSuggest","ProductSuggest","UlKeyword","UlProduct","autosuggestKeyword","autosuggestProduct","SearchForm","FormWrapper","callbacks","handleCancelSearchFocused","categorySuggestionHeading","setSearchTextString","isMobilePort","setIsMobile","propsFormInput","propsFormInputCurrent","isMobileViewport","useCallback","isMobileView","addEventListener","viewport","onBlur","isSearchFormExpanded","SignInLoading","SignInButton","signIn","signInSection","signUpSection","signInSectionHeading","signInLocalAccount","signInSocialAccount","signUpSectionHeading","signInB2BAccount","signUpDescription","forgetPassword","disclaimer","signInButton","socialAccounts","SocialAccount","b2bSignUpButtonAriaLabel","b2bSignUpButtonText","signUpButton","B2BAccount"],"sourceRoot":""}