{"version":3,"sources":["webpack:///src/modules/invoices-list/index.ts?0857","webpack:///src/modules/product-specification/components/product-specification-table-stucture.tsx?4b07","webpack:///./src/themes/gardner-theme-b2c/views/order-details.view.tsx?ffea","webpack:///./src/modules/contracts-account-page/contracts-account-page.view.tsx?650e","webpack:///src/modules/country-picker/country-picker.tsx?051f","webpack:///./src/themes/gardner-theme/views/invoices-list.view.tsx?057a","webpack:///src/modules/tab-item/tab-item.view.tsx?76f0","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/product-specification/product-specification.tsx?f393","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/modules/social-share/social-share.view.tsx?76da","webpack:///./src/themes/gardner-theme/views/checkout-delivery-options.view.tsx?2dc8","webpack:///src/modules/interactive-feature-item/interactive-feature-item.view.tsx?d4e3","webpack:///src/modules/back-top-footer/back-top-footer.tsx?0e13","webpack:///src/modules/invoice-details/invoice-details.view.tsx?5ebe","webpack:///./src/themes/gardner-theme-b2c/views/order-confirmation.view.tsx?ff4b","webpack:///src/modules/image-list/image-list.view.tsx?cab9","webpack:///src/modules/footer-category/footer-category.tsx?b7b8","webpack:///src/modules/adventureworks/views/components/carticon.component.tsx?3d75","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/accordion-item/accordion-item.view.tsx?b04f","webpack:///src/modules/invoices-list/components/invoices-table/invoices-table-component.tsx?9105","webpack:///src/modules/accordion-item/accordion-item.tsx?fc54","webpack:///src/modules/subscribe/subscribe.view.tsx?c40a","webpack:///src/modules/aad-generic/aad-generic.view.tsx?ecad","webpack:///src/modules/fabrikam/views/ratings-histogram.view.tsx?96ae","webpack:///src/modules/product-specification/product-specification.view.tsx?bfbe","webpack:///./src/themes/gardner-theme/views/order-confirmation.view.tsx?fd9b","webpack:///./src/themes/gardner-theme-b2c/views/b2b-requests-status.view.tsx?1104","webpack:///src/modules/accordion/accordion.view.tsx?8c70","webpack:///./src/themes/gardner-theme/views/order-details.view.tsx?dd01","webpack:///src/modules/invoices-list/invoices-list.view.tsx?0243","webpack:///src/modules/tab/tab.tsx?d713","webpack:///src/modules/invoices-list/components/make-payment-component.tsx?c79a","webpack:///src/modules/aad-generic/aad-generic.tsx?d537","webpack:///src/modules/invoices-list/components/invoice-error-component.tsx?2e12","webpack:///src/modules/footer-category/footer-category.view.tsx?26a5","webpack:///src/modules/interactive-feature-collection/interactive-feature-collection.view.tsx?5927","webpack:///./src/themes/gardner-theme-b2c/views/invoices-list.view.tsx?c86d","webpack:///src/modules/subscribe/subscribe.tsx?0278","webpack:///src/modules/invoices-list/helpers/pay-invoices.ts?f98a","webpack:///src/modules/tab-item/tab-item.tsx?d2c1","webpack:///./src/modules/payment-container/context/payment-context.tsx?efaa","webpack:///./src/themes/gardner-theme/views/checkout-payment-instrument.view.tsx?6b89","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/fabrikam/views/header.view.tsx?1cde","webpack:///src/modules/invoices-list/components/invoices-table/components/invoices-table-header-component.tsx?6874","webpack:///./src/modules/cart-line-comment/cart-line-comment.view.tsx?5b01","webpack:///src/modules/country-picker/country-picker.view.tsx?825b","webpack:///src/modules/interactive-feature-item/components/links.tsx?8ab2","webpack:///src/modules/interactive-feature-item/interactive-feature-item.tsx?340f","webpack:///src/modules/tab/tab.view.tsx?701e","webpack:///src/modules/interactive-feature-collection/interactive-feature-collection.tsx?2538","webpack:///src/modules/invoices-list/components/invoices-table/components/invoices-table-row-component.tsx?ba14","webpack:///src/modules/social-share/social-share.tsx?ed88","webpack:///./src/themes/gardner-theme/views/checkout-customer-account-payment.view.tsx?a50a","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/order-level-comment/order-level-comment.view.tsx?50e4","webpack:///src/modules/invoices-list/components/invoices-filter-component.tsx?759c","webpack:///src/modules/accordion/accordion.tsx?45c1","webpack:///./src/modules/order-level-comment/order-level-comment.tsx?3e3e","webpack:///./src/themes/gardner-theme/views/b2b-requests-status.view.tsx?1807","webpack:///./src/themes/gardner-theme/views/checkout-section-container.view.tsx?30c1","webpack:///./src/modules/cart-line-comment/cart-line-comment.tsx?d920","webpack:///src/modules/adventureworks/views/footer-item.view.tsx?9747","webpack:///src/modules/invoices-list/components/request-invoice-modal.tsx?f430","webpack:///src/modules/invoices-list/invoices-list.tsx?ba10","webpack:///src/modules/adventureworks/views/order-template-list.view.tsx?86a3"],"names":["ProductSpecificationTableRow","_ref","productName","cellData","className","React","scope","dangerouslySetInnerHTML","getRichTextHtml","OrderInfomation","orderInformationProps","salesId","receiptId","createdDate","count","amount","channelName","channelAddress","Node","Object","assign","SalesLine","_ref2","salesLineProps","salesLine","buyAgainButton","errors","GroupDelivery","_ref3","deliveryProps","heading","Group","_ref4","groupProps","delivery","address","salesLinesProps","salesLines","isCashAndCarryTransaction","map","key","data","LineId","deliveryType","shipment","trackingInfo","salesStatus","showTimeslot","pickupProps","pickupDateTimeslot","Groups","_ref5","groupsProps","groups","group","index","OrderSummary","_ref6","orderSummaryProps","subtotal","shipping","tax","totalAmount","earnedPoints","Payment","_ref7","paymentMethodsProps","title","methods","Help","_ref8","helpProps","needHelpLabel","helpLineNumberLabel","contactNumber","OrderDetailsView","_ref9","moduleProps","viewModes","tableViewActions","table","alert","loading","orderInfomation","orderSummary","payment","help","Module","props","contractsHeading","contractsWrapper","contractsTable","contractsLinks","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","subheading","countryList","actionLink","config","isConsentGiven","countryPickerHeading","MsDyn365","tag","text","editProps","onEdit","handleTextChange","requestContext","countryPickerSubHeading","handleParagraphChange","countryPickerActionLink","createLink","currentSiteButton","Button","onClick","resources","stayOnCurrentSiteButtonText","viewprops","_objectSpread","modalContainer","Modal","isOpen","toggle","modalTransition","timeout","shouldUpdateFocusToFirstElement","modalHeaderContainer","ModalHeader","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","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","displayString","tabIndex","href","src","altText","loadFailureBehavior","shouldSkipToMainImage","displaySubString","InvoiceListView","header","filter","content","invoiceRequestModal","pagination","isBrowser","linksElements","document","querySelectorAll","console","log","forEach","l","setAttribute","_renderTabItemContent","items","length","TabItemView","tabItemType","tabSlots","TabContentContainer","TabHeaderContainer","TabItemContent","tabHeader","TabItemType","TabContent","tabItemContent","TabHeader","RequestInvoiceButton","onClicked","requestInvoiceButtonLabel","innerReference","innerRef","BreadCrumbView","root","links","backButton","BreadcrumbContainer","BreadcrumbList","BreadcrumbListItem","separator","classnames","error","DeliveryOptionList","DeliveryOptionsList","list","deliveryOption","DeliveryOption","code","radioButton","description","DeliveryOptionSelected","price","CheckoutDeliveryOptionsView","CheckoutDeliveryOptions","viewState","deliveryOptions","deliveryOptionSelected","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","ProductSpecification","handleHeadingChange","_toggle","drawerListId","isDrawerOpen","catalogId","reaction","product","result","RecordId","actionInput","AttributesForSelectedVariantInput","actionContext","apiSettings","channelId","getAttributesForSelectedVariant","catch","message","debug","shouldComponentUpdate","nextProps","nextState","productSpecificationData","isAccrodion","displayStyle","handleText","ProductSpecificationTableProps","ProductSpecificationTableBodyProps","productSpecificationResult","_createDrawerBody","_createTableBody","_renderProductCell","Name","accordionItemContainer","_product$Name","Drawer","collapseProps","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","onToggle","DataTypeValue","_renderCurrencyCell","_renderDateTimeCell","_renderDecimalCell","_renderIntegerCell","_renderTextCell","_renderTrueFalseCell","warning","CurrencyValue","CurrencyCode","_product$DateTimeOffs","DateTimeOffsetValue","toUTCString","IntegerValue","FloatValue","TextValue","BooleanValue","trueValueText","falseValueText","__decorate","observer","_renderTextBlock","textBlocks","_renderSocialShare","socialShare","_renderCartAndActions","addToCart","addToOrderTemplate","addToWishlist","errorBlock","button","_renderConfigure","configure","ContainerProps","dropdowns","_renderConfigureDropdown","dropdown","LabelContainerProps","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","rating","inventoryLabel","shopSimilarLook","shopSimilarDescription","unitOfMeasure","mediaGallery","bulkPurchaseLink","slots","_mapEditableLinks","linkdata","editableLinks","contentAction","etext","push","ContractsAccountPageLinks","ContractsAccountPage","_handleHeadingChange","_handleLinkTextChange","linkIndex","_renderHeading","bind","_getContractsRowData","_renderTable","_generateRow","contractList","manufacturerCodeLabel","contractNumberLabel","laborRateLabel","contractDescLabel","noContractsFoundText","headingRow","contractsRowData","i","_renderMfrCodeHeading","contract","ContractCode","_generateEmptyRow","colNum","manufacturerCodeShortFormLabel","contractData","ManufacturerCode","Description","ContractLaborRate","ContractNotes","toFixed","_renderLink","LinksComponent","classNames","SocialShareView","SocialShareList","SocialShareItemElements","SocialShareItem","SocialShare","createElement","SocialShareElement","MagicNumber","FeatureItemViewComponent","isMosaic","featureItem","indexItem","itemCounter","renderMosaic","thisProps","interactiveFeatureCollectionMosaicContainer","interactiveFeatureCollectionMosaicImage","interactiveFeatureCollectionMosaicDetails","indexAux","caseNumberOne","itemCounterAux","caseNumberZero","modularAux","modularDivisor","firstRow","caseNumberTwo","lastRow","onCornerRight","onCornerLeft","containerClasses","interactiveFeatureCollectionCarouselContainer","interactiveFeatureCollectionCarouselImage","interactiveFeatureCollectionCarouselContent","renderCarousel","BackTopFooter","backtoTopText","destination","BackToTop","InvoiceDetailsView","products","paymentDetails","payInvoiceError","OrderConfirmationOrderInfomation","receiptEmail","OrderConfirmationSalesLine","OrderConfirmationGroupDelivery","processing","OrderConfirmationGroup","shippingItemsToYou","OrderConfirmationGroups","OrderConfirmationOrderSummary","OrderConfirmationPayment","totalOnAccount","OrderConfirmationHelp","OrderConfirmationView","_props$data$orderHydr","backToShoppingLink","cultureFormatter","formatCurrency","tenderLines","orderHydration","salesOrder","TenderLines","tl","AmountInCompanyCurrency","reduce","num","total","imageListView","indexKey","FooterCategory","categories","FooterList","FooterListItem","CartIcon","cartLabel","cartQtyLabel","cart","cartItem","totalItemsInCart","qtyLabel","format","label","style","visibility","CartIconComponent","msdyn365Commerce","createComponentOverride","component","PayInvoiceComponentActions","async","_event","setDisabled","payInvoices","invoice","errorState","onError","reference","onClickHandler","PayInvoiceComponent","createComponent","disabled","useState","payInvoiceButtonAriaLabel","canBePaid","payInvoiceButtonText","Link","noclick","attribute","itemProp","Separator","Breadcrumb","_pageType","urlTokens","pageType","_getRootLink","_getCustomBreadcrumbLinks","itemPosition","keyIndex","toString","_getCategoryHierarchy","categoryHierarchy","_getFriendlyName","locale","NameTranslations","Url","nameTranslations","_nameTranslation","nameTranslation","ArrayExtensions","hasElements","Language","toLowerCase","Text","_getPDPLinks","categoryPaths","requestUrl","hideProductName","_goBack","window","history","back","_getPDPBackButton","query","referrer","backToResultsText","rootLink","breadcrumbLinks","backButtonComponent","breaCrumbType","app","breadcrumbType","linkSeparator","breadcrumbViewProps","_renderAccordionItemContent","AccordionItemView","drawer","accordionSlots","AccordionItemContainer","AccordionItemContent","accordionItemContent","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","AccordionItem","moduleClassName","accordionItemTitle","_onToggle","accordionExpandedStateResult","accordionExpandedState","expanded","isAllExpanded","isExpandedOnInitialLoad","ControlledDrawer","interactionStyle","accordionState","update","createAccordionStateInput","onSubmit","preventDefault","subscribeView","_subscribeForm$classN","_emailInput$className","_submitButton$classNa","subscribe","subscribeContainer","subscribeForm","emailInput","submitButton","submitButtonLabelText","aadGeneric","aadConainer","aadAPIConainer","histogramItem","buttonProps","starLabel","bar","percentage","RatingsHistogramView","histogramItems","histogramProps","ProductSpecificationView","rowdata","row","ObjectExtensions","isNullOrUndefined","B2bRequestsStatusView","_props$data$operation","b2bRequestsStatus","continueShoppingButtonTitle","operationRequests","headingForEmptyRequestStatus","textForEmptyRequestStatus","getUrlSync","accordionView","AccordionContainer","accordionItems","accordionButtons","HeaderSection","HeadingWrapper","accordianButtonsContainer","Tab","tabIndexQuery","_refHandler","activeLink","_onClick","e","activeTabState","activeContentIndex","tabId","createTabStateInput","currentTabIndex","newUrl","_setGetParameter","String","pushState","path","_onKeyDown","keyCode","slotLength","tabItems","defaultTabIndex","initialIndex","queryString","activeTab","queryTabIndex","indexOf","arr","split","parseInt","_getTabHeader","_getTabContent","headingComponent","tabViewProps","TabContainer","headerSection","tabsSection","tabItemContainer","tabContents","tabHeaders","componentDidUpdate","dataActionTabId","focus","selected","contentID","getContentID","onKeyDown","ref","itemIndex","paramName","paramValue","URL","location","params","URLSearchParams","search","decodeURIComponent","MakePaymentComponentActions","buttonReferences","MakePaymentComponent","hasInvoices","makePaymentButtonAriaLabel","makePaymentButtonText","AadGeneric","componentDidMount","$i2e","$element","insertServiceContent","getElementContent","initialize","InvoiceErrorComponent","messageHeader","errorMessage","otherError","showError","payInvoiceErrorModalOpen","errorDialogHeader","errorDialogBodyErrorTitle","errorDialogBodyErrorDescription","errorDialogFooterGoToCartButtonText","errorDialogFooterCancelButtonText","cartUrl","setPayInvoiceErrorModalClose","errorMessages","Fragment","Alert","color","assertive","FooterCategoryView","category","interactiveFeatureCollectionView","interactiveFeatureCollectionHeading","interactiveFeatureCollectionContainer","interactiveFeatureCollectionDesktopContainer","interactiveFeatureCollectionDesktopItems","interactiveFeatureCollectionMobileItems","interactiveFeatureCollectionMobileContainer","singleSlideCarouselComponentProps","singleSlideCarouselItemContainer","tileItem","Subscribe","_emailAddressInputRef","subscribeParagraph","subscribeHeading","subscribeFormAriaLabel","name","autoComplete","type","subscribeFormEmailAriaLabel","placeholder","subscribeEmailPlaceholderText","subscribeFormSubmitAriaLabel","subscribeButtonLabel","invoicesToAdd","errorReason","failureReason","cartState","getCartState","addInvoicesToCart","invoiceIds","_result$errorDetails","_result$errorDetails2","status","errorDetails","LocalizedMessage","errorCode","ErrorResourceId","TabItem","moduleContentClassName","moduleHeaderClassName","_renderTabHeader","activeContentIDResult","shown","tabItemTitle","_errorMsg","PaymentContext","createContext","paymentModules","selectedPayment","registerPaymentMethod","elementId","tenderTypeList","Error","setSelectedPaymentState","paymentTenderType","Consumer","PaymentConsumer","Provider","PaymentProvider","OverlayModal","CheckoutPaymentInstrumentView","checkoutPaymentInstrument","paymentInformation","addPaymentForm","overlayModal","tenderType","_objectWithoutProperties","_excluded","paymentContext","paymentTenderTypes","tt","tenderTypeId","tenderId","tenderName","InvoiceDetailsHeaderComponent","invoiceDetails","invoiceNumberText","invoiceIdLabel","replace","invoiceOrderItemsText","lines","invoiceOrderItem","invoiceOrderItems","invoiceInfoContainerClassName","orderInfoContainerClassName","orderInfoClassName","orderMainInfoClassName","orderDetailsClassName","actionsClassName","amountSummaryClassName","orderDate","formatShortDate","date","formatDate","year","month","day","invoiceDate","dueDate","formatLongDate","dueDateText","invoicePaymentDueDateText","invoicePlacedByLabel","customerName","invoiceAmountDueText","amountDue","currencyCode","formatAmount","InvoiceDetailsPaymentDetailsComponent","invoicePaymentDetails","lineClassName","totalDiscount","invoicePaymentDiscounts","invoicePaymentSubtotal","totalCharges","invoicePaymentCharges","totalTax","invoicePaymentTax","invoicePaymentInvoiceTotal","line","InvoiceDetailsProductsComponent","productLineClass","productLineInfoContainerClass","productLineDetailsClass","productLineSmallDetailsClass","Quantity","productUrl","ProductName","getProductPageUrlSync","_renderProductImage","cropFocalRegion","fallbackImage","getFallbackImageUrl","ItemId","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","InvoicePaidStatus","Paid","InvoiceDetails","_onAddToCartFailed","_setPayInvoiceErrorModalClose","_getProducts","ChannelId","invoiceDetailsModel","_renderHeader","_renderProducts","_renderPaymentDetails","_renderInvoiceErrors","_className","arguments","productInputs","ProductInput","getSimpleProductsAction","payInvoiceErrorDialogHeader","payInvoiceErrorDialogBodyErrorTitle","payInvoiceErrorDialogBodyErrorDescription","payInvoiceErrorDialogFooterGoToCartButtonText","payInvoiceErrorDialogFooterCancelButtonText","errorClassName","renderCustomerName","accountInformation","FirstName","_renderReactFragment","slot","headerView","HeaderTag","HeaderContainer","HeaderTopBarContainer","Divider","navIcon","logo","preferredStore","renderForMobile","AccountInfoDropdownParentContainer","AccountInfoDropdownPopoverConentContainer","accountInfoDropdownButton","signOutLink","signInLink","accountLinks","accountClassName","_renderAccountBlock","wishListIconDesktop","cartIcon","siteOptions","MobileMenuLinksContainer","mobileMenuCollapsed","Collapse","_renderMobileAccountBlock","wishListIconMobile","menuBar","_renderCollapseMenu","switchCheckedState","headerCells","getMobileHeaderCells","invoiceListSelectAllRadioAriaLabelText","checked","invoicesText","invoiceDateMobileText","getDesktopHeaderCells","invoiceDateText","invoiceUsersText","invoiceAmountText","invoiceDueDateText","invoiceStatusText","invoiceActionsText","staticDisplay","cartLineCommentModuleProps","countryPickerView","country","InteractiveFeatureCollectionLinks","InteractiveFeatureItem","_this$props$config$li","featureItemLinks","_createHeading","_createParagraph","_renderImage","isAriaHiddenAttribute","_item$imageSettings","_this$props$config$im","verifiedImageSettings","moduleType","imagePropertyName","tabView","InteractiveFeatureCollection","Heading","headingTag","itemsCounter","_this$props$config$cl","interactiveItems","interactiveFeatureItems","itemsFeatureCounter","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","vertical","_getFeatureItem","onRequestSpecificInvoice","requestInvoiceButtonReference","setShowPreviousActions","onClickViewDetails","linkToInvoiceDetails","isShowActions","setShowActions","shouldShowActions","getMobileRowCells","onSelectLine","getInvoiceDetailsPageUrlSync","invoiceRowArialabel","invoiceListSelectRadioAriaLabelText","getInvoiceStatusText","invoiceViewDetailsButtonAriaLabel","invoiceViewDetailsButtonText","invoiceActionsButtonTextAriaLabel","showActions","actionsContainerClassName","payInvoiceClassName","invoiceRequestButtonLabel","extraActionsPopup","rowCells","getDesktopRowCells","isCurrentUser","AccountNumber","customerAccountNumber","createRef","payInvoiceButtonReference","invoiceCurrentUser","socialShareItems","caption","orientation","SummaryForm","formProps","paymentAmount","addPaymentButton","appliedLine","bottomBorder","EditForm","inputLabel","inputAmount","customerSince","accountCredit","accountDetails","getInputLabel","customInputLabel","CheckoutCustomerAccountView","checkoutCustomerAccount","summaryView","editView","moduleState","_document$querySelect","sessionStorage","removeItem","processedOnAccountText","querySelector","getItem","setItem","checkoutState","checkout","cartTotal","checkoutCart","updateCustomerAccountAmount","newAmount","information","addPayment","isReady","InvoiceModel","CustomerAccountNumber","invoiceStatus","None","invoiceStatusNone","Unpaid","invoiceStatusUnpaid","PartiallyPaid","invoiceStatusPartiallyPaid","invoiceStatusPaid","orderLevelCommentModuleProps","InvoicesFilterState","getInvoicesFilterStateResources","filterState","ShowAll","invoicesFilterShowAll","onStateClick","InvoicesFilterComponent","popoverRef","popoverState","setPopoverState","togglePopover","useCallback","setFilterState","currentState","onFilterStateClick","clickedState","onFilterStateChanged","Popover","placement","EnumExtensions","getEnumValues","renderFilterStateItem","stateStringRepresentation","Accordion","_onExpandAll","_onCollapseAll","isDisabled","accordionViewProps","_renderAccordionButton","_getAccordionItem","TelemetryConstant","ExpandAll","attributeExpandAll","CollapseAll","attributeCollapseAll","showToggleAll","expandAllText","toggleAllSeparator","collapseAllText","OrderLevelComment","_props$data$cart$resu","_maxCommentLength","_updateOrderLevelComment","dummyCart","Comment","comment","updateCart","newCartObject","isCommentAreaActive","_updateCommentState","_resetCommentToProps","_toggleCommentAreaActive","prevState","_renderStaticCommentDisplay","_this$props$data$cart","commentLinkText","editLinkText","disclaimer","_getCommentPreview","_renderCommentLink","_this$props$data$cart2","substring","_renderSaveButton","saveButtonText","_renderCancelButton","cancelButtonText","_renderTextArea","textAreaLabel","charactersRemaining","htmlFor","_getFieldId","maxLength","_renderButtonArea","_renderModal","_getModalTitle","commentModalTitle","children","ItemComponent","itemProps","CheckoutSectionContainerView","checkoutPlainContainerProps","CartLineComment","_updateCartLineComment","_dummyCart$CartLines","cartLineToUpdate","CartLines","cl","cartLineId","updateCartLineQuantity","newQuantity","cartProductTitle","FooterItemView","FooterItem","_renderElement","HeadingContainer","EditableLink","onSubmitRequestClick","selectedInvoiceIndex","onClosing","filteredInvoices","onSubmitRequest","searchInputChangedHandler","setSearchInput","onCancelHandler","renderInvoiceOptions","setSelectedInvoiceIndex","onInvoiceSelect","onInvoiceSelectHandler","radioButtonId","RequestInvoiceModal","email","modalHeaderLabel","sendToEmailLabel","submitRequestLabel","cancelLabel","searchPlaceholderLabel","invoicesFoundString","singleInvoiceFoundString","searchButtonAltText","setFilteredInvoices","searchInput","shouldShowSearchResults","setShouldShowSearchResults","invoiceOptionsData","invoiceOptions","setInvoiceOptions","focusElement","current","setTimeout","_focusElement$current","searchEntered","searchEnteredHandler","updatedInvoices","toLocaleUpperCase","searchResultString","invoicesFoundReplaceIndex","horizontalPosition","verticalPosition","autoFocus","fade","onOpened","setFilteredInvoicesToSelectedInvoices","selectedInvoices","requestInvoiceDialogAriaLabel","InvoicesList","buttonChildReference","buttonChildPayButtonReference","_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","_renderInvoiceRequestModal","_renderInvoicesFilter","_renderPagination","_renderListContainer","_renderEmptyInvoiceLinesPageContent","invoicesData","_initializeWithInvoices","_addInvoices","newInvoices","concat","containerClass","actionsContainerClass","invoiceEmptyInvoiceLinesTitle","invoiceEmptyInvoiceLinesDescription","invoiceEmptyInvoiceLinesContinueShoppingButtonAriaLabel","invoiceEmptyInvoiceLinesContinueShoppingButtonText","containerHeaderClass","containerContentClass","_renderMakePayment","_renderInvoiceRequestButton","_renderInvoicesList","searchCriteria","businessPartner","getCurrentAsync","callerContext","BusinessPartnerId","getCustomer","GetCustomerInput","CustomerId","InvoicePaidStatusValues","_getInvoicesSearchCriteria","Paging","Skip","getInvoices","GetInvoicesInput","filterClassName","tableClassName","newErrorState","_newErrorState$errorR","errorHost","invoiceErrorInvoiceIdNotExist","invoiceErrorFailedAddInvoiceToCart","shouldShowAdditionalInfoInPopup","makePaymentResources","_getSelectedInvoices","moduleId","moduleTypeName","navigationUrl","_this$state$selectedB","invoiceErrorMessageHeader","_data$invoices","Top","invoicesLoadMore","invoiceRequestModalCancelLabel","invoiceRequestModalSubmitLabel","invoiceRequestModalHeaderLabel","invoiceRequestModalSendToEmailLabel","invoiceRequestModalSearch","invoiceRequestModalInvoiceSearchDisplay","invoiceRequestModalSingleInvoiceSearchDisplay","invoiceRequestModalSearchButton","Email","_this$state$selectedB2","invoiceId","_this$props$data$b2bU","b2bUserId","b2bUserInformation","B2BUserId","BusinessPartnerUsersDataActions","requestInvoiceCopyAsync","BusinessPartnerOperationDeliveryType","specificInvoice","OrderTemplateListViewComponent","OrderTemplateList","OrderTemplates","OrderTemplate","statusMessage","orderTemplates","createOrderTemplateButton","templateHeaderStatusMessage","headingForEmptyOrderTemplateList","textForEmptyOrderTemplateList","orderTemplate","renderOrderTemplate","orderTemplateNodeProps","addToCartButton","orderTemplateImage","orderTemplateStatusMessage","removeButton","orderTemplateName","orderTemplateImageElement","currentImageListLength"],"mappings":"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","file":"static/js/5.129b5a410dabdc7f1e4e.chunk.js","sourcesContent":["/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { getRichTextHtml } from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\n/**\n * Product specification table row.\n */\nexport interface IProductSpecificationTableRow {\n productName?: string;\n cellData?: React.ReactNode;\n className?: string;\n}\n\n/**\n * Product specification table row component.\n * @param props - For product specification table row.\n * @param props.productName - Product name.\n * @param props.cellData - Cell data.\n * @param props.className - Class name.\n * @returns - Returns JSX element.\n */\nexport const ProductSpecificationTableRow: React.FC = ({ productName, cellData, className }) => (\n \n \n \n \n \n { cellData }\n \n \n);\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 {\r\n IGroup,\r\n IGroupDelivery,\r\n IGroups,\r\n IHelp,\r\n IOrderDetailsViewProps,\r\n IOrderInformation,\r\n IOrderSummary,\r\n IPaymentMethods,\r\n ISalesLine\r\n} from '@msdyn365-commerce-modules/order-management';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport const OrderInfomation: React.FC = ({\r\n orderInformationProps,\r\n salesId,\r\n receiptId,\r\n createdDate,\r\n count,\r\n amount,\r\n // channelReferenceId,\r\n channelName,\r\n channelAddress\r\n}) => (\r\n \r\n {channelName}\r\n {channelAddress}\r\n {salesId}\r\n {receiptId}\r\n {createdDate}\r\n {count}\r\n {amount}\r\n {/* {channelReferenceId} */}\r\n \r\n);\r\n\r\nexport const SalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton, errors }) => (\r\n \r\n {salesLine}\r\n {buyAgainButton}\r\n {errors}\r\n \r\n);\r\n\r\nexport const GroupDelivery: React.FC = ({ deliveryProps, heading, count }) => (\r\n \r\n {heading}\r\n {count}\r\n \r\n);\r\n\r\nexport const Group: React.FC = ({ groupProps, delivery, address, salesLinesProps, salesLines, isCashAndCarryTransaction }) => (\r\n \r\n {delivery && }\r\n \r\n {salesLines && (\r\n \r\n {salesLines.map(salesLine => (\r\n \r\n {salesLine.data.deliveryType === 'ship' && salesLine.data.shipment ? salesLine.trackingInfo : null}\r\n \r\n {!isCashAndCarryTransaction && salesLine.salesStatus}\r\n \r\n ))}\r\n \r\n )}\r\n {!delivery.showTimeslot && address}\r\n {delivery.showTimeslot && (\r\n \r\n {address}\r\n {delivery.pickupDateTimeslot}\r\n \r\n )}\r\n \r\n \r\n);\r\n\r\nexport const Groups: React.FC = ({ groupsProps, groups }) => (\r\n \r\n {groups.map((group, index) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport const OrderSummary: React.FC = ({ orderSummaryProps, heading, subtotal, shipping, tax, totalAmount, earnedPoints }) => (\r\n \r\n {heading}\r\n {subtotal}\r\n {shipping}\r\n {tax}\r\n {totalAmount}\r\n {earnedPoints}\r\n \r\n);\r\n\r\nexport const Payment: React.FC = ({ paymentMethodsProps, title, methods }) => (\r\n \r\n {title}\r\n {methods}\r\n \r\n);\r\n\r\nexport const Help: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\r\n \r\n {needHelpLabel}\r\n {helpLineNumberLabel}\r\n {contactNumber}\r\n \r\n);\r\n\r\nconst OrderDetailsView: React.FC = ({\r\n moduleProps,\r\n viewModes,\r\n tableViewActions,\r\n table,\r\n heading,\r\n alert,\r\n loading,\r\n orderInfomation,\r\n orderSummary,\r\n payment,\r\n help,\r\n groups\r\n}) => {\r\n return (\r\n \r\n {heading}\r\n {alert}\r\n {loading}\r\n {orderInfomation && }\r\n {tableViewActions}\r\n {viewModes}\r\n {table}\r\n {groups && }\r\n \r\n {orderSummary && }\r\n {payment && }\r\n \r\n {help && }\r\n \r\n );\r\n};\r\n\r\nexport default OrderDetailsView;\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 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. All rights reserved.\n * See License.txt 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 { Button, getPayloadObject, getTelemetryAttributes, getTelemetryObject,\n IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody, ModalFooter, ModalHeader, onTelemetryClick } 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\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry);\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 {\n heading,\n subheading,\n countryList,\n actionLink\n } = 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 {this.props.resources.stayOnCurrentSiteButtonText}\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 },\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\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 }\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\n return (\n this.renderCountry(value)\n );\n });\n\n return countryLinks;\n\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 {matchedCountryItem.displayString}\n \n \n {matchedCountryItem.displaySubString}\n \n
\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","/*--------------------------------------------------------------\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 } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport MsDyn365 from \"@msdyn365-commerce/core\";\r\nimport { IInvoicesListViewProps } from '@msdyn365-commerce-modules/invoice/src/modules/invoices-list/./invoices-list';\r\n\r\nexport const InvoiceListView: React.FC = props => {\r\n const { header, filter, content, invoiceRequestModal, pagination } = props;\r\n if (MsDyn365.isBrowser) {\r\n const linksElements = document.querySelectorAll('a.msc-invoices-list__container__content__table__row__open-invoice');\r\n console.log(linksElements);\r\n linksElements.forEach(l => l.setAttribute('href', '#'));\r\n }\r\n return (\r\n \r\n {header}\r\n {invoiceRequestModal}\r\n {filter}\r\n {content}\r\n {pagination}\r\n \r\n );\r\n};\r\n\r\nexport default InvoiceListView;\r\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ITabItemViewProps, TabItemType } from './tab-item';\n\nconst TabItemView: React.FC = props => {\n const { tabItemType, tabSlots, TabContentContainer, TabHeaderContainer, TabItemContent, tabHeader } = props;\n\n switch (tabItemType) {\n case TabItemType.TabContent:\n return (\n \n \n {tabSlots && tabSlots.tabItemContent && tabSlots.tabItemContent.length && (_renderTabItemContent(tabSlots.tabItemContent))}\n \n \n );\n case TabItemType.TabHeader:\n return (\n \n {tabHeader}\n \n );\n default:\n return null;\n }\n};\n\nconst _renderTabItemContent = (items: React.ReactNode[]): JSX.Element | null => {\n return (\n <>\n {items && items.length > 0 ? (\n items.map((item: React.ReactNode, index: number) => {\n return (\n \n {item}\n \n );\n })\n ) : null}\n \n );\n};\nexport default TabItemView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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}\n\nexport const RequestInvoiceButton: React.FC = ({ className, onClicked, requestInvoiceButtonLabel, innerReference }) => {\n return (\n \n );\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 {backButton &&\n \n {backButton}\n }\n {links && 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. All rights reserved.\n * See License.txt 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\n public render(): JSX.Element | null {\n const { heading } = this.props.config;\n const imageListTitle = heading && (\n \n );\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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { Drawer, IModuleProps, INodeProps, Module } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { AttributesForSelectedVariantInput, getAttributesForSelectedVariant } from '../..';\nimport { ProductSpecificationTableRow } from './components/product-specification-table-stucture';\nimport { IProductSpecificationData } from './product-specification.data';\nimport { displayStyle, IProductSpecificationProps } from './product-specification.props.autogenerated';\n\n/**\n * Maintain Drawer State.\n */\nexport interface IProductSpecificationState {\n isDrawerOpen: boolean;\n drawerListId: number | undefined;\n}\n\n/**\n * Product specification view props.\n */\nexport interface IProductSpecificationViewProps extends IProductSpecificationProps<{}> {\n ProductSpecification: IModuleProps;\n ProductSpecificationTableProps: INodeProps;\n ProductSpecificationTableBodyProps: INodeProps;\n productSpecificationResult?: (JSX.Element | null)[];\n title?: React.ReactNode;\n isAccrodion?: boolean;\n handleText?(event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * Check for display style either accordion or table.\n */\nexport interface IProductSpecificationExtentedProps extends IProductSpecificationProps {\n displayStyle?: displayStyle;\n}\n\n/**\n *\n * ProductSpecification component.\n * @extends {React.Component>}\n */\n@observer\nclass ProductSpecification extends React.Component {\n public constructor(props: IProductSpecificationExtentedProps) {\n super(props);\n this.state = {\n isDrawerOpen: false,\n drawerListId: undefined\n };\n }\n\n public async componentDidMount(): Promise {\n const { context, data, telemetry } = this.props;\n const catalogId = Msdyn365.getCatalogId(this.props.context.request);\n reaction(\n () => (data.product.result ? data.product.result.RecordId : null),\n () => {\n if (context && data.product.result) {\n const actionInput = new AttributesForSelectedVariantInput(\n data.product.result.RecordId,\n\n +context.actionContext.requestContext.apiSettings.channelId,\n data.product.result,\n catalogId\n );\n\n getAttributesForSelectedVariant(actionInput, this.props.context.actionContext).catch((error: Error) => {\n telemetry.error(error.message);\n telemetry.debug('Unable to update attributes for Product');\n telemetry.error(error.message);\n });\n }\n }\n );\n }\n\n public shouldComponentUpdate(nextProps: IProductSpecificationExtentedProps,\n nextState: IProductSpecificationState): 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 let data: IProductSpecificationData;\n try {\n data = this.props.data;\n } catch (error) {\n this.props.telemetry.error(`Something went wrong ------${error}`);\n return (
\n {error}\n
);\n }\n\n if (!data.productSpecificationData.result || data.productSpecificationData.result.length <= 0) {\n this.props.telemetry.error('Product specification content is empty, module wont render.');\n return null;\n }\n\n const { heading, className } = this.props.config;\n const { productSpecificationData } = this.props.data;\n const isAccrodion = this.props.config.displayStyle === displayStyle.accordion;\n const viewProps = {\n ...this.props,\n handleText: this.handleHeadingChange,\n ProductSpecification: {\n moduleProps: this.props,\n className: classnames('ms-product-specification', className)\n },\n ProductSpecificationTableProps: isAccrodion ? {\n moduleProps: this.props,\n className: classnames('ms-product-specification__accordion', className)\n } : {\n className: classnames('ms-product-specification__table table-striped table-bordered'),\n tag: 'table'\n },\n isAccrodion,\n ProductSpecificationTableBodyProps: isAccrodion ? {} : {\n className: '',\n tag: 'tbody'\n },\n title: heading?.text && (\n ),\n\n productSpecificationResult: isAccrodion ? productSpecificationData && this._createDrawerBody(data) : productSpecificationData && this._createTableBody(data)\n } as IProductSpecificationViewProps;\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handle Heading Text Change.\n * @param event - Current event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n private _createTableBody(content: IProductSpecificationData): (JSX.Element | null)[] {\n return content.productSpecificationData.result!.map((product, index) => {\n const cellData: JSX.Element | null = this._renderProductCell(product);\n\n if (!cellData) {\n return null;\n }\n\n return (\n \n );\n });\n }\n\n private _createDrawerBody(content: IProductSpecificationData): (JSX.Element | null)[] {\n const accordionItemContainer: IModuleProps = {\n moduleProps: this.props,\n className: 'ms-product-specification-title'\n };\n return content.productSpecificationData.result!.map((product) => {\n const cellData: JSX.Element | null = this._renderProductCell(product);\n if (!cellData) {\n return null;\n }\n return (\n \n \n
\n {cellData}\n
\n \n
\n );\n });\n }\n\n private readonly _toggle = (drawerListId: number | undefined) => (): void => {\n if (this.state.drawerListId !== drawerListId) {\n this.setState({ drawerListId, isDrawerOpen: true });\n } else {\n this.setState({ drawerListId: undefined, isDrawerOpen: false });\n }\n };\n\n private _renderProductCell(product: AttributeValue): JSX.Element | null {\n switch (product.DataTypeValue) {\n case 0: // None\n // Return span here instead of null so the row still shows\n return ;\n case 1: // Currency\n return this._renderCurrencyCell(product);\n case 2: // DateTime\n return this._renderDateTimeCell(product);\n case 3: // Decimal\n return this._renderDecimalCell(product);\n case 4: // Integer\n return this._renderIntegerCell(product);\n case 5: // Text\n return this._renderTextCell(product);\n case 6: // TrueFalse\n return this._renderTrueFalseCell(product);\n case 40: // Video\n this.props.telemetry.warning('Got video specification type, not supported yet so skipping line');\n return null;\n case 41: // Image\n this.props.telemetry.warning('Got image specification type, not supported yet so skipping line');\n return null;\n default:\n this.props.telemetry.warning(`Got unknown specification type ${product.DataTypeValue} so skipping line`);\n return null;\n }\n }\n\n private _renderCurrencyCell(product: AttributeValue): JSX.Element | null {\n if (product.CurrencyValue !== null && product.CurrencyValue !== undefined) {\n return (\n \n {product.CurrencyCode}\n {product.CurrencyValue}\n \n );\n }\n\n return null;\n }\n\n private _renderDateTimeCell(product: AttributeValue): JSX.Element | null {\n if (product.DateTimeOffsetValue?.toUTCString) {\n return (\n {product.DateTimeOffsetValue.toUTCString()}\n );\n }\n\n return null;\n }\n\n private _renderIntegerCell(product: AttributeValue): JSX.Element | null {\n if (product.IntegerValue !== null && product.IntegerValue !== undefined) {\n return (\n {product.IntegerValue}\n );\n }\n\n return null;\n }\n\n private _renderDecimalCell(product: AttributeValue): JSX.Element | null {\n if (product.FloatValue !== null && product.FloatValue !== undefined) {\n return (\n {product.FloatValue}\n );\n }\n\n return null;\n }\n\n private _renderTextCell(product: AttributeValue): JSX.Element | null {\n if (product.TextValue !== null && product.TextValue !== undefined) {\n return ;\n }\n\n return null;\n }\n\n private _renderTrueFalseCell(product: AttributeValue): JSX.Element | null {\n // TODO 20369885 setting to default value is needed to work around a platform bug where\n // config string value does not get its default value.\n if (product.BooleanValue) {\n return (\n {this.props.resources.trueValueText ? this.props.resources.trueValueText : 'Yes'}\n );\n }\n return (\n {this.props.resources.falseValueText ? this.props.resources.falseValueText : 'No'}\n );\n\n }\n\n}\n\nexport default ProductSpecification;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 { IBuyboxProps as IBuyboxExtentionProps, IBuyboxResources as IBuyboxExtentionResources } from '../definition-extensions/buybox.ext.props.autogenerated';\n\nconst BuyboxView: React.FC> = props => {\n const { ModuleProps, MediaGalleryContainerProps, ProductInfoContainerProps,\n addToCart, addToOrderTemplate, addToWishlist,\n telemetryContent, configure, description, findInStore,\n quantity, price, title, rating, callbacks, state, resources, inventoryLabel, shopSimilarLook, keyInPrice,\n quantityLimitsMessages, max, shopSimilarDescription, unitOfMeasure } = props;\n\n return (\n \n \n {props.mediaGallery}\n \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 (\n <>\n {textBlocks[0]}\n \n );\n};\n\nconst _renderSocialShare = (socialShare: React.ReactNode[]): JSX.Element | undefined => {\n if (!socialShare || socialShare.length === 0) {\n return undefined;\n }\n\n return (\n <>\n {socialShare[0]}\n \n );\n};\n\nconst _renderCartAndActions = (\n addToCart?: IBuyboxAddToCartViewProps,\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps,\n addToWishlist?: IBuyboxAddToWishlistViewProps): 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 (\n \n {dropdowns.map(_renderConfigureDropdown)}\n \n );\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): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors } = quantityComponent;\n\n const {\n resources\n } = props;\n\n const\n {\n quantity\n } = 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 \n {heading}\n \n {input}\n \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","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ISocialShareViewProps } from './social-share';\n\nexport const SocialShareView: React.FC = props => {\n const { SocialShareList, SocialShareItemElements, SocialShareItem, SocialShare } = props;\n if (SocialShareItemElements.length === 0) {\n props.context.telemetry.error('Social media list is empty, module wont render');\n return null;\n }\n return (\n \n \n {SocialShareItemElements.map((SocialShareElement: ReactNode, index: number) => {\n return (\n \n {SocialShareElement}\n \n );\n })}\n \n \n );\n};\n\nexport default SocialShareView;\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. All rights reserved.\n * See License.txt 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 { IInteractiveFeatureItemViewProps } from './interactive-feature-item';\n\n/**\n * Enumerator used to make some calculations to set the proper classnames\n * using modular calculations to see if they are in a right or left column or on first or last row.\n */\nenum MagicNumber {\n modularDivisor = 4,\n caseNumberZero = 0,\n caseNumberOne = 1,\n caseNumberTwo = 2\n}\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @param indexItem - Feature Item view props.\n * @param itemCounter - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nconst renderMosaic = (thisProps: IInteractiveFeatureItemViewProps, indexItem?: number, itemCounter?: number): JSX.Element | null => {\n const { title, paragraph, image, links,\n interactiveFeatureCollectionMosaicContainer,\n interactiveFeatureCollectionMosaicImage,\n interactiveFeatureCollectionMosaicDetails } = thisProps;\n const indexAux = indexItem ? indexItem + MagicNumber.caseNumberOne : MagicNumber.caseNumberOne;\n const itemCounterAux = itemCounter ? itemCounter : MagicNumber.caseNumberZero;\n const modularAux = indexAux % MagicNumber.modularDivisor;\n const firstRow = (indexAux <= MagicNumber.caseNumberTwo) ? 'firstRow' : '';\n const lastRow = itemCounterAux && ((indexAux === itemCounterAux) || (indexAux === itemCounterAux - MagicNumber.caseNumberOne)) ? 'lastRow' : '';\n const onCornerRight = modularAux === MagicNumber.caseNumberZero ? 'item-corner-right' : '';\n const onCornerLeft = modularAux === MagicNumber.caseNumberOne ? 'item-corner-left' : '';\n const containerClasses = classnames('ms-interactive-feature-collection-mosaic', onCornerLeft, onCornerRight, firstRow, lastRow);\n\n return (\n \n \n {image}\n \n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */const renderCarousel = (thisProps: IInteractiveFeatureItemViewProps): JSX.Element | null => {\n const { title, paragraph, image, links,\n interactiveFeatureCollectionCarouselContainer,\n interactiveFeatureCollectionCarouselImage,\n interactiveFeatureCollectionCarouselContent } = thisProps;\n return (\n \n \n {image}\n \n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param props - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nexport const FeatureItemViewComponent: React.FC = props => {\n const { isMosaic, featureItem, indexItem, itemCounter } = props;\n if (isMosaic) {\n return (\n <>\n {renderMosaic(props, indexItem, itemCounter)}\n \n );\n }\n return (\n \n {renderCarousel(props)}\n \n );\n};\n\nexport default FeatureItemViewComponent;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { BackToTop, getTelemetryObject, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBackTopFooterProps } from './back-top-footer.props.autogenerated';\n\n/**\n *\n * BackTopFooter component.\n * @extends {React.PureComponent>}\n */\nclass BackTopFooter extends React.PureComponent> {\n private readonly editProps: Msdyn365.ITextEditProps = {\n requestContext: this.props.context.request,\n onEdit: (event: Msdyn365.ContentEditableEvent) => this.props.config.backtoTopText = event.target.value\n };\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IBackTopFooterProps<{}>) {\n super(props);\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\n }\n\n public render(): JSX.Element | null {\n if (!this.props.config.destination) {\n this.props.telemetry.error('BackToTop.destination has not been provided, module wont render.');\n return null;\n }\n\n return (\n \n );\n }\n}\n\nexport default BackTopFooter;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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","/*--------------------------------------------------------------\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 { IHelp, IOrderSummary, IPaymentMethods } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common';\r\nimport { IGroup, IGroupDelivery, IGroups } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-groups';\r\nimport { IOrderInformation } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-order-information';\r\nimport { ISalesLine } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-sales-line';\r\nimport { IOrderConfirmationViewProps } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/./order-confirmation';\r\n\r\ninterface IPaymentMethodsExt extends IPaymentMethods {\r\n totalOnAccount?: string;\r\n}\r\n\r\n\r\nexport const OrderConfirmationOrderInfomation: React.FC = ({\r\n orderInformationProps,\r\n receiptEmail,\r\n createdDate\r\n // channelReferenceId\r\n}) => (\r\n \r\n {createdDate}\r\n {/* {channelReferenceId} */}\r\n {receiptEmail}\r\n \r\n);\r\n\r\nexport const OrderConfirmationSalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton }) => (\r\n \r\n {salesLine}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroupDelivery: React.FC = ({ deliveryProps, heading, count, processing, address, trackingInfo, pickupDateTimeslot }) => (\r\n \r\n {heading}\r\n {address}\r\n {pickupDateTimeslot}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\r\n \r\n {delivery && }\r\n {delivery && delivery.shippingItemsToYou}\r\n {salesLines && (\r\n \r\n {salesLines.map((salesLine: ISalesLine) => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroups: React.FC = ({ groupsProps, groups }) => (\r\n \r\n {groups.map((group: IGroup, index: number) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport const OrderConfirmationOrderSummary: React.FC = ({ orderSummaryProps, heading, subtotal, shipping, tax, totalAmount, earnedPoints }) => (\r\n \r\n {heading}\r\n {subtotal}\r\n {shipping}\r\n {tax}\r\n {totalAmount}\r\n {earnedPoints}\r\n \r\n);\r\n\r\nexport const OrderConfirmationPayment: React.FC = ({ paymentMethodsProps, title, methods, totalOnAccount }) => \r\n {title}\r\n {totalOnAccount ?

On Account: {totalOnAccount}

: null}\r\n {methods}\r\n
;\r\n\r\nexport const OrderConfirmationHelp: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\r\n \r\n {needHelpLabel}\r\n {helpLineNumberLabel}\r\n {contactNumber}\r\n \r\n);\r\n\r\n\r\nconst OrderConfirmationView: React.FC = (props) => {\r\n const {\r\n moduleProps,\r\n heading,\r\n backToShoppingLink,\r\n alert,\r\n loading,\r\n orderInfomation,\r\n orderSummary,\r\n payment,\r\n help,\r\n groups,\r\n context: { cultureFormatter: { formatCurrency }}\r\n } = props;\r\n const tenderLines = props.data.orderHydration.result?.salesOrder.TenderLines;\r\n let totalOnAccount = 0;\r\n if (tenderLines) {\r\n totalOnAccount = tenderLines.map(tl => tl.AmountInCompanyCurrency || 0).reduce((num, total) => num + total, 0);\r\n }\r\n console.log(totalOnAccount);\r\n return (\r\n \r\n {heading}\r\n {alert}\r\n {loading}\r\n {orderInfomation && }\r\n {backToShoppingLink}\r\n {groups && }\r\n {payment && 0 ? formatCurrency(totalOnAccount) : undefined}\r\n />}\r\n {orderSummary && }\r\n {help && }\r\n \r\n );\r\n};\r\n\r\nexport default OrderConfirmationView;\r\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 {item.text}\n \n );\n })}\n \n \n );\n};\n\nexport default imageListView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterCategoryConfig, IFooterCategoryProps } from './footer-category.props.autogenerated';\n\nexport interface IFooterCategoryViewProps extends IFooterCategoryProps {\n categories: React.ReactNode[];\n FooterList: IModuleProps;\n FooterListItem: INodeProps;\n}\n\n/**\n *\n * FooterCategory component.\n * @extends {React.PureComponent>}\n */\nclass FooterCategory extends React.PureComponent> {\n public render(): JSX.Element | null {\n if (!this.props.slots || !this.props.slots.content || this.props.slots.content.length === 0) {\n this.props.context.telemetry.error('footer slots content is empty, module wont render');\n return null;\n }\n const viewprops = {\n ...this.props,\n categories: this.props.slots.content,\n FooterList: {\n moduleProps: this.props,\n className: classnames('ms-footer__list', this.props.config.className),\n tag: 'ul'\n },\n FooterListItem: {\n className: classnames('ms-footer__list-item', this.props.config.className),\n tag: 'li'\n }\n };\n\n return this.props.renderView(viewprops) as React.ReactElement;\n }\n}\n\nexport default FooterCategory;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { ICartState } from '@msdyn365-commerce/global-state';\nimport { format, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\n/**\n * ICartIconData: Interface for Cart Icon Data.\n */\nexport interface ICartIconData {\n cart?: ICartState;\n}\n\n/**\n * ICartIconComponentProps: Interface for Cart Icon component props.\n */\nexport interface ICartIconComponentProps extends IComponentProps {\n className?: string;\n cartLabel: string;\n cartQtyLabel: string;\n telemetryContent?: ITelemetryContent;\n}\n\n/**\n * ICartIconComponent: Interface for Cart Icon component.\n */\nexport interface ICartIconComponent extends IComponent {\n}\n\nconst CartIconComponentActions = {};\n\n/**\n *\n * CartIcon component.\n * @extends {React.FC}\n */\nconst CartIcon: React.FC = observer((props: ICartIconComponentProps) => {\n const { cartLabel, cartQtyLabel, data: { cart } } = props;\n const defaultCartItemCount: number = 0;\n\n const cartItem = cart ? cart.totalItemsInCart : defaultCartItemCount;\n let qtyLabel: string = '';\n const cartMaxQuantity: number = 99;\n const maxQuantityLabel: string = '99+';\n if (cartItem > cartMaxQuantity) {\n qtyLabel = maxQuantityLabel;\n } else {\n qtyLabel = format(cartQtyLabel, cartItem);\n }\n const label = format(cartLabel, cartItem);\n\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', props.telemetryContent!, 'cart-icon', '');\n const attributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n const style: React.CSSProperties = {\n visibility: cart ? 'visible' : 'hidden'\n };\n return (\n \n
\n {qtyLabel}\n
\n \n );\n});\n\n// @ts-expect-error -- Compatible issue with the component override.\nexport const CartIconComponent: React.FunctionComponent = msdyn365Commerce.createComponentOverride(\n 'CartIcon',\n { component: CartIcon, ...CartIconComponentActions }\n);\n\nexport default CartIconComponent;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n}\n\ninterface IPayInvoiceComponent extends IComponent {\n}\n\nconst onClick = async (_event: React.MouseEvent, props: IPayInvoiceProps, setDisabled: (disabled: boolean) => void): 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,\n setDisabled: React.Dispatch>) => async (event: React.MouseEvent) => {\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. All rights reserved.\n * See License.txt 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\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 \n {linkText}\n \n \n \n );\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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(this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry);\n\n public render(): JSX.Element | null {\n\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\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 (\n 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 (\n 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 /**\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\n private readonly _goBack = (): void => {\n window.history.back();\n };\n\n private readonly _getPDPBackButton = (): JSX.Element | null => {\n const isBackAllowed = 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}\n\nexport default Breadcrumb;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { IAccordionExpandedState } from './data-actions/accordion-state';\nimport { createAccordionStateInput } from './data-actions/accordion-state-data-action';\nimport accordion from './modules/accordion/accordion';\nimport { interactionStyle } from './modules/accordion/accordion.props.autogenerated';\nimport accordionView from './modules/accordion/accordion.view';\n\nexport * from './modules/accordion/accordion';\nexport * from './modules/accordion/accordion.view';\n\nexport {\n accordion,\n accordionView,\n createAccordionStateInput,\n IAccordionExpandedState,\n interactionStyle\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccordionItemViewProps } from './accordion-item';\n\nconst AccordionItemView: React.FC = props => {\n const { drawer, accordionSlots, AccordionItemContainer, AccordionItemContent } = props;\n return (\n \n \n \n {accordionSlots && accordionSlots.accordionItemContent && accordionSlots.accordionItemContent.length && (_renderAccordionItemContent(accordionSlots.accordionItemContent))}\n \n \n \n );\n};\n\nconst _renderAccordionItemContent = (items: React.ReactNode[]): JSX.Element | null => {\n return (\n <>\n {items && items.length > 0 ? (\n items.map((item: React.ReactNode, index: number) => {\n return (\n \n {item}\n \n );\n })\n ) : null}\n \n );\n};\nexport default AccordionItemView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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}\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}\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\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 {\n props.data.invoices.map((invoice, index: number) => {\n return (\n \n );\n })\n }\n
\n );\n};\n\n// @ts-expect-error\nexport const InvoicesTableComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'InvoicesTableComponent',\n { component: InvoicesTable }\n);\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ControlledDrawer, getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { IDrawerState } from '@msdyn365-commerce-modules/utilities/dist/types/drawer/Drawer';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createAccordionStateInput, interactionStyle } from '../..';\nimport { IAccordionItemData } from './accordion-item.data';\nimport { IAccordionItemProps } from './accordion-item.props.autogenerated';\n\nexport interface IAccordionItemViewProps {\n AccordionItemContainer: IModuleProps;\n drawer: INodeProps;\n accordionSlots: INodeProps;\n AccordionItemContent: INodeProps;\n className: string;\n}\n\nexport interface IAccordionItemExtentedProps extends IAccordionItemProps {\n interactionStyle?: interactionStyle;\n}\n\n/**\n *\n * AccordionItem component.\n * @extends {React.Component}\n */\n@observer\nclass AccordionItem extends React.Component {\n\n private readonly moduleClassName: string = 'ms-accordion-item';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IAccordionItemProps) {\n super(props);\n this._onToggle = this._onToggle.bind(this);\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\n }\n\n public shouldComponentUpdate(nextProps: IAccordionItemProps): boolean {\n if (this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { slots, renderView, config, data } = this.props;\n const accordionExpandedStateResult = data && data.accordionExpandedState && data.accordionExpandedState.result;\n const expanded = accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded === undefined ? data && config.isExpandedOnInitialLoad : (accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded);\n const viewProps = {\n ...this.props,\n AccordionItemContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n AccordionItemContent: {\n className: 'ms-accordion-item-content'\n },\n drawer: {\n tag: ControlledDrawer,\n className: `${this.moduleClassName}__drawer`,\n toggleButtonText: (config.accordionItemTitle && config.accordionItemTitle) || '',\n collapseProps: { isOpen: expanded },\n onToggle: this._onToggle,\n onTextChange: this.handleHeadingChange,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n },\n accordionSlots: slots\n };\n return renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.accordionItemTitle = event.target.value;\n\n private _onToggle(state: IDrawerState): void {\n if (!state.isOpen && this.props.interactionStyle === interactionStyle.ExpandOneItemOnly) {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n }\n }\n\n}\nexport default AccordionItem;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAadGenericViewProps } from './aad-generic';\n\nexport default (props: IAadGenericViewProps) => {\n const {\n aadGeneric,\n aadConainer,\n aadAPIConainer,\n heading\n } = props;\n\n return (\n \n \n {heading}\n {aadAPIConainer}\n \n \n );\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { IHistogramItemViewProps, IRatingsHistogramViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst RatingsHistogramView: React.FC = props => {\n const { heading, histogramItems, histogramProps, moduleProps } = props;\n return (\n \n {heading}\n \n {histogramItems.map(item => {\n return histogramItem(item);\n })}\n \n \n );\n};\n\nconst histogramItem = (props: IHistogramItemViewProps) => {\n return (\n \n {props.starLabel}\n {props.bar}\n {props.percentage}\n \n );\n};\n\nexport default RatingsHistogramView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IProductSpecificationViewProps } from './product-specification';\n\nconst ProductSpecificationView: React.FC = props => {\n const { ProductSpecification, ProductSpecificationTableProps, ProductSpecificationTableBodyProps, productSpecificationResult } = props;\n const rowdata = productSpecificationResult &&\n ArrayExtensions.hasElements(productSpecificationResult) &&\n productSpecificationResult.filter((row) => !ObjectExtensions.isNullOrUndefined(row));\n\n return (\n rowdata && ArrayExtensions.hasElements(rowdata) ? (\n \n {props.title}\n \n \n { rowdata }\n \n \n ) : null\n );\n};\n\nexport default ProductSpecificationView;\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 { IHelp, IOrderSummary, IPaymentMethods } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common';\r\nimport { IGroup, IGroupDelivery, IGroups } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-groups';\r\nimport { IOrderInformation } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-order-information';\r\nimport { ISalesLine } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-sales-line';\r\nimport { IOrderConfirmationViewProps } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/./order-confirmation';\r\n\r\ninterface IPaymentMethodsExt extends IPaymentMethods {\r\n totalOnAccount?: string;\r\n}\r\n\r\n\r\nexport const OrderConfirmationOrderInfomation: React.FC = ({\r\n orderInformationProps\r\n // receiptEmail,\r\n // createdDate\r\n // channelReferenceId\r\n}) => (\r\n \r\n {/* {createdDate} */}\r\n {/* {channelReferenceId} */}\r\n {/* {receiptEmail} */}\r\n \r\n);\r\n\r\nexport const OrderConfirmationSalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton }) => (\r\n \r\n {salesLine}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroupDelivery: React.FC = ({ deliveryProps, heading, count, processing, address, trackingInfo, pickupDateTimeslot }) => (\r\n \r\n {heading}\r\n {address}\r\n {pickupDateTimeslot}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\r\n \r\n {delivery && }\r\n {delivery && delivery.shippingItemsToYou}\r\n {salesLines && (\r\n \r\n {salesLines.map((salesLine: ISalesLine) => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroups: React.FC = ({ groupsProps, groups }) => (\r\n \r\n {groups.map((group: IGroup, index: number) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport const OrderConfirmationOrderSummary: React.FC = ({ orderSummaryProps, heading, subtotal, shipping, tax, totalAmount, earnedPoints }) => (\r\n \r\n {heading}\r\n {subtotal}\r\n {shipping}\r\n {tax}\r\n {totalAmount}\r\n {earnedPoints}\r\n \r\n);\r\n\r\nexport const OrderConfirmationPayment: React.FC = ({ paymentMethodsProps, title, methods, totalOnAccount }) => \r\n {title}\r\n {totalOnAccount ?

