{"version":3,"sources":["webpack:///src/modules/invoices-list/index.ts?0857","webpack:///./src/modules/contracts-account-page/contracts-account-page.view.tsx?650e","webpack:///src/modules/password-reset-verification/components/password-reset-verification-loading-message.tsx?97ae","webpack:///src/modules/country-picker/country-picker.tsx?051f","webpack:///src/modules/invoices-list/components/request-invoice-button.tsx?b5d9","webpack:///src/modules/breadcrumb/breadcrumb.view.tsx?58b4","webpack:///./src/themes/gardner-theme-b2c/views/checkout-delivery-options.view.tsx?7066","webpack:///src/modules/image-list/image-list.tsx?18cb","webpack:///src/modules/fabrikam/views/buybox.view.tsx?68a7","webpack:///./src/modules/contracts-account-page/components/contracts-account-page-links.tsx?67c8","webpack:///./src/modules/contracts-account-page/contracts-account-page.tsx?5b4a","webpack:///./src/themes/gardner-theme/views/checkout-delivery-options.view.tsx?2dc8","webpack:///src/modules/invoice-details/invoice-details.view.tsx?5ebe","webpack:///src/modules/b2b-requests-tile/components/account-b2b-requests-tile-links.tsx?4f55","webpack:///src/modules/b2b-requests-tile/b2b-requests-tile.tsx?ce42","webpack:///src/modules/image-list/image-list.view.tsx?cab9","webpack:///src/modules/password-reset-verification/components/password-reset-verification-button.tsx?d3bb","webpack:///src/modules/invoices-list/components/pay-invoice-component.tsx?41f4","webpack:///src/modules/breadcrumb/components/link.tsx?b7b8","webpack:///src/modules/breadcrumb/components/separator.tsx?7c35","webpack:///src/modules/breadcrumb/breadcrumb.tsx?3387","webpack:///src/index.ts?c6ae","webpack:///src/modules/invoices-list/components/invoices-table/invoices-table-component.tsx?9105","webpack:///src/modules/subscribe/subscribe.view.tsx?c40a","webpack:///src/modules/password-reset-verification/components/password-reset-verification-error.tsx?5cfd","webpack:///src/modules/password-reset-verification/components/password-reset-verification-success.tsx?8c35","webpack:///./src/themes/gardner-theme-b2c/views/b2b-requests-status.view.tsx?1104","webpack:///src/modules/invoices-list/invoices-list.view.tsx?0243","webpack:///src/modules/invoices-list/components/make-payment-component.tsx?c79a","webpack:///src/modules/invoices-list/components/invoice-error-component.tsx?2e12","webpack:///src/modules/password-reset-verification/components/password-reset-verification-label.tsx?70a3","webpack:///src/modules/subscribe/subscribe.tsx?0278","webpack:///src/modules/invoices-list/helpers/pay-invoices.ts?f98a","webpack:///src/modules/password-reset-verification/components/password-reset-verification-loading-icon.tsx?7944","webpack:///src/modules/invoice-details/components/invoice-details-header.tsx?d1cb","webpack:///src/modules/invoice-details/components/invoice-details-payment-summary.tsx?a7ab","webpack:///src/modules/invoice-details/components/invoice-details-products.tsx?d808","webpack:///src/modules/invoice-details/helpers/invoice-data.ts?1fa7","webpack:///src/modules/invoice-details/invoice-details.tsx?b5c9","webpack:///src/modules/invoices-list/components/invoices-table/components/invoices-table-header-component.tsx?6874","webpack:///src/modules/password-reset-verification/password-reset-verification.tsx?9795","webpack:///src/modules/country-picker/country-picker.view.tsx?825b","webpack:///src/modules/invoices-list/components/invoices-table/components/invoices-table-row-component.tsx?ba14","webpack:///src/modules/invoices-list/helpers/invoice-data.ts?6271","webpack:///src/modules/invoices-list/helpers/invoice-status.ts?442a","webpack:///src/modules/invoices-list/helpers/index.ts?7d24","webpack:///src/modules/b2b-requests-tile/b2b-requests-tile.view.tsx?949e","webpack:///src/modules/invoices-list/components/invoices-filter-component.tsx?759c","webpack:///src/modules/password-reset-verification/components/password-reset-verification-input.tsx?6596","webpack:///./src/themes/gardner-theme/views/b2b-requests-status.view.tsx?1807","webpack:///src/modules/password-reset-verification/password-reset-verification.view.tsx?9e1f","webpack:///src/modules/invoices-list/components/request-invoice-modal.tsx?f430","webpack:///src/modules/invoices-list/invoices-list.tsx?ba10"],"names":["props","contractsHeading","contractsWrapper","contractsTable","contractsLinks","React","Module","Object","assign","PasswordResetVerificationLoadingMessage","_ref","className","message","CountryPicker","constructor","super","_telemetryContent","getTelemetryObject","this","context","request","telemetryPageName","friendlyName","telemetry","_preferredSiteStorageKey","_cookieExpirationTime","closeModal","setState","isModalOpen","_handleStayOnSiteButtonClick","_this$props$context$r","currentBaseUrl","marketSettings","urlToStore","_appendProtocolToUrl","_writeToCookie","_handleClick","storageKey","storageValue","cookieOptions","secure","sameSite","maxAge","cookies","set","baseUrl","includes","isCookieValueSet","get","value","state","undefined","render","_heading$tag","heading","subheading","countryList","actionLink","config","isConsentGiven","countryPickerHeading","MsDyn365","tag","text","editProps","onEdit","handleTextChange","requestContext","countryPickerSubHeading","handleParagraphChange","countryPickerActionLink","createLink","currentSiteButton","Button","onClick","tabIndex","resources","stayOnCurrentSiteButtonText","viewprops","_objectSpread","modalContainer","moduleProps","Modal","isOpen","toggle","modalTransition","timeout","shouldUpdateFocusToFirstElement","modalHeaderContainer","ModalHeader","closeButtonTabIndex","modalFooterContainer","ModalFooter","modalBodyContainer","ModalBody","link","renderCountryList","stayOnCurrentSiteButton","renderView","event","target","handleLinkTextChange","_this$props$config$ac","linkText","StringExtensions","isNullOrEmpty","linkUrl","destinationUrl","_link$linkText","payLoad","getPayloadObject","attributes","getTelemetryAttributes","editableLink","ariaLabel","openInNewTab","role","additionalProperties","onTelemetryClick","onTextChange","localeItems","map","renderCountry","localeItem","_image$imageSettings","_image$src","localeBaseUrl","matchedCountryItem","find","item","url","imageSize","q","w","h","defaultImageSettings","viewports","xs","lg","xl","lazyload","image","imageProps","gridSettings","imageSettings","key","displayString","href","src","altText","loadFailureBehavior","shouldSkipToMainImage","displaySubString","RequestInvoiceButton","onClicked","requestInvoiceButtonLabel","innerReference","innerRef","BreadCrumbView","root","links","backButton","BreadcrumbContainer","BreadcrumbList","BreadcrumbListItem","separator","Node","index","classnames","length","error","DeliveryOptionList","DeliveryOptionsList","list","deliveryOption","DeliveryOption","code","radioButton","description","DeliveryOptionSelected","_ref2","price","CheckoutDeliveryOptionsView","CheckoutDeliveryOptions","viewState","deliveryOptions","deliveryOptionSelected","alert","waiting","saveButton","editButton","cancelButton","isLoading","isError","isShowList","isShowSelected","isShowSaveButton","isShowEditButton","isShowCancelButton","ImageList","images","paragraph","_renderImageListItems","imageList","disableLazyLoad","imageLink","imageLinkText","imageLinkAriaLabel","Msdyn365","linkAltText","linkAriaLabel","imageListTitle","viewProps","imageListHeading","imageListContainer","imageListItem","imageListItemAnchorTag","imageListItems","_renderTextBlock","textBlocks","_renderSocialShare","socialShare","_renderCartAndActions","addToCart","addToOrderTemplate","addToWishlist","errorBlock","button","_renderConfigure","configure","ContainerProps","dropdowns","_renderConfigureDropdown","dropdown","LabelContainerProps","errors","select","_renderFindInStore","findInStore","storeSelector","modal","productPickupOptionList","onChangeHandler","callbacks","newValue","updateQuantity","_renderQuantity","quantityComponent","extentionResources","quantityLimitsMessages","max","telemetryContent","quantity","IncrementalQuantity","id","currentCount","onChange","inputQuantityAriaLabel","decrementButtonAriaLabel","incrementButtonAriaLabel","minQuantityText","maxQuantityText","_renderKeyInPrice","keyInPrice","input","_renderShopSimilarItem","shopSimilarItem","BuyboxView","ModuleProps","MediaGalleryContainerProps","ProductInfoContainerProps","title","rating","inventoryLabel","shopSimilarLook","shopSimilarDescription","unitOfMeasure","mediaGallery","bulkPurchaseLink","slots","_mapEditableLinks","linkdata","editableLinks","forEach","contentAction","etext","push","ContractsAccountPageLinks","ContractsAccountPage","_handleHeadingChange","_handleLinkTextChange","linkIndex","_renderHeading","bind","_getContractsRowData","_renderTable","_generateRow","data","contractList","result","manufacturerCodeLabel","contractNumberLabel","laborRateLabel","contractDescLabel","noContractsFoundText","headingRow","contractsRowData","i","_renderMfrCodeHeading","contract","ContractCode","_generateEmptyRow","colNum","manufacturerCodeShortFormLabel","contractData","ManufacturerCode","Description","ContractLaborRate","ContractNotes","toFixed","_renderLink","LinksComponent","classNames","dlvDescription","_get","window","sessionStorage","setItem","InvoiceDetailsView","header","products","paymentDetails","payInvoiceError","B2bRequestsTileLinks","ArrayExtensions","hasElements","B2bRequestsTile","handleHeadingChange","isChannelTypeB2B","actionContext","b2bRequestsTile","imageListView","indexKey","PasswordResetVerificationButton","disabled","PayInvoiceComponentActions","async","_event","setDisabled","payInvoices","invoice","errorState","onError","reference","onClickHandler","PayInvoiceComponent","msdyn365Commerce","createComponent","component","useState","createElement","payInvoiceButtonAriaLabel","canBePaid","payInvoiceButtonText","Link","noclick","attribute","itemProp","content","Separator","Breadcrumb","_pageType","urlTokens","pageType","_getRootLink","_getCustomBreadcrumbLinks","itemPosition","keyIndex","toString","_getCategoryHierarchy","categoryHierarchy","_getFriendlyName","locale","NameTranslations","Url","nameTranslations","_nameTranslation","nameTranslation","Language","toLowerCase","Text","_getPDPLinks","categoryPaths","product","requestUrl","Name","hideProductName","_goBack","history","back","_getPDPBackButton","query","isBrowser","document","referrer","backToResultsText","rootLink","breadcrumbLinks","backButtonComponent","breaCrumbType","app","breadcrumbType","linkSeparator","breadcrumbViewProps","isMobileView","viewport","_window","device","Type","innerWidth","sm","md","getViewport","onSelectAllHandler","isSelected","invoices","InvoicesTableComponent","isMobile","setIsMobile","updateViewport","addEventListener","rowClassName","headerClassName","InvoicesTableHeaderComponent","typeName","isSelectedAll","all","isAdmin","customer","IsB2bAdmin","onSelectAll","InvoicesTableRowComponent","invoiceReferences","invoiceButtonReferences","Number","payInvoiceReferences","payInvoiceButtonReferences","onRequestInvoice","onSubmit","preventDefault","subscribeView","_subscribeForm$classN","_emailInput$className","_submitButton$classNa","subscribe","subscribeContainer","subscribeForm","emailInput","submitButton","submitButtonLabelText","PasswordResetVerificationError","type","errorClassName","PasswordResetVerificationSuccess","successClassName","B2bRequestsStatusView","_props$data$operation","b2bRequestsStatus","table","continueShoppingButtonTitle","operationRequests","headingForEmptyRequestStatus","textForEmptyRequestStatus","getUrlSync","InvoiceListView","filter","invoiceRequestModal","pagination","MakePaymentComponentActions","buttonReferences","MakePaymentComponent","hasInvoices","makePaymentButtonAriaLabel","makePaymentButtonText","InvoiceErrorComponent","messageHeader","errorMessage","otherError","showError","payInvoiceErrorModalOpen","errorDialogHeader","errorDialogBodyErrorTitle","errorDialogBodyErrorDescription","errorDialogFooterGoToCartButtonText","errorDialogFooterCancelButtonText","cartUrl","setPayInvoiceErrorModalClose","errorMessages","Fragment","Alert","color","assertive","PasswordResetVerificationLabel","forId","htmlFor","Subscribe","_emailAddressInputRef","subscribeParagraph","subscribeHeading","handleText","subscribeFormAriaLabel","name","autoComplete","ref","subscribeFormEmailAriaLabel","placeholder","subscribeEmailPlaceholderText","subscribeFormSubmitAriaLabel","subscribeButtonLabel","invoicesToAdd","errorReason","failureReason","cartState","getCartState","addInvoicesToCart","invoiceIds","_result$errorDetails","_result$errorDetails2","status","errorDetails","LocalizedMessage","errorCode","ErrorResourceId","location","PasswordResetVerificationLoadingIcon","InvoiceDetailsHeaderComponent","invoiceDetails","invoiceNumberText","invoiceIdLabel","replace","invoiceOrderItemsText","lines","invoiceOrderItem","invoiceOrderItems","invoiceInfoContainerClassName","orderInfoContainerClassName","orderInfoClassName","orderMainInfoClassName","orderDetailsClassName","actionsClassName","amountSummaryClassName","orderDate","formatShortDate","date","cultureFormatter","formatDate","year","month","day","invoiceDate","dueDate","formatLongDate","dueDateText","invoicePaymentDueDateText","isOnBehalfOfRequest","isOboRequest","invoicePlacedByLabel","customerName","invoiceAmountDueText","amount","amountDue","currencyCode","formatCurrency","formatAmount","InvoiceDetailsPaymentDetailsComponent","invoicePaymentDetails","lineClassName","ObjectExtensions","isNullOrUndefined","totalDiscount","label","invoicePaymentDiscounts","subtotal","invoicePaymentSubtotal","totalCharges","invoicePaymentCharges","totalTax","invoicePaymentTax","totalAmount","invoicePaymentInvoiceTotal","line","InvoiceDetailsProductsComponent","productLineClass","productLineInfoContainerClass","productLineDetailsClass","productLineSmallDetailsClass","Quantity","productUrl","ProductName","ProductId","getProductPageUrlSync","RecordId","_renderProductImage","_context$request$app","cropFocalRegion","fallbackImage","getFallbackImageUrl","ItemId","apiSettings","OmniChannelMedia","Image","primaryImageUrl","fallBackSrc","_renderProductDimensions","isNullOrWhitespace","ColorName","invoiceProductColor","SizeName","invoiceProductSize","StyleName","invoiceProductStyle","Price","invoiceQuantity","NetAmount","InvoiceDetailsModel","Id","InvoiceDate","Date","CustomerName","InvoiceDueDate","AmountBalance","InvoicePaidStatusValue","SalesInvoiceLine","_products$find","PrimaryImageUrl","TotalDiscount","InvoiceSubtotal","TotalCharges","TotalTaxAmount","TotalAmount","CurrencyCode","InvoicePaidStatus","Paid","InvoiceDetails","_onAddToCartFailed","_setPayInvoiceErrorModalClose","_getProducts","ChannelId","invoiceDetailsModel","_renderHeader","_renderProducts","_renderPaymentDetails","_renderInvoiceErrors","_className","channelId","arguments","productInputs","ProductInput","getSimpleProductsAction","newErrorState","errorHost","_this$state$errorStat","payInvoiceErrorDialogHeader","payInvoiceErrorDialogBodyErrorTitle","payInvoiceErrorDialogBodyErrorDescription","payInvoiceErrorDialogFooterGoToCartButtonText","payInvoiceErrorDialogFooterCancelButtonText","switchCheckedState","headerCells","getMobileHeaderCells","invoiceListSelectAllRadioAriaLabelText","checked","invoicesText","invoiceDateMobileText","getDesktopHeaderCells","invoiceDateText","invoiceUsersText","invoiceAmountText","invoiceDueDateText","invoiceStatusText","invoiceActionsText","PasswordResetVerification","moduleClassName","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","setTimeout","clearInterval","isInitialized","getValue","v1Value","v2Value","templateVersion","emailRegex","EmailRegex","defaultRegex","source","componentDidMount","componentDidUpdate","shouldComponentUpdate","nextProps","nextState","isShowLoading","passwordResetVerification","loading","modalBody","icon","PasswordResetVerificationLoadingIconComponent","PasswordResetVerificationLoadingMessageComponent","loadingMessage","defaultAADConainer","style","display","aadConainer","passwordResetVerificationLocalAccount","_renderLocalAccount","obj","ID","PAT","verifying_blurb","localAccount","verificationControlWrapper","items","_renderInput","emailAddressLabelText","verificationCodeLabelText","successMessage","PasswordResetVerificationSuccessComponent","verificationCodeSendSuccess","emailAddressVerifiedSuccess","PasswordResetVerificationErrorComponent","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","invalidEmailError","verificationButtonsWrapper","verificationButtons","PasswordResetVerificationButtonComponent","sendCodeButtonAriaLabel","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","buttonsWrapper","buttons","continueButtonAriaLabel","continueButtonText","cancelButtonAriaLabel","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","labelText","maxLength","pattern","cssClassName","wrapper","PasswordResetVerificationLabelComponent","PasswordResetVerificationInputComponent","__decorate","observable","observer","countryPickerView","country","onRequestSpecificInvoice","requestInvoiceButtonReference","setShowPreviousActions","onClickViewDetails","linkToInvoiceDetails","isShowActions","setShowActions","shouldShowActions","extraActionsPopup","invoiceViewDetailsButtonAriaLabel","invoiceViewDetailsButtonText","invoiceActionsButtonTextAriaLabel","invoiceActionsButtonIsOnBehalfOfTextAriaLabel","showActions","getInvoiceDetailsPageUrlSync","actionsContainerClassName","payInvoiceClassName","invoiceRequestButtonLabel","onSelectLine","rowCells","getMobileRowCells","invoiceRowArialabel","format","invoiceListSelectRadioAriaLabelText","getInvoiceStatusText","getDesktopRowCells","isCurrentUser","AccountNumber","customerAccountNumber","invoiceCurrentUser","InvoiceModel","CustomerAccountNumber","invoiceStatus","None","invoiceStatusNone","Unpaid","invoiceStatusUnpaid","PartiallyPaid","invoiceStatusPartiallyPaid","invoiceStatusPaid","B2bRequestsTileView","InvoicesFilterState","getInvoicesFilterStateResources","filterState","ShowAll","invoicesFilterShowAll","Error","onStateClick","InvoicesFilterComponent","popoverRef","createRef","popoverState","setPopoverState","togglePopover","useCallback","setFilterState","currentState","onFilterStateClick","clickedState","onFilterStateChanged","Popover","placement","EnumExtensions","getEnumValues","renderFilterStateItem","stateStringRepresentation","GetMaxLength","parsedMaxLength","parseInt","isNaN","PasswordResetVerificationInput","PasswordResetVerificationItem","PasswordResetVerificationLoading","_ref3","PasswordResetVerificationView","LocalAccount","onSubmitRequestClick","onClosing","filteredInvoices","onSubmitRequest","checkboxRef","closingFlag","_inputInvoice$current","current","searchInputChangedHandler","setSearchInput","onCancelHandler","renderInvoiceOptions","setSelectedInvoiceIndex","_invoice","_checkboxRef$current$","onInvoiceSelect","onInvoiceSelectHandler","checkboxId","checkboxName","RequestInvoiceModal","email","modalHeaderLabel","sendToEmailLabel","submitRequestLabel","cancelLabel","searchPlaceholderLabel","invoicesFoundString","singleInvoiceFoundString","searchButtonAltText","selectedInvoiceIndex","setFilteredInvoices","searchInput","shouldShowSearchResults","setShouldShowSearchResults","invoiceOptionsData","invoiceOptions","setInvoiceOptions","focusElement","_focusElement$current","focus","searchEntered","searchEnteredHandler","updatedInvoices","toLocaleUpperCase","searchResultString","invoicesFoundReplaceIndex","indexOf","horizontalPosition","verticalPosition","autoFocus","fade","onOpened","setFilteredInvoicesToSelectedInvoices","selectedInvoices","requestInvoiceDialogAriaLabel","substring","InvoicesList","buttonChildReference","buttonChildPayButtonReference","_onDismiss","_onToggleInvoiceRequestParentModal","selectedButtonElement","payInvoiceRequestReference","_onToggleInvoiceRequestModal","_queryResultSettings","QueryResultSettingsProxy","fromModuleData","QueryResultSettings","makePaymentReference","_updateInvoicesState","_handleFilterStateChange","_loadMoreInvoices","_requestInvoice","_requestSpecificInvoice","invoicesFilterState","isPageLoaded","isInvoiceRequestModalOpen","_customerBalance$resu","_customerBalance$resu2","_heading$text","channel","customerBalance","invoicesListTitle","invoicesListDescTitle","invoicesListDescCount","amountText","OpenInvoiceBalance","Currency","totalCount","OpenInvoiceCount","countText","invoicesListTitleHeading","Heading","_renderInvoiceRequestModal","_renderInvoicesFilter","_renderPagination","_renderListContainer","_renderEmptyInvoiceLinesPageContent","invoicesData","_initializeWithInvoices","reaction","_this$props$data$b2bU","callerContext","b2bUserId","b2bUserInformation","B2BUserId","invoiceId","BusinessPartnerUsersDataActions","requestInvoiceCopyAsync","BusinessPartnerOperationDeliveryType","Email","_addInvoices","newInvoices","concat","containerClass","actionsContainerClass","invoiceEmptyInvoiceLinesTitle","invoiceEmptyInvoiceLinesDescription","invoiceEmptyInvoiceLinesContinueShoppingButtonAriaLabel","invoiceEmptyInvoiceLinesContinueShoppingButtonText","containerHeaderClass","containerContentClass","_renderMakePayment","_renderInvoiceRequestButton","_renderInvoicesList","searchCriteria","businessPartner","getCurrentAsync","BusinessPartnerId","getCustomer","GetCustomerInput","CustomerId","InvoicePaidStatusValues","_getInvoicesSearchCriteria","Paging","Skip","getInvoices","GetInvoicesInput","filterClassName","_renderInvoiceInCartPaymentMessage","tableClassName","_newErrorState$errorR","invoiceErrorInvoiceIdNotExist","invoiceErrorFailedAddInvoiceToCart","shouldShowAdditionalInfoInPopup","makePaymentResources","_getSelectedInvoices","moduleId","moduleTypeName","navigationUrl","_this$state$selectedB","invoiceErrorMessageHeader","_this$props$data$cart","cart","hasInvoiceLine","invoiceInCartPaymentMessage","_data$invoices","Top","invoicesLoadMore","invoiceRequestModalCancelLabel","invoiceRequestModalSubmitLabel","invoiceRequestModalHeaderLabel","invoiceRequestModalSendToEmailLabel","invoiceRequestModalSearch","invoiceRequestModalInvoiceSearchDisplay","invoiceRequestModalSingleInvoiceSearchDisplay","invoiceRequestModalSearchButton","_this$state$selectedB2","specificInvoice"],"mappings":"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","file":"static/js/15.817471fe8a3f179ca2a9.chunk.js","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './components';\nexport * from './helpers';\nexport * from './invoices-list';\nexport * from './invoices-list.data';\nexport * from './invoices-list.props.autogenerated';\nexport * from './invoices-list.view';\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { IContractsAccountPageViewProps } from './contracts-account-page';\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\n\r\nexport default (props: IContractsAccountPageViewProps) => {\r\n const { contractsHeading, contractsWrapper, contractsTable, contractsLinks } = props;\r\n return (\r\n \r\n {contractsHeading}\r\n {contractsTable}\r\n {contractsLinks}\r\n \r\n );\r\n};\r\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 IPasswordResetVerificationLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetVerificationLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default PasswordResetVerificationLoadingMessage;\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 { ICookieSetOptions, IImageDimension, ILocaleItems } from '@msdyn365-commerce/core-internal';\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n ITelemetryContent,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICountryPickerData } from './country-picker.data';\nimport { IActionLinkData, ICountryPickerProps } from './country-picker.props.autogenerated';\n\n/**\n * CountryPicker view props interface.\n */\nexport interface ICountryPickerViewProps extends ICountryPickerProps {\n modalContainer: IModuleProps;\n modalHeaderContainer: INodeProps;\n modalFooterContainer: INodeProps;\n modalBodyContainer: INodeProps;\n heading?: React.ReactNode;\n subheading?: React.ReactNode;\n link?: React.ReactNode;\n countryList?: React.ReactNode[];\n isModalOpen?: boolean;\n state?: ICountryPickerState;\n stayOnCurrentSiteButton?: React.ReactNode;\n}\n\n/**\n * ICountryPickerState: Interface for Country picker State.\n */\nexport interface ICountryPickerState {\n isModalOpen: boolean;\n}\n\n/**\n *\n * CountryPicker component.\n * @extends {React.PureComponent>}\n */\nexport class CountryPicker extends React.PureComponent, ICountryPickerState> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n private readonly _preferredSiteStorageKey: string = '_msdyn365___site_';\n\n private readonly _cookieExpirationTime = 5_184_000;\n\n public constructor(props: ICountryPickerProps) {\n super(props);\n let isCookieValueSet: boolean = false;\n if (props.context.request.cookies.get(this._preferredSiteStorageKey).value) {\n isCookieValueSet = true;\n }\n this.state = {\n isModalOpen: !isCookieValueSet && this.props.context.request.marketSettings !== undefined\n };\n }\n\n public render(): JSX.Element | null {\n const { heading, subheading, countryList, actionLink } = this.props.config;\n\n const isConsentGiven = this.props.context.request.cookies.isConsentGiven();\n\n if (!isConsentGiven) {\n return null;\n }\n\n const countryPickerHeading = heading && (\n \n );\n\n const countryPickerSubHeading = subheading && (\n \n );\n\n const countryPickerActionLink = actionLink && this.createLink(actionLink);\n const currentSiteButton = (\n \n );\n\n const viewprops: ICountryPickerViewProps = {\n ...this.props,\n state: this.state,\n isModalOpen: this.state.isModalOpen,\n modalContainer: {\n moduleProps: this.props,\n tag: Modal,\n className: 'ms-country-picker__dialog',\n isOpen: true,\n 'aria-label': 'country-picker',\n toggle: this.closeModal,\n modalTransition: { timeout: 0 },\n shouldUpdateFocusToFirstElement: true\n },\n modalHeaderContainer: {\n tag: ModalHeader,\n className: 'ms-country-picker__modal-header',\n toggle: this.closeModal,\n closeButtonTabIndex: 1\n },\n modalFooterContainer: {\n tag: ModalFooter,\n className: 'ms-countryPicker__modal-footer'\n },\n modalBodyContainer: {\n tag: ModalBody,\n className: 'ms-counrtyPicker__modal-body'\n },\n heading: countryPickerHeading,\n subheading: countryPickerSubHeading,\n link: countryPickerActionLink,\n countryList: countryList && this.renderCountryList(),\n stayOnCurrentSiteButton: currentSiteButton\n };\n\n return this.props.renderView(viewprops);\n }\n\n /**\n * Initiate close modal.\n */\n public readonly closeModal = (): void => {\n this.setState({\n isModalOpen: false\n });\n };\n\n public handleParagraphChange(event: MsDyn365.ContentEditableEvent): void {\n this.props.config.subheading = event.target.value;\n }\n\n public handleTextChange(event: MsDyn365.ContentEditableEvent): void {\n this.props.config.heading!.text = event.target.value;\n }\n\n public handleLinkTextChange(event: MsDyn365.ContentEditableEvent): void {\n if (this.props.config.actionLink?.linkText) {\n this.props.config.actionLink.linkText = event.target.value;\n }\n }\n\n public createLink(link?: IActionLinkData): React.ReactNode | null {\n if (!StringExtensions.isNullOrEmpty(link?.linkUrl.destinationUrl)) {\n const linkText = link?.linkText ?? '';\n const payLoad = getPayloadObject('click', this._telemetryContent, '', '');\n const attributes = getTelemetryAttributes(this._telemetryContent, payLoad);\n const editableLink: MsDyn365.ILinksData = {\n ariaLabel: link?.ariaLabel,\n className: 'ms-countryPicker__link',\n linkText,\n linkUrl: link?.linkUrl.destinationUrl,\n openInNewTab: link?.openInNewTab,\n role: 'link',\n additionalProperties: attributes!,\n onClick: onTelemetryClick(this._telemetryContent, payLoad, linkText)\n };\n return (\n \n );\n }\n return null;\n }\n\n public renderCountryList(): React.ReactNode[] | undefined {\n const marketSettings = this.props.context.request.marketSettings;\n if (!marketSettings) {\n return undefined;\n }\n const localeItems = marketSettings.localeItems;\n const countryLinks = localeItems.map((value: ILocaleItems) => {\n return this.renderCountry(value);\n });\n\n return countryLinks;\n }\n\n public renderCountry(localeItem: ILocaleItems): React.ReactNode | null {\n const countryList = this.props.config.countryList;\n let baseUrl = localeItem.localeBaseUrl;\n baseUrl = this._appendProtocolToUrl(baseUrl);\n const matchedCountryItem = countryList?.find(item => item.url === baseUrl);\n if (!matchedCountryItem) {\n return null;\n }\n const imageSize: IImageDimension = { q: 'w=48&h=48&m=6', w: 0, h: 0 };\n const defaultImageSettings: MsDyn365.IImageSettings = {\n viewports: {\n xs: imageSize,\n lg: imageSize,\n xl: imageSize\n },\n lazyload: true\n };\n const image = matchedCountryItem.image;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings ?? defaultImageSettings\n };\n return (\n \n {image && (\n \n )}\n
\n {matchedCountryItem.displayString}\n {matchedCountryItem.displaySubString}\n
\n \n );\n }\n\n /**\n * Writes the current site base url to cookie and closes the country picker modal dialog.\n */\n private readonly _handleStayOnSiteButtonClick = (): void => {\n const currentBaseUrl = this.props.context.request.marketSettings?.currentBaseUrl;\n if (currentBaseUrl) {\n const urlToStore = this._appendProtocolToUrl(currentBaseUrl);\n this._writeToCookie(this._preferredSiteStorageKey, urlToStore);\n }\n this.closeModal();\n };\n\n /**\n * Handles click event of country selection.\n * @param storageKey - Cookie storage key.\n * @param storageValue - Preffered site url.\n * @returns - This method just writes the cookie to the browser.\n */\n private readonly _handleClick = (storageKey?: string, storageValue?: string) => () => {\n this._writeToCookie(storageKey, storageValue);\n };\n\n /**\n * Handles click event of country selection.\n * @param storageKey - Cookie storage key.\n * @param storageValue - Preffered site url.\n */\n private readonly _writeToCookie = (storageKey?: string, storageValue?: string): void => {\n if (!storageKey || !storageValue) {\n return;\n }\n const cookieOptions: ICookieSetOptions = { secure: true, sameSite: 'none' };\n cookieOptions.maxAge = this._cookieExpirationTime;\n this.props.context.request.cookies.set(storageKey, storageValue, cookieOptions);\n };\n\n /**\n * Appends protocol to an url.\n * @param baseUrl - Url to be formatted.\n * @returns - URL after appending protocol.\n */\n private readonly _appendProtocolToUrl = (baseUrl: string): string => {\n return !baseUrl.includes('https://') ? `https://${baseUrl}` : baseUrl;\n };\n}\n\nexport default CountryPicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface IRequestInvoiceButtonProps {\n innerReference?: React.RefObject;\n className: string;\n requestInvoiceButtonLabel: string;\n onClicked(): void;\n}\n\nexport const RequestInvoiceButton: React.FC = ({\n className,\n onClicked,\n requestInvoiceButtonLabel,\n innerReference\n}) => {\n return (\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbViewProps } from './breadcrumb';\n\nconst BreadCrumbView: React.FC = props => {\n const { root, links, backButton, BreadcrumbContainer, BreadcrumbList, BreadcrumbListItem, separator } = props;\n if (!root && !links && !backButton) {\n props.context.telemetry.error('BreadCrumb content is empty, module wont render');\n return null;\n }\n return (\n \n \n {root && (\n \n {root}\n {links && separator}\n \n )}\n {backButton && {backButton}}\n {links &&\n links.map((link, index) => (\n \n \n {link}\n {links[index + 1] && separator}\n \n \n ))}\n \n \n );\n};\n\nexport default BreadCrumbView;\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ICheckoutDeliveryOption, ICheckoutDeliveryOptionEdit, ICheckoutDeliveryOptionsList, ICheckoutDeliveryOptionsViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-delivery-options/./checkout-delivery-options';\r\n\r\nconst DeliveryOptionList: React.FC = ({\r\n DeliveryOptionsList,\r\n list\r\n}) => {\r\n if (!list || list.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {list.map((deliveryOption: ICheckoutDeliveryOptionEdit) => {\r\n return (\r\n {deliveryOption.radioButton}\r\n {deliveryOption.description}\r\n {/* {deliveryOption.price} */}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst DeliveryOptionSelected: React.FC = ({\r\n DeliveryOption,\r\n description,\r\n price\r\n}) => {\r\n\r\n return (\r\n \r\n {description}\r\n {/* {price} */}\r\n \r\n );\r\n};\r\n\r\nconst CheckoutDeliveryOptionsView: React.FC = props => {\r\n const { CheckoutDeliveryOptions,\r\n viewState,\r\n deliveryOptions,\r\n deliveryOptionSelected,\r\n alert,\r\n waiting,\r\n saveButton,\r\n editButton,\r\n cancelButton } = props;\r\n\r\n return (\r\n\r\n // TODO: All wrapper div should be provided by viewProps. Once SDK provide the sln, update markup.\r\n \r\n {viewState.isLoading && waiting}\r\n {viewState.isError && alert}\r\n {viewState.isShowList && deliveryOptions && }\r\n {viewState.isShowSelected && deliveryOptionSelected && }\r\n {viewState.isShowSaveButton && saveButton}\r\n {viewState.isShowEditButton && editButton}\r\n {viewState.isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutDeliveryOptionsView;\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 { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IImageListConfig, IImageListProps, IImagesData } from './image-list.props.autogenerated';\n\n/**\n * The interface for IImageListViewProps.\n */\nexport interface IImageListViewProps extends IImageListProps {\n imageList: IModuleProps;\n imageListHeading?: React.ReactNode;\n imageListContainer: INodeProps;\n imageListItem: INodeProps;\n imageListItemAnchorTag: INodeProps;\n imageListItems: IImageListItem[] | undefined;\n}\n\n/**\n * The interface for IImageListItem.\n */\nexport interface IImageListItem {\n image: JSX.Element | undefined;\n text: JSX.Element | undefined;\n link: string | undefined;\n linkAltText: string | undefined;\n linkAriaLabel: string | undefined;\n}\n\n/**\n *\n * ImageList component.\n * @extends {React.PureComponent>}\n */\nclass ImageList extends React.PureComponent> {\n public render(): JSX.Element | null {\n const { heading } = this.props.config;\n const imageListTitle = heading && ;\n const viewProps: IImageListViewProps = {\n ...this.props,\n imageList: {\n moduleProps: this.props,\n className: classnames('ms-image-list', this.props.config.className),\n tag: 'div'\n },\n imageListHeading: imageListTitle,\n imageListContainer: {\n className: 'ms-image-list__list',\n role: 'list',\n tag: 'ul'\n },\n imageListItem: {\n className: 'ms-image-list__list-item',\n role: 'listitem',\n tag: 'li'\n },\n imageListItemAnchorTag: {\n tag: 'a',\n className: 'ms-image-list__link',\n role: 'link'\n },\n imageListItems: this._renderImageListItems()\n };\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle paragraph change.\n * @param index - Index of image item in array of image items.\n * @returns Void.\n */\n public handleParagraphChange = (index: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.images![index]) {\n this.props.config.images![index].paragraph = event.target.value;\n }\n };\n\n /**\n * Render list of images.\n * @returns List of images with text and redirection link.\n */\n private readonly _renderImageListItems = (): IImageListItem[] | undefined => {\n const imageList: IImagesData[] | undefined = this.props.config.images;\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 },\n lg: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 },\n xl: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 }\n },\n lazyload: false,\n disableLazyLoad: true\n };\n return imageList?.map((item, index) => {\n const { image, link, paragraph } = item;\n\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: (image?.imageSettings ?? defaultImageSettings) as Msdyn365.IImageSettings | undefined\n };\n\n const imageLink: string | undefined = link?.linkUrl.destinationUrl;\n const imageLinkText: string | undefined = link?.linkText ?? link?.ariaLabel;\n const imageLinkAriaLabel: string | undefined = link?.ariaLabel;\n\n // If image is null, we want to render the placeholder SVG - by passing image data with empty src\n const imageImage = (\n \n );\n\n const imageText = paragraph && (\n \n );\n const imageListItem: IImageListItem = {\n image: imageImage,\n text: imageText,\n link: imageLink,\n linkAltText: imageLinkText,\n linkAriaLabel: imageLinkAriaLabel\n };\n return imageListItem;\n });\n };\n}\n\nexport default ImageList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IBuyboxAddToCartViewProps,\n IBuyboxAddToOrderTemplateViewProps,\n IBuyboxAddToWishlistViewProps,\n IBuyboxCallbacks,\n IBuyboxData,\n IBuyboxFindInStoreViewProps,\n IBuyboxKeyInPriceViewProps,\n IBuyboxProductConfigureDropdownViewProps,\n IBuyboxProductConfigureViewProps,\n IBuyboxProductQuantityViewProps,\n IBuyboxProps,\n IBuyboxShopSimilarLookViewProps,\n IBuyboxState,\n IBuyboxViewProps\n} from '@msdyn365-commerce-modules/buybox';\nimport { IncrementalQuantity, ITelemetryContent, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBuyboxProps as IBuyboxExtentionProps,\n IBuyboxResources as IBuyboxExtentionResources\n} from '../definition-extensions/buybox.ext.props.autogenerated';\n\nconst BuyboxView: React.FC> = props => {\n const {\n ModuleProps,\n MediaGalleryContainerProps,\n ProductInfoContainerProps,\n addToCart,\n addToOrderTemplate,\n addToWishlist,\n telemetryContent,\n configure,\n description,\n findInStore,\n quantity,\n price,\n title,\n rating,\n callbacks,\n state,\n resources,\n inventoryLabel,\n shopSimilarLook,\n keyInPrice,\n quantityLimitsMessages,\n max,\n shopSimilarDescription,\n unitOfMeasure\n } = props;\n\n return (\n \n {props.mediaGallery}\n \n {title}\n {price}\n {unitOfMeasure}\n {props.bulkPurchaseLink}\n {description}\n {_renderTextBlock(props.slots.textBlocks)}\n {rating}\n {configure && _renderConfigure(configure)}\n {keyInPrice && _renderKeyInPrice(keyInPrice)}\n {quantity && _renderQuantity(quantity, callbacks, props, state, resources, quantityLimitsMessages, max, telemetryContent)}\n {inventoryLabel}\n {_renderCartAndActions(addToCart, addToOrderTemplate, addToWishlist)}\n {findInStore && _renderFindInStore(findInStore)}\n {_renderSocialShare(props.slots && props.slots.socialShare)}\n {shopSimilarLook && _renderShopSimilarItem(shopSimilarLook)}\n {shopSimilarDescription && _renderShopSimilarItem(shopSimilarDescription)}\n \n \n );\n};\n\nconst _renderTextBlock = (textBlocks: React.ReactNode[]): JSX.Element | undefined => {\n if (!textBlocks || textBlocks.length === 0) {\n return undefined;\n }\n\n return <>{textBlocks[0]};\n};\n\nconst _renderSocialShare = (socialShare: React.ReactNode[]): JSX.Element | undefined => {\n if (!socialShare || socialShare.length === 0) {\n return undefined;\n }\n\n return <>{socialShare[0]};\n};\n\nconst _renderCartAndActions = (\n addToCart?: IBuyboxAddToCartViewProps,\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps,\n addToWishlist?: IBuyboxAddToWishlistViewProps\n): JSX.Element | undefined => {\n if (!addToCart && !addToWishlist) {\n return undefined;\n }\n\n return (\n
\n {addToCart && addToCart.errorBlock}\n {addToOrderTemplate && addToOrderTemplate.errorBlock}\n {addToWishlist && addToWishlist.errorBlock}\n
\n {addToCart && addToCart.button}\n {addToOrderTemplate && addToOrderTemplate.button}\n {addToWishlist && addToWishlist.button}\n
\n
\n );\n};\n\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\n const { ContainerProps, dropdowns } = configure;\n\n return {dropdowns.map(_renderConfigureDropdown)};\n};\n\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\n\n return (\n \n \n {heading}\n {errors}\n \n {select}\n \n );\n};\n\nconst _renderFindInStore = (findInStore: IBuyboxFindInStoreViewProps): JSX.Element => {\n const { ContainerProps, storeSelector, heading, description, errors, button, modal, productPickupOptionList } = findInStore;\n\n return (\n \n {storeSelector}\n {heading}\n {productPickupOptionList}\n {description}\n {errors}\n {button}\n {modal}\n \n );\n};\n\n/**\n * On Change function.\n * @param callbacks -Callbacks.\n * @returns Update quantity.\n */\nconst onChangeHandler = (callbacks: IBuyboxCallbacks) => (newValue: number): boolean => {\n if (callbacks.updateQuantity) {\n return callbacks.updateQuantity(newValue);\n }\n return true;\n};\n\nconst _renderQuantity = (\n quantityComponent: IBuyboxProductQuantityViewProps,\n callbacks: IBuyboxCallbacks,\n props: IBuyboxProps,\n state: IBuyboxState,\n extentionResources: IBuyboxExtentionResources,\n quantityLimitsMessages: React.ReactNode,\n max: number | undefined,\n telemetryContent?: ITelemetryContent\n): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors } = quantityComponent;\n\n const { resources } = props;\n\n const { quantity } = state;\n\n return (\n \n \n {heading}\n {errors}\n \n\n \n {quantityLimitsMessages}\n \n );\n};\n\nconst _renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\n\n return (\n \n {heading}\n {input}\n \n );\n};\n\nconst _renderShopSimilarItem = (shopSimilarItem: IBuyboxShopSimilarLookViewProps): JSX.Element => {\n const { ContainerProps, errors, input } = shopSimilarItem;\n\n return (\n \n {errors}\n {input}\n \n );\n};\n\nexport default BuyboxView;\n","import * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { ILinkData } from '@msdyn365-commerce/core';\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface ILinksData {\r\n linkText?: string;\r\n linkUrl: ILinkData;\r\n ariaLabel?: string;\r\n openInNewTab?: boolean;\r\n}\r\n\r\nexport interface IContractsAccountPageLinks {\r\n links: ILinksData[];\r\n requestContext: Msdyn365.IRequestContext;\r\n\r\n /**\r\n * The telemetry content\r\n */\r\n telemetryContent?: ITelemetryContent;\r\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\r\n}\r\n\r\nconst ContractsAccountPageLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\r\n if (links.length === 0) {\r\n return null;\r\n }\r\n const editableLinks = _mapEditableLinks(links, telemetryContent);\r\n return (\r\n
\r\n {editableLinks && editableLinks.length > 0 ? (\r\n \r\n ) : null}\r\n
\r\n );\r\n};\r\n\r\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\r\n if (!linkdata || linkdata.length === 0) {\r\n return null;\r\n }\r\n const editableLinks: Msdyn365.ILinksData[] = [];\r\n const payLoad = getPayloadObject('click', telemetryContent!, '');\r\n linkdata.forEach((link, index) => {\r\n payLoad.contentAction.etext = link.linkText;\r\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n const editableLink: Msdyn365.ILinksData = {\r\n ariaLabel: link.ariaLabel,\r\n className: 'eve-contracts-tile__links',\r\n linkText: link.linkText,\r\n linkUrl: link.linkUrl.destinationUrl,\r\n openInNewTab: link.openInNewTab,\r\n role: 'link',\r\n additionalProperties: attributes\r\n };\r\n editableLinks.push(editableLink);\r\n });\r\n\r\n return editableLinks;\r\n};\r\n\r\nexport default ContractsAccountPageLinks;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\nimport { IModuleProps, getTelemetryObject, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classNames from 'classnames';\r\n\r\nimport { IContractsAccountPageData } from './contracts-account-page.data';\r\nimport { IContractsAccountPageProps } from './contracts-account-page.props.autogenerated';\r\nimport LinksComponent from './components/contracts-account-page-links';\r\nimport { IContractListEntity } from '../../actions/DataServiceEntities.g';\r\n\r\nexport interface IContractsAccountPageViewProps extends IContractsAccountPageProps {\r\n contractsHeading: React.ReactElement;\r\n contractsWrapper: IModuleProps;\r\n contractsTable: React.ReactElement;\r\n contractsLinks: React.ReactElement;\r\n}\r\n\r\n/**\r\n *\r\n * ContractsAccountPage component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass ContractsAccountPage extends React.PureComponent> {\r\n private readonly telemetryContent: ITelemetryContent;\r\n constructor(props: IContractsAccountPageProps) {\r\n super(props);\r\n this.telemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n\r\n this._renderHeading = this._renderHeading.bind(this);\r\n this._getContractsRowData = this._getContractsRowData.bind(this);\r\n this._handleHeadingChange = this._handleHeadingChange.bind(this);\r\n this._renderTable = this._renderTable.bind(this);\r\n this._generateRow = this._generateRow.bind(this);\r\n }\r\n\r\n private _renderHeading(): React.ReactElement {\r\n const {\r\n config: { heading },\r\n context: { request }\r\n } = this.props;\r\n\r\n if (!heading || !heading.text) {\r\n return <>;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _getContractsRowData(): IContractListEntity[] {\r\n if (!this.props.data.contractList.result) {\r\n return [];\r\n }\r\n // @ts-expect-error\r\n if (this.props.data.contractList.result.contractList && this.props.data.contractList.result.contractList.length > 0) {\r\n // @ts-expect-error\r\n return this.props.data.contractList.result.contractList;\r\n }\r\n return [];\r\n }\r\n\r\n private _handleHeadingChange = (event: Msdyn365.ContentEditableEvent): string => (this.props.config.heading.text = event.target.value);\r\n\r\n private _renderTable(): React.ReactElement {\r\n const {\r\n resources: { manufacturerCodeLabel, contractNumberLabel, laborRateLabel, contractDescLabel, noContractsFoundText }\r\n } = this.props;\r\n\r\n const headingRow = [manufacturerCodeLabel, contractNumberLabel, laborRateLabel, contractDescLabel];\r\n const contractsRowData = this._getContractsRowData();\r\n return (\r\n
\r\n
    \r\n
  • \r\n {headingRow.map((heading, i) => (\r\n
    \r\n {heading === manufacturerCodeLabel ? this._renderMfrCodeHeading(i + 1) : heading}\r\n
    \r\n ))}\r\n
  • \r\n {contractsRowData.length > 0 ? (\r\n contractsRowData.map((contract, i) => (\r\n
  • \r\n {this._generateRow(contract)}\r\n
  • \r\n ))\r\n ) : (\r\n
  • \r\n {this._generateEmptyRow(noContractsFoundText)}\r\n
  • \r\n )}\r\n
\r\n
\r\n );\r\n }\r\n\r\n private _renderMfrCodeHeading(colNum: number): React.ReactElement {\r\n const {\r\n resources: { manufacturerCodeLabel, manufacturerCodeShortFormLabel }\r\n } = this.props;\r\n\r\n return (\r\n <>\r\n {manufacturerCodeShortFormLabel}\r\n {manufacturerCodeLabel}\r\n \r\n );\r\n }\r\n\r\n private _generateRow(contractData: IContractListEntity) {\r\n const { ManufacturerCode, Description, ContractLaborRate, ContractNotes } = contractData;\r\n return (\r\n <>\r\n
\r\n

{ManufacturerCode}

\r\n
\r\n
\r\n

{Description}

\r\n
\r\n
\r\n

{`$${ContractLaborRate.toFixed(2)}`}

\r\n
\r\n
\r\n

{ContractNotes}

\r\n
\r\n \r\n );\r\n }\r\n\r\n private _generateEmptyRow(noContractsFoundText: string) {\r\n return (\r\n <>\r\n
\r\n

{noContractsFoundText}

\r\n
\r\n
\r\n

\r\n
\r\n
\r\n

\r\n
\r\n
\r\n

\r\n
\r\n \r\n );\r\n }\r\n\r\n private _renderLink(): React.ReactElement {\r\n const {\r\n config: { links },\r\n context: { request }\r\n } = this.props;\r\n\r\n if (!links || links.length < 1) {\r\n return <>;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\r\n const { links } = this.props.config;\r\n if (links && links[linkIndex]) {\r\n links[linkIndex].linkText = event.target.value;\r\n }\r\n };\r\n\r\n public render(): JSX.Element | null {\r\n const viewProps = {\r\n ...this.props,\r\n contractsHeading: this._renderHeading(),\r\n contractsWrapper: {\r\n className: classNames('eve-contracts-tile', 'contracts-container'),\r\n tag: 'div',\r\n moduleProps: this.props\r\n },\r\n contractsTable: this._renderTable(),\r\n contractsLinks: this._renderLink()\r\n };\r\n\r\n return this.props.renderView(viewProps);\r\n }\r\n}\r\n\r\nexport default ContractsAccountPage;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { get } from 'lodash';\r\n\r\nimport { ICheckoutDeliveryOption, ICheckoutDeliveryOptionEdit, ICheckoutDeliveryOptionsList, ICheckoutDeliveryOptionsViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-delivery-options/./checkout-delivery-options';\r\nconst DLV_MODE_KEY = 'dlv-mode'\r\nconst DeliveryOptionList: React.FC = ({\r\n DeliveryOptionsList,\r\n list\r\n}) => {\r\n if (!list || list.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {list.map((deliveryOption: ICheckoutDeliveryOptionEdit) => {\r\n return (\r\n {deliveryOption.radioButton}\r\n {deliveryOption.description}\r\n {/* {deliveryOption.price} */}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst DeliveryOptionSelected: React.FC = ({\r\n DeliveryOption,\r\n description,\r\n price\r\n}) => {\r\n\r\n return (\r\n \r\n {description}\r\n {/* {price} */}\r\n \r\n );\r\n};\r\n\r\nconst CheckoutDeliveryOptionsView: React.FC = props => {\r\n const { CheckoutDeliveryOptions,\r\n viewState,\r\n deliveryOptions,\r\n deliveryOptionSelected,\r\n alert,\r\n waiting,\r\n saveButton,\r\n editButton,\r\n cancelButton } = props;\r\n\r\n React.useEffect(() => {\r\n const dlvDescription = get(deliveryOptionSelected, 'description.props.description') || ''\r\n window.sessionStorage.setItem(DLV_MODE_KEY, dlvDescription)\r\n }, [deliveryOptionSelected])\r\n\r\n return (\r\n\r\n // TODO: All wrapper div should be provided by viewProps. Once SDK provide the sln, update markup.\r\n \r\n {viewState.isLoading && waiting}\r\n {viewState.isError && alert}\r\n {viewState.isShowList && deliveryOptions && }\r\n {viewState.isShowSelected && deliveryOptionSelected && }\r\n {viewState.isShowSaveButton && saveButton}\r\n {viewState.isShowEditButton && editButton}\r\n {viewState.isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutDeliveryOptionsView;\r\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 { IInvoiceDetailsViewProps } from './invoice-details';\n\nexport const InvoiceDetailsView: React.FC = props => {\n const { header, products, paymentDetails, payInvoiceError } = props;\n\n return (\n \n {header}\n {products}\n {paymentDetails}\n {payInvoiceError}\n \n );\n};\n\nexport default InvoiceDetailsView;\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 { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../../..';\n\nexport interface IB2bRequestsTileLinksProps {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst defaultClassName = 'ms-account-b2b-requests-tile';\n\nexport const B2bRequestsTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (!ArrayExtensions.hasElements(links)) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {ArrayExtensions.hasElements(editableLinks) ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n\n return linkdata.map(link => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return {\n ariaLabel: link.ariaLabel,\n className: `${defaultClassName}__link`,\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n } as Msdyn365.ILinksData;\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 { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IB2bRequestsTileData } from './b2b-requests-tile.data';\nimport { IB2bRequestsTileProps } from './b2b-requests-tile.props.autogenerated';\nimport { B2bRequestsTileLinks } from './components/account-b2b-requests-tile-links';\n\nexport interface IB2bRequestsTileViewProps extends IB2bRequestsTileProps {\n b2bRequestsTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n}\n\n/**\n *\n * B2bRequestsTile component.\n * @extends {React.PureComponent>}\n */\nclass B2bRequestsTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IB2bRequestsTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n const { config } = this.props;\n const { className, heading, links } = config;\n\n const defaultClassName = 'ms-account-b2b-requests-tile';\n\n if (!isChannelTypeB2B(this.props.context.actionContext.requestContext)) {\n return null;\n }\n\n const viewProps = {\n ...this.props,\n className,\n b2bRequestsTile: {\n moduleProps: this.props,\n className: classnames(defaultClassName, config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: ArrayExtensions.hasElements(links) && (\n \n )\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 handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default B2bRequestsTile;\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IImageListViewProps } from './image-list';\n\n/**\n * Render the thumbnail item images.\n * @param props - The image list view props.\n * @returns Return HTML having IImageListViewProps props with image List.\n */\nexport const imageListView = (props: IImageListViewProps): JSX.Element => {\n const { imageList, imageListContainer, imageListHeading, imageListItem, imageListItems, imageListItemAnchorTag } = props;\n return (\n \n {imageListHeading}\n \n {imageListItems?.map(item => {\n let indexKey: string;\n\n if (item.image) {\n const image = (item.image as unknown) as Msdyn365.Image;\n indexKey = image.props.src as string;\n } else {\n const text = (item.text as unknown) as Msdyn365.RichTextComponent;\n indexKey = text.props.text as string;\n }\n return (\n \n {item.image && (\n \n {item.image}\n \n )}\n {item.text}\n \n );\n })}\n \n \n );\n};\n\nexport default imageListView;\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 IPasswordResetVerificationButton {\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 PasswordResetVerificationButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n telemetryContent,\n disabled,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default PasswordResetVerificationButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport React, { useState } from 'react';\n\nimport { IPayableInvoice } from '../helpers/invoice-data';\nimport { payInvoices } from '../helpers/pay-invoices';\nimport { IInvoiceErrorState } from '../invoices-list';\n\nexport interface IPayInvoiceData {\n invoice: IPayableInvoice;\n}\n\nexport interface IPayInvoiceResources {\n payInvoiceButtonText: string;\n payInvoiceButtonAriaLabel: string;\n}\n\nexport interface IPayInvoiceProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n reference?: React.RefObject;\n resources: IPayInvoiceResources;\n disabled?: boolean;\n\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n}\n\ninterface IPayInvoiceComponent extends IComponent {}\n\nconst onClick = async (\n _event: React.MouseEvent,\n props: IPayInvoiceProps,\n setDisabled: (disabled: boolean) => void\n): Promise => {\n setDisabled(true);\n\n const propagateError = (errorState: IInvoiceErrorState): void => {\n if (props.onError) {\n props.onError(errorState, props.reference);\n }\n setDisabled(false);\n };\n\n await payInvoices([props.data.invoice], props.context.actionContext, propagateError);\n};\n\nconst PayInvoiceComponentActions = {\n onClick\n};\n\n/**\n * On click handler function.\n * @param props -Invoice props.\n * @param setDisabled -Set disabled.\n * @returns Pay invoice component action.\n */\nconst onClickHandler = (props: IPayInvoiceProps, setDisabled: React.Dispatch>) => async (\n event: React.MouseEvent\n) => {\n await PayInvoiceComponentActions.onClick(event, props, setDisabled);\n};\n\nconst PayInvoice: React.FC = (props: IPayInvoiceProps): JSX.Element => {\n const [disabled, setDisabled] = useState(false);\n\n return (\n \n {props.resources.payInvoiceButtonText}\n \n );\n};\n\n// @ts-expect-error\nexport const PayInvoiceComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'PayInvoiceComponent',\n { component: PayInvoice, ...PayInvoiceComponentActions }\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILink {\n className?: string;\n text?: string;\n href?: string;\n ariaLabel?: string;\n index: string;\n noclick?: boolean;\n telemetryContent: ITelemetryContent;\n}\n\nexport const Link: React.FC = ({ text, className, href, ariaLabel, index, noclick, telemetryContent }) => {\n const payLoad = getPayloadObject('click', telemetryContent, '', '');\n\n const linkText = text !== undefined ? text : '';\n payLoad.contentAction.etext = linkText;\n\n // Construct telemetry attribute to render\n const attribute = getTelemetryAttributes(telemetryContent, payLoad);\n\n return (\n \n {linkText}\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\ninterface ISeparator {\n separator: string;\n}\n\nexport const Separator: React.FC = ({ separator }) => (\n \n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport { ICategoryUrl } from '@msdyn365-commerce/core-internal/dist/types/interfaces/ICategoryPathInterfaces';\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbData } from './breadcrumb.data';\nimport { IBreadcrumbProps, ILinksData } from './breadcrumb.props.autogenerated';\nimport { Link } from './components/link';\nimport { Separator } from './components/separator';\n\nexport interface IBreadcrumbViewProps extends IBreadcrumbProps {\n root?: React.ReactNode;\n links?: React.ReactNode[];\n backButton?: React.ReactNode;\n separator?: React.ReactNode;\n BreadcrumbContainer: IModuleProps;\n BreadcrumbList: INodeProps;\n BreadcrumbListItem: INodeProps;\n}\n\n/**\n *\n * Breadcrumb component.\n * @extends {React.PureComponent>}\n */\nclass Breadcrumb extends React.PureComponent> {\n private readonly _pageType: string | undefined = this.props.context.request.urlTokens.pageType;\n\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public render(): JSX.Element | null {\n const { className } = this.props.config;\n let rootLink = null;\n let breadcrumbLinks = null;\n let backButtonComponent = null;\n rootLink = this._getRootLink();\n const itemPosition = rootLink ? 1 : 0;\n if (this._pageType === 'Category') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n breadcrumbLinks = this._getCategoryHierarchy(itemPosition);\n }\n } else if (this._pageType === 'Product') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n const breaCrumbType = this.props.context.app.config.breadcrumbType;\n if (breaCrumbType === 'category') {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'categoryAndBack') {\n backButtonComponent = this._getPDPBackButton();\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'back') {\n backButtonComponent = this._getPDPBackButton();\n if (backButtonComponent === null) {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n }\n }\n } else {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n }\n const linkSeparator = ;\n\n const breadcrumbViewProps = {\n ...this.props,\n BreadcrumbContainer: {\n moduleProps: this.props,\n className: classnames('ms-breadcrumb', className),\n tag: 'nav',\n role: 'navigation'\n },\n BreadcrumbList: {\n tag: 'ol' as NodeTag,\n className: 'ms-breadcrumb_list'\n },\n BreadcrumbListItem: {\n tag: 'li',\n className: 'ms-breadcrumb_item'\n },\n root: rootLink,\n links: breadcrumbLinks,\n backButton: backButtonComponent,\n separator: linkSeparator\n };\n return this.props.renderView(breadcrumbViewProps) as React.ReactElement;\n }\n\n private readonly _getRootLink = (): JSX.Element | null => {\n const { root } = this.props.config;\n if (!root || !root.linkUrl || !root.linkUrl.destinationUrl) {\n this.props.context.telemetry.error('BreadCrumb link url content is empty, link wont render');\n return null;\n }\n return (\n \n );\n };\n\n private readonly _getCustomBreadcrumbLinks = (itemPosition: number): JSX.Element[] | null => {\n const { links } = this.props.config;\n\n if (!links || links.length === 0) {\n this.props.context.telemetry.error('BreadCrumb links content is empty, links wont render');\n return null;\n }\n const defaultValueToSubtract = 1;\n return links.map((value: ILinksData, index: number) => {\n itemPosition++;\n const keyIndex = index;\n return index !== links.length - defaultValueToSubtract ? (\n \n ) : (\n
\n {value.linkText}\n
\n );\n });\n };\n\n private readonly _getCategoryHierarchy = (itemPosition: number): JSX.Element[] | null => {\n const { data } = this.props;\n const categoryHierarchy = data.categoryHierarchy.result;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category Hierarchy content is empty, module wont render');\n return null;\n }\n return categoryHierarchy.map((value: CategoryHierarchy, index: number) => {\n itemPosition++;\n\n const friendlyName = this._getFriendlyName(this.props.context.request.locale, value.NameTranslations);\n\n return (\n \n );\n });\n };\n\n /**\n * The function to get translation name for the locale.\n * @param locale - The locale information.\n * @param nameTranslations - The name translations names.\n * @returns - The translation name for the locale.\n */\n private readonly _getFriendlyName = (locale: string, nameTranslations?: TextValueTranslation[]): string | undefined => {\n let nameTranslation: TextValueTranslation | undefined;\n if (locale && nameTranslations && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\n }\n\n // If friendly name for current locale is null, should use default locale.\n if (nameTranslation === undefined && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations[0];\n }\n\n return nameTranslation?.Text;\n };\n\n private readonly _getPDPLinks = (itemPosition: number): JSX.Element[] | null => {\n const { data, config } = this.props;\n const categoryHierarchy = data.categoryPaths.result;\n const product = data.product.result;\n const url = this.props.context.request.url.requestUrl.href;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category path content is empty for the product');\n return null;\n }\n const links: JSX.Element[] = [];\n\n categoryHierarchy.map((value: ICategoryUrl, index: number) => {\n itemPosition++;\n links.push(\n \n );\n });\n if (product && !config.hideProductName) {\n itemPosition++;\n links.push(\n \n );\n }\n return links;\n };\n\n private readonly _goBack = (): void => {\n window.history.back();\n };\n\n private readonly _getPDPBackButton = (): JSX.Element | null => {\n const isBackAllowed =\n this.props.context && this.props.context.request && this.props.context.request.query && this.props.context.request.query.back;\n if (!isBackAllowed) {\n return null;\n }\n if (MsDyn365.isBrowser && (document.referrer === '' || window.history.length < 2)) {\n return null;\n }\n return (\n \n {this.props.resources.backToResultsText}\n \n );\n };\n}\n\nexport default Breadcrumb;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './modules/invoices-list';\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport React, { useState } from 'react';\n\nimport { InvoiceModel } from '../../helpers/invoice-data';\nimport { IInvoiceErrorState } from '../../invoices-list';\nimport { IInvoicesTableHeaderResources, InvoicesTableHeaderComponent } from './components/invoices-table-header-component';\nimport { IInvoicesTableRowResources, InvoicesTableRowComponent } from './components/invoices-table-row-component';\n\ninterface IInvoicesTableData {\n invoices: InvoiceModel[];\n customer: Customer;\n}\n\nexport interface IInvoicesTableResources extends IInvoicesTableHeaderResources, IInvoicesTableRowResources {}\n\nexport interface IInvoicesTableProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n invoiceButtonReferences?: React.RefObject[];\n payInvoiceButtonReferences?: React.RefObject[];\n resources: IInvoicesTableResources;\n\n onChange(): void;\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n onRequestInvoice(invoice: InvoiceModel, requestInvoiceButtonReference: React.RefObject): void;\n}\n\nexport interface IInvoicesTableComponent extends IComponent {}\n\ntype GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nconst getViewport = (context: ICoreContext): GridSize => {\n // Always render in mobile viewport on a mobile device\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (window?.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n\n return 'xs';\n};\n\nconst isMobileView = (context: ICoreContext) => {\n const viewport = getViewport(context);\n return viewport === 'xs' || viewport === 'sm';\n};\n\n/**\n * On select all function.\n * @param props -Invoice table props.\n * @returns On change.\n */\nconst onSelectAllHandler = (props: IInvoicesTableProps) => (isSelected: boolean) => {\n props.data.invoices.forEach(invoice => {\n invoice.isSelected = isSelected;\n });\n props.onChange();\n};\n\nconst InvoicesTable: React.FC = (props: IInvoicesTableProps): JSX.Element => {\n const [isMobile, setIsMobile] = useState(isMobileView(props.context));\n\n const updateViewport = () => {\n setIsMobile(isMobileView(props.context));\n };\n\n if (typeof window !== undefined && window.addEventListener) {\n window.addEventListener('resize', updateViewport);\n }\n const rowClassName = `${props.className}__row`;\n const headerClassName = `${props.className}__header`;\n\n return (\n \n invoice.isSelected)}\n isMobile={isMobile}\n isAdmin={props.data.customer.IsB2bAdmin || false}\n onSelectAll={onSelectAllHandler(props)}\n resources={props.resources}\n data={{}}\n />\n {props.data.invoices.map((invoice, index: number) => {\n return (\n \n );\n })}\n
\n );\n};\n\nexport const InvoicesTableComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoicesTableComponent\n>('InvoicesTableComponent', { component: InvoicesTable });\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 { ISubscribeViewProps } from './subscribe';\n\n/**\n * Override form action and button action below.\n * @param event - The form event.\n */\nconst onSubmit = (event: React.FormEvent): void => {\n event.preventDefault();\n};\n\n/**\n * View component.\n * @param props - The view properties.\n * @returns - Returns nothing.\n */\nexport const subscribeView: React.FC = props => {\n const { subscribe, subscribeContainer, heading, text, subscribeForm, emailInput, submitButton } = props;\n return (\n \n \n {heading}\n {text}\n \n \n \n {props.submitButtonLabelText}\n \n \n \n \n );\n};\n\nexport default subscribeView;\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 IPasswordResetVerificationErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationError;\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 IPasswordResetVerificationSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationSuccess;\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { getUrlSync } from '@msdyn365-commerce/core';\r\nimport { IB2bRequestsStatusViewProps } from '@msdyn365-commerce-modules/account-management';\r\nimport { Button, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { IB2bRequestsStatusProps, IB2bRequestsStatusResources } from '../definition-extensions/b2b-requests-status.ext.props.autogenerated';\r\n\r\n/**\r\n * B2b Request status View.\r\n * @param props - The view props.\r\n * @returns The JSX Element.\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\nconst B2bRequestsStatusView: React.FC> = props => {\r\n const { b2bRequestsStatus, heading, table } = props;\r\n const { continueShoppingButtonTitle } = props.resources;\r\n const initialCount = 0;\r\n\r\n if (props.data.operationRequests.result?.length === initialCount) {\r\n return (\r\n \r\n {heading}\r\n \r\n
\r\n

\r\n {props.resources.headingForEmptyRequestStatus}\r\n

\r\n

\r\n {props.resources.textForEmptyRequestStatus}\r\n

\r\n \r\n \r\n {continueShoppingButtonTitle}\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n return (\r\n \r\n {heading}\r\n {table}\r\n \r\n );\r\n};\r\n\r\nexport default B2bRequestsStatusView;\r\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 { IInvoicesListViewProps } from './invoices-list';\n\nexport const InvoiceListView: React.FC = props => {\n const { header, filter, content, invoiceRequestModal, pagination } = props;\n\n return (\n \n {header}\n {invoiceRequestModal}\n {filter}\n {content}\n {pagination}\n \n );\n};\n\nexport default InvoiceListView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, ITelemetry, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport React, { useState } from 'react';\n\nimport { InvoiceModel } from '../helpers/invoice-data';\nimport { payInvoices } from '../helpers/pay-invoices';\nimport { IInvoiceErrorState } from '../invoices-list';\n\ninterface IMakePaymentData {\n invoices: InvoiceModel[];\n}\n\nexport interface IMakePaymentResources {\n makePaymentButtonText: string;\n makePaymentButtonAriaLabel: string;\n}\n\nexport interface IMakePaymentProps extends IComponentProps {\n context: ICoreContext;\n itemKey?: string;\n telemetry: ITelemetry;\n moduleId: string;\n moduleTypeName: string;\n telemetryContent?: ITelemetryContent;\n navigationUrl?: string;\n buttonReferences?: React.RefObject;\n resources: IMakePaymentResources;\n disabled?: boolean;\n\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n}\n\nexport interface IMakePaymentComponent extends IComponent {}\n\nconst onClick = async (\n _event: React.MouseEvent,\n props: IMakePaymentProps,\n setDisabled: (disabled: boolean) => void\n): Promise => {\n setDisabled(true);\n\n const propagateError = (errorState: IInvoiceErrorState): void => {\n if (props.onError) {\n props.onError(errorState, props.buttonReferences);\n }\n setDisabled(false);\n };\n\n await payInvoices(props.data.invoices, props.context.actionContext, propagateError);\n};\n\nconst MakePaymentComponentActions = {\n onClick\n};\n\n/**\n * On Click function.\n * @param input -Make payment props.\n * @param setDisabled -Set Disabled.\n * @returns Make payment component on click.\n */\nconst onClickHandler = (input: IMakePaymentProps, setDisabled: React.Dispatch>) => async (\n event: React.MouseEvent\n) => {\n await MakePaymentComponentActions.onClick(event, input, setDisabled);\n};\n\nconst MakePayment: React.FC = (input: IMakePaymentProps): JSX.Element => {\n const {\n data: { invoices }\n } = input;\n const hasInvoices = ArrayExtensions.hasElements(invoices.filter(invoice => invoice.canBePaid));\n const [disabled, setDisabled] = useState(false);\n\n return (\n \n {input.resources.makePaymentButtonText}\n \n );\n};\n\n// @ts-expect-error\nexport const MakePaymentComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'MakePayment',\n { component: MakePayment }\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Alert, Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nexport interface IInvoiceErrorProps extends IComponentProps {\n messageHeader?: string;\n errorMessage?: string;\n otherError?: string;\n showError: boolean;\n payInvoiceErrorModalOpen: boolean;\n\n errorDialogHeader: string;\n errorDialogBodyErrorTitle: string;\n errorDialogBodyErrorDescription: string;\n errorDialogFooterGoToCartButtonText: string;\n errorDialogFooterCancelButtonText: string;\n cartUrl: string;\n\n setPayInvoiceErrorModalClose(): void;\n}\n\nexport interface IInvoiceErrorComponent extends IComponent {}\n\nexport const InvoiceError: React.FC = ({\n messageHeader,\n errorMessage,\n otherError,\n showError,\n payInvoiceErrorModalOpen,\n errorDialogHeader,\n errorDialogBodyErrorTitle,\n errorDialogBodyErrorDescription,\n errorDialogFooterGoToCartButtonText,\n errorDialogFooterCancelButtonText,\n cartUrl,\n setPayInvoiceErrorModalClose\n}) => {\n const errorMessages: (string | undefined)[] = [];\n\n if (otherError) {\n errorMessages.push(otherError);\n } else {\n errorMessages.push(errorMessage);\n }\n\n const className = 'msc-pay-invoice-error-dialog';\n\n return (\n <>\n 0} color='danger' assertive aria-label={messageHeader}>\n \n {errorMessages.map((message, index) => {\n return (\n
\n {message}\n
\n );\n })}\n
\n \n \n {errorDialogHeader}\n \n \n
\n
{errorDialogBodyErrorTitle}
\n
{errorDialogBodyErrorDescription}
\n
\n
\n \n \n {errorDialogFooterGoToCartButtonText}\n \n \n {errorDialogFooterCancelButtonText}\n \n \n
\n \n );\n};\n\n// @ts-expect-error\nexport const InvoiceErrorComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'InvoiceError',\n { component: InvoiceError }\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\nexport interface IPasswordResetVerificationLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetVerificationLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetVerificationLabel;\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 { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISubscribeConfig, ISubscribeProps } from './subscribe.props.autogenerated';\n\n/**\n * Subscribe view props.\n */\nexport interface ISubscribeViewProps extends ISubscribeProps {\n subscribe: IModuleProps;\n subscribeContainer: INodeProps;\n heading: React.ReactNode;\n text: React.ReactNode;\n submitButton?: INodeProps;\n submitButtonLabelText?: string;\n subscribeForm?: INodeProps;\n emailInput?: INodeProps;\n handleText(): void;\n}\n\n/**\n * Subscribe component.\n * @extends {React.PureComponent>}\n */\nexport class Subscribe extends React.PureComponent> {\n private readonly _emailAddressInputRef: React.RefObject;\n\n public constructor(props: ISubscribeViewProps) {\n super(props);\n this._emailAddressInputRef = React.createRef();\n }\n\n public render(): JSX.Element | null {\n const { heading, paragraph } = this.props.config;\n\n const moduleClassName = 'ms-subscribe';\n\n const subscribeParagraph = paragraph && (\n \n );\n\n const subscribeHeading = heading && (\n \n );\n const viewProps = {\n ...this.props,\n handleText: this.handleTextChange,\n subscribe: {\n moduleProps: this.props,\n className: moduleClassName\n },\n subscribeContainer: {\n className: 'ms-subscribe__details'\n },\n heading: subscribeHeading,\n text: subscribeParagraph,\n subscribeForm: {\n className: 'ms-subscribe__details__form',\n tag: 'form',\n 'aria-label': this.props.resources.subscribeFormAriaLabel,\n name: 'subscribeForm',\n role: 'form',\n autoComplete: 'off'\n },\n emailInput: {\n className: 'ms-subscribe__details__form__email',\n tag: 'input',\n ref: this._emailAddressInputRef,\n type: 'email',\n 'aria-label': this.props.resources.subscribeFormEmailAriaLabel,\n placeholder: this.props.resources.subscribeEmailPlaceholderText\n },\n submitButton: {\n className: 'ms-subscribe__details__form__submit',\n tag: Button,\n 'aria-label': this.props.resources.subscribeFormSubmitAriaLabel,\n type: 'submit',\n title: this.props.resources.subscribeButtonLabel\n },\n submitButtonLabelText: this.props.resources.subscribeButtonLabel\n };\n\n return this.props.renderView(viewProps);\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 this.props.config.paragraph = event.target.value;\n };\n}\n\nexport default Subscribe;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync, IActionContext } from '@msdyn365-commerce/core';\nimport { getCartState } from '@msdyn365-commerce/global-state';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { IInvoiceErrorState } from '../invoices-list';\nimport { IPayableInvoice } from './invoice-data';\n\nexport type ICartActionFailureReason = 'EMPTYINPUT' | 'CARTACTIONFAILED';\nexport interface IAddInvoicesToCartFailureResult {\n failureReason: ICartActionFailureReason;\n}\n\nexport const payInvoices = async (\n invoices: IPayableInvoice[],\n actionContext: IActionContext,\n onError: (errorState: IInvoiceErrorState) => void\n) => {\n const invoicesToAdd: string[] = invoices.filter(invoice => invoice.canBePaid).map(invoice => invoice.id);\n\n if (!ArrayExtensions.hasElements(invoicesToAdd)) {\n onError({ errorMessage: '', errorReason: { failureReason: 'EMPTYINPUT' } });\n return;\n }\n\n const cartState = await getCartState(actionContext);\n const result = await cartState.addInvoicesToCart({ invoiceIds: invoicesToAdd });\n\n if (result.status !== 'SUCCESS') {\n onError({\n errorMessage: '',\n errorReason: { failureReason: 'CARTACTIONFAILED' },\n otherError: result.errorDetails?.LocalizedMessage,\n errorCode: result.errorDetails?.ErrorResourceId\n });\n return;\n }\n\n const cartUrl = getUrlSync('cart', actionContext);\n if (cartUrl) {\n window?.location.assign(cartUrl);\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\nexport interface IPasswordResetVerificationLoadingIcon {\n className: string;\n}\n\nconst PasswordResetVerificationLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default PasswordResetVerificationLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, IDateFormatOptions, isOboRequest, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { IInvoiceErrorState, IPayInvoiceResources, PayInvoiceComponent } from '@msdyn365-commerce-modules/invoice';\nimport React from 'react';\n\nimport { InvoiceDetailsModel } from '../helpers/invoice-data';\n\nexport interface IInvoiceDetailsHeaderData {\n invoiceDetails: InvoiceDetailsModel;\n}\n\nexport interface IInvoiceDetailsHeaderResources extends IPayInvoiceResources {\n invoiceOrderItem: string;\n invoiceOrderItems: string;\n invoiceIdLabel: string;\n invoicePlacedByLabel: string;\n invoiceAmountDueText: string;\n invoicePaymentDueDateText: string;\n}\n\nexport interface IInvoiceDetailsHeaderProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n resources: IInvoiceDetailsHeaderResources;\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n}\n\nexport interface IInvoiceDetailsHeaderComponent extends IComponent {}\n\nconst formatShortDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'numeric', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\nconst formatLongDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\nconst formatAmount = (context: ICoreContext, amount: number | undefined, currencyCode: string | undefined) => {\n if (amount === undefined) {\n return '';\n }\n return context.cultureFormatter.formatCurrency(amount, currencyCode);\n};\n\nconst InvoiceDetailsHeader: React.FC = (props: IInvoiceDetailsHeaderProps): JSX.Element => {\n const {\n className,\n data: { invoiceDetails },\n resources,\n onError\n } = props;\n\n const invoiceNumberText = resources.invoiceIdLabel.replace('{0}', invoiceDetails.id);\n\n const invoiceOrderItemsText =\n invoiceDetails.lines.length === 1\n ? resources.invoiceOrderItem\n : resources.invoiceOrderItems.replace('{0}', invoiceDetails.lines.length.toString());\n\n const invoiceInfoContainerClassName = `${className}__invoice-info-container`;\n const orderInfoContainerClassName = `${invoiceInfoContainerClassName}__order-info-container`;\n const orderInfoClassName = `${orderInfoContainerClassName}__order-info`;\n const orderMainInfoClassName = `${orderInfoClassName}__main-info`;\n const orderDetailsClassName = `${orderInfoClassName}__details`;\n `${className}__actions`;\n const actionsClassName = `${className}__actions`;\n const amountSummaryClassName = `${invoiceInfoContainerClassName}__amount-summary`;\n const orderDate = formatShortDate(props.context, invoiceDetails.invoiceDate);\n\n const dueDate = formatLongDate(props.context, invoiceDetails.dueDate);\n const dueDateText = resources.invoicePaymentDueDateText.replace('{0}', dueDate);\n const isOnBehalfOfRequest = isOboRequest(props.context.request);\n\n return (\n
\n
{invoiceNumberText}
\n
\n
\n
\n
\n
\n {resources.invoicePlacedByLabel}\n {invoiceDetails.customerName}\n
\n
\n
\n
{orderDate}
\n
{invoiceOrderItemsText}
\n
\n
\n
\n
\n
{resources.invoiceAmountDueText}
\n
\n {formatAmount(props.context, invoiceDetails.amountDue, invoiceDetails.currencyCode)}\n
\n
{dueDateText}
\n
\n
\n
\n \n
\n
\n );\n};\n\nexport const InvoiceDetailsHeaderComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoiceDetailsHeaderComponent\n>('InvoiceDetailsHeaderComponent', { component: InvoiceDetailsHeader });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { IInvoicePaymentDetails } from '../helpers/invoice-data';\n\nexport interface IInvoiceDetailsPaymentDetailsData {\n invoicePaymentDetails: IInvoicePaymentDetails;\n}\n\nexport interface IInvoiceDetailsPaymentDetailsResources {\n invoicePaymentDiscounts: string;\n invoicePaymentSubtotal: string;\n invoicePaymentCharges: string;\n invoicePaymentTax: string;\n invoicePaymentInvoiceTotal: string;\n}\n\nexport interface IInvoiceDetailsPaymentDetailsProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n resources: IInvoiceDetailsPaymentDetailsResources;\n}\n\nexport interface IInvoiceDetailsPaymentDetailsComponent extends IComponent {}\n\ninterface IInvoicePaymentLineProps {\n label: string;\n value: number;\n className: string;\n}\n\nconst InvoiceDetailsPaymentDetails: React.FC = (\n props: IInvoiceDetailsPaymentDetailsProps\n): JSX.Element | null => {\n const {\n className,\n data: { invoicePaymentDetails },\n resources\n } = props;\n\n const lineClassName = `${className}__line`;\n\n const lines: IInvoicePaymentLineProps[] = [];\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalDiscount)) {\n lines.push({\n label: resources.invoicePaymentDiscounts,\n value: invoicePaymentDetails.totalDiscount,\n className: `${lineClassName}-total-discount`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.subtotal)) {\n lines.push({\n label: resources.invoicePaymentSubtotal,\n value: invoicePaymentDetails.subtotal,\n className: `${lineClassName}-subtotal`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalCharges)) {\n lines.push({\n label: resources.invoicePaymentCharges,\n value: invoicePaymentDetails.totalCharges,\n className: `${lineClassName}-total-charges`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalTax)) {\n lines.push({\n label: resources.invoicePaymentTax,\n value: invoicePaymentDetails.totalTax,\n className: `${lineClassName}-total-tax`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalAmount)) {\n lines.push({\n label: resources.invoicePaymentInvoiceTotal,\n value: invoicePaymentDetails.totalAmount,\n className: `${lineClassName}-total-amount`\n });\n }\n\n if (!ArrayExtensions.hasElements(lines)) {\n return null;\n }\n\n return (\n
\n {lines.map(line => {\n return (\n
\n
{line.label}
\n
\n {props.context.cultureFormatter.formatCurrency(line.value, invoicePaymentDetails.currencyCode)}\n
\n
\n );\n })}\n
\n );\n};\n\nexport const InvoiceDetailsPaymentDetailsComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoiceDetailsPaymentDetailsComponent\n>('InvoiceDetailsPaymentDetailsComponent', { component: InvoiceDetailsPaymentDetails });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, IImageSettings, Image, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { SalesInvoiceLine } from '@msdyn365-commerce/retail-proxy';\nimport { getFallbackImageUrl, getProductPageUrlSync, ObjectExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport React from 'react';\n\nimport { IInvoiceProductLine, InvoiceDetailsModel } from '../helpers/invoice-data';\n\nexport interface IInvoiceDetailsProductsData {\n invoiceDetails: InvoiceDetailsModel;\n}\n\nexport interface IInvoiceDetailsProductsResources {\n invoiceProductColor: string;\n invoiceProductSize: string;\n invoiceProductStyle: string;\n invoiceQuantity: string;\n}\n\nexport interface IInvoiceDetailsProductsProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n imageSettings?: IImageSettings;\n resources: IInvoiceDetailsProductsResources;\n}\n\nexport interface IInvoiceDetailsProductsComponent extends IComponent {}\n\nconst _renderProductDimensions = (\n className: string,\n resources: IInvoiceDetailsProductsResources,\n product: SalesInvoiceLine\n): JSX.Element => {\n return (\n
\n {StringExtensions.isNullOrWhitespace(product.ColorName) ? null : (\n
{resources.invoiceProductColor.replace('{0}', product.ColorName!)}
\n )}\n {StringExtensions.isNullOrWhitespace(product.SizeName) ? null : (\n
{resources.invoiceProductSize.replace('{0}', product.SizeName!)}
\n )}\n {StringExtensions.isNullOrWhitespace(product.StyleName) ? null : (\n
{resources.invoiceProductStyle.replace('{0}', product.StyleName!)}
\n )}\n
\n );\n};\n\nconst _renderProductImage = (\n className: string,\n context: ICoreContext,\n product: IInvoiceProductLine,\n imageSettings?: IImageSettings\n): JSX.Element | null => {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=80&h=94&m=6', w: 0, h: 0 },\n lg: { q: 'w=148&h=174&m=6', w: 0, h: 0 },\n xl: { q: 'w=148&h=174&m=6', w: 0, h: 0 }\n },\n lazyload: true,\n cropFocalRegion: true\n };\n\n if (imageSettings) {\n imageSettings.cropFocalRegion = true;\n }\n\n const fallbackImage = getFallbackImageUrl(\n product.ItemId,\n context.actionContext.requestContext.apiSettings,\n context.request.app?.config?.OmniChannelMedia\n );\n return (\n \n );\n};\n\nconst formatAmount = (context: ICoreContext, amount: number | undefined, currencyCode: string | undefined) => {\n if (amount === undefined) {\n return '';\n }\n return context.cultureFormatter.formatCurrency(amount, currencyCode);\n};\n\nconst InvoiceDetailsProducts: React.FC = (props: IInvoiceDetailsProductsProps): JSX.Element => {\n const {\n className,\n data: { invoiceDetails },\n resources\n } = props;\n\n const productLineClass = `${className}__product-line`;\n const productLineInfoContainerClass = `${productLineClass}__product-info-container`;\n const productLineDetailsClass = `${productLineInfoContainerClass}__product-details`;\n const productLineSmallDetailsClass = `${productLineDetailsClass}__small-details`;\n\n return (\n
\n {invoiceDetails.lines.map(product => {\n const quantity = product.Quantity || 1;\n\n let productUrl = '';\n if (!ObjectExtensions.isNullOrUndefined(product.ProductName) && !ObjectExtensions.isNullOrUndefined(product.ProductId)) {\n productUrl = getProductPageUrlSync(product.ProductName, product.ProductId, props.context.actionContext);\n }\n\n return (\n
\n
\n {_renderProductImage(`${productLineInfoContainerClass}__product-image`, props.context, product)}\n
\n \n {product.ProductName}\n \n
\n {_renderProductDimensions(`${productLineSmallDetailsClass}__dimensions`, resources, product)}\n
\n {formatAmount(props.context, product.Price, invoiceDetails.currencyCode)}\n
\n
\n {resources.invoiceQuantity.replace('{0}', quantity.toString())}\n
\n
\n
\n
\n
\n {formatAmount(props.context, product.NetAmount, invoiceDetails.currencyCode)}\n
\n
\n );\n })}\n
\n );\n};\n\nexport const InvoiceDetailsProductsComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoiceDetailsProductsComponent\n>('InvoiceDetailsProductsComponent', { component: InvoiceDetailsProducts });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { InvoicePaidStatus, OrderInvoice, SalesInvoice, SalesInvoiceLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { IPayableInvoice } from '@msdyn365-commerce-modules/invoice';\n\nexport interface IInvoicePaymentDetails {\n totalDiscount?: number;\n subtotal?: number;\n totalCharges?: number;\n totalTax?: number;\n totalAmount?: number;\n currencyCode?: string;\n}\n\nexport interface IInvoiceProductLine extends SalesInvoiceLine {\n primaryImageUrl?: string;\n}\n\n/**\n * Represents invoice details data model.\n */\nexport class InvoiceDetailsModel implements IPayableInvoice, IInvoicePaymentDetails {\n public id: string;\n\n public invoiceDate?: Date;\n\n public customerAccountNumber?: string;\n\n public customerName?: string;\n\n public dueDate?: Date;\n\n public amountDue?: number;\n\n public status?: InvoicePaidStatus;\n\n public lines: IInvoiceProductLine[];\n\n public totalDiscount?: number;\n\n public subtotal?: number;\n\n public totalCharges?: number;\n\n public totalTax?: number;\n\n public totalAmount?: number;\n\n public currencyCode?: string;\n\n public constructor(invoice: OrderInvoice, invoiceDetails: SalesInvoice, products: SimpleProduct[]) {\n this.id = invoice.Id || '';\n this.invoiceDate = invoice.InvoiceDate ? new Date(invoice.InvoiceDate) : undefined;\n this.customerName = invoice.CustomerName;\n this.dueDate = invoice.InvoiceDueDate ? new Date(invoice.InvoiceDueDate) : undefined;\n this.amountDue = invoice.AmountBalance;\n this.status = invoice.InvoicePaidStatusValue;\n this.lines = (invoiceDetails.SalesInvoiceLine || []).map(line => {\n const productLine: IInvoiceProductLine = {\n ...line,\n primaryImageUrl: products.find(product => product.RecordId === line.ProductId)?.PrimaryImageUrl\n };\n return productLine;\n });\n\n this.totalDiscount = invoiceDetails.TotalDiscount;\n this.subtotal = invoiceDetails.InvoiceSubtotal;\n this.totalCharges = invoiceDetails.TotalCharges;\n this.totalTax = invoiceDetails.TotalTaxAmount;\n this.totalAmount = invoice.TotalAmount;\n this.currencyCode = invoice.CurrencyCode;\n }\n\n public get canBePaid(): boolean {\n return this.status !== InvoicePaidStatus.Paid;\n }\n}\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 { SalesInvoiceLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { IInvoiceErrorState, InvoiceErrorComponent } from '@msdyn365-commerce-modules/invoice';\nimport { getSimpleProductsAction, ProductInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { InvoiceDetailsHeaderComponent } from './components/invoice-details-header';\nimport { InvoiceDetailsPaymentDetailsComponent } from './components/invoice-details-payment-summary';\nimport { InvoiceDetailsProductsComponent } from './components/invoice-details-products';\nimport { InvoiceDetailsModel } from './helpers/invoice-data';\nimport { IInvoiceDetailsData } from './invoice-details.data';\nimport { IInvoiceDetailsProps } from './invoice-details.props.autogenerated';\n\nexport interface IInvoiceDetailsViewState {\n invoiceDetails?: InvoiceDetailsModel;\n payInvoiceErrorModalOpen?: boolean;\n errorState?: IInvoiceErrorState;\n}\n\nexport interface IInvoiceDetailsViewProps extends IInvoiceDetailsProps {\n moduleProps: IModuleProps;\n header: JSX.Element;\n products: JSX.Element;\n paymentDetails: JSX.Element;\n payInvoiceError?: JSX.Element;\n}\n\n/**\n * InvoiceDetails component.\n * @extends {React.PureComponent>}\n */\nclass InvoiceDetails extends React.PureComponent, IInvoiceDetailsViewState> {\n private static readonly _className: string = 'msc-invoice-details';\n\n public constructor(props: IInvoiceDetailsProps) {\n super(props);\n\n this.state = { errorState: { errorMessage: '', otherError: '' } };\n this._onAddToCartFailed = this._onAddToCartFailed.bind(this);\n this._setPayInvoiceErrorModalClose = this._setPayInvoiceErrorModalClose.bind(this);\n }\n\n public async componentDidMount(): Promise {\n const invoice = await this.props.data.invoice;\n const invoiceDetails = await this.props.data.invoiceDetails;\n\n const products = await this._getProducts(invoiceDetails.SalesInvoiceLine, invoiceDetails.ChannelId);\n\n const invoiceDetailsModel = new InvoiceDetailsModel(invoice, invoiceDetails, products);\n\n this.setState({\n invoiceDetails: invoiceDetailsModel,\n payInvoiceErrorModalOpen: false,\n errorState: { errorMessage: '', otherError: '' }\n });\n }\n\n public render(): JSX.Element | null {\n if (!this.state.invoiceDetails) {\n return null;\n }\n\n const header = this._renderHeader();\n const products = this._renderProducts();\n const paymentDetails = this._renderPaymentDetails();\n const payInvoiceError = this._renderInvoiceErrors();\n\n const props: IInvoiceDetailsViewProps = {\n ...(this.props as IInvoiceDetailsProps),\n moduleProps: {\n moduleProps: this.props,\n className: InvoiceDetails._className\n },\n header,\n products,\n paymentDetails,\n payInvoiceError\n };\n\n return this.props.renderView(props);\n }\n\n private async _getProducts(invoiceLines: SalesInvoiceLine[] = [], channelId?: number): Promise {\n const productInputs = invoiceLines\n .filter(product => product.ProductId)\n .map(\n product =>\n new ProductInput(\n product.ProductId!,\n this.props.context.request.apiSettings,\n channelId,\n undefined,\n this.props.context.actionContext.requestContext\n )\n );\n return getSimpleProductsAction(productInputs, this.props.context.actionContext);\n }\n\n private _renderHeader(): JSX.Element {\n const invoiceDetails = this.state.invoiceDetails!;\n return (\n \n );\n }\n\n private _renderProducts(): JSX.Element {\n const invoiceDetails = this.state.invoiceDetails!;\n const { imageSettings } = this.props.config;\n return (\n \n );\n }\n\n private _renderPaymentDetails(): JSX.Element {\n const invoiceDetails = this.state.invoiceDetails!;\n return (\n \n );\n }\n\n private _onAddToCartFailed(newErrorState: IInvoiceErrorState): void {\n const errorState = { ...newErrorState };\n errorState.errorHost = 'ADDINVOICETOCART';\n\n // check for errorcode and otherError which contains the LocalizedMessage from API\n if (\n errorState &&\n errorState.errorCode === 'Microsoft_Dynamics_Commerce_Runtime_InvoiceLineAlreadyExistsInCart' &&\n errorState.otherError\n ) {\n this.setState({ errorState: errorState });\n }\n\n this.setState({ payInvoiceErrorModalOpen: true });\n }\n\n private _setPayInvoiceErrorModalClose(): void {\n this.setState({ payInvoiceErrorModalOpen: false });\n }\n\n private _renderInvoiceErrors(): JSX.Element {\n const {\n resources: {\n payInvoiceErrorDialogHeader,\n payInvoiceErrorDialogBodyErrorTitle,\n payInvoiceErrorDialogBodyErrorDescription,\n payInvoiceErrorDialogFooterGoToCartButtonText,\n payInvoiceErrorDialogFooterCancelButtonText\n }\n } = this.props;\n\n const cartUrl = getUrlSync('cart', this.props.context.actionContext) || '';\n\n const errorClassName = `${InvoiceDetails._className}__errors`;\n\n return (\n \n );\n }\n}\n\nexport default InvoiceDetails;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport classnames from 'classnames';\nimport React from 'react';\n\nexport interface IInvoicesTableHeaderResources {\n invoicesText: string;\n invoiceNumberText: string;\n invoiceDateMobileText: string;\n invoiceDateText: string;\n invoiceUsersText: string;\n invoiceAmountText: string;\n invoiceDueDateText: string;\n invoiceAmountDueText: string;\n invoiceStatusText: string;\n invoiceActionsText: string;\n invoiceListSelectAllRadioAriaLabelText: string;\n}\n\nexport interface IInvoicesTableHeaderProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n\n isSelectedAll: boolean;\n isMobile: boolean;\n isAdmin: boolean;\n\n resources: IInvoicesTableHeaderResources;\n\n onSelectAll(isSelected: boolean): void;\n}\n\nexport interface IInvoicesTableHeaderComponent extends IComponent {}\n\nconst getDesktopHeaderCells = (props: IInvoicesTableHeaderProps, rowClassName: string, switchCheckedState: () => void) => {\n const { resources } = props;\n return (\n <>\n \n \n \n {resources.invoiceNumberText}\n {resources.invoiceDateText}\n {resources.invoiceUsersText}\n {resources.invoiceAmountText}\n {resources.invoiceDueDateText}\n {resources.invoiceAmountDueText}\n {resources.invoiceStatusText}\n {resources.invoiceActionsText}\n \n );\n};\n\nconst getMobileHeaderCells = (props: IInvoicesTableHeaderProps, rowClassName: string, switchCheckedState: () => void) => {\n const { resources } = props;\n return (\n <>\n \n \n \n {resources.invoicesText}\n {resources.invoiceDateMobileText}\n \n {` `}\n {/* Actions */}\n \n );\n};\n\nconst InvoicesTableHeader: React.FC = (props: IInvoicesTableHeaderProps): JSX.Element => {\n const rowClassName = `${props.className}__row`;\n\n const switchCheckedState = () => {\n props.onSelectAll(!props.isSelectedAll);\n };\n\n let headerCells: JSX.Element;\n if (props.isMobile) {\n headerCells = getMobileHeaderCells(props, rowClassName, switchCheckedState);\n } else {\n headerCells = getDesktopHeaderCells(props, rowClassName, switchCheckedState);\n }\n\n return (\n \n {headerCells}\n \n );\n};\n\nexport const InvoicesTableHeaderComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoicesTableHeaderComponent\n>('InvoicesTableHeaderComponent', { component: InvoicesTableHeader });\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 PasswordResetVerificationButtonComponent from './components/password-reset-verification-button';\nimport PasswordResetVerificationErrorComponent from './components/password-reset-verification-error';\nimport PasswordResetVerificationInputComponent from './components/password-reset-verification-input';\nimport PasswordResetVerificationLabelComponent from './components/password-reset-verification-label';\nimport PasswordResetVerificationLoadingIconComponent from './components/password-reset-verification-loading-icon';\nimport PasswordResetVerificationLoadingMessageComponent from './components/password-reset-verification-loading-message';\nimport PasswordResetVerificationSuccessComponent from './components/password-reset-verification-success';\nimport { IPasswordResetVerificationConfig, IPasswordResetVerificationProps } from './password-reset-verification.props.autogenerated';\n\nexport interface IPasswordResetVerificationViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetVerificationItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationLocalAccount {\n localAccount: INodeProps;\n verificationControlWrapper: INodeProps;\n items: IPasswordResetVerificationItem[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationButtonsWrapper: INodeProps;\n verificationButtons: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetVerificationLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationViewProps {\n className: string;\n viewState: IPasswordResetVerificationViewState;\n loading: IPasswordResetVerificationLoading;\n passwordResetVerification: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetVerificationLocalAccount: IPasswordResetVerificationLocalAccount;\n}\n\n/**\n *\n * PasswordResetVerification component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordResetVerification extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset-verification';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n @observable private templateVersion: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IPasswordResetVerificationProps) {\n super(props);\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.templateVersion = '';\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: IPasswordResetVerificationProps,\n nextState: IPasswordResetVerificationViewState\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 passwordResetVerification: {\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 )\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 passwordResetVerificationLocalAccount: 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 _prePopulateData(): void {\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 if (obj.ID.toLowerCase() === 'email') {\n this.emailRegex = obj.PAT;\n } else if (obj.ID.toLowerCase() === 'emailverificationcontrol') {\n this.templateVersion = 'v2';\n }\n });\n if (!this.templateVersion) {\n this.templateVersion = 'v1';\n }\n }\n }\n\n private _updateErrorMessage(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n verifying_blurb: this.props.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(): IPasswordResetVerificationLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n items: [\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n )\n ],\n successMessage: [\n ,\n\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n \n ],\n verificationButtonsWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n verificationButtons: [\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(\n id: string,\n type: string,\n labelText: string,\n maxLength?: string,\n pattern?: string,\n cssClassName?: string\n ): IPasswordResetVerificationItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n\n private readonly getValue = (v1Value: string, v2Value: string): string => {\n if (this.templateVersion) {\n return this.templateVersion === 'v1' ? v1Value : v2Value;\n }\n return '';\n };\n}\n\nexport default PasswordResetVerification;\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 { ICountryPickerViewProps } from './country-picker';\n\n/**\n * Functional component which renders country picker module.\n * @param props - Configuration for the country picker component.\n * @returns React.FC - Functional component of the country picker module.\n */\nexport const countryPickerView: React.FC = (props: ICountryPickerViewProps) => {\n const {\n isModalOpen,\n modalContainer,\n modalHeaderContainer,\n modalBodyContainer,\n heading,\n modalFooterContainer,\n subheading,\n link,\n countryList,\n stayOnCurrentSiteButton\n } = props;\n return isModalOpen && countryList ? (\n \n \n {heading}\n {subheading}\n \n \n {countryList.map(country => (\n <>{country}\n ))}\n \n \n {stayOnCurrentSiteButton}\n {link}\n \n \n ) : null;\n};\n\nexport default countryPickerView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, {\n IComponent,\n IComponentProps,\n ICoreContext,\n IDateFormatOptions,\n isOboRequest,\n msdyn365Commerce\n} from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { getInvoiceDetailsPageUrlSync, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, format } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React, { useState } from 'react';\n\nimport { InvoiceModel } from '../../../helpers/invoice-data';\nimport { getInvoiceStatusText, IInvoiceStatusResources } from '../../../helpers/invoice-status';\nimport { IInvoiceErrorState } from '../../../invoices-list';\nimport { IPayInvoiceResources, PayInvoiceComponent } from '../../pay-invoice-component';\nimport { RequestInvoiceButton } from '../../request-invoice-button';\n\ninterface IInvoicesTableRowData {\n invoice: InvoiceModel;\n index: number;\n customer: Customer;\n}\n\nexport interface IInvoicesTableRowResources extends IInvoiceStatusResources, IPayInvoiceResources {\n invoiceCurrentUser: string;\n invoiceViewDetailsButtonText: string;\n invoiceViewDetailsButtonAriaLabel: string;\n invoiceActionsButtonTextAriaLabel?: string;\n invoiceActionsButtonIsOnBehalfOfTextAriaLabel?: string;\n invoiceRequestButtonLabel: string;\n invoiceListSelectRadioAriaLabelText: string;\n}\n\nexport interface IInvoicesTableRowProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n isMobile: boolean;\n invoiceReferences?: React.RefObject;\n payInvoiceReferences?: React.RefObject;\n resources: IInvoicesTableRowResources;\n\n onChange(): void;\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n onRequestInvoice?(invoice: InvoiceModel, requestInvoiceButtonReference: React.RefObject): void;\n}\n\nexport interface IInvoicesTableRowComponent extends IComponent {}\n\nconst formatAmount = (context: ICoreContext, amount: number | undefined, currencyCode: string | undefined) => {\n if (amount === undefined) {\n return '';\n }\n return context.cultureFormatter.formatCurrency(amount, currencyCode);\n};\n\nconst formatDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\n/**\n * Request specific invoice function.\n * @param props -Invoice table row props.\n * @param requestInvoiceButtonReference -Reference button.\n * @returns Call Request Invoice.\n */\nconst onRequestSpecificInvoice = (\n props: IInvoicesTableRowProps,\n requestInvoiceButtonReference: React.RefObject\n) => () => {\n props.onRequestInvoice!(props.data.invoice, requestInvoiceButtonReference);\n};\n\nconst getDesktopRowCells = (props: IInvoicesTableRowProps, onSelectLine: () => void) => {\n const {\n data: { invoice, customer }\n } = props;\n\n const isCurrentUser =\n !StringExtensions.isNullOrWhitespace(customer.AccountNumber) && customer.AccountNumber === invoice.customerAccountNumber;\n\n const linkToInvoiceDetails = getInvoiceDetailsPageUrlSync(props.data.invoice.id, props.context.actionContext);\n const invoiceRowArialabel = format(props.resources.invoiceListSelectRadioAriaLabelText, invoice.id);\n return (\n <>\n \n \n \n \n \n {invoice.id}\n \n \n \n {formatDate(props.context, invoice.invoiceDate)}\n \n \n {invoice.customerName}\n {isCurrentUser ? {props.resources.invoiceCurrentUser} : null}\n \n {formatAmount(props.context, invoice.amount, invoice.currencyCode)}\n \n {formatDate(props.context, invoice.dueDate)}\n \n {formatAmount(props.context, invoice.amountDue, invoice.currencyCode)}\n \n {getInvoiceStatusText(props.resources, invoice.status)}\n \n {extraActionsPopup(props)}\n \n );\n};\n\nlet setShowPreviousActions: React.Dispatch> | undefined;\n\n/**\n * On Click view details function.\n * @param linkToInvoiceDetails -Link to invoice details.\n * @returns Go to invoice details.\n */\nconst onClickViewDetails = (linkToInvoiceDetails: string) => () => {\n if (MsDyn365.isBrowser) {\n window.location.href = linkToInvoiceDetails;\n }\n return;\n};\n\n/**\n * Toggle function.\n * @param isShowActions -Link to invoice details.\n * @param setShowActions -Link to invoice details.\n * @returns Go to invoice details.\n */\nconst toggle = (isShowActions: boolean, setShowActions: React.Dispatch>) => () => {\n const shouldShowActions = !isShowActions;\n if (shouldShowActions) {\n if (setShowPreviousActions) {\n setShowPreviousActions(false);\n }\n setShowActions(shouldShowActions);\n setShowPreviousActions = setShowActions;\n } else {\n setShowPreviousActions = undefined;\n setShowActions(shouldShowActions);\n }\n};\n\nconst extraActionsPopup = (props: IInvoicesTableRowProps): JSX.Element | null => {\n const {\n resources: {\n invoiceViewDetailsButtonAriaLabel,\n invoiceViewDetailsButtonText,\n invoiceActionsButtonTextAriaLabel,\n invoiceActionsButtonIsOnBehalfOfTextAriaLabel\n },\n data: { index }\n } = props;\n\n const [showActions, setShowActions] = useState(false);\n const isOnBehalfOfRequest = isOboRequest(props.context.request);\n\n const linkToInvoiceDetails = getInvoiceDetailsPageUrlSync(props.data.invoice.id, props.context.actionContext);\n\n const className = `${props.className}__extra-actions-cell`;\n const actionsContainerClassName = `${className}__actions-container`;\n const payInvoiceClassName = `${actionsContainerClassName}__pay-invoice`;\n return (\n
\n \n {showActions && !isOnBehalfOfRequest && (\n
\n \n {invoiceViewDetailsButtonText}\n \n \n \n
\n )}\n
\n );\n};\n\nconst getMobileRowCells = (props: IInvoicesTableRowProps, onSelectLine: () => void) => {\n const {\n data: { invoice }\n } = props;\n\n const linkToInvoiceDetails = getInvoiceDetailsPageUrlSync(props.data.invoice.id, props.context.actionContext);\n const invoiceRowArialabel = format(props.resources.invoiceListSelectRadioAriaLabelText, invoice.id);\n\n return (\n <>\n \n \n \n \n \n {invoice.id}\n \n
\n {invoice.customerName}\n \n \n {formatDate(props.context, invoice.dueDate)}\n
\n {getInvoiceStatusText(props.resources, invoice.status)}\n \n {extraActionsPopup(props)}\n \n );\n};\n\nconst InvoicesTableRow: React.FC = (props: IInvoicesTableRowProps): JSX.Element => {\n const {\n data: { invoice }\n } = props;\n\n const onSelectLine = () => {\n invoice.isSelected = !invoice.isSelected;\n props.onChange();\n };\n\n let rowCells: JSX.Element;\n if (props.isMobile) {\n rowCells = getMobileRowCells(props, onSelectLine);\n } else {\n rowCells = getDesktopRowCells(props, onSelectLine);\n }\n\n return {rowCells};\n};\n\nexport const InvoicesTableRowComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoicesTableRowComponent\n>('InvoicesTableRowComponent', { component: InvoicesTableRow });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { InvoicePaidStatus, OrderInvoice } from '@msdyn365-commerce/retail-proxy';\n\nexport interface IPayableInvoice {\n readonly id: string;\n readonly canBePaid: boolean;\n}\n\n/**\n * Represents invoice data model.\n */\nexport class InvoiceModel implements IPayableInvoice {\n public id: string;\n\n public invoiceDate?: Date;\n\n public customerAccountNumber?: string;\n\n public customerName?: string;\n\n public amount?: number;\n\n public dueDate?: Date;\n\n public amountDue?: number;\n\n public status?: InvoicePaidStatus;\n\n public currencyCode?: string;\n\n public isSelected: boolean;\n\n public constructor(invoice: OrderInvoice) {\n this.id = invoice.Id || '';\n this.invoiceDate = invoice.InvoiceDate ? new Date(invoice.InvoiceDate) : undefined;\n this.customerAccountNumber = invoice.CustomerAccountNumber;\n this.customerName = invoice.CustomerName;\n this.amount = invoice.TotalAmount;\n this.dueDate = invoice.InvoiceDueDate ? new Date(invoice.InvoiceDueDate) : undefined;\n this.amountDue = invoice.AmountBalance;\n this.status = invoice.InvoicePaidStatusValue;\n this.currencyCode = invoice.CurrencyCode;\n\n this.isSelected = false;\n }\n\n public get canBePaid(): boolean {\n return this.status !== InvoicePaidStatus.Paid;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { InvoicePaidStatus } from '@msdyn365-commerce/retail-proxy';\n\nexport interface IInvoiceStatusResources {\n invoiceStatusNone: string;\n invoiceStatusUnpaid: string;\n invoiceStatusPartiallyPaid: string;\n invoiceStatusPaid: string;\n}\n\nexport const getInvoiceStatusText = (resources: IInvoiceStatusResources, invoiceStatus: InvoicePaidStatus | undefined) => {\n switch (invoiceStatus) {\n case InvoicePaidStatus.None:\n return resources.invoiceStatusNone;\n\n case InvoicePaidStatus.Unpaid:\n return resources.invoiceStatusUnpaid;\n\n case InvoicePaidStatus.PartiallyPaid:\n return resources.invoiceStatusPartiallyPaid;\n\n case InvoicePaidStatus.Paid:\n return resources.invoiceStatusPaid;\n default:\n return '';\n }\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './invoice-data';\nexport * from './invoice-status';\nexport * from './pay-invoices';\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 { IB2bRequestsTileViewProps } from './b2b-requests-tile';\n\nconst B2bRequestsTileView: React.FC = props => {\n const { b2bRequestsTile, heading, links } = props;\n\n return (\n \n {heading}\n {links}\n \n );\n};\n\nexport default B2bRequestsTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { EnumExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, Popover } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { IInvoiceStatusResources } from '../helpers/invoice-status';\n\nexport interface IInvoicesFilterResources extends IInvoiceStatusResources {\n invoicesFilterShowAll: string;\n}\n\nexport interface IInvoicesFilterProps extends IComponentProps {\n className: string;\n disabled: boolean;\n\n resources: IInvoicesFilterResources;\n\n currentState: InvoicesFilterState;\n onFilterStateChanged(state: InvoicesFilterState): void;\n}\n\nexport enum InvoicesFilterState {\n ShowAll,\n Paid,\n PartiallyPaid,\n Unpaid\n}\n\nconst getInvoicesFilterStateResources = (filterState: InvoicesFilterState, resources: IInvoicesFilterResources): string => {\n switch (filterState) {\n case InvoicesFilterState.ShowAll:\n return resources.invoicesFilterShowAll;\n case InvoicesFilterState.Paid:\n return resources.invoiceStatusPaid;\n case InvoicesFilterState.PartiallyPaid:\n return resources.invoiceStatusPartiallyPaid;\n case InvoicesFilterState.Unpaid:\n return resources.invoiceStatusUnpaid;\n default:\n throw new Error('Failed to retrieve resource description for unknown invoices filter state.');\n }\n};\n\n/**\n * On Click function.\n * @param onStateClick -Invoice filter state function.\n * @param filterState -Invoice filter state.\n * @returns Set Invoice filter state.\n */\nconst onClickHandler = (onStateClick: (filterState: InvoicesFilterState) => void, filterState: InvoicesFilterState) => () => {\n onStateClick(filterState);\n};\n\nconst renderFilterStateItem = (\n filterState: InvoicesFilterState,\n resources: IInvoicesFilterResources,\n className: string,\n onStateClick: (filterState: InvoicesFilterState) => void\n): React.ReactNode => {\n const stateStringRepresentation = InvoicesFilterState[filterState];\n\n return (\n \n );\n};\n\nconst InvoicesFilter: React.FC = (props: IInvoicesFilterProps) => {\n const popoverRef = React.createRef();\n const [popoverState, setPopoverState] = React.useState(false);\n const togglePopover = React.useCallback(() => {\n setPopoverState(!popoverState);\n }, [popoverState]);\n\n const [filterState, setFilterState] = React.useState(props.currentState);\n\n const onFilterStateClick = (clickedState: InvoicesFilterState) => {\n setFilterState(clickedState);\n setPopoverState(false);\n props.onFilterStateChanged(clickedState);\n };\n\n return (\n
\n \n {getInvoicesFilterStateResources(filterState, props.resources)}\n \n \n {EnumExtensions.getEnumValues(InvoicesFilterState).map(state => {\n return renderFilterStateItem(state, props.resources, props.className, onFilterStateClick);\n })}\n \n
\n );\n};\n\nexport const InvoicesFilterComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoicesFilterProps\n>('InvoicesFilterComponent', { component: InvoicesFilter });\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 IPasswordResetVerificationInputProps {\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 IPasswordResetVerificationInput {\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 PasswordResetVerificationInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n onChange\n}) => (\n \n);\n\nexport default PasswordResetVerificationInput;\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { getUrlSync } from '@msdyn365-commerce/core';\r\nimport { IB2bRequestsStatusViewProps } from '@msdyn365-commerce-modules/account-management';\r\nimport { Button, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { IB2bRequestsStatusProps, IB2bRequestsStatusResources } from '../definition-extensions/b2b-requests-status.ext.props.autogenerated';\r\n\r\n/**\r\n * B2b Request status View.\r\n * @param props - The view props.\r\n * @returns The JSX Element.\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\nconst B2bRequestsStatusView: React.FC> = props => {\r\n const { b2bRequestsStatus, heading, table } = props;\r\n const { continueShoppingButtonTitle } = props.resources;\r\n const initialCount = 0;\r\n\r\n if (props.data.operationRequests.result?.length === initialCount) {\r\n return (\r\n \r\n {heading}\r\n \r\n
\r\n

\r\n {props.resources.headingForEmptyRequestStatus}\r\n

\r\n

\r\n {props.resources.textForEmptyRequestStatus}\r\n

\r\n \r\n \r\n {continueShoppingButtonTitle}\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n return (\r\n \r\n {heading}\r\n {table}\r\n \r\n );\r\n};\r\n\r\nexport default B2bRequestsStatusView;\r\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 IPasswordResetVerificationItem,\n IPasswordResetVerificationLoading,\n IPasswordResetVerificationLocalAccount,\n IPasswordResetVerificationViewProps\n} from './password-reset-verification';\n\nconst PasswordResetVerificationItem: 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 verificationControlWrapper,\n items,\n successMessage,\n errorMessage,\n verificationButtonsWrapper,\n verificationButtons,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n \n {successMessage &&\n successMessage.map((message: React.ReactNode, index: number) => {\n return {message};\n })}\n {items &&\n items.map((item: IPasswordResetVerificationItem) => {\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 {verificationButtons &&\n verificationButtons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \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};\n\nconst PasswordResetVerificationLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetVerificationView: React.FC = props => {\n const {\n passwordResetVerification,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n heading,\n passwordResetVerificationLocalAccount\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetVerificationLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetVerificationView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\n\n/* ---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { InvoiceModel } from '../helpers/invoice-data';\nimport { IInvoicesListResources } from '../invoices-list.props.autogenerated';\n\ninterface IRequestInvoiceModalProps {\n className: string;\n email: string;\n isModalOpen: boolean;\n submitRequestLabel: string;\n modalHeaderLabel: string;\n sendToEmailLabel: string;\n cancelLabel: string;\n searchPlaceholderLabel: string;\n invoices: InvoiceModel[];\n invoicesFoundString: string;\n singleInvoiceFoundString: string;\n searchButtonAltText: string;\n resources: IInvoicesListResources;\n toggle(): void;\n onSubmitRequest(invoiceId: string): void;\n}\n\n/**\n * On submit request click function.\n * @param selectedInvoiceIndex -Check is busy.\n * @param onClosing -On closing function.\n * @param filteredInvoices -Invoice modal.\n * @param onSubmitRequest -On submit request function.\n * @returns Call on submit request.\n */\nconst onSubmitRequestClick = (\n onClosing: () => void,\n filteredInvoices: InvoiceModel[],\n onSubmitRequest: (invoiceId: string) => void,\n checkboxRef: React.MutableRefObject\n) => () => {\n const defaultIndex = 0;\n let closingFlag: number = 0;\n\n filteredInvoices.map((invoice, index) => {\n const inputInvoice = checkboxRef.current[Number(index)] as React.RefObject;\n if (inputInvoice.current?.checked === true && index >= defaultIndex) {\n onSubmitRequest(invoice.id);\n closingFlag = closingFlag + 1;\n }\n });\n if (closingFlag <= filteredInvoices.length) {\n onClosing();\n }\n};\n\n/**\n * On search input change function.\n * @param setSearchInput -Set search input.\n * @returns Set search input function.\n */\nconst searchInputChangedHandler = (setSearchInput: React.Dispatch>) => (\n event: React.ChangeEvent\n) => {\n setSearchInput(event.target.value);\n};\n\n/**\n * Search entered handler.\n * @param invoices -InvoiceModel.\n * @param searchInput -String.\n * @param setFilteredInvoices -InvoiceModel action.\n * @param filteredInvoices -Filtered Invoices.\n * @param setSelectedInvoiceIndex -Selected Invoice Index.\n * @param setShouldShowSearchResults -Show search result action.\n * @param setInvoiceOptions -Invoice options action.\n * @param selectedInvoiceIndex -Selected invoice index.\n * @param className -String.\n * @returns Set invoice options.\n */\nconst searchEnteredHandler = (\n invoices: InvoiceModel[],\n searchInput: string,\n setFilteredInvoices: React.Dispatch>,\n filteredInvoices: InvoiceModel[],\n setSelectedInvoiceIndex: React.Dispatch>,\n setShouldShowSearchResults: React.Dispatch>,\n setInvoiceOptions: React.Dispatch>,\n selectedInvoiceIndex: number,\n className: string,\n checkboxRef: React.MutableRefObject\n) => () => {\n let updatedInvoices = filteredInvoices;\n if (!StringExtensions.isNullOrEmpty(searchInput)) {\n updatedInvoices = invoices.filter(invoice => invoice.id.toLocaleUpperCase().includes(searchInput.toLocaleUpperCase()));\n } else {\n updatedInvoices = invoices;\n }\n\n if (ArrayExtensions.hasElements(updatedInvoices)) {\n setFilteredInvoices(updatedInvoices);\n setSelectedInvoiceIndex(0);\n } else {\n setFilteredInvoices(updatedInvoices);\n setSelectedInvoiceIndex(-1);\n }\n setShouldShowSearchResults(true);\n\n setInvoiceOptions(\n renderInvoiceOptions(\n StringExtensions.isNullOrEmpty(searchInput) ? invoices : updatedInvoices,\n setSelectedInvoiceIndex,\n className,\n checkboxRef\n )\n );\n};\n\n/**\n * On cancel function.\n * @param onClosing -Closing function.\n * @param toggle -Toggle Function.\n * @returns Toggle function.\n */\nconst onCancelHandler = (onClosing: () => void, toggle: () => void) => () => {\n onClosing();\n toggle();\n};\n\n/**\n * On invoice select.\n * @param setSelectedInvoiceIndex -Set Selected Invoice Index.\n * @param index -Number.\n * @returns Set Selected Invoice Index.\n */\nconst onInvoiceSelectHandler = (setSelectedInvoiceIndex: (newIndex: number) => void, index: number) => () => {\n setSelectedInvoiceIndex(index);\n};\n\nconst renderInvoiceOptions = (\n filteredInvoices: InvoiceModel[],\n setSelectedInvoiceIndex: (newIndex: number) => void,\n className: string,\n checkboxRef: React.MutableRefObject\n) => {\n checkboxRef.current = filteredInvoices.map((_invoice, i) => checkboxRef.current[Number(i)] ?? React.createRef());\n return (\n
\n {filteredInvoices.map((invoice, index) => {\n const onInvoiceSelect = onInvoiceSelectHandler(setSelectedInvoiceIndex, index);\n\n const checkboxId = `invoice__${invoice.id}`;\n const checkboxName = `invoiceSelect__${invoice.id}`;\n\n return (\n
\n \n \n
\n );\n })}\n
\n );\n};\n\nexport const RequestInvoiceModal: React.FC = ({\n className,\n email,\n isModalOpen,\n toggle,\n modalHeaderLabel,\n sendToEmailLabel,\n submitRequestLabel,\n cancelLabel,\n onSubmitRequest,\n invoices,\n searchPlaceholderLabel,\n invoicesFoundString,\n singleInvoiceFoundString,\n searchButtonAltText,\n resources\n}) => {\n const [selectedInvoiceIndex, setSelectedInvoiceIndex] = React.useState(-1);\n const [filteredInvoices, setFilteredInvoices] = React.useState(invoices);\n const [searchInput, setSearchInput] = React.useState('');\n const [shouldShowSearchResults, setShouldShowSearchResults] = React.useState(false);\n const focusDelay = 110;\n const checkboxRef = React.useRef([]);\n const invoiceOptionsData = renderInvoiceOptions(filteredInvoices, setSelectedInvoiceIndex, className, checkboxRef);\n const [invoiceOptions, setInvoiceOptions] = React.useState(invoiceOptionsData);\n const focusElement = React.useRef(null);\n React.useEffect(() => {\n if (isModalOpen && focusElement.current) {\n setTimeout(() => {\n focusElement.current?.focus();\n }, focusDelay);\n }\n }, [isModalOpen]);\n\n /**\n * Sets the filtered invoices to the ones that were selected on the main screen.\n */\n const setFilteredInvoicesToSelectedInvoices = () => {\n setSelectedInvoiceIndex(-1);\n const selectedInvoices = invoices.filter(invoice => invoice.isSelected);\n if (ArrayExtensions.hasElements(selectedInvoices)) {\n setFilteredInvoices(selectedInvoices);\n\n // If only one invoice selected, auto select it\n if (selectedInvoices.length === 1) {\n setSelectedInvoiceIndex(0);\n }\n\n setInvoiceOptions(renderInvoiceOptions(selectedInvoices, setSelectedInvoiceIndex, className, checkboxRef));\n } else {\n setFilteredInvoices(invoices);\n setInvoiceOptions(renderInvoiceOptions(invoices, setSelectedInvoiceIndex, className, checkboxRef));\n }\n };\n\n const searchEntered = searchEnteredHandler(\n invoices,\n searchInput,\n setFilteredInvoices,\n filteredInvoices,\n setSelectedInvoiceIndex,\n setShouldShowSearchResults,\n setInvoiceOptions,\n selectedInvoiceIndex,\n className,\n checkboxRef\n );\n\n const onClosing = () => {\n setSelectedInvoiceIndex(-1);\n setFilteredInvoices(invoices);\n setSearchInput('');\n setShouldShowSearchResults(false);\n };\n\n /**\n * Sets the invoices that are possible to select when the dialog is opened.\n */\n const onOpened = () => {\n setSearchInput('');\n setFilteredInvoicesToSelectedInvoices();\n };\n\n const searchResultString = filteredInvoices.length === 1 ? singleInvoiceFoundString : invoicesFoundString;\n const invoicesFoundReplaceIndex = searchResultString.indexOf('{0}');\n\n return (\n \n \n {modalHeaderLabel}\n \n \n
\n \n
\n {email}\n
\n
\n {shouldShowSearchResults && (\n
\n {searchResultString.substring(0, invoicesFoundReplaceIndex)}\n {filteredInvoices.length}\n {searchResultString.substring(invoicesFoundReplaceIndex + 3)}\n
\n )}\n
\n \n \n
\n {invoiceOptions}\n
\n
\n
\n \n \n {submitRequestLabel}\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 { getUrlSync, isOboRequest } from '@msdyn365-commerce/core';\nimport {\n BusinessPartnerOperationDeliveryType,\n BusinessPartnerUsersDataActions,\n InvoicePaidStatus,\n InvoiceSearchCriteria,\n IQueryResultSettings,\n OrderInvoice\n} from '@msdyn365-commerce/retail-proxy';\nimport { getCurrentAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnersDataActions.g';\nimport {\n ArrayExtensions,\n getCustomer,\n GetCustomerInput,\n getInvoices,\n GetInvoicesInput,\n IQueryResultSettingsModuleConfig,\n QueryResultSettingsProxy,\n StringExtensions\n} from '@msdyn365-commerce-modules/retail-actions';\nimport { Alert, Button, Heading, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport { reaction } from 'mobx';\nimport { observer } from 'mobx-react';\n\nimport { InvoiceErrorComponent } from './components/invoice-error-component';\nimport { InvoicesFilterComponent, InvoicesFilterState } from './components/invoices-filter-component';\nimport { InvoicesTableComponent } from './components/invoices-table/invoices-table-component';\nimport { IMakePaymentResources, MakePaymentComponent } from './components/make-payment-component';\nimport { RequestInvoiceButton } from './components/request-invoice-button';\nimport { RequestInvoiceModal } from './components/request-invoice-modal';\nimport { InvoiceModel } from './helpers/invoice-data';\nimport { IAddInvoicesToCartFailureResult } from './helpers/pay-invoices';\nimport { IInvoicesListData } from './invoices-list.data';\nimport { IInvoicesListProps } from './invoices-list.props.autogenerated';\n\nexport type InvoicesListStatus = 'LOADING' | 'SUCCESS' | 'FAILED' | 'EMPTY';\nexport type InvoiceErrorHost = 'ADDINVOICETOCART';\n\nexport interface IInvoicesListViewProps extends IInvoicesListProps {\n moduleProps: IModuleProps;\n\n header: JSX.Element;\n filter: JSX.Element;\n content?: JSX.Element;\n invoiceRequestModal?: JSX.Element;\n pagination?: JSX.Element;\n}\n\nexport interface IInvoiceErrorState {\n errorHost?: InvoiceErrorHost;\n errorReason?: IAddInvoicesToCartFailureResult;\n errorMessage: string;\n otherError?: string;\n errorCode?: string;\n}\n\nexport interface IInvoicesListState {\n invoices: InvoiceModel[];\n invoicesFilterState: InvoicesFilterState;\n errorState: IInvoiceErrorState;\n isInvoiceRequestModalOpen: boolean;\n isLoading: boolean;\n isOpen: boolean;\n isPageLoaded: boolean;\n payInvoiceErrorModalOpen: boolean;\n selectedButtonElement?: HTMLButtonElement | null;\n}\n\n/**\n * InvoicesList component.\n * @extends {React.Component, IInvoicesListState>}\n */\n@observer\nclass InvoicesList extends React.Component, IInvoicesListState> {\n private readonly _className: string = 'msc-invoices-list';\n\n private readonly payInvoiceRequestReference: React.RefObject;\n\n private readonly makePaymentReference: React.RefObject;\n\n private buttonChildReference: React.RefObject[] = [];\n\n private buttonChildPayButtonReference: React.RefObject[] = [];\n\n private readonly _queryResultSettings: IQueryResultSettings;\n\n private invoiceIds: string[] = [];\n\n constructor(props: IInvoicesListProps) {\n super(props);\n\n this._queryResultSettings = QueryResultSettingsProxy.fromModuleData(\n this.props.context.request,\n this.props.config as IQueryResultSettingsModuleConfig\n ).QueryResultSettings;\n this.payInvoiceRequestReference = React.createRef();\n this.makePaymentReference = React.createRef();\n this._updateInvoicesState = this._updateInvoicesState.bind(this);\n this._onAddToCartFailed = this._onAddToCartFailed.bind(this);\n this._onToggleInvoiceRequestModal = this._onToggleInvoiceRequestModal.bind(this);\n this._handleFilterStateChange = this._handleFilterStateChange.bind(this);\n this._loadMoreInvoices = this._loadMoreInvoices.bind(this);\n this._requestInvoice = this._requestInvoice.bind(this);\n this._requestSpecificInvoice = this._requestSpecificInvoice.bind(this);\n this._setPayInvoiceErrorModalClose = this._setPayInvoiceErrorModalClose.bind(this);\n this.state = {\n invoices: [],\n invoicesFilterState: InvoicesFilterState.ShowAll,\n isLoading: true,\n isOpen: true,\n isPageLoaded: false,\n errorState: { errorMessage: '' },\n isInvoiceRequestModalOpen: false,\n payInvoiceErrorModalOpen: false,\n selectedButtonElement: null\n };\n }\n\n public shouldComponentUpdate(nextProps: IInvoicesListProps, nextState: IInvoicesListState): 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 | null {\n const {\n config: { className = '', heading },\n context: {\n request: { channel },\n cultureFormatter: {\n formatCurrency,\n\n // @ts-expect-error\n currencyCode\n }\n },\n data: { customerBalance },\n resources: { invoicesListTitle, invoicesListDescTitle, invoicesListDescCount }\n } = this.props;\n\n const totalAmount = customerBalance.result?.OpenInvoiceBalance || 0;\n const amountText = `${formatCurrency(totalAmount.toFixed(2), currencyCode)} ${channel?.Currency || 'USD'}`;\n\n const totalCount = customerBalance.result?.OpenInvoiceCount || 0;\n const countText = invoicesListDescCount.replace('{0}', totalCount.toString());\n const invoicesListTitleHeading = heading?.text ?? invoicesListTitle;\n\n const headerClassName = `${this._className}__header`;\n\n const header = (\n
\n \n
\n
{invoicesListDescTitle}
\n
{amountText}
\n
{countText}
\n
\n
\n );\n\n const viewProps: IInvoicesListViewProps = {\n ...(this.props as IInvoicesListProps),\n moduleProps: {\n moduleProps: this.props,\n className: classnames(this._className, className)\n },\n header,\n invoiceRequestModal: this._renderInvoiceRequestModal(),\n filter: this._renderInvoicesFilter(this._className),\n pagination: this._renderPagination()\n };\n\n if (!this.state.isPageLoaded) {\n return this.props.renderView(viewProps);\n }\n\n if (ArrayExtensions.hasElements(this.state.invoices)) {\n viewProps.content = this._renderListContainer();\n } else {\n viewProps.content = this._renderEmptyInvoiceLinesPageContent();\n }\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public async componentDidMount(): Promise {\n await this.props.data.customer;\n const invoicesData = await this.props.data.invoices;\n this._initializeWithInvoices(invoicesData);\n\n reaction(\n () => this.state.isInvoiceRequestModalOpen,\n async () => {\n if (this.invoiceIds && !this.state.isInvoiceRequestModalOpen) {\n const context = { callerContext: this.props.context.actionContext };\n const b2bUserId: string = this.props.data.b2bUserInformation?.result?.B2BUserId || '';\n for (const invoiceId of this.invoiceIds) {\n await BusinessPartnerUsersDataActions.requestInvoiceCopyAsync(\n context,\n b2bUserId,\n invoiceId,\n BusinessPartnerOperationDeliveryType.Email\n );\n }\n this.invoiceIds = [];\n }\n }\n );\n }\n\n private _initializeWithInvoices(invoicesData: OrderInvoice[]): void {\n const invoices = invoicesData.map((invoice, index) => {\n this.buttonChildReference[Number(index)] = React.createRef();\n this.buttonChildPayButtonReference[Number(index)] = React.createRef();\n return new InvoiceModel(invoice);\n });\n this.setState({\n invoices,\n isLoading: false,\n isPageLoaded: true\n });\n }\n\n private _addInvoices(invoicesData: OrderInvoice[]): void {\n const newInvoices = invoicesData.map(invoice => new InvoiceModel(invoice));\n const invoices = this.state.invoices.concat(newInvoices);\n this.setState({\n invoices,\n isLoading: false\n });\n }\n\n private _renderEmptyInvoiceLinesPageContent(): JSX.Element {\n const containerClass = `${this._className}__empty-lines__container`;\n const actionsContainerClass = `${containerClass}__actions`;\n return (\n
\n
{this.props.resources.invoiceEmptyInvoiceLinesTitle}
\n
{this.props.resources.invoiceEmptyInvoiceLinesDescription}
\n
\n \n {this.props.resources.invoiceEmptyInvoiceLinesContinueShoppingButtonText}\n \n
\n
\n );\n }\n\n private _renderListContainer(): JSX.Element {\n const containerClass = `${this._className}__container`;\n const containerHeaderClass = `${containerClass}__header`;\n const containerContentClass = `${containerClass}__content`;\n const isOnBehalfOfRequest = isOboRequest(this.props.context.request);\n\n return (\n
\n
\n {this._renderMakePayment(containerHeaderClass, isOnBehalfOfRequest)}\n {this._renderInvoiceRequestButton()}\n
\n
{this._renderInvoiceErrors()}
\n
{this._renderInvoicesList(containerContentClass)}
\n
\n );\n }\n\n private _updateInvoicesState(): void {\n this.setState({\n invoices: this.state.invoices\n });\n }\n\n private async _getInvoicesSearchCriteria(state: InvoicesFilterState): Promise {\n const searchCriteria: InvoiceSearchCriteria = {};\n\n const context = this.props.context.actionContext;\n\n const businessPartner = await getCurrentAsync({ callerContext: context });\n searchCriteria.BusinessPartnerId = businessPartner.BusinessPartnerId;\n\n const customer = await getCustomer(new GetCustomerInput(context.requestContext.apiSettings), context);\n searchCriteria.CustomerId = customer.AccountNumber;\n\n switch (state) {\n case InvoicesFilterState.ShowAll:\n searchCriteria.InvoicePaidStatusValues = [InvoicePaidStatus.None];\n break;\n case InvoicesFilterState.Paid:\n searchCriteria.InvoicePaidStatusValues = [InvoicePaidStatus.Paid];\n break;\n case InvoicesFilterState.PartiallyPaid:\n searchCriteria.InvoicePaidStatusValues = [InvoicePaidStatus.PartiallyPaid];\n break;\n case InvoicesFilterState.Unpaid:\n searchCriteria.InvoicePaidStatusValues = [InvoicePaidStatus.Unpaid];\n break;\n default:\n throw new Error('Failed to process unknown invoices filter state.');\n }\n\n return searchCriteria;\n }\n\n private async _handleFilterStateChange(state: InvoicesFilterState): Promise {\n this.setState({\n invoicesFilterState: state,\n isLoading: true\n });\n\n const searchCriteria = await this._getInvoicesSearchCriteria(state);\n\n if (this._queryResultSettings.Paging) {\n this._queryResultSettings.Paging.Skip = 0;\n }\n\n const invoices = await getInvoices(\n new GetInvoicesInput(searchCriteria, this._queryResultSettings),\n this.props.context.actionContext\n );\n this._initializeWithInvoices(invoices);\n }\n\n private _renderInvoicesFilter(className: string): JSX.Element {\n const containerClass = `${this._className}__container`;\n const containerContentClass = `${containerClass}__content`;\n const filterClassName = `${className}__filter`;\n return (\n
\n
{this._renderInvoiceInCartPaymentMessage()}
\n \n
\n );\n }\n\n private _renderInvoicesList(className: string): JSX.Element {\n const tableClassName = `${className}__table`;\n return (\n \n );\n }\n\n private _onAddToCartFailed(newErrorState: IInvoiceErrorState, reference?: React.RefObject): void {\n const errorState = { ...newErrorState };\n errorState.errorHost = 'ADDINVOICETOCART';\n errorState.errorMessage =\n newErrorState.errorReason?.failureReason === 'EMPTYINPUT'\n ? this.props.resources.invoiceErrorInvoiceIdNotExist\n : this.props.resources.invoiceErrorFailedAddInvoiceToCart;\n\n const shouldShowAdditionalInfoInPopup =\n errorState.errorCode === 'Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedWithItemLines';\n this.setState({ errorState, payInvoiceErrorModalOpen: shouldShowAdditionalInfoInPopup, selectedButtonElement: reference?.current });\n }\n\n private _renderMakePayment(className: string, disabled: boolean): JSX.Element {\n const id = `${className}__make-payment`;\n const makePaymentResources: IMakePaymentResources = {\n makePaymentButtonText: this.props.resources.makePaymentButtonText,\n makePaymentButtonAriaLabel: this.props.resources.makePaymentButtonAriaLabel\n };\n\n const selectedInvoices = this._getSelectedInvoices();\n\n return (\n \n );\n }\n\n private _setPayInvoiceErrorModalClose(): void {\n this.setState({\n payInvoiceErrorModalOpen: false\n });\n this.state.selectedButtonElement?.focus();\n }\n\n private _renderInvoiceErrors(): JSX.Element {\n const {\n resources: {\n payInvoiceErrorDialogHeader,\n payInvoiceErrorDialogBodyErrorTitle,\n payInvoiceErrorDialogBodyErrorDescription,\n payInvoiceErrorDialogFooterGoToCartButtonText,\n payInvoiceErrorDialogFooterCancelButtonText\n }\n } = this.props;\n\n const cartUrl = getUrlSync('cart', this.props.context.actionContext) || '';\n\n const errorClassName = `${this._className}__errors`;\n\n return (\n \n );\n }\n\n private _renderInvoiceInCartPaymentMessage(): JSX.Element {\n const cart = this.props.data.cart?.result;\n\n if (!cart?.hasInvoiceLine) {\n return <>;\n }\n\n return (\n \n \n \n );\n }\n\n // Dismiss alert.\n private readonly _onDismiss = () => {\n this.setState({\n isOpen: false\n });\n };\n\n private _renderPagination(): JSX.Element | undefined {\n const { data, resources } = this.props;\n const invoices = data?.invoices?.result;\n if (!invoices || invoices.length < this._queryResultSettings.Paging!.Top!) {\n return undefined;\n }\n\n return (\n \n {resources.invoicesLoadMore}\n \n );\n }\n\n private async _loadMoreInvoices(): Promise {\n this.setState({ isLoading: true });\n const searchCriteria = await this._getInvoicesSearchCriteria(this.state.invoicesFilterState);\n if (this._queryResultSettings.Paging) {\n this._queryResultSettings.Paging.Skip! += this._queryResultSettings.Paging.Top!;\n }\n const newInvoices = await getInvoices(\n new GetInvoicesInput(searchCriteria, this._queryResultSettings),\n this.props.context.actionContext\n );\n this._addInvoices(newInvoices);\n }\n\n private _renderInvoiceRequestModal(): JSX.Element {\n const customer = this.props.data.customer.result;\n const {\n invoiceRequestModalCancelLabel,\n invoiceRequestModalSubmitLabel,\n invoiceRequestModalHeaderLabel,\n invoiceRequestModalSendToEmailLabel,\n invoiceRequestModalSearch,\n invoiceRequestModalInvoiceSearchDisplay,\n invoiceRequestModalSingleInvoiceSearchDisplay,\n invoiceRequestModalSearchButton\n } = this.props.resources;\n\n return (\n \n );\n }\n\n private _onToggleInvoiceRequestModal(): void {\n this.setState({\n isInvoiceRequestModalOpen: !this.state.isInvoiceRequestModalOpen\n });\n if (this.state.isInvoiceRequestModalOpen) {\n this.state.selectedButtonElement?.focus();\n }\n }\n\n /**\n * Request specific invoice function.\n */\n private readonly _onToggleInvoiceRequestParentModal = () => {\n this.setState(\n {\n selectedButtonElement: this.payInvoiceRequestReference.current\n },\n () => {\n this._onToggleInvoiceRequestModal();\n }\n );\n };\n\n private _renderInvoiceRequestButton(): JSX.Element | null {\n const { invoiceRequestButtonLabel } = this.props.resources;\n const customer = this.props.data.customer.result;\n\n if (StringExtensions.isNullOrWhitespace(customer?.Email)) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _requestInvoice(invoiceId: string): void {\n this.invoiceIds.push(invoiceId);\n this._onToggleInvoiceRequestModal();\n }\n\n private _getSelectedInvoices(): InvoiceModel[] {\n let selectedInvoices = this.state.invoices.filter(invoice => invoice.isSelected);\n if (!ArrayExtensions.hasElements(selectedInvoices)) {\n selectedInvoices = this.state.invoices;\n }\n\n return selectedInvoices;\n }\n\n private _requestSpecificInvoice(\n specificInvoice: InvoiceModel,\n requestInvoiceButtonReference: React.RefObject\n ): void {\n this.state.invoices.forEach((invoice: InvoiceModel) => {\n if (invoice === specificInvoice) {\n invoice.isSelected = true;\n } else {\n invoice.isSelected = false;\n }\n });\n this.setState({\n selectedButtonElement: requestInvoiceButtonReference.current\n });\n this._onToggleInvoiceRequestModal();\n }\n}\n\nexport default InvoicesList;\n"],"sourceRoot":""}