On Account: {totalOnAccount}

: null}\r\n {methods}\r\n
;\r\n\r\nexport const OrderConfirmationHelp: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\r\n \r\n {needHelpLabel}\r\n {helpLineNumberLabel}\r\n {contactNumber}\r\n \r\n);\r\n\r\n\r\nconst OrderConfirmationView: React.FC = (props) => {\r\n const {\r\n moduleProps,\r\n heading,\r\n backToShoppingLink,\r\n alert,\r\n loading,\r\n orderInfomation,\r\n orderSummary,\r\n payment,\r\n help,\r\n groups,\r\n context: { cultureFormatter: { formatCurrency }}\r\n } = props;\r\n const tenderLines = props.data.orderHydration.result?.salesOrder.TenderLines;\r\n let totalOnAccount = 0;\r\n if (tenderLines) {\r\n totalOnAccount = tenderLines.map(tl => tl.AmountInCompanyCurrency || 0).reduce((num, total) => num + total, 0);\r\n }\r\n console.log(totalOnAccount);\r\n return (\r\n \r\n {heading}\r\n {alert}\r\n {loading}\r\n {orderInfomation && }\r\n {backToShoppingLink}\r\n {groups && }\r\n {payment && 0 ? formatCurrency(totalOnAccount) : undefined}\r\n />}\r\n {orderSummary && }\r\n {help && }\r\n \r\n );\r\n};\r\n\r\nexport default OrderConfirmationView;\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 { 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccordionViewProps } from './accordion';\n\nconst accordionView: React.FC = props => {\n const { heading, AccordionContainer, accordionItems } = props;\n if (!props.heading && !props.accordionButtons && !props.accordionItems) {\n props.context.telemetry.error('Accordion content is empty, module wont render');\n return null;\n }\n return (\n \n \n \n {heading}\n \n {props.accordionButtons && (\n {props.accordionButtons}\n )}\n \n \n {accordionItems}\n \n \n );\n};\n\nexport default accordionView;\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 {\r\n IGroup,\r\n IGroupDelivery,\r\n IGroups,\r\n IHelp,\r\n IOrderDetailsViewProps,\r\n IOrderInformation,\r\n IOrderSummary,\r\n IPaymentMethods,\r\n ISalesLine\r\n} from '@msdyn365-commerce-modules/order-management';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport const OrderInfomation: React.FC = ({\r\n orderInformationProps,\r\n salesId,\r\n receiptId,\r\n createdDate,\r\n count,\r\n amount,\r\n // channelReferenceId,\r\n channelName,\r\n channelAddress\r\n}) => (\r\n \r\n {channelName}\r\n {channelAddress}\r\n {salesId}\r\n {receiptId}\r\n {createdDate}\r\n {count}\r\n {amount}\r\n {/* {channelReferenceId} */}\r\n \r\n);\r\n\r\nexport const SalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton, errors }) => (\r\n \r\n {salesLine}\r\n {buyAgainButton}\r\n {errors}\r\n \r\n);\r\n\r\nexport const GroupDelivery: React.FC = ({ deliveryProps, heading, count }) => (\r\n \r\n {heading}\r\n {count}\r\n \r\n);\r\n\r\nexport const Group: React.FC = ({ groupProps, delivery, address, salesLinesProps, salesLines, isCashAndCarryTransaction }) => (\r\n \r\n {delivery && }\r\n \r\n {salesLines && (\r\n \r\n {salesLines.map(salesLine => (\r\n \r\n {salesLine.data.deliveryType === 'ship' && salesLine.data.shipment ? salesLine.trackingInfo : null}\r\n \r\n {!isCashAndCarryTransaction && salesLine.salesStatus}\r\n \r\n ))}\r\n \r\n )}\r\n {!delivery.showTimeslot && address}\r\n {delivery.showTimeslot && (\r\n \r\n {address}\r\n {delivery.pickupDateTimeslot}\r\n \r\n )}\r\n \r\n \r\n);\r\n\r\nexport const Groups: React.FC = ({ groupsProps, groups }) => (\r\n \r\n {groups.map((group, index) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport const OrderSummary: React.FC = ({ orderSummaryProps, heading, subtotal, shipping, tax, totalAmount, earnedPoints }) => (\r\n \r\n {heading}\r\n {subtotal}\r\n {shipping}\r\n {tax}\r\n {totalAmount}\r\n {earnedPoints}\r\n \r\n);\r\n\r\nexport const Payment: React.FC = ({ paymentMethodsProps, title, methods }) => (\r\n \r\n {title}\r\n {methods}\r\n \r\n);\r\n\r\nexport const Help: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\r\n \r\n {needHelpLabel}\r\n {helpLineNumberLabel}\r\n {contactNumber}\r\n \r\n);\r\n\r\nconst OrderDetailsView: React.FC = ({\r\n moduleProps,\r\n viewModes,\r\n tableViewActions,\r\n table,\r\n heading,\r\n alert,\r\n loading,\r\n orderInfomation,\r\n orderSummary,\r\n payment,\r\n help,\r\n groups\r\n}) => {\r\n return (\r\n \r\n {heading}\r\n {alert}\r\n {loading}\r\n {orderInfomation && }\r\n {tableViewActions}\r\n {viewModes}\r\n {table}\r\n {groups && }\r\n \r\n {orderSummary && }\r\n {payment && }\r\n \r\n {help && }\r\n \r\n );\r\n};\r\n\r\nexport default OrderDetailsView;\r\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps, INodeProps, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createTabStateInput, getContentID, TabItemType } from '../..';\nimport { ITabData } from './tab.data';\nimport { ITabProps } from './tab.props.autogenerated';\n\n/**\n *\n * Tab component.\n * @extends {React.PureComponent>}\n */\n\nexport interface ICallToActionProps {\n link: INodeProps[];\n}\n\nexport interface ITabViewProps extends ITabProps<{}> {\n heading?: React.ReactNode;\n TabContainer: IModuleProps;\n headerSection: INodeProps;\n tabHeaderSection: INodeProps;\n tabsSection: INodeProps;\n tabItemContainer: INodeProps;\n tabHeaders: React.ReactNode;\n tabContents: React.ReactNode;\n}\n\nexport interface ITabViewStates {\n currentTabIndex: number;\n}\n\n/**\n *\n * Tab component.\n * @extends {React.Component>}\n */\n@observer\nclass Tab extends React.Component, ITabViewStates> {\n public readonly tabIndexQuery: string = 'activeTab';\n\n private activeLink: HTMLLIElement | null;\n\n constructor(props: ITabProps) {\n super(props);\n const { defaultTabIndex } = this.props.config;\n const { slots } = this.props;\n const slotLength = slots && slots.tabItems && slots.tabItems.length || 0;\n let initialIndex = defaultTabIndex && defaultTabIndex <= slotLength && defaultTabIndex > 0 ? defaultTabIndex - 1 : 0;\n const queryString: string = this.props.context && this.props.context.request && this.props.context.request.query && this.props.context.request.query.activeTab || '';\n let queryTabIndex: number = 0;\n if (queryString.indexOf(':') > 0) {\n const arr = queryString.split(':');\n const moduleId = arr[0];\n if (moduleId === this.props.id) {\n queryTabIndex = Number.parseInt(arr[1], 10);\n }\n }\n initialIndex = queryTabIndex > 0 && queryTabIndex <= slotLength ? queryTabIndex - 1 : initialIndex;\n this.state = { currentTabIndex: initialIndex };\n\n this._getTabHeader = this._getTabHeader.bind(this);\n this._getTabContent = this._getTabContent.bind(this);\n this._onClick = this._onClick.bind(this);\n this._onKeyDown = this._onKeyDown.bind(this);\n this._setGetParameter = this._setGetParameter.bind(this);\n this.activeLink = null;\n }\n\n public shouldComponentUpdate(nextProps: ITabProps,\n nextState: ITabViewStates): 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 { slots } = this.props;\n const { heading, className } = this.props.config;\n\n const headingComponent = heading && (\n \n );\n const slotLength = slots && slots.tabItems && slots.tabItems.length || 0;\n\n // Const queryTabIndex = this.props.context && this.props.context.request && this.props.context.request.query && +this.props.context.request.query.activeTabIndex || 0;\n // let activeIndex = defaultTabIndex && defaultTabIndex <= slotLength && defaultTabIndex > 0 ? defaultTabIndex - 1 : 0;\n // activeIndex = queryTabIndex > 0 && queryTabIndex <= slotLength ? queryTabIndex - 1 : activeIndex;\n\n const tabViewProps = {\n ...this.props,\n TabContainer: {\n moduleProps: this.props,\n className: classnames('ms-tab', className)\n },\n headerSection: { className: 'ms-tab-header-section' },\n tabsSection: { className: 'ms-tab-tabs-section', tag: 'ul' as NodeTag, role: 'tablist' },\n heading: headingComponent,\n config: this.props && this.props.config,\n tabItemContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-tab-content-section'\n },\n tabContents: slotLength > 0 && slots.tabItems.map((item: React.ReactNode, index: number) => this._getTabContent(item, index)),\n tabHeaders: slotLength > 0 && slots.tabItems.map((item: React.ReactNode, index: number) => this._getTabHeader(item, index))\n };\n return this.props.renderView(tabViewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: MsDyn365.ContentEditableEvent) => this.props.config.heading!.text = event.target.value;\n\n public componentDidUpdate(): void {\n const { data } = this.props;\n const dataActionTabId = data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.tabId;\n if (dataActionTabId) {\n if (this.props.id === dataActionTabId) {\n this.activeLink && this.activeLink.focus();\n }\n } else {\n const queryString: string = this.props.context && this.props.context.request && this.props.context.request.query && this.props.context.request.query.activeTab || '';\n if (queryString.indexOf(':') > 0) {\n const arr = queryString.split(':');\n const moduleId = arr[0];\n if (moduleId === this.props.id) {\n this.activeLink && this.activeLink.focus();\n }\n }\n }\n }\n\n /**\n *Set the activate link value on tab click.\n * @param link -Ref link value.\n */\n private readonly _refHandler = (link: HTMLLIElement | null) => {\n this.activeLink = link;\n };\n\n private _getTabHeader(item: React.ReactNode, index: number): React.ReactNode {\n const { data } = this.props;\n const activeContentIndex = data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.activeContentIndex;\n const dataActionTabId = data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.tabId;\n const selected = activeContentIndex !== undefined && dataActionTabId === this.props.id ? activeContentIndex === index : this.state.currentTabIndex === index;\n const contentID = getContentID(index, this.props.id);\n\n return (\n \n \n {React.cloneElement(item as React.ReactElement, { tabItemType: TabItemType.TabHeader, isSelected: index === this.state.currentTabIndex, itemIndex: index, tabId: this.props.id })}\n \n \n );\n }\n\n private readonly _onClick = (index: number, id: string) => (e: React.MouseEvent) => {\n const activeTabState = { activeContentIndex: index, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 1)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n };\n\n private readonly _onKeyDown = (index: number, id: string) => (e: React.KeyboardEvent) => {\n if (e.keyCode === 13) {\n const activeTabState = { activeContentIndex: index, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 1)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n }\n\n if (e.keyCode === 39 || e.keyCode === 37) {\n const { slots } = this.props;\n const slotLength = slots && slots.tabItems && slots.tabItems.length || 0;\n\n if (e.keyCode === 39) {\n\n // If we're at the end, go to the start\n if (index + 1 === slotLength) {\n index = -1;\n }\n const activeTabState = { activeContentIndex: index + 1, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index + 1 });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 2)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n\n // Move left\n } else if (e.keyCode === 37) {\n // If we're at the start, move to the end\n if (index === 0) {\n index = slotLength;\n }\n const activeTabState = { activeContentIndex: index - 1, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index - 1 });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n }\n }\n };\n\n private _getTabContent(item: React.ReactNode, index: number): React.ReactNode {\n return (\n \n {React.cloneElement(item as React.ReactElement, { tabItemType: TabItemType.TabContent, isSelected: index === this.state.currentTabIndex, itemIndex: index, tabId: this.props.id })}\n \n );\n }\n\n private _setGetParameter(requestContext: MsDyn365.IRequestContext, paramName: string, paramValue: string): string {\n let url;\n\n if (MsDyn365.msdyn365Commerce.isBrowser) {\n url = new URL(window.location.href);\n } else {\n url = new URL(requestContext.url.requestUrl.href);\n }\n\n const params = new window.URLSearchParams(url.search);\n params.set(paramName, paramValue);\n url.search = decodeURIComponent(params.toString());\n return url.toString();\n }\n}\n\nexport default Tab;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n}\n\nexport interface IMakePaymentComponent extends IComponent {\n}\n\nconst onClick = async (_event: React.MouseEvent, props: IMakePaymentProps, setDisabled: (disabled: boolean) => void): 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,\n setDisabled: React.Dispatch>) => async (event: React.MouseEvent) => {\n await MakePaymentComponentActions.onClick(event, input, setDisabled);\n};\n\nconst MakePayment: React.FC = (input: IMakePaymentProps): JSX.Element => {\n const { data: { invoices } } = 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. All rights reserved.\n * See License.txt 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 { IAadGenericData } from './aad-generic.data';\nimport { IAadGenericProps } from './aad-generic.props.autogenerated';\n\nexport interface IAadGenericViewProps extends IAadGenericProps {\n aadGeneric: IModuleProps;\n aadConainer: INodeProps;\n aadAPIConainer: React.ReactNode;\n heading?: React.ReactNode;\n}\n\n/**\n *\n * AadGeneric component.\n * @extends {React.Component>}\n */\nclass AadGeneric extends React.Component> {\n private readonly moduleClassName: string = 'ms-aad-generic';\n\n public componentDidMount(): void {\n // @ts-expect-error\n const { $i2e, $element } = window || {};\n\n if ($i2e && $element) {\n $i2e.insertServiceContent($element.getElementContent());\n $element.initialize();\n }\n }\n\n public shouldComponentUpdate(nextProps: IAadGenericViewProps): boolean {\n\n if (nextProps.config.heading !== this.props.config.heading) {\n return true;\n }\n return false;\n }\n\n public render(): JSX.Element | null {\n const { className, heading } = this.props.config;\n\n const viewProps = {\n ...this.props,\n aadGeneric: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n aadConainer: {\n className: `${this.moduleClassName}__container`\n },\n aadAPIConainer:
,\n heading: heading && \n };\n\n return this.props.renderView(viewProps);\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.heading) {\n this.props.config.heading.text = event.target.value;\n }\n };\n}\n\nexport default AadGeneric;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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}\n\nexport const InvoiceError: React.FC = ({ messageHeader, errorMessage, otherError, showError, payInvoiceErrorModalOpen, errorDialogHeader, errorDialogBodyErrorTitle, errorDialogBodyErrorDescription,\n errorDialogFooterGoToCartButtonText, errorDialogFooterCancelButtonText, cartUrl, setPayInvoiceErrorModalClose }) => {\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\n aria-label={messageHeader} >\n \n {errorMessages.map((message, index) => {\n return (\n
\n {message}\n
\n );\n })}\n \n \n \n \n {errorDialogHeader}\n \n \n \n
\n
\n {errorDialogBodyErrorTitle}\n
\n
\n {errorDialogBodyErrorDescription}\n
\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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { IFooterCategoryViewProps } from './footer-category';\n\nexport const FooterCategoryView: React.FC = props => {\n const { categories, FooterList, FooterListItem } = props;\n if (!categories || categories.length === 0) {\n props.context.telemetry.error('Footer content is empty, module wont render');\n return null;\n }\n return (\n \n { categories.map((category: ReactNode, index: number) => {\n return (\n \n {category}\n \n );\n })}\n \n );\n};\n\nexport default FooterCategoryView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { IInteractiveFeatureCollectionViewProps } from './interactive-feature-collection';\n\n/**\n * Feature Collection View.\n * @param props - Feature Collection view props.\n * @returns Feature Collection View.\n */\nexport const interactiveFeatureCollectionView: React.FC = (props) => {\n const {\n title,\n interactiveFeatureCollectionHeading,\n interactiveFeatureCollectionContainer,\n interactiveFeatureCollectionDesktopContainer,\n interactiveFeatureCollectionDesktopItems,\n interactiveFeatureCollectionMobileItems,\n interactiveFeatureCollectionMobileContainer,\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer } = props;\n return (\n \n \n {title}\n \n \n {interactiveFeatureCollectionDesktopItems}\n \n \n \n { interactiveFeatureCollectionMobileItems.map((tileItem: ReactNode, index: number) => {\n const keyIndex = `interactive-feature-carousel-item__${index}`;\n return (\n \n {tileItem}\n \n );\n })}\n \n \n \n );\n};\n\nexport default interactiveFeatureCollectionView;\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 } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport MsDyn365 from \"@msdyn365-commerce/core\";\r\nimport { IInvoicesListViewProps } from '@msdyn365-commerce-modules/invoice/src/modules/invoices-list/./invoices-list';\r\n\r\nexport const InvoiceListView: React.FC = props => {\r\n const { header, filter, content, invoiceRequestModal, pagination } = props;\r\n if (MsDyn365.isBrowser) {\r\n const linksElements = document.querySelectorAll('a.msc-invoices-list__container__content__table__row__open-invoice');\r\n console.log(linksElements);\r\n linksElements.forEach(l => l.setAttribute('href', '#'));\r\n }\r\n return (\r\n \r\n {header}\r\n {invoiceRequestModal}\r\n {filter}\r\n {content}\r\n {pagination}\r\n \r\n );\r\n};\r\n\r\nexport default InvoiceListView;\r\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 {\n heading,\n paragraph\n } = 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. All rights reserved.\n * See License.txt 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 (invoices: IPayableInvoice[], actionContext: IActionContext, onError: (errorState: IInvoiceErrorState) => void) => {\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' } }); 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 }); 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { IModuleProps, INodeProps, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { ITabItemData } from './tab-item.data';\nimport { ITabItemProps } from './tab-item.props.autogenerated';\n\nexport interface ITabItemViewProps {\n TabContentContainer: IModuleProps;\n TabHeaderContainer: IModuleProps;\n tabSlots: INodeProps;\n TabItemContent: INodeProps;\n tabItemType?: TabItemType;\n tabHeader: React.ReactNode;\n}\n\nexport interface ITabItemExtentedProps extends ITabItemProps {\n tabItemType?: TabItemType;\n isSelected?: boolean;\n itemIndex?: number;\n tabId?: string;\n}\n\nexport enum TabItemType {\n TabHeader,\n TabContent\n}\n\n/**\n *\n * TabItem component.\n * @extends {React.Component}\n */\n@observer\nclass TabItem extends React.PureComponent {\n private readonly moduleContentClassName: string = 'ms-tab-item-content';\n\n private readonly moduleHeaderClassName: string = 'ms-tab-item-header';\n\n constructor(props: ITabItemProps) {\n super(props);\n this._renderTabHeader = this._renderTabHeader.bind(this);\n }\n\n public render(): JSX.Element {\n const { slots, renderView, config, data, isSelected, itemIndex } = this.props;\n const index = itemIndex || 0;\n const contentID = getContentID(index, this.props.tabId || '');\n const activeContentIDResult = data && data.activeTabState && data.activeTabState.result;\n const shown = activeContentIDResult && activeContentIDResult.tabId === this.props.tabId && activeContentIDResult.activeContentIndex !== undefined ? activeContentIDResult.activeContentIndex === index : isSelected || false;\n const viewProps = {\n ...this.props,\n TabContentContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleContentClassName, config.className)\n },\n TabHeaderContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleHeaderClassName, config.className)\n },\n TabItemContent: {\n className: 'ms-tab-item-content__content',\n tag: 'section' as NodeTag,\n 'aria-hidden': !shown,\n role: 'tabpanel',\n tabIndex: shown ? 0 : -1,\n id: contentID\n },\n tabHeader: this._renderTabHeader(),\n tabSlots: slots\n };\n return renderView(viewProps) as React.ReactElement;\n\n }\n\n private _renderTabHeader(): React.ReactNode {\n return (\n <>\n {this.props.config.tabItemTitle}\n \n );\n }\n\n}\n\nexport const getContentID = (index: number, id: string) => {\n return `tab-item-content-${id}-${index}`;\n};\n\nexport default TabItem;\n","import { createContext } from 'react';\r\n\r\n// each payment type will have an ID and a name, both will be strings\r\nexport interface IPaymentTenderType {\r\n tenderName: string;\r\n tenderTypeId: string;\r\n}\r\n\r\n// stores the payment modules element ID as a key and an array of Payment Tender Types for each tender type ID and name the module is associated with\r\ninterface IPaymentContextState {\r\n paymentModules: Record;\r\n selectedPayment: IPaymentTenderType;\r\n}\r\n\r\ninterface IPaymentContext extends IPaymentContextState {\r\n registerPaymentMethod: (elementId: string, tenderTypeList: IPaymentTenderType[]) => void;\r\n setSelectedPaymentState: (paymentTenderType: IPaymentTenderType) => void;\r\n}\r\n\r\nconst _errorMsg = 'Must be used within a provider';\r\n\r\nconst paymentModules: Record = {};\r\nconst selectedPayment: IPaymentTenderType = {} as IPaymentTenderType;\r\nconst registerPaymentMethod = (elementId: string, tenderTypeList: IPaymentTenderType[]) => {\r\n throw Error(_errorMsg);\r\n};\r\nconst setSelectedPaymentState = (paymentTenderType: IPaymentTenderType) => {\r\n throw Error(_errorMsg);\r\n};\r\n\r\nexport const PaymentContext = createContext({\r\n paymentModules,\r\n selectedPayment,\r\n registerPaymentMethod,\r\n setSelectedPaymentState\r\n});\r\n\r\nconst { Consumer: PaymentConsumer, Provider: PaymentProvider } = PaymentContext;\r\nexport { PaymentConsumer, PaymentProvider };\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\n\r\nimport { ICheckoutPaymentInstrumentViewProps, ICheckoutPaymentOverlayModal } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-payment-instrument/./checkout-payment-instrument';\r\nimport { ICheckoutPaymentInstrumentProps as ICheckoutPaymentInstrumentExtensionProps } from '../definition-extensions/checkout-payment-instrument.ext.props.autogenerated';\r\n\r\nimport { PaymentContext, IPaymentTenderType } from '../../../modules/payment-container/context/payment-context';\r\n\r\nconst OverlayModal: React.FC = ({\r\n modal\r\n}) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst CheckoutPaymentInstrumentView: React.FC> = ({\r\n checkoutPaymentInstrument,\r\n className,\r\n id,\r\n waiting,\r\n alert,\r\n paymentInformation,\r\n addPaymentForm,\r\n overlayModal,\r\n config: { tenderType },\r\n ...restProps\r\n}) => {\r\n\r\n const paymentContext = React.useContext(PaymentContext);\r\n const paymentTenderTypes: IPaymentTenderType[] = [];\r\n\r\n React.useEffect(() => {\r\n tenderType?.map(tt => {\r\n paymentTenderTypes.push({ tenderTypeId: tt.tenderId, tenderName: tt.tenderName });\r\n });\r\n paymentContext.registerPaymentMethod(id, paymentTenderTypes);\r\n }, []);\r\n\r\n return (\r\n \r\n {waiting}\r\n {alert}\r\n {paymentInformation}\r\n {addPaymentForm}\r\n {overlayModal && }\r\n \r\n );\r\n}\r\n\r\nexport default CheckoutPaymentInstrumentView;\r\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { IComponent, IComponentProps, ICoreContext, IDateFormatOptions, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { 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?(): void;\n}\n\nexport interface IInvoiceDetailsHeaderComponent extends IComponent {\n}\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 { className, data: { invoiceDetails }, resources, onError } = props;\n\n const invoiceNumberText = resources.invoiceIdLabel.replace('{0}', invoiceDetails.id);\n\n const invoiceOrderItemsText = invoiceDetails.lines.length === 1 ? resources.invoiceOrderItem : 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`; `${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\n return (\n
\n
\n {invoiceNumberText}\n
\n
\n
\n
\n
\n
\n {resources.invoicePlacedByLabel}\n \n {invoiceDetails.customerName}\n \n
\n
\n
\n
\n {orderDate}\n
\n
\n {invoiceOrderItemsText}\n
\n
\n
\n
\n
\n
\n {resources.invoiceAmountDueText}\n
\n
\n {formatAmount(props.context, invoiceDetails.amountDue, invoiceDetails.currencyCode)}\n
\n
\n {dueDateText}\n
\n
\n
\n
\n \n
\n
\n );\n};\n\n// @ts-expect-error\nexport const InvoiceDetailsHeaderComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'InvoiceDetailsHeaderComponent',\n { component: InvoiceDetailsHeader }\n);\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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}\n\ninterface IInvoicePaymentLineProps {\n label: string;\n value: number;\n className: string;\n}\n\nconst InvoiceDetailsPaymentDetails: React.FC = (props: IInvoiceDetailsPaymentDetailsProps): JSX.Element | null => {\n const { className, data: { invoicePaymentDetails }, resources } = 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 {\n lines.map(line => {\n return (\n
\n
\n {line.label}\n
\n
\n {props.context.cultureFormatter.formatCurrency(line.value, invoicePaymentDetails.currencyCode)}\n
\n
\n );\n })\n }\n
\n );\n};\n\n// @ts-expect-error\nexport const InvoiceDetailsPaymentDetailsComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'InvoiceDetailsPaymentDetailsComponent',\n { component: InvoiceDetailsPaymentDetails }\n);\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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}\n\nconst _renderProductDimensions = (className: string, resources: IInvoiceDetailsProductsResources, product: SalesInvoiceLine): 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 = (className: string, context: ICoreContext, product: IInvoiceProductLine, imageSettings?: IImageSettings): JSX.Element | null => {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=315&h=315&m=6', w: 0, h: 0 },\n lg: { q: 'w=315&h=315&m=6', w: 0, h: 0 },\n xl: { q: 'w=315&h=315&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(product.ItemId, context.actionContext.requestContext.apiSettings);\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 { className, data: { invoiceDetails }, resources } = 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 {\n invoiceDetails.lines.map(product => {\n const quantity = product.Quantity || 1;\n\n let productUrl = '';\n if (!ObjectExtensions.isNullOrUndefined(product.ProductName) &&\n !ObjectExtensions.isNullOrUndefined(product.RecordId)) {\n productUrl = getProductPageUrlSync(product.ProductName, product.RecordId, 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};\n\n// @ts-expect-error\nexport const InvoiceDetailsProductsComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'InvoiceDetailsProductsComponent',\n { component: InvoiceDetailsProducts }\n);\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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.RecordId)?.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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { getUrlSync } from '@msdyn365-commerce/core';\nimport { SalesInvoiceLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { 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}\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 = {};\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 });\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.filter(product => product.RecordId).map(product => new ProductInput(\n product.RecordId!, this.props.context.request.apiSettings, channelId, undefined, this.props.context.actionContext.requestContext));\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(): void {\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: { payInvoiceErrorDialogHeader, payInvoiceErrorDialogBodyErrorTitle, payInvoiceErrorDialogBodyErrorDescription,\n payInvoiceErrorDialogFooterGoToCartButtonText, payInvoiceErrorDialogFooterCancelButtonText }\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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { AsyncResult } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header';\nimport { Collapse, Drawer, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nconst headerView: React.FC = props => {\n const {\n HeaderTag,\n HeaderContainer,\n HeaderTopBarContainer,\n Divider\n } = props;\n return (\n \n \n \n {props.navIcon}\n {props.logo}\n {_renderReactFragment(props.search)}\n {props.preferredStore}\n {_renderAccountBlock(props, false)}\n {props.wishListIconDesktop}\n \n {props.cartIcon}\n {_renderReactFragment(props.siteOptions)}\n \n {_renderCollapseMenu(props)}\n \n {_renderReactFragment(props.menuBar)}\n \n \n \n );\n};\n\nfunction _renderCollapseMenu(props: IHeaderViewProps): JSX.Element | null {\n const { Divider, MobileMenuLinksContainer, mobileMenuCollapsed } = props;\n return (\n \n \n {_renderReactFragment(props.search)}\n {_renderMobileAccountBlock(props, true)}\n { props.wishListIconMobile }\n {props.siteOptions}\n \n \n {_renderReactFragment(props.menuBar)}\n \n );\n}\n\nconst renderCustomerName = (accountInformation: AsyncResult): React.ReactChild => {\n const customer = accountInformation && accountInformation.result;\n return (\n <>\n {customer ? customer.FirstName || customer.Name : ''}\n \n );\n};\n\nfunction _renderMobileAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\n const {\n AccountInfoDropdownParentContainer,\n signOutLink,\n signInLink,\n data,\n accountLinks } = props;\n\n if (AccountInfoDropdownParentContainer) {\n const accountClassName = classnames('ms-header__drawer', AccountInfoDropdownParentContainer.className, renderForMobile ? 'account-mobile' : 'account-desktop');\n\n if (accountLinks) {\n return (\n \n
\n { accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false }\n {signOutLink}\n
\n \n );\n } else if (signInLink) {\n return (\n \n {signInLink}\n \n );\n }\n }\n return null;\n}\n\nfunction _renderAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\n const {\n AccountInfoDropdownParentContainer,\n AccountInfoDropdownPopoverConentContainer,\n accountInfoDropdownButton,\n signOutLink,\n signInLink,\n accountLinks\n } = props;\n\n if (AccountInfoDropdownParentContainer) {\n const accountClassName = classnames(AccountInfoDropdownParentContainer.className, renderForMobile ? 'account-mobile' : 'account-desktop');\n if (AccountInfoDropdownPopoverConentContainer) {\n return (\n \n {accountInfoDropdownButton}\n \n { accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false }\n {signOutLink}\n \n \n );\n } else if (signInLink) {\n return (\n \n {signInLink}\n \n );\n }\n }\n\n return null;\n}\n\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\n return (\n <>\n {items && items.length > 0 ? items.map((slot: React.ReactNode, index: number) => {\n return (\n {slot}\n );\n }) : null}\n \n );\n}\n\nexport default headerView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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}\n\nconst getDesktopHeaderCells = (props: IInvoicesTableHeaderProps, rowClassName: string, switchCheckedState: () => void) => {\n const { resources } = props;\n return (\n <>\n \n \n \n \n {resources.invoiceNumberText}\n \n \n {resources.invoiceDateText}\n \n { props.isAdmin ? \n {resources.invoiceUsersText}\n : null }\n \n {resources.invoiceAmountText}\n \n \n {resources.invoiceDueDateText}\n \n \n {resources.invoiceAmountDueText}\n \n \n {resources.invoiceStatusText}\n \n \n {resources.invoiceActionsText}\n \n \n );\n};\n\nconst getMobileHeaderCells = (props: IInvoicesTableHeaderProps, rowClassName: string, switchCheckedState: () => void) => {\n const { resources } = props;\n return (\n <>\n \n \n \n \n {resources.invoicesText}\n \n \n {resources.invoiceDateMobileText}\n \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 \n {headerCells}\n \n \n );\n};\n\n// @ts-expect-error\nexport const InvoicesTableHeaderComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'InvoicesTableHeaderComponent',\n { component: InvoicesTableHeader }\n);\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 { ICartLineCommentViewProps } from './cart-line-comment';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nexport default (props: ICartLineCommentViewProps) => {\r\n const { staticDisplay, cartLineCommentModuleProps, modal } = props;\r\n return (\r\n \r\n {modal}\r\n \r\n \r\n );\r\n};\r\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 { isModalOpen, modalContainer, modalHeaderContainer, modalBodyContainer, heading, modalFooterContainer, subheading, link,\n countryList, stayOnCurrentSiteButton } = props;\n return isModalOpen && countryList ? (\n \n \n {heading}\n {subheading}\n \n \n {countryList.map((country) => (\n <>\n {country}\n \n ))}\n \n \n {stayOnCurrentSiteButton}\n {link}\n \n \n ) : null;\n};\n\nexport default countryPickerView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature links.\n */\nexport interface IInteractiveFeatureLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * IInteractiveFeatureLinks component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureCollectionLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n
\n { editableLinks && ArrayExtensions.hasElements(editableLinks) ? : null}\n
\n );\n }\n\n /**\n * IInteractiveFeatureLinks component.\n * @param linkdata - Link data.\n * @returns Editable links.\n */\n private readonly _mapEditableLinks = (linkdata?: ILinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || !ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n for (const link of linkdata) {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-interactive-feature-collection__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'button',\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n }\n\n return editableLinks;\n };\n}\nexport default InteractiveFeatureCollectionLinks;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { InteractiveFeatureCollectionLinks } from './components';\nimport { IHeadingData, IInteractiveFeatureItemProps } from './interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature Item view props.\n */\nexport interface IInteractiveFeatureItemViewProps extends IInteractiveFeatureItemProps<{}> {\n title: React.ReactNode;\n paragraph: React.ReactNode;\n image: React.ReactNode;\n links: React.ReactNode;\n featureItem: IModuleProps;\n isMosaic: boolean;\n indexItem?: number;\n itemCounter?: number;\n\n interactiveFeatureCollectionCarouselContainer: INodeProps;\n interactiveFeatureCollectionCarouselImage: INodeProps;\n interactiveFeatureCollectionCarouselContent: INodeProps;\n\n interactiveFeatureCollectionMosaicContainer: INodeProps;\n interactiveFeatureCollectionMosaicImage: INodeProps;\n interactiveFeatureCollectionMosaicDetails: INodeProps;\n}\n\n/**\n * Interactive Feature Item Extented props.\n */\nexport interface IInteractiveFeatureItemExtentedProps extends IInteractiveFeatureItemProps<{}> {\n isMosaic?: boolean;\n indexItem?: number;\n itemCounter?: number;\n}\n\n/**\n *\n * InteractiveFeatureItem component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureItem extends React.PureComponent {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry);\n\n public constructor(props: IInteractiveFeatureItemProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { indexItem, itemCounter, isMosaic } = this.props;\n const { heading, paragraph, image, links } = this.props.config;\n const featureItemLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n\n const viewProps = {\n ...this.props,\n indexItem,\n itemCounter,\n isMosaic: isMosaic ? isMosaic : false,\n title: this._createHeading(heading),\n paragraph: this._createParagraph(paragraph),\n image: this._renderImage(image),\n links: featureItemLinks,\n featureItem: {\n moduleProps: this.props,\n className: ''\n },\n interactiveFeatureCollectionCarouselContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__container'\n },\n interactiveFeatureCollectionCarouselImage: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__image'\n },\n interactiveFeatureCollectionCarouselContent: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__heading'\n },\n interactiveFeatureCollectionMosaicContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mosaic',\n 'aria-label': heading?.text,\n 'tabindex': '0',\n 'role': 'group'\n },\n interactiveFeatureCollectionMosaicImage: {\n className: 'ms-interactive-feature-collection-mosaic__image'\n },\n interactiveFeatureCollectionMosaicDetails: {\n className: 'ms-interactive-feature-collection-mosaic__details'\n }\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles heading content change event.\n * @param event - Content editable event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param linkIndex - Index of link in linkarray.\n * @returns Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.links?.[Number(linkIndex)]) {\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\n }\n };\n\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createHeading(heading?: IHeadingData): React.ReactNode | null {\n if (!heading) {\n return null;\n }\n if (StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _renderImage(item?: Msdyn365.IImageData, isAriaHiddenAttribute?: boolean): React.ReactNode | null {\n // Even if image.src is null, we render the Image component to render the fallback SVG\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=328&h=459&m=6', w: 328, h: 459 },\n sm: { q: 'w=348&h=487&m=6', w: 348, h: 487 },\n md: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n lg: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n xl: { q: 'w=650&h=366&m=6', w: 650, h: 366 }\n },\n lazyload: true\n };\n const verifiedImageSettings = (item?.imageSettings?.viewports) ? item.imageSettings : defaultImageSettings;\n return (\n \n );\n }\n}\n\nexport default InteractiveFeatureItem;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ITabViewProps } from './tab';\n\nconst tabView: React.FC = props => {\n const { heading, TabContainer, tabHeaders, tabContents } = props;\n if (!props.heading && !props.tabHeaders && !props.tabContents) {\n props.context.telemetry.error('Tab content is empty, module wont render');\n return null;\n }\n return (\n \n \n {heading}\n \n \n {tabHeaders}\n \n \n {tabContents}\n \n \n );\n};\n\nexport default tabView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, Heading, IComponentNodeProps, IModuleProps, INodeProps,\n ISingleSlideCarouselProps, ITelemetryContent,\n NodeTag, SingleSlideCarousel } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureCollectionProps, ITitleData } from './interactive-feature-collection.props.autogenerated';\n\n/**\n * Interactive Feature Collection view props.\n */\nexport interface IInteractiveFeatureCollectionViewProps extends IInteractiveFeatureCollectionProps<{}> {\n title: React.ReactNode;\n interactiveFeatureCollectionHeading: INodeProps;\n interactiveFeatureCollectionContainer: IModuleProps;\n interactiveFeatureCollectionDesktopContainer: INodeProps;\n interactiveFeatureCollectionDesktopItems: React.ReactNode[];\n interactiveFeatureCollectionMobileContainer: INodeProps;\n interactiveFeatureCollectionMobileItems: React.ReactNode[];\n singleSlideCarouselComponentProps: INodeProps;\n singleSlideCarouselItemContainer: INodeProps;\n}\n\n/**\n *\n * InteractiveFeatureCollection component.\n * @extends {React.PureComponent>}\n */\nexport class InteractiveFeatureCollection extends React.PureComponent> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry);\n\n public constructor(props: IInteractiveFeatureCollectionProps) {\n super(props);\n }\n\n private static _createHeading(heading?: ITitleData): React.ReactNode | null {\n if (!heading || !heading.text || StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n return (\n \n );\n }\n\n private static _getFeatureItem(item: React.ReactNode, index: number, itemsCounter: number): React.ReactNode {\n const keyIndex = `interactive-feature-mosaic-item__${index}`;\n return (\n \n {React.cloneElement(item as React.ReactElement, { indexItem: index, itemCounter: itemsCounter, isMosaic: true })}\n \n );\n }\n\n public render(): JSX.Element | null {\n const { resources } = this.props;\n const { title, className } = this.props.config;\n const interactiveItems = this.props.slots.interactiveFeatureItems;\n const itemsFeatureCounter = interactiveItems.length;\n const singleSlideCarouselComponentProps: IComponentNodeProps = {\n tag: SingleSlideCarousel,\n className: this.props.config.className ?? '',\n flipperPrevLabel: resources.flipperPrevious,\n flipperNextLabel: resources.flipperNext,\n parentId: this.props.id,\n telemetryContent: this._telemetryContent,\n vertical: false\n };\n const initItemsFeatureCounter = 0;\n const viewProps = {\n ...this.props,\n title: InteractiveFeatureCollection._createHeading(title),\n interactiveFeatureCollectionHeading: {\n className: 'ms-interactive-feature-collection__heading'\n },\n interactiveFeatureCollectionContainer: {\n moduleProps: this.props,\n className: classnames('ms-interactive-feature-collection', className)\n },\n interactiveFeatureCollectionDesktopContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-desktop'\n },\n interactiveFeatureCollectionMobileContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mobile'\n },\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer: {\n tag: 'li' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel',\n role: 'listitem'\n },\n interactiveFeatureCollectionMobileItems: this.props.slots.interactiveFeatureItems,\n interactiveFeatureCollectionDesktopItems: itemsFeatureCounter > initItemsFeatureCounter &&\n interactiveItems.map((item: React.ReactNode, index: number) => InteractiveFeatureCollection._getFeatureItem(item, index, itemsFeatureCounter))\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n}\n\nexport default InteractiveFeatureCollection;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport MsDyn365, { IComponent, IComponentProps, ICoreContext, IDateFormatOptions, msdyn365Commerce } 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 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\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 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 = (props: IInvoicesTableRowProps, requestInvoiceButtonReference: React.RefObject) => () => {\n props.onRequestInvoice!(props.data.invoice, requestInvoiceButtonReference);\n};\n\nconst getDesktopRowCells = (props: IInvoicesTableRowProps, onSelectLine: () => void) => {\n const { data: { invoice, index, customer } } = props;\n\n const isCurrentUser = !StringExtensions.isNullOrWhitespace(customer.AccountNumber) && customer.AccountNumber === invoice.customerAccountNumber;\n const payInvoiceClassName = `${props.className}__pay-invoice`;\n\n const linkToInvoiceDetails = getInvoiceDetailsPageUrlSync(props.data.invoice.id, props.context.actionContext);\n const invoiceRowArialabel = format(props.resources.invoiceListSelectRadioAriaLabelText, invoice.id);\n const requestInvoiceButtonReference: React.RefObject = React.createRef();\n const payInvoiceButtonReference: React.RefObject = React.createRef();\n return (\n <>\n \n \n \n \n \n {invoice.id}\n \n \n \n \n {formatDate(props.context, invoice.invoiceDate)}\n \n \n { customer.IsB2bAdmin ? \n {invoice.customerName}\n { isCurrentUser ? \n {props.resources.invoiceCurrentUser}\n : null}\n : null }\n \n {formatAmount(props.context, invoice.amount, invoice.currencyCode)}\n \n \n \n {formatDate(props.context, invoice.dueDate)}\n \n \n \n {formatAmount(props.context, invoice.amountDue, invoice.currencyCode)}\n \n \n \n {getInvoiceStatusText(props.resources, invoice.status)}\n \n \n \n \n \n \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 { resources: { invoiceViewDetailsButtonAriaLabel, invoiceViewDetailsButtonText, invoiceActionsButtonTextAriaLabel }, data: { index } } = props;\n\n const [showActions, setShowActions] = useState(false);\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 \n \n
\n }\n
\n );\n};\n\nconst getMobileRowCells = (props: IInvoicesTableRowProps, onSelectLine: () => void) => {\n const { data: { invoice } } = 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 \n {invoice.customerName}\n \n \n \n \n {formatDate(props.context, invoice.dueDate)}\n \n
\n \n {getInvoiceStatusText(props.resources, invoice.status)}\n \n \n \n {extraActionsPopup(props)}\n \n \n );\n\n};\n\nconst InvoicesTableRow: React.FC = (props: IInvoicesTableRowProps): JSX.Element => {\n const { data: { invoice } } = 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 (\n \n {rowCells}\n \n );\n};\n\n// @ts-expect-error\nexport const InvoicesTableRowComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'InvoicesTableRowComponent',\n { component: InvoicesTableRow }\n);\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ISocialShareConfig, ISocialShareProps, orientation } from './social-share.props.autogenerated';\n\nexport interface ISocialShareViewProps extends ISocialShareProps {\n isConsentGiven: boolean;\n SocialShareItemElements: React.ReactNode[];\n SocialShare: IModuleProps;\n SocialShareList: INodeProps;\n SocialShareItem: INodeProps;\n SocialShareItemCustomization: INodeProps;\n}\n\n/**\n *\n * SocialShare component.\n * @extends {React.PureComponent>}\n */\nclass SocialShare extends React.PureComponent> {\n constructor(props: ISocialShareProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { slots } = this.props;\n\n if (slots && slots.socialShareItems.length === 0) {\n this.props.context.telemetry.error('No social media is enable for sharing, module wont render');\n return null;\n }\n\n const isConsentGiven =\n this.props.context.request &&\n this.props.context.request.cookies &&\n this.props.context.request.cookies.isConsentGiven &&\n this.props.context.request.cookies.isConsentGiven();\n\n if (!isConsentGiven) {\n return null;\n }\n\n const viewprops = {\n ...this.props,\n SocialShare: {\n moduleProps: this.props,\n className: classnames('ms-social-share', this.props.config.className)\n },\n SocialShareList: {\n 'data-title': this.props.config.caption,\n className: `ms-social-share-ul ${this.props.config.caption && 'caption'} ${this.props.config.orientation === orientation.vertical ? 'vertical' : ''}`,\n tag: 'ul',\n role: 'group'\n },\n SocialShareItem: {\n className: 'ms-social-share-li',\n tag: 'li',\n tabIndex: '0',\n role: 'link'\n },\n SocialShareItemElements: slots && slots.socialShareItems.length > 0 && slots.socialShareItems\n };\n\n return this.props.renderView(viewprops) as React.ReactElement;\n }\n}\n\nexport default SocialShare;\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 { ICheckoutCustomerAccountPaymentViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/./checkout-customer-account-payment';\r\nimport { IAccountPaymentEditViewForm } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/./components/get-account-payment-form-edit-mode';\r\nimport { IAccountPaymentSummaryViewForm } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/./components/get-account-payment-form-summary-mode';\r\nimport { ICheckoutCustomerAccountPaymentProps as ICheckoutCustomerAccountPaymentExtensionProps } from '../definition-extensions/checkout-customer-account-payment.ext.props.autogenerated';\r\n\r\nimport { PaymentContext, IPaymentTenderType } from '../../../modules/payment-container/context/payment-context';\r\n// import { CustomerBalances } from '@msdyn365-commerce/retail-proxy';\r\nimport MsDyn365 from \"@msdyn365-commerce/core\";\r\n\r\nexport const SummaryForm: React.FC = ({ formProps, label, paymentAmount, addPaymentButton, appliedLine, bottomBorder }) => (\r\n \r\n <>\r\n {label}\r\n {appliedLine}\r\n {bottomBorder}\r\n \r\n \r\n);\r\n\r\nexport const EditForm: React.FC = ({ formProps, inputLabel, inputAmount, customerName, customerAccountNumber, addPaymentButton, customerSince, accountCredit, alert, accountDetails, appliedLine, bottomBorder }, props) => {\r\n return (\r\n \r\n <>\r\n\r\n {customerName}\r\n {customerAccountNumber}\r\n {customerSince}\r\n {/* {accountCredit} */}\r\n {/* {accountDetails} */}\r\n {/* {inputLabel} */}\r\n {getInputLabel()}\r\n {/* {alert} */}\r\n {appliedLine}\r\n {bottomBorder}\r\n \r\n \r\n)};\r\n\r\nlet customInputLabel = '';\r\n\r\nconst getInputLabel = () => {\r\n return (\r\n \r\n {customInputLabel}\r\n \r\n );\r\n}\r\n\r\n// const getAvailableCredit = (creditBalances: CustomerBalances | undefined) => {\r\n// let availableCredit = 0;\r\n\r\n// if (!creditBalances) {\r\n// return 0;\r\n// }\r\n\r\n// if (creditBalances.InvoiceAccountCreditLimit === 0) {\r\n// availableCredit = creditBalances.CreditLimit - creditBalances.Balance - creditBalances.PendingBalance;\r\n// } else {\r\n// availableCredit = creditBalances.InvoiceAccountCreditLimit - creditBalances.InvoiceAccountBalance - creditBalances.InvoiceAccountPendingBalance;\r\n// }\r\n\r\n// return availableCredit;\r\n// };\r\n\r\nconst addPayment = async (props: ICheckoutCustomerAccountPaymentViewProps): Promise => {\r\n const checkoutState = props.data.checkout.result;\r\n\r\n if (!checkoutState) {\r\n props.context.telemetry.error('checkout state not found');\r\n return;\r\n }\r\n\r\n // const availableCredit = getAvailableCredit(props.data.creditBalances?.result);\r\n const cartTotal = (await props.data.checkout).checkoutCart.cart.TotalAmount;\r\n\r\n // console.log(availableCredit);\r\n // console.log(cartTotal);\r\n // if (cartTotal && availableCredit >= cartTotal) {\r\n if (cartTotal) {\r\n await checkoutState.updateCustomerAccountAmount({ newAmount: cartTotal });\r\n props.context.telemetry.information('customer account payment amount updated');\r\n }\r\n};\r\n\r\nconst CheckoutCustomerAccountView: React.FC> = props => {\r\n const { checkoutCustomerAccount, summaryView, editView, moduleState, id, config: { tenderType } } = props;\r\n \r\n const paymentContext = React.useContext(PaymentContext);\r\n const paymentTenderTypes: IPaymentTenderType[] = [];\r\n // console.log(props);\r\n\r\n React.useEffect(() => {\r\n tenderType?.map(tt => {\r\n paymentTenderTypes.push({ tenderTypeId: tt.tenderId, tenderName: tt.tenderName });\r\n });\r\n paymentContext.registerPaymentMethod(id, paymentTenderTypes);\r\n sessionStorage.removeItem('ON_ACCOUNT_APPLIED');\r\n customInputLabel = props.config.processedOnAccountText || '';\r\n }, []);\r\n\r\n if (MsDyn365.isBrowser) {\r\n document.querySelector('.payment-selector__button-container--on-account')?.addEventListener('click', () => {\r\n if (sessionStorage.getItem('ON_ACCOUNT_APPLIED') === '1') {\r\n return;\r\n }\r\n sessionStorage.setItem('ON_ACCOUNT_APPLIED', '1');\r\n addPayment(props);\r\n });\r\n }\r\n\r\n return (\r\n \r\n {moduleState.isReady && summaryView && }\r\n {!moduleState.isReady && editView && }\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutCustomerAccountView;\r\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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. All rights reserved.\n * See License.txt 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\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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nexport * from './invoice-data';\nexport * from './invoice-status';\nexport * from './pay-invoices';\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 { IOrderLevelCommentViewProps } from './order-level-comment';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nexport default (props: IOrderLevelCommentViewProps) => {\r\n const { staticDisplay, orderLevelCommentModuleProps, modal } = props;\r\n return (\r\n \r\n {modal}\r\n \r\n \r\n );\r\n};\r\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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): React.ReactNode => {\n\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 {\n EnumExtensions.getEnumValues(InvoicesFilterState).map(state => {\n return renderFilterStateItem(state, props.resources, props.className, onFilterStateClick);\n })\n }\n \n
\n );\n};\n\n// @ts-expect-error\nexport const InvoicesFilterComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'InvoicesFilterComponent',\n { component: InvoicesFilter }\n);\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, getTelemetryObject, IModuleProps, INodeProps, IPayLoad, ITelemetryContent, NodeTag, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createAccordionStateInput } from '../..';\nimport { IAccordionData } from './accordion.data';\nimport { IAccordionProps } from './accordion.props.autogenerated';\n\n/**\n *\n * Accordion component.\n * @extends {React.PureComponent>}\n */\n\nexport interface ICallToActionProps {\n link: INodeProps[];\n}\n\n/**\n * Added interface for state management.\n */\nexport interface IAccordianState {\n isDisabled: boolean;\n}\n\nexport interface IAccordionViewProps extends IAccordionProps<{}> {\n heading?: React.ReactNode;\n AccordionContainer: IModuleProps;\n HeaderSection: INodeProps;\n HeadingWrapper: INodeProps;\n accordianButtonsContainer: INodeProps;\n accordionButtons: React.ReactNode;\n accordionItemContainer: INodeProps;\n accordionItems: React.ReactNode;\n}\n\n/**\n *\n * Accordion component.\n * @extends {React.Component>}\n */\n@observer\nclass Accordion extends React.PureComponent, IAccordianState> {\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: IAccordionProps) {\n super(props);\n this._onExpandAll = this._onExpandAll.bind(this);\n this._onCollapseAll = this._onCollapseAll.bind(this);\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n this.state = { isDisabled: false };\n }\n\n public render(): JSX.Element {\n\n const { slots } = this.props;\n const { heading, className } = this.props.config;\n const headingComponent = heading && heading.text && (\n \n );\n\n const accordionViewProps = {\n ...this.props,\n AccordionContainer: {\n moduleProps: this.props,\n className: classnames('ms-accordion', className)\n },\n HeaderSection: { className: 'ms-accordion-header-section' },\n HeadingWrapper: { className: 'ms-accordion-header-section-container' },\n heading: headingComponent,\n config: this.props && this.props.config,\n accordianButtonsContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-accordion-header-section-toggle-button-container'\n },\n accordionButtons: this._renderAccordionButton(),\n accordionItemContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-accordion-item-section'\n },\n accordionItems: slots && slots.accordionItems && slots.accordionItems.length > 0 && slots.accordionItems.map((item: React.ReactNode, index: number) => this._getAccordionItem(item, index))\n };\n return this.props.renderView(accordionViewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.heading!.text = event.target.value;\n\n private _renderAccordionButton(): React.ReactNode | null {\n const { config, resources } = this.props;\n this.payLoad.contentAction.etext = TelemetryConstant.ExpandAll;\n const attributeExpandAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = TelemetryConstant.CollapseAll;\n const attributeCollapseAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n if (!config.showToggleAll) {\n this.props.context.telemetry.error('Accordion button content is empty, module wont render');\n return null;\n }\n return (\n <>\n \n {resources.expandAllText}\n \n  \n { resources.toggleAllSeparator}\n  \n \n {resources.collapseAllText}\n \n \n );\n }\n\n private _onExpandAll(): void {\n const accordionState = { isAllExpanded: true };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (accordionState.isAllExpanded) {\n this.setState({\n isDisabled: true\n });\n }\n }\n\n private _onCollapseAll(): void {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (!accordionState.isAllExpanded) {\n this.setState({\n isDisabled: false\n });\n }\n }\n\n private _getAccordionItem(item: React.ReactNode, index: number): React.ReactNode {\n return (\n \n {React.cloneElement(item as React.ReactElement, { interactionStyle: this.props.config.interactionStyle })}\n \n );\n }\n\n}\n\nexport default Accordion;\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\n\r\nimport { IOrderLevelCommentData } from './order-level-comment.data';\r\nimport { IOrderLevelCommentProps } from './order-level-comment.props.autogenerated';\r\nimport { Button, IModuleProps, INodeProps, Modal, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\n\r\nexport interface IOrderLevelCommentViewProps extends IOrderLevelCommentProps {\r\n staticDisplay: INodeProps;\r\n orderLevelCommentModuleProps: IModuleProps;\r\n modal: React.ReactNode;\r\n}\r\n\r\ninterface IOrderLevelCommentExtendedProps extends IOrderLevelCommentProps {\r\n comment: string;\r\n}\r\n\r\ninterface IOrderLevelCommentState {\r\n comment: string;\r\n isCommentAreaActive: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * OrderLevelComment component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass OrderLevelComment extends React.PureComponent {\r\n private _className = 'gar-order-comment';\r\n private _maxCommentLength = 60;\r\n constructor(props: IOrderLevelCommentExtendedProps) {\r\n super(props);\r\n this.state = {\r\n comment: props.data.cart.result?.cart.Comment || '',\r\n isCommentAreaActive: false\r\n };\r\n }\r\n\r\n /**\r\n * Saves order comment\r\n */\r\n\r\n private _updateOrderLevelComment = async (): Promise => {\r\n const cartState = this.props.data.cart.result;\r\n if (!cartState?.cart) {\r\n return;\r\n }\r\n const dummyCart = { ...cartState.cart };\r\n dummyCart.Comment = this.state.comment;\r\n await cartState.updateCart({ newCartObject: dummyCart });\r\n this.setState({ isCommentAreaActive: false });\r\n };\r\n\r\n /**\r\n * Updates the comment in state\r\n * @param event new comment from event\r\n */\r\n private _updateCommentState = (event: React.ChangeEvent): void => {\r\n this.setState({ comment: event.target.value });\r\n };\r\n /**\r\n * Resets Cart Comment\r\n */\r\n private _resetCommentToProps = (): void => {\r\n this.setState({ comment: this.props.comment, isCommentAreaActive: false });\r\n };\r\n\r\n /**\r\n * Toggles the isCommentAreaActive state property\r\n */\r\n private _toggleCommentAreaActive = () =>\r\n this.setState(prevState => {\r\n return {\r\n isCommentAreaActive: !prevState.isCommentAreaActive\r\n };\r\n });\r\n\r\n /**\r\n * Renders the static comment display for when the isCommentAreaActive state param is false\r\n * @return React.ReactNode\r\n */\r\n private _renderStaticCommentDisplay = (): React.ReactNode => {\r\n const {\r\n resources: { commentLinkText, editLinkText },\r\n config: { disclaimer }\r\n } = this.props;\r\n const currentComment = this.props.data.cart.result?.cart.Comment;\r\n if (!currentComment) {\r\n return (\r\n <>\r\n {this._renderCommentLink(commentLinkText)}\r\n

{disclaimer}

\r\n \r\n );\r\n } else {\r\n return (\r\n <>\r\n

{this._getCommentPreview()}

\r\n {this._renderCommentLink(editLinkText)}\r\n {disclaimer ?

{disclaimer}

: null}\r\n \r\n );\r\n }\r\n };\r\n\r\n private _getCommentPreview = (): string => {\r\n const comment = this.props.data.cart.result?.cart.Comment || '';\r\n if (comment.length > 50) {\r\n return `${comment.substring(0, 50)}...`;\r\n } else {\r\n return comment;\r\n }\r\n };\r\n\r\n /**\r\n * Renders a comment link which toggles the active area state\r\n */\r\n private _renderCommentLink = (linkText: string): React.ReactNode => (\r\n \r\n {linkText}\r\n \r\n );\r\n\r\n /**\r\n * Renders a button to save comments to the cartlines\r\n */\r\n private _renderSaveButton = (): React.ReactNode => {\r\n const {\r\n resources: { saveButtonText }\r\n } = this.props;\r\n return (\r\n \r\n );\r\n };\r\n\r\n /**\r\n * Renders a button to cancel the comment entry and set the state to default\r\n */\r\n private _renderCancelButton = (): React.ReactNode => {\r\n const {\r\n resources: { cancelButtonText }\r\n } = this.props;\r\n return (\r\n \r\n );\r\n };\r\n\r\n /**\r\n * Renders the text area for inputting comments\r\n */\r\n private _renderTextArea = (): React.ReactNode => {\r\n const {\r\n resources: { textAreaLabel, charactersRemaining }\r\n } = this.props;\r\n const { comment } = this.state;\r\n return (\r\n
\r\n \r\n \r\n

\r\n {`${this._maxCommentLength - (comment && comment.length ? comment.length : 0)} ${charactersRemaining}`}\r\n

\r\n
\r\n );\r\n };\r\n\r\n /**\r\n * Renders the button area\r\n */\r\n private _renderButtonArea = (): React.ReactNode => (\r\n
\r\n {this._renderSaveButton()}\r\n {this._renderCancelButton()}\r\n
\r\n );\r\n\r\n /**\r\n * Renders the complete modal\r\n */\r\n private _renderModal = () => {\r\n return (\r\n \r\n {this._getModalTitle()}\r\n {this._renderTextArea()}\r\n {this._renderButtonArea()}\r\n \r\n );\r\n };\r\n\r\n /**\r\n * Gets ID for the text field\r\n */\r\n private _getFieldId = (): string => `orderLevelCommentInput`;\r\n\r\n /**\r\n * Gets the title for the comment modal\r\n */\r\n private _getModalTitle = (): string => {\r\n const {\r\n resources: { commentModalTitle }\r\n } = this.props;\r\n\r\n return commentModalTitle;\r\n };\r\n\r\n public render(): JSX.Element | null {\r\n const {\r\n config: { className }\r\n } = this.props;\r\n const viewProps: IOrderLevelCommentViewProps = {\r\n ...this.props,\r\n staticDisplay: {\r\n tag: 'div',\r\n className: `${this._className}__static-display`,\r\n children: this._renderStaticCommentDisplay()\r\n },\r\n orderLevelCommentModuleProps: {\r\n className: classnames(className, this._className),\r\n tag: 'div',\r\n moduleProps: { ...this.props }\r\n },\r\n modal: this._renderModal()\r\n };\r\n\r\n return this.props.renderView(viewProps);\r\n }\r\n}\r\n\r\nexport default OrderLevelComment;\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 { 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","/*--------------------------------------------------------------\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 { ICheckoutSectionContainerItem, ICheckoutSectionContainerViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-section-container/./checkout-section-container';\r\n\r\nconst ItemComponent: React.FC = ({ loading, itemProps, item }) => (\r\n <>\r\n {loading}\r\n \r\n {item}\r\n \r\n \r\n);\r\n\r\nconst CheckoutSectionContainerView: React.FC = ({ checkoutPlainContainerProps, items }) => {\r\n return(\r\n \r\n {items.map(item => {\r\n // remove the hidden classname that is given in the checkout-section-container\r\n item.itemProps = { ...item.itemProps,\r\n className: 'ms-checkout-section-container__item'\r\n }\r\n return \r\n })}\r\n \r\n )\r\n};\r\n\r\nexport default CheckoutSectionContainerView;\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 React from 'react';\r\n\r\nimport { ICartLineCommentData } from './cart-line-comment.data';\r\nimport { ICartLineCommentProps } from './cart-line-comment.props.autogenerated';\r\nimport { Button, IModuleProps, INodeProps, Modal, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\n\r\nexport interface ICartLineCommentViewProps extends ICartLineCommentProps {\r\n staticDisplay: INodeProps;\r\n cartLineCommentModuleProps: IModuleProps;\r\n modal: React.ReactNode;\r\n}\r\n\r\ninterface ICartLineCommentExtendedProps extends ICartLineCommentProps {\r\n comment: string;\r\n cartLineId: string;\r\n cartProductTitle: string;\r\n}\r\n\r\ninterface ICartLineCommentState {\r\n comment: string;\r\n isCommentAreaActive: boolean;\r\n}\r\n/**\r\n *\r\n * CartLineComment component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass CartLineComment extends React.PureComponent {\r\n private _className = 'gar-cart-comment';\r\n constructor(props: ICartLineCommentExtendedProps) {\r\n super(props);\r\n this.state = {\r\n comment: props.comment,\r\n isCommentAreaActive: false\r\n };\r\n }\r\n\r\n /**\r\n * Saves cart comment\r\n * Method must call updateCartLineQuantity on the cart state because\r\n * updateCart does not update the cart line comment. Calling the other method with an additional\r\n * parameter for the comment successfully updates the comment\r\n */\r\n private _updateCartLineComment = async (): Promise => {\r\n const cartState = this.props.data.cart.result;\r\n if (!cartState) {\r\n return;\r\n }\r\n const dummyCart = { ...cartState.cart };\r\n const cartLineToUpdate = dummyCart.CartLines?.find(cl => cl.LineId === this.props.cartLineId);\r\n if (cartLineToUpdate) {\r\n cartLineToUpdate.Comment = this.state.comment;\r\n }\r\n await cartState.updateCartLineQuantity({\r\n cartLineId: this.props.cartLineId,\r\n newQuantity: cartLineToUpdate?.Quantity!,\r\n additionalProperties: { Comment: this.state.comment }\r\n });\r\n\r\n this.setState({ isCommentAreaActive: false });\r\n };\r\n\r\n /**\r\n * Updates the comment in state\r\n * @param event new comment from event\r\n */\r\n private _updateCommentState = (event: React.ChangeEvent): void => {\r\n this.setState({ comment: event.target.value });\r\n };\r\n /**\r\n * Resets Cart Comment\r\n */\r\n private _resetCommentToProps = (): void => {\r\n this.setState({ comment: this.props.comment, isCommentAreaActive: false });\r\n };\r\n\r\n /**\r\n * Toggles the isCommentAreaActive state property\r\n */\r\n private _toggleCommentAreaActive = () =>\r\n this.setState(prevState => {\r\n return {\r\n isCommentAreaActive: !prevState.isCommentAreaActive\r\n };\r\n });\r\n\r\n /**\r\n * Renders the static comment display for when the isCommentAreaActive state param is false\r\n * @return React.ReactNode\r\n */\r\n private _renderStaticCommentDisplay = (): React.ReactNode => {\r\n const {\r\n resources: { commentLinkText, editLinkText }\r\n } = this.props;\r\n if (!this.props.comment) {\r\n return this._renderCommentLink(commentLinkText);\r\n } else {\r\n return (\r\n \r\n

{this._getCommentPreview()}

\r\n {this._renderCommentLink(editLinkText)}\r\n
\r\n );\r\n }\r\n };\r\n\r\n private _getCommentPreview = (): string => {\r\n const { comment } = this.props;\r\n if (comment.length > 50) {\r\n return `${comment.substring(0, 50)}...`;\r\n } else {\r\n return comment;\r\n }\r\n };\r\n\r\n /**\r\n * Renders a comment link which toggles the active area state\r\n * @param linkText text for the link\r\n */\r\n private _renderCommentLink = (linkText: string): React.ReactNode => (\r\n \r\n {linkText}\r\n \r\n );\r\n\r\n /**\r\n * Renders a button to save comments to the cartlines\r\n * @return React.ReactNode\r\n */\r\n private _renderSaveButton = (): React.ReactNode => {\r\n const {\r\n resources: { saveButtonText }\r\n } = this.props;\r\n return (\r\n \r\n );\r\n };\r\n\r\n /**\r\n * Renders a button to cancel the comment entry and set the state to default\r\n * @return React.ReactNode\r\n */\r\n private _renderCancelButton = (): React.ReactNode => {\r\n const {\r\n resources: { cancelButtonText }\r\n } = this.props;\r\n return (\r\n \r\n );\r\n };\r\n\r\n /**\r\n * Renders the text area for inputting comments\r\n */\r\n private _renderTextArea = (): React.ReactNode => {\r\n const {\r\n resources: { textAreaLabel }\r\n } = this.props;\r\n const { comment } = this.state;\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n };\r\n /**\r\n * Renders the button area\r\n */\r\n private _renderButtonArea = (): React.ReactNode => (\r\n
\r\n {this._renderSaveButton()}\r\n {this._renderCancelButton()}\r\n
\r\n );\r\n\r\n private _renderModal = () => {\r\n return (\r\n \r\n {this._getModalTitle()}\r\n {this._renderTextArea()}\r\n {this._renderButtonArea()}\r\n \r\n );\r\n };\r\n\r\n /**\r\n * Gets ID for the text field\r\n */\r\n private _getFieldId = (): string => `${this.props.cartLineId}__commentInput`;\r\n\r\n /**\r\n * Gets the title for the comment modal\r\n */\r\n private _getModalTitle = (): string => {\r\n const {\r\n resources: { commentModalTitle }\r\n } = this.props;\r\n\r\n return commentModalTitle.replace('{0}', this.props.cartProductTitle);\r\n };\r\n\r\n public render(): JSX.Element | null {\r\n const {\r\n config: { className }\r\n } = this.props;\r\n const viewProps: ICartLineCommentViewProps = {\r\n ...this.props,\r\n staticDisplay: {\r\n tag: 'div',\r\n className: `${this._className}__static-display`,\r\n children: this._renderStaticCommentDisplay()\r\n },\r\n cartLineCommentModuleProps: {\r\n className: classnames(className, this._className),\r\n tag: 'div',\r\n moduleProps: { ...this.props }\r\n },\r\n modal: this._renderModal()\r\n };\r\n return this.props.renderView(viewProps);\r\n }\r\n}\r\n\r\nexport default CartLineComment;\r\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n *\n * FooterItemView component.\n * @extends {React.PureComponent}\n */\nexport class FooterItemView extends React.PureComponent {\n public render(): JSX.Element | null {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Cannot change the prop names as props are from business logic.\n const { FooterItem } = this.props;\n return (\n \n {this._renderElement(this.props)}\n \n );\n }\n\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Cannot change the prop names as props are from business logic.\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\n if (heading) {\n return (\n {' '}\n );\n } else if (Link && image) {\n return (\n \n {linkText}\n {image}\n \n );\n } else if (Link) {\n return (EditableLink);\n }\n return (\n <>\n {text}\n {image}\n \n );\n }\n}\n\nexport default FooterItemView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 = (selectedInvoiceIndex: number, onClosing: () => void,\n filteredInvoices: InvoiceModel[], onSubmitRequest: (invoiceId: string) => void) => () => {\n const defaultIndex = 0;\n if (selectedInvoiceIndex >= defaultIndex) {\n onClosing();\n onSubmitRequest(filteredInvoices[selectedInvoiceIndex].id);\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>) => (event: React.ChangeEvent) => {\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 = (invoices: InvoiceModel[], 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 let updatedInvoices = filteredInvoices;\n if (!StringExtensions.isNullOrEmpty(searchInput)) {\n updatedInvoices = invoices.filter((invoice) => invoice.id.toLocaleUpperCase().includes(searchInput.toLocaleUpperCase()));\n }\n\n setFilteredInvoices(updatedInvoices);\n\n if (ArrayExtensions.hasElements(updatedInvoices)) {\n setSelectedInvoiceIndex(0);\n } else {\n setSelectedInvoiceIndex(-1);\n }\n setShouldShowSearchResults(true);\n\n setInvoiceOptions(renderInvoiceOptions(updatedInvoices, setSelectedInvoiceIndex, className, selectedInvoiceIndex));\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 = (filteredInvoices: InvoiceModel[], setSelectedInvoiceIndex: (newIndex: number) => void, className: string, selectedInvoiceIndex: number) => {\n return (\n
\n {filteredInvoices.map((invoice, index) => {\n const onInvoiceSelect = onInvoiceSelectHandler(setSelectedInvoiceIndex, index);\n\n const radioButtonId = `invoice__${invoice.id}`;\n\n return (\n
\n \n \n
\n );\n })}\n
\n );\n};\n\nexport const RequestInvoiceModal: React.FC = ({ className, email, isModalOpen, toggle, modalHeaderLabel, sendToEmailLabel, submitRequestLabel, cancelLabel, onSubmitRequest, invoices, searchPlaceholderLabel,\n invoicesFoundString, singleInvoiceFoundString, searchButtonAltText, resources }) => {\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 invoiceOptionsData = renderInvoiceOptions(filteredInvoices, setSelectedInvoiceIndex, className, selectedInvoiceIndex);\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, 0));\n } else {\n setFilteredInvoices(invoices);\n setInvoiceOptions(renderInvoiceOptions(invoices, setSelectedInvoiceIndex, className, selectedInvoiceIndex));\n }\n };\n\n const searchEntered = searchEnteredHandler(invoices,\n searchInput, setFilteredInvoices, filteredInvoices,\n setSelectedInvoiceIndex, setShouldShowSearchResults,\n setInvoiceOptions, selectedInvoiceIndex, className);\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 function 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 \n {searchResultString.substring(0, invoicesFoundReplaceIndex)}\n \n \n {filteredInvoices.length}\n \n \n {searchResultString.substring(invoicesFoundReplaceIndex + 3)}\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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { getUrlSync } from '@msdyn365-commerce/core';\nimport { BusinessPartnerOperationDeliveryType, BusinessPartnerUsersDataActions, InvoicePaidStatus, InvoiceSearchCriteria, IQueryResultSettings, OrderInvoice } from '@msdyn365-commerce/retail-proxy';\nimport { getCurrentAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnersDataActions.g';\nimport { ArrayExtensions, getCustomer, GetCustomerInput, getInvoices, GetInvoicesInput, IQueryResultSettingsModuleConfig, QueryResultSettingsProxy, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, Heading, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from '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 isPageLoaded: boolean;\n payInvoiceErrorModalOpen: boolean;\n selectedButtonElement?: HTMLButtonElement | null;\n}\n\n/**\n * InvoicesList component.\n * @extends {React.Component, IInvoicesListState>}\n */\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 constructor(props: IInvoicesListProps) {\n super(props);\n\n this._queryResultSettings = QueryResultSettingsProxy.fromModuleData(\n this.props.context.request, this.props.config as IQueryResultSettingsModuleConfig).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 isPageLoaded: false,\n errorState: { errorMessage: '' },\n isInvoiceRequestModalOpen: false,\n payInvoiceErrorModalOpen: false,\n selectedButtonElement: null\n };\n }\n\n public shouldComponentUpdate(nextProps: IInvoicesListProps,\n 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 = '',\n heading\n },\n context: {\n request: {\n channel\n },\n cultureFormatter: {\n formatCurrency,\n\n // @ts-expect-error\n currencyCode\n }\n },\n data: {\n customerBalance\n },\n resources: {\n invoicesListTitle,\n invoicesListDescTitle,\n invoicesListDescCount\n }\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
\n {invoicesListDescTitle}\n
\n
\n {amountText}\n
\n
\n {countText}\n
\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\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 });\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
\n {this.props.resources.invoiceEmptyInvoiceLinesTitle}\n
\n
\n {this.props.resources.invoiceEmptyInvoiceLinesDescription}\n
\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\n return (\n
\n
\n {this._renderMakePayment(containerHeaderClass)}\n {this._renderInvoiceRequestButton()}\n
\n
\n {this._renderInvoiceErrors()}\n
\n
\n {this._renderInvoicesList(containerContentClass)}\n
\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(new GetInvoicesInput(searchCriteria, this._queryResultSettings), this.props.context.actionContext);\n this._initializeWithInvoices(invoices);\n }\n\n private _renderInvoicesFilter(className: string): JSX.Element {\n const filterClassName = `${className}__filter`;\n return (\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 = newErrorState.errorReason?.failureReason === 'EMPTYINPUT' ? this.props.resources.invoiceErrorInvoiceIdNotExist : this.props.resources.invoiceErrorFailedAddInvoiceToCart;\n\n const shouldShowAdditionalInfoInPopup = errorState.errorCode === 'Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedWithItemLines';\n this.setState({ errorState, payInvoiceErrorModalOpen: shouldShowAdditionalInfoInPopup, selectedButtonElement: reference?.current });\n }\n\n private _renderMakePayment(className: string): 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: { payInvoiceErrorDialogHeader, payInvoiceErrorDialogBodyErrorTitle, payInvoiceErrorDialogBodyErrorDescription,\n payInvoiceErrorDialogFooterGoToCartButtonText, payInvoiceErrorDialogFooterCancelButtonText }\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 _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(new GetInvoicesInput(searchCriteria, this._queryResultSettings), this.props.context.actionContext);\n this._addInvoices(newInvoices);\n }\n\n private _renderInvoiceRequestModal(): JSX.Element {\n const customer = this.props.data.customer.result;\n const { invoiceRequestModalCancelLabel, invoiceRequestModalSubmitLabel, invoiceRequestModalHeaderLabel, invoiceRequestModalSendToEmailLabel, invoiceRequestModalSearch,\n invoiceRequestModalInvoiceSearchDisplay, invoiceRequestModalSingleInvoiceSearchDisplay, invoiceRequestModalSearchButton } = this.props.resources;\n\n return (\n \n );\n }\n\n private _onToggleInvoiceRequestModal(): void {\n\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 selectedButtonElement: this.payInvoiceRequestReference.current\n }, () => {\n this._onToggleInvoiceRequestModal();\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 private _requestInvoice(invoiceId: string): void {\n const context = { callerContext: this.props.context.actionContext };\n const b2bUserId: string = this.props.data.b2bUserInformation?.result?.B2BUserId || '';\n\n BusinessPartnerUsersDataActions.requestInvoiceCopyAsync(context, b2bUserId, invoiceId, BusinessPartnerOperationDeliveryType.Email);\n\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(specificInvoice: InvoiceModel, requestInvoiceButtonReference: React.RefObject): 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","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { IOrderTemplateListViewProps, ISingleOrderTemplateViewProps } from '@msdyn365-commerce-modules/order-template';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrderTemplateListProps, IOrderTemplateListResources } from '../definition-extensions/order-template-list.ext.props.autogenerated';\n\n/**\n * Interface for OrderTemplateImage.\n */\ninterface IOrderTemplateImage {\n props: {\n children: React.ReactElement[];\n };\n}\n\n/**\n * To render order template.\n * @param orderTemplate - The order template view props.\n * @param orderTemplateNodeProps - The order template node props.\n * @returns The JSX Element.\n */\nconst renderOrderTemplate = (orderTemplate: ISingleOrderTemplateViewProps, orderTemplateNodeProps?: INodeProps): JSX.Element | null => {\n\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file\n const { key, addToCartButton, orderTemplateImage, orderTemplateStatusMessage, removeButton, orderTemplateName } = orderTemplate;\n\n const orderTemplateImageElement: IOrderTemplateImage = orderTemplateImage as React.ReactElement;\n const currentImageListLength = orderTemplateImageElement.props.children.length;\n const defaultNumberImagesInTile = 4;\n\n if (currentImageListLength < defaultNumberImagesInTile) {\n for (let index = 0; index < defaultNumberImagesInTile - currentImageListLength; index++) {\n orderTemplateImageElement.props.children.push();\n }\n }\n\n return (\n \n {orderTemplateName}\n {orderTemplateImage}\n {addToCartButton}\n {removeButton}\n {orderTemplateStatusMessage}\n \n );\n};\n\n/**\n * Order Template List View.\n * @param props - The view props.\n * @returns The JSX Element.\n */\nexport const OrderTemplateListViewComponent: React.FC> = props => {\n const {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file\n OrderTemplateList, OrderTemplates, OrderTemplate,\n status,\n statusMessage,\n heading,\n orderTemplates,\n createOrderTemplateButton,\n templateHeaderStatusMessage\n } = props;\n\n return (\n \n {heading}\n {status !== 'SUCCESS' && statusMessage}\n \n {status === 'SUCCESS' &&\n (!OrderTemplates || !orderTemplates ||\n !ArrayExtensions.hasElements(orderTemplates)) ? (\n
\n

\n {props.resources.headingForEmptyOrderTemplateList}\n

\n

\n {props.resources.textForEmptyOrderTemplateList}\n

\n {createOrderTemplateButton}\n
\n ) : createOrderTemplateButton}\n {templateHeaderStatusMessage}\n
\n { OrderTemplates && orderTemplates && ArrayExtensions.hasElements(orderTemplates) &&\n \n {orderTemplates.map((orderTemplate) => {\n return renderOrderTemplate(orderTemplate, OrderTemplate);\n })}\n }\n
\n );\n};\n\nexport default OrderTemplateListViewComponent;\n"],"sourceRoot":""}