{"version":3,"sources":["webpack:///src/modules/invoices-list/index.ts?0857","webpack:///src/modules/invoices-list/components/request-invoice-button.tsx?b5d9","webpack:///src/modules/breadcrumb/breadcrumb.view.tsx?58b4","webpack:///src/modules/image-list/image-list.tsx?18cb","webpack:///./src/themes/nile-theme/views/footer-category.view.tsx?4329","webpack:///src/modules/fabrikam/views/buybox.view.tsx?68a7","webpack:///src/modules/site-picker/site-picker.view.tsx?dcff","webpack:///./src/themes/nile-theme/views/quickview.view.tsx?49b8","webpack:///src/modules/interactive-feature-item/interactive-feature-item.view.tsx?d4e3","webpack:///./src/themes/nile-theme/views/account-profile.view.tsx?912b","webpack:///src/modules/invoice-details/invoice-details.view.tsx?5ebe","webpack:///./src/themes/nile-theme/views/header.view.tsx?911a","webpack:///src/modules/image-list/image-list.view.tsx?cab9","webpack:///src/modules/footer-category/footer-category.tsx?b7b8","webpack:///./src/modules/country-picker-all/country-picker-all.view.tsx?e1e4","webpack:///src/modules/invoices-list/components/pay-invoice-component.tsx?41f4","webpack:///src/modules/account-invoice-tile/components/account-invoice-tile-description.tsx?0029","webpack:///src/modules/account-invoice-tile/components/account-invoice-tile-links.tsx?d307","webpack:///src/modules/account-invoice-tile/account-invoice-tile.tsx?9a78","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/modules/adventureworks/views/reviews-list.view.tsx?ebec","webpack:///src/index.ts?c6ae","webpack:///./src/themes/nile-theme/views/video-player.view.tsx?2b73","webpack:///src/modules/accordion-item/accordion-item.view.tsx?b04f","webpack:///./src/modules/footer-region-switch/footer-region-switch.view.tsx?90a5","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/aad-generic/aad-generic.view.tsx?ecad","webpack:///src/modules/catalog-picker/catalog-picker.view.tsx?d632","webpack:///src/modules/accordion/accordion.view.tsx?8c70","webpack:///./src/themes/nile-theme/views/account-loyalty.view.tsx?bf3e","webpack:///src/modules/invoices-list/invoices-list.view.tsx?0243","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/themes/nile-theme/views/cart-icon.view.tsx?5589","webpack:///./src/themes/nile-theme/views/accordion-item.view.tsx?5b04","webpack:///src/modules/footer-category/footer-category.view.tsx?26a5","webpack:///src/modules/catalog-picker/catalog-picker.tsx?dde5","webpack:///src/modules/interactive-feature-collection/interactive-feature-collection.view.tsx?5927","webpack:///src/modules/invoices-list/helpers/pay-invoices.ts?f98a","webpack:///src/modules/invoice-details/components/invoice-details-header.tsx?d1cb","webpack:///src/modules/invoice-details/components/invoice-details-payment-summary.tsx?a7ab","webpack:///src/modules/invoice-details/components/invoice-details-products.tsx?d808","webpack:///src/modules/invoice-details/helpers/invoice-data.ts?1fa7","webpack:///src/modules/invoice-details/invoice-details.tsx?b5c9","webpack:///src/modules/invoices-list/components/invoices-table/components/invoices-table-header-component.tsx?6874","webpack:///src/modules/interactive-feature-item/components/links.tsx?8ab2","webpack:///src/modules/interactive-feature-item/interactive-feature-item.tsx?340f","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/organization-users-tile/organization-users-tile.view.tsx?d92a","webpack:///./src/themes/nile-theme/views/account-management-address.view.tsx?b608","webpack:///./src/modules/clarity-cookie-compliance/clarity-cookie-compliance.view.tsx?3f94","webpack:///src/modules/map/map.tsx?e2df","webpack:///src/modules/invoices-list/helpers/invoice-data.ts?6271","webpack:///src/modules/invoices-list/helpers/invoice-status.ts?442a","webpack:///./src/themes/nile-theme/views/sign-in.view.tsx?767c","webpack:///src/modules/invoices-list/helpers/index.ts?7d24","webpack:///src/modules/footer-item/footer-item.tsx?f8b4","webpack:///src/modules/site-picker/site-picker.tsx?35ca","webpack:///src/modules/invoices-list/components/invoices-filter-component.tsx?759c","webpack:///./src/modules/clarity-cookie-compliance/components/accept-button.tsx?81eb","webpack:///./src/modules/clarity-cookie-compliance/components/links.tsx?f754","webpack:///./src/modules/clarity-cookie-compliance/clarity-cookie-compliance.tsx?98df","webpack:///src/modules/accordion/accordion.tsx?45c1","webpack:///src/modules/account-invoice-tile/account-invoice-tile.view.tsx?4620","webpack:///./src/modules/footer-region-switch/footer-region-switch.tsx?0680","webpack:///src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-organization-wide-selector.component.tsx?2daf","webpack:///src/modules/map/map.view.tsx?cd35","webpack:///src/modules/footer-item/footer-item.view.tsx?235e","webpack:///./src/modules/country-picker-all/country-picker-all.tsx?c5c9","webpack:///src/modules/organization-users-tile/components/account-organization-users-tile-description.tsx?8d2f","webpack:///src/modules/organization-users-tile/components/account-organization-users-tile-links.tsx?2a03","webpack:///src/modules/organization-users-tile/organization-users-tile.tsx?9c60","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":["RequestInvoiceButton","_ref","className","onClicked","requestInvoiceButtonLabel","innerReference","React","Button","onClick","innerRef","BreadCrumbView","props","root","links","backButton","BreadcrumbContainer","BreadcrumbList","BreadcrumbListItem","separator","Module","Object","assign","Node","map","link","index","key","classnames","length","context","telemetry","error","ImageList","constructor","handleParagraphChange","event","this","config","images","paragraph","target","value","_renderImageListItems","imageList","defaultImageSettings","viewports","xs","q","w","h","lg","xl","lazyload","disableLazyLoad","item","_image$imageSettings","_link$linkText","image","imageProps","gridSettings","request","imageSettings","imageLink","linkUrl","destinationUrl","imageLinkText","linkText","ariaLabel","imageLinkAriaLabel","imageLinkOpenInNewTab","openInNewTab","Msdyn365","loadFailureBehavior","requestContext","text","editProps","onEdit","linkAltText","linkAriaLabel","linkOpenInNewTab","render","_heading$tag","heading","imageListTitle","tag","viewProps","_objectSpread","moduleProps","imageListHeading","imageListContainer","role","imageListItem","imageListItemAnchorTag","imageListItems","renderView","FooterCategoryView","categories","FooterList","FooterListItem","useEffect","msdyn365Commerce","isBrowser","document","URL","includes","getCookie","cname","name","ca","cookie","split","i","c","charAt","substring","indexOf","setCookie","cvalue","currentDate","Date","expiry","getTime","backnum","ref","referrer","_noop","count","here","last","parseInt","el","querySelector","href","createElement","category","_renderTextBlock","textBlocks","_renderSocialShare","socialShare","_renderCartAndActions","addToCart","addToOrderTemplate","addToWishlist","errorBlock","button","_renderConfigure","configure","ContainerProps","dropdowns","_renderConfigureDropdown","dropdown","LabelContainerProps","errors","select","_renderFindInStore","findInStore","storeSelector","description","modal","productPickupOptionList","onChangeHandler","callbacks","newValue","updateQuantity","_renderQuantity","quantityComponent","state","extentionResources","quantityLimitsMessages","min","max","applyDefaultOrderSettings","telemetryContent","resources","quantity","IncrementalQuantity","id","currentCount","onChange","inputQuantityAriaLabel","decrementButtonAriaLabel","incrementButtonAriaLabel","minQuantityText","maxQuantityText","_renderKeyInPrice","keyInPrice","input","_renderShopSimilarItem","shopSimilarItem","BuyboxView","ModuleProps","MediaGalleryContainerProps","ProductInfoContainerProps","price","title","rating","inventoryLabel","shopSimilarLook","shopSimilarDescription","unitOfMeasure","mediaGallery","bulkPurchaseLink","slots","_renderSitePicker","_renderSiteOptionsList","SitePickerMenuList","SitePickerMenuListItem","SitePickerMenuListItemArray","options","onMouseLeave","resetSiteOptionsState","isMobileView","SitePicker","_props$SitePickerMenu","SitePickerMobileContainer","renderSiteOptions","_renderMobileView","_props$config$heading","SitePickerMenu","SitePickerMenuSpan","siteOptionsState","_renderDesktopView","_renderQuickViewPopup","ModalContainer","ModalHeaderContainer","ModalFooterContainer","ModalHeaderContent","ModalBodyContainer","cartContainerProps","_renderBodyContent","_renderAddToCart","seeDetailsbutton","loading","CarouselProps","_renderAddToWishlist","QuickViewFunctionalComponent","quickView","quickViewButton","isModalOpen","isMobileDevice","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","AccountPreferencesSection","accountPreferences","personalization","extraPreferences","AccountPreferenceSection","preferenceSecton","_ref2","accountPreference","buttonWrapper","buttonYesText","buttonNoText","AccountProfileSection","_ref3","AccountProfileItem","MailchimpSignupSection","_ref4","noText","yesText","handler","classText","isSubscribed","classNames","descriptionComponent","AccountProfileView","super","handleMailChimpSubscriptionStatusClick","changeMailChimpSubscriptionStatusAsync","callerContext","actionContext","then","res","Success","setState","data","mailchimpSubscriptionStatus","status","result","active","mailchimpHeading","mailchimpDescription","mailchimpYesText","mailchimpNoText","AccountProfile","accountProfileWrapper","emailSection","nameSection","preferenceSection","customerAttributesWrapper","customerAttributesSection","InvoiceDetailsView","header","products","paymentDetails","payInvoiceError","renderCustomerName","accountInformation","customer","FirstName","Name","_renderReactFragment","items","slot","headerView","HeaderTag","HeaderContainer","HeaderTopBarContainer","Divider","navIcon","logo","search","preferredStore","renderForMobile","AccountInfoDropdownParentContainer","AccountInfoDropdownPopoverConentContainer","accountInfoDropdownButton","signOutLink","signInLink","accountLinks","accountClassName","_renderAccountBlock","wishListIconDesktop","cartIcon","siteOptions","MobileMenuLinksContainer","mobileMenuCollapsed","Collapse","isOpen","Drawer","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","_renderMobileAccountBlock","wishListIconMobile","menuBar","_renderCollapseMenu","imageListView","indexKey","src","altText","undefined","FooterCategory","content","viewprops","countryPickerView","modalContainer","modalHeaderContainer","modalBodyContainer","modalFooterContainer","subheading","countryList","preferredSite","cookies","get","urlExt","replace","stripLocale","url","requestUrl","pathname","preferredSiteName","currentLocaleName","currentLocale","geolocationOopsText","prefhref","geolocationReturnText","geolocationOrText","geolocationPickNewText","country","elements","geolocationSubText","PayInvoiceComponentActions","async","_event","setDisabled","payInvoices","invoice","errorState","onError","reference","onClickHandler","PayInvoiceComponent","createComponent","component","disabled","useState","payInvoiceButtonAriaLabel","canBePaid","payInvoiceButtonText","AccountInvoiceTileDescription","_mapEditableLinks","linkdata","editableLinks","payLoad","getPayloadObject","forEach","contentAction","etext","attributes","getTelemetryAttributes","editableLink","additionalProperties","push","AccountInvoiceTileLinks","onTextChange","AccountInvoiceTile","handleHeadingChange","handleLinkTextChange","linkIndex","getTelemetryObject","telemetryPageName","friendlyName","_data$customerBalance","cultureFormatter","formatCurrency","currencyCode","accountInvoiceTileDescription","invoiceTotalAmount","customerBalance","OpenInvoiceBalance","toFixed","format","LinksComponent","Link","noclick","attribute","onTelemetryClick","itemProp","Separator","Breadcrumb","_pageType","urlTokens","pageType","_getRootLink","_getCustomBreadcrumbLinks","itemPosition","keyIndex","toString","_getCategoryHierarchy","categoryHierarchy","_getFriendlyName","locale","NameTranslations","Url","nameTranslations","_nameTranslation","nameTranslation","ArrayExtensions","hasElements","find","Language","toLowerCase","Text","_getPDPLinks","categoryPaths","product","hideProductName","_goBack","window","history","back","_getPDPBackButton","query","MsDyn365","backToResultsText","rootLink","breadcrumbLinks","backButtonComponent","breaCrumbType","app","breadcrumbType","linkSeparator","breadcrumbViewProps","buildReviewCard","isUserReview","cardProps","headerProps","date","cardBodyProps","reviewProps","reviewTitle","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","wasReviewHelpfulText","like","dislike","edit","renderProductDescription","_props$data$product$r","primaryImageSource","PrimaryImageUrl","imageUrl","generateImageUrl","apiSettings","Image","sm","md","cropFocalRegion","renderProductImage","ItemId","ReviewsListview","filterByDropdown","noReviewsMessage","noReviewsWithFilterMessage","pageControls","refineReviewsProps","reportReviewModal","reviewsListProps","reviewCards","sortByDropdown","userReview","isFilterApplied","review","reviewModal","modalHeader","modalBody","form","inputRow","selectRatingLabel","reviewTitleLabel","titleInput","reviewTextLabel","textInput","privacyPolicyUrl","modalFooter","submitButton","cancelButton","createReviewModal","createReportModal","reported","headerSubmitted","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton","VideoPlayerView","yPosition","setYPosition","onScroll","pageYOffset","removeEventListener","addEventListener","passive","renderModuleAttributes","player","detailsContainer","additionalContent","additionalContentItems","additionalContentNode","additionalContentItemContainer","additionalContentItemLinks","detailsContainerCta","showScrollDownButton","e","element","getElementById","getElementsByTagName","videoPlayerHeight","clientHeight","headerHeight","scrollTo","scrollDownClickHandler","scrollDownButton","_renderAccordionItemContent","AccordionItemView","drawer","accordionSlots","AccordionItemContainer","AccordionItemContent","accordionItemContent","FooterItemView","FooterItem","_renderElement","HeadingContainer","EditableLink","viewport","_window","device","Type","innerWidth","getViewport","onSelectAllHandler","isSelected","invoices","InvoicesTableComponent","isMobile","setIsMobile","updateViewport","rowClassName","headerClassName","InvoicesTableHeaderComponent","typeName","isSelectedAll","all","isAdmin","IsB2bAdmin","onSelectAll","InvoicesTableRowComponent","invoiceReferences","invoiceButtonReferences","Number","payInvoiceReferences","payInvoiceButtonReferences","onRequestInvoice","AccordionItem","moduleClassName","accordionItemTitle","_onToggle","bind","shouldComponentUpdate","nextProps","accordionExpandedStateResult","accordionExpandedState","expanded","isAllExpanded","isExpandedOnInitialLoad","ControlledDrawer","collapseProps","onToggle","interactionStyle","accordionState","update","createAccordionStateInput","__decorate","observer","aadGeneric","aadConainer","aadAPIConainer","CatalogPickerViewFunctionComponent","catalogPicker","catalogs","accordionView","AccordionContainer","accordionItems","accordionButtons","HeaderSection","HeadingWrapper","accordianButtonsContainer","accordionItemContainer","AccountLoyaltyView","AccountLoyalty","Info","Points","infoLabel","cardNumber","pointsLabel","points","homeButton","pointsModal","ModalBodyTop","ModalBodyHeaders","dangerouslySetInnerHTML","__html","nilemsg","Modal","returnFocusRef","autoFocus","fade","horizontalPosition","verticalPosition","modalClassName","zIndex","onClosed","onClose","onOpened","toggle","ModalHeader","modalHeaderClassName","ModalBody","modalBodyClassName","pointsDescription","totalPoints","balanceLabel","rewardPointsActivity","activity","Activity","activityType","activityDate","activityPoints","InvoiceListView","filter","invoiceRequestModal","pagination","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","message","ModalFooter","CartIconView","miniCartWrapper","FlyoutContainer","flyoutTitle","checkoutBlockedDueToUnavailableFunds","CartlinesWrapper","_renderCartlines","cartLines","cartLine","_cartLine$data","miniCartItemWrapper","cartline","storeLocation","remove","cartlines","totalPrice","checkoutAsSignInUserButton","goToCartButton","paymentSlot","CatalogPicker","PureComponent","handleTextChange","_this$props$data$cata","catalogPickerHeading","_moduleClassName","isCatalogsAvailable","catalogPickerParagraph","RichTextComponent","catalogValidationText","handleText","_renderCatalogPicker","_renderCatalogPickerButton","catalogId","RecordId","getCatalogId","currentCatalogText","linkToCatalog","_getUrlSync","catalogUrl","getUrlSync","fullUrl","location","searchParams","set","changeCatalogButtonText","_this$props$data$cata2","reactKey","JSON","stringify","String","firstOrDefault","Images","tabIndex","Uri","galleryImageSettings","AltText","interactiveFeatureCollectionView","interactiveFeatureCollectionHeading","interactiveFeatureCollectionContainer","interactiveFeatureCollectionDesktopContainer","interactiveFeatureCollectionDesktopItems","interactiveFeatureCollectionMobileItems","interactiveFeatureCollectionMobileContainer","singleSlideCarouselComponentProps","singleSlideCarouselItemContainer","tileItem","invoicesToAdd","errorReason","failureReason","cartState","getCartState","addInvoicesToCart","invoiceIds","_result$errorDetails","_result$errorDetails2","errorDetails","LocalizedMessage","errorCode","ErrorResourceId","InvoiceDetailsHeaderComponent","invoiceDetails","invoiceNumberText","invoiceIdLabel","invoiceOrderItemsText","lines","invoiceOrderItem","invoiceOrderItems","invoiceInfoContainerClassName","orderInfoContainerClassName","orderInfoClassName","orderMainInfoClassName","orderDetailsClassName","actionsClassName","amountSummaryClassName","orderDate","formatShortDate","formatDate","year","month","day","invoiceDate","dueDate","formatLongDate","dueDateText","invoicePaymentDueDateText","isOnBehalfOfRequest","isOboRequest","invoicePlacedByLabel","customerName","invoiceAmountDueText","amount","amountDue","formatAmount","InvoiceDetailsPaymentDetailsComponent","invoicePaymentDetails","lineClassName","ObjectExtensions","isNullOrUndefined","totalDiscount","label","invoicePaymentDiscounts","subtotal","invoicePaymentSubtotal","totalCharges","invoicePaymentCharges","totalTax","invoicePaymentTax","totalAmount","invoicePaymentInvoiceTotal","line","InvoiceDetailsProductsComponent","productLineClass","productLineInfoContainerClass","productLineDetailsClass","productLineSmallDetailsClass","Quantity","productUrl","ProductName","ProductId","getProductPageUrlSync","_renderProductImage","_context$request$app","fallbackImage","getFallbackImageUrl","OmniChannelMedia","primaryImageUrl","fallBackSrc","_renderProductDimensions","StringExtensions","isNullOrWhitespace","ColorName","invoiceProductColor","SizeName","invoiceProductSize","StyleName","invoiceProductStyle","Price","invoiceQuantity","NetAmount","InvoiceDetailsModel","Id","InvoiceDate","CustomerName","InvoiceDueDate","AmountBalance","InvoicePaidStatusValue","SalesInvoiceLine","_products$find","TotalDiscount","InvoiceSubtotal","TotalCharges","TotalTaxAmount","TotalAmount","CurrencyCode","InvoicePaidStatus","Paid","InvoiceDetails","_onAddToCartFailed","_setPayInvoiceErrorModalClose","_getProducts","ChannelId","invoiceDetailsModel","_renderHeader","_renderProducts","_renderPaymentDetails","_renderInvoiceErrors","_className","channelId","arguments","productInputs","ProductInput","getSimpleProductsAction","newErrorState","errorHost","_this$state$errorStat","payInvoiceErrorDialogHeader","payInvoiceErrorDialogBodyErrorTitle","payInvoiceErrorDialogBodyErrorDescription","payInvoiceErrorDialogFooterGoToCartButtonText","payInvoiceErrorDialogFooterCancelButtonText","errorClassName","switchCheckedState","headerCells","getMobileHeaderCells","type","invoiceListSelectAllRadioAriaLabelText","checked","invoicesText","invoiceDateMobileText","getDesktopHeaderCells","invoiceDateText","invoiceUsersText","invoiceAmountText","invoiceDueDateText","invoiceStatusText","invoiceActionsText","InteractiveFeatureCollectionLinks","InteractiveFeatureItem","_telemetryContent","_this$props$config$li","featureItemLinks","_createHeading","_createParagraph","_renderImage","tabindex","isAriaHiddenAttribute","_item$imageSettings","_this$props$config$im","verifiedImageSettings","moduleType","imagePropertyName","moduleId","InteractiveFeatureCollection","itemsCounter","_this$props$config$cl","_title$tag","interactiveItems","interactiveFeatureItems","itemsFeatureCounter","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","vertical","createHeading","_getFeatureItem","onRequestSpecificInvoice","requestInvoiceButtonReference","setShowPreviousActions","onClickViewDetails","linkToInvoiceDetails","isShowActions","setShowActions","shouldShowActions","extraActionsPopup","invoiceViewDetailsButtonAriaLabel","invoiceViewDetailsButtonText","invoiceActionsButtonTextAriaLabel","invoiceActionsButtonIsOnBehalfOfTextAriaLabel","showActions","getInvoiceDetailsPageUrlSync","actionsContainerClassName","payInvoiceClassName","invoiceRequestButtonLabel","onSelectLine","rowCells","getMobileRowCells","invoiceRowArialabel","invoiceListSelectRadioAriaLabelText","getInvoiceStatusText","getDesktopRowCells","isCurrentUser","AccountNumber","customerAccountNumber","invoiceCurrentUser","OrganizationUsersTileView","OrganizationUsersTile","AddressShow","AddressDetail","AddressList","List","isShowList","classNameExtended","Item","showItems","isShowPrimaryButton","primaryButton","editButton","removeButton","Error","isShowError","AddressLists","ListAddress","isShowEmptyListMessage","emptyListMessage","addButton","primaryAddressList","otherAddressList","AddressAddUpdate","AddressForm","hasError","isShowSaveButton","saveButton","isShowCancelButton","AddressItem","alert","AddressError","AccountManagementAddressView","AccountAddressManagement","viewState","showAddressList","showAddOrUpdateAddress","screenReaderNotification","isShowAddresList","isShowAddOrUpdateAddress","CookieComplianceView","CookieComplianceBanner","AlertProps","Content","acceptButton","Map","timeout","mapRef","_initMap","_data$storeSelectorSt","_data$distributorSele","channel","storeSelectorStateManager","isMapApiLoaded","distributorSelectorStateManager","Microsoft","Maps","current","credentials","BingMapsApiKey","pushpinAccessible","Events","addHandler","_data$distributorSele2","_data$distributorSele3","_data$distributorSele4","_data$storeSelectorSt2","isDistributorSelectorDialogOpen","updateDistributorMapVisibility","setSelectedDistributorId","setSelectedStoreLocationId","_updateMapsForDistributor","_this$props$data$dist","pushpinOptions","distributorInfoList","distributorList","selectedDistributorId","mapLocation","entities","clear","pushpins","distributor","OrgUnit","distributorInfo","entries","orgUnit","Latitude","Longitude","isLocationSelected","_getPushpinOptions","pushpin","Pushpin","Location","handleDistributorPushpinClick","unshift","currentLocation","setView","center","_Microsoft$Maps$Locat","bounds","LocationRect","fromShapes","setOptions","_updateMap","_this$props$data$stor","_storeSelectorStateMa","orgUnitStoreInformation","selectedStoreLocationId","storeLocationList","store","OrgUnitAvailability","unitStoreInfo","_unitStoreInfo$OrgUni","OrgUnitLocation","isSelectedLocation","OrgUnitNumber","handleClickEvent","_Microsoft$Maps$Locat2","orgUnitNumber","setTimeout","recordId","_this$props$data$dist2","showIndex","size","selectionColor","icon","_getSvgIcon","_this$props$context","_this$props$data$stor2","_this$props$data$dist3","BingMapsEnabled","loadMapAPIInput","lang","market","ChannelCountryRegionISOCode","_this$props$data$dist4","when","_this$props$data$stor3","setMapModuleLoaded","_this$props$data$stor4","_this$props$data$dist5","_this$props$data$dist6","reaction","_this$props$data$stor5","_this$props$data$dist7","loadMapApi","_this$props$data$dist8","_this$props$data$dist9","_this$props$data$stor6","_this$props$data$stor7","_this$props$data$dist10","_this$props$data$stor8","_this$props$data$stor9","_this$props$data$dist11","_this$props$data$dist12","_data$storeSelectorSt3","_data$storeSelectorSt4","_data$distributorSele5","_data$distributorSele6","shouldDisplayMap","isDialogOpen","listMapViewState","displayMap","classname","show","Header","MapProps","observable","InvoiceModel","CustomerAccountNumber","invoiceStatus","None","invoiceStatusNone","Unpaid","invoiceStatusUnpaid","PartiallyPaid","invoiceStatusPartiallyPaid","invoiceStatusPaid","SignInLoading","SignInView","signIn","defaultAADConainer","signInSection","signUpSection","signInSectionHeading","signInLocalAccount","signInSocialAccount","signUpSectionHeading","signUpLink","langver","URLSearchParams","console","log","liLead","liOne","liTwo","liThree","liFour","isShowLoading","localAccount","forgetPassword","disclaimer","signInButton","wrapper","LocalAccount","socialAccounts","SocialAccount","langstrings","footerItemClassName","_createImageMarkup","_createText","_createLinkText","_createLink","ItemContainer","ariaHiddenAttr","shouldSkipToMainImage","_cookieName","_cookieExpirationInSeconds","_escFunction","keyCode","expandSiteOptions","KeyCodes","Escape","_this$_sitePickerMenu","_this$_sitePickerMenu2","nextFocus","activeElement","_this$_sitePickerMenu3","_sitePickerMenuButton","contains","_sitePickerMenuNode","_resetSiteOptionsState","focus","Tab","_this$_sitePickerMenu4","_this$_sitePickerMenu5","_handleOutsideClick","_this$_sitePickerMenu6","_this$_sitePickerMenu7","_handleChange","createRef","_renderSiteOptions","_updateViewport","_document","_document2","body","resizeThrottledEventHandler","addThrottledEvent","componentWillUnmount","_document3","_document4","_this$props$config$he","_this$props$config$he2","_renderSitePickerImage","expandSiteOptionsState","preventDefault","currentTarget","isConsentGiven","cookieConfig","maxAge","_item$siteRedirectUrl","siteImage","siteRedirectUrl","siteName","_getViewport","computed","InvoicesFilterState","getInvoicesFilterStateResources","filterState","ShowAll","invoicesFilterShowAll","onStateClick","InvoicesFilterComponent","popoverRef","popoverState","setPopoverState","togglePopover","useCallback","setFilterState","currentState","onFilterStateClick","clickedState","onFilterStateChanged","Popover","placement","EnumExtensions","getEnumValues","renderFilterStateItem","stateStringRepresentation","CookieComplianceAcceptButton","acceptCookiesButtonText","acceptCookiesButtonAriaLabel","CookieComplianceLinks","CookieCompliance","_this$props$config$ac","actionLinks","handleContentChange","visible","cookieRef","_onDismiss","acceptCookiesAriaLabel","moduleConfig","onDismiss","setConsentCookie","frames","clarity","reload","Accordion","expandAllButtonRef","collapseAllButtonRef","_onExpandAll","_onCollapseAll","isDisabled","headingComponent","accordionViewProps","_renderAccordionButton","_getAccordionItem","TelemetryConstant","ExpandAll","attributeExpandAll","CollapseAll","attributeCollapseAll","showToggleAll","expandAllText","toggleAllSeparator","collapseAllText","_this$collapseAllButt","_this$expandAllButton","_preferredSiteStorageKey","_writeToCookie","storageKey","storageValue","cookieOptions","secure","sameSite","cookieLifetime","_stripTrailingSlashes","path","slice","_this$props$context$r","goodLink","fixedURL","origin","cookieLink","componentClassName","buttonClassName","buttonActiveClassName","buttonInactiveClassName","OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState","OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent","_props$resources$curr","_props$resources","_props$resources$curr2","_props$resources2","_props$resources$curr3","_props$resources3","_props$resources4","_props$resources$curr4","_props$resources5","_props$resources6","_props$resources7","_props$resources$orga","_props$resources8","_props$resources9","_props$resources$orga2","_props$resources10","_props$resources11","_props$resources12","selectorState","setSelectorState","currentSelectorState","newSelectorState","currentUserOrderHistoryAttributes","currentUserOptionLabel","orgWideOrderHistoryAttributes","CurrentUser","currentUserOptionAriaLabel","OrganizationWide","organizationWideOptionAriaLabel","organizationWideOptionLabel","MapHeader","MapView","CountryPicker","_preferredSiteNameStorageKey","_makeBaseUrl","ext","base","closeModal","_handleStayOnSiteButtonClick","currentBaseUrl","marketSettings","urlToStore","_appendProtocolToUrl","_handleClick","storageKey2","storageValue2","baseUrl","isCookieValueSet","cookieValue","validateCookieValue","autoRedirect","actionLink","countryPickerHeading","MsDyn365Lib","countryPickerSubHeading","countryPickerActionLink","createLink","currentSiteButton","stayOnCurrentSiteButtonText","modalTransition","shouldUpdateFocusToFirstElement","renderCountryList","stayOnCurrentSiteButton","isNullOrEmpty","countryGroups","grouper","x","displayGroup","reduce","_store$get","has","countryLinks","countrydata","clinks","renderCountry","_image$src","_item$displayGroupLoc","imageSize","displayString","displayGroupLocalizedName","AccountOrganizationUsersTileDescription","AccountOrganizationUsersTileLinks","accountOrganizationUsersTileDescriptionForSingleUser","accountOrganizationUsersTileDescriptionForMultipleUsers","numUsers","users","accountOrganizationUsersTileDescription","customerInformation","onSubmitRequestClick","onClosing","filteredInvoices","onSubmitRequest","checkboxRef","closingFlag","_inputInvoice$current","searchInputChangedHandler","setSearchInput","onCancelHandler","renderInvoiceOptions","setSelectedInvoiceIndex","_invoice","_checkboxRef$current$","onInvoiceSelect","onInvoiceSelectHandler","checkboxId","checkboxName","htmlFor","RequestInvoiceModal","email","modalHeaderLabel","sendToEmailLabel","submitRequestLabel","cancelLabel","searchPlaceholderLabel","invoicesFoundString","singleInvoiceFoundString","searchButtonAltText","selectedInvoiceIndex","setFilteredInvoices","searchInput","shouldShowSearchResults","setShouldShowSearchResults","invoiceOptionsData","invoiceOptions","setInvoiceOptions","focusElement","_focusElement$current","searchEntered","searchEnteredHandler","updatedInvoices","toLocaleUpperCase","searchResultString","invoicesFoundReplaceIndex","setFilteredInvoicesToSelectedInvoices","selectedInvoices","requestInvoiceDialogAriaLabel","placeholder","InvoicesList","buttonChildReference","buttonChildPayButtonReference","_onToggleInvoiceRequestParentModal","selectedButtonElement","payInvoiceRequestReference","_onToggleInvoiceRequestModal","_queryResultSettings","QueryResultSettingsProxy","fromModuleData","QueryResultSettings","makePaymentReference","_updateInvoicesState","_handleFilterStateChange","_loadMoreInvoices","_requestInvoice","_requestSpecificInvoice","invoicesFilterState","isLoading","isPageLoaded","isInvoiceRequestModalOpen","nextState","_customerBalance$resu","_customerBalance$resu2","_heading$text","invoicesListTitle","invoicesListDescTitle","invoicesListDescCount","amountText","Currency","totalCount","OpenInvoiceCount","countText","invoicesListTitleHeading","Heading","_renderInvoiceRequestModal","_renderInvoicesFilter","_renderPagination","_renderListContainer","_renderEmptyInvoiceLinesPageContent","invoicesData","_initializeWithInvoices","_this$props$data$b2bU","b2bUserId","b2bUserInformation","B2BUserId","invoiceId","BusinessPartnerUsersDataActions","requestInvoiceCopyAsync","BusinessPartnerOperationDeliveryType","Email","_addInvoices","newInvoices","concat","containerClass","actionsContainerClass","invoiceEmptyInvoiceLinesTitle","invoiceEmptyInvoiceLinesDescription","invoiceEmptyInvoiceLinesContinueShoppingButtonAriaLabel","invoiceEmptyInvoiceLinesContinueShoppingButtonText","containerHeaderClass","containerContentClass","_renderMakePayment","_renderInvoiceRequestButton","_renderInvoicesList","searchCriteria","businessPartner","getCurrentAsync","BusinessPartnerId","getCustomer","GetCustomerInput","CustomerId","InvoicePaidStatusValues","_getInvoicesSearchCriteria","Paging","Skip","getInvoices","GetInvoicesInput","filterClassName","_renderInvoiceInCartPaymentMessage","tableClassName","_newErrorState$errorR","invoiceErrorInvoiceIdNotExist","invoiceErrorFailedAddInvoiceToCart","shouldShowAdditionalInfoInPopup","makePaymentResources","_getSelectedInvoices","moduleTypeName","navigationUrl","_this$state$selectedB","invoiceErrorMessageHeader","_this$props$data$cart","cart","hasInvoiceLine","invoiceInCartPaymentMessage","_data$invoices","Top","invoicesLoadMore","invoiceRequestModalCancelLabel","invoiceRequestModalSubmitLabel","invoiceRequestModalHeaderLabel","invoiceRequestModalSendToEmailLabel","invoiceRequestModalSearch","invoiceRequestModalInvoiceSearchDisplay","invoiceRequestModalSingleInvoiceSearchDisplay","invoiceRequestModalSearchButton","_this$state$selectedB2","specificInvoice","OrderTemplateListViewComponent","OrderTemplateList","OrderTemplates","OrderTemplate","statusMessage","orderTemplates","createOrderTemplateButton","templateHeaderStatusMessage","headingForEmptyOrderTemplateList","textForEmptyOrderTemplateList","orderTemplate","renderOrderTemplate","orderTemplateNodeProps","addToCartButton","orderTemplateImage","orderTemplateStatusMessage","orderTemplateName","orderTemplateImageElement","currentImageListLength","children"],"mappings":"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","file":"static/js/5.c50473592bdbf5b0b91b.chunk.js","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './components';\nexport * from './helpers';\nexport * from './invoices-list';\nexport * from './invoices-list.data';\nexport * from './invoices-list.props.autogenerated';\nexport * from './invoices-list.view';\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface IRequestInvoiceButtonProps {\n innerReference?: React.RefObject;\n className: string;\n requestInvoiceButtonLabel: string;\n onClicked(): void;\n}\n\nexport const RequestInvoiceButton: React.FC = ({\n className,\n onClicked,\n requestInvoiceButtonLabel,\n innerReference\n}) => {\n return (\n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbViewProps } from './breadcrumb';\n\nconst BreadCrumbView: React.FC = props => {\n const { root, links, backButton, BreadcrumbContainer, BreadcrumbList, BreadcrumbListItem, separator } = props;\n if (!root && !links && !backButton) {\n props.context.telemetry.error('BreadCrumb content is empty, module wont render');\n return null;\n }\n return (\n \n \n {root && (\n \n {root}\n {links && separator}\n \n )}\n {backButton && {backButton}}\n {links &&\n links.map((link, index) => (\n \n \n {link}\n {links[index + 1] && separator}\n \n \n ))}\n \n \n );\n};\n\nexport default BreadCrumbView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IImageListConfig, IImageListProps, IImagesData } from './image-list.props.autogenerated';\n\n/**\n * The interface for IImageListViewProps.\n */\nexport interface IImageListViewProps extends IImageListProps {\n imageList: IModuleProps;\n imageListHeading?: React.ReactNode;\n imageListContainer: INodeProps;\n imageListItem: INodeProps;\n imageListItemAnchorTag: INodeProps;\n imageListItems: IImageListItem[] | undefined;\n}\n\n/**\n * The interface for IImageListItem.\n */\nexport interface IImageListItem {\n image: JSX.Element | undefined;\n text: JSX.Element | undefined;\n link: string | undefined;\n linkAltText: string | undefined;\n linkAriaLabel: string | undefined;\n linkOpenInNewTab?: boolean;\n}\n\n/**\n *\n * ImageList component.\n * @extends {React.PureComponent>}\n */\nclass ImageList extends React.PureComponent> {\n public render(): JSX.Element | null {\n const { heading } = this.props.config;\n const imageListTitle = heading && ;\n const viewProps: IImageListViewProps = {\n ...this.props,\n imageList: {\n moduleProps: this.props,\n className: classnames('ms-image-list', this.props.config.className),\n tag: 'div'\n },\n imageListHeading: imageListTitle,\n imageListContainer: {\n className: 'ms-image-list__list',\n role: 'list',\n tag: 'ul'\n },\n imageListItem: {\n className: 'ms-image-list__list-item',\n role: 'listitem',\n tag: 'li'\n },\n imageListItemAnchorTag: {\n tag: 'a',\n className: 'ms-image-list__link',\n role: 'link'\n },\n imageListItems: this._renderImageListItems()\n };\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle paragraph change.\n * @param index - Index of image item in array of image items.\n * @returns Void.\n */\n public handleParagraphChange = (index: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.images![index]) {\n this.props.config.images![index].paragraph = event.target.value;\n }\n };\n\n /**\n * Render list of images.\n * @returns List of images with text and redirection link.\n */\n private readonly _renderImageListItems = (): IImageListItem[] | undefined => {\n const imageList: IImagesData[] | undefined = this.props.config.images;\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 },\n lg: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 },\n xl: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 }\n },\n lazyload: false,\n disableLazyLoad: true\n };\n return imageList?.map((item, index) => {\n const { image, link, paragraph } = item;\n\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: (image?.imageSettings ?? defaultImageSettings) as Msdyn365.IImageSettings | undefined\n };\n\n const imageLink: string | undefined = link?.linkUrl.destinationUrl;\n const imageLinkText: string | undefined = link?.linkText ?? link?.ariaLabel;\n const imageLinkAriaLabel: string | undefined = link?.ariaLabel;\n const imageLinkOpenInNewTab = link?.openInNewTab;\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 linkOpenInNewTab: imageLinkOpenInNewTab\n };\n return imageListItem;\n });\n };\n}\n\nexport default ImageList;\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 React, { ReactNode } from 'react';\r\n\r\nimport { IFooterCategoryViewProps } from '@msdyn365-commerce-modules/footer/src/modules/footer-category/./footer-category';\r\nimport msdyn365Commerce from '@msdyn365-commerce/core-internal';\r\nimport { noop } from 'lodash';\r\n\r\nexport const FooterCategoryView: React.FC = props => {\r\n const { categories, FooterList, FooterListItem } = props;\r\n if (!categories || categories.length === 0) {\r\n props.context.telemetry.error('Footer content is empty, module wont render');\r\n return null;\r\n }\r\n \r\n React.useEffect(() => {\r\n if (msdyn365Commerce.isBrowser && document.URL.includes(\"b2clogin.com\")){\r\n function getCookie(cname:string) {\r\n var name = cname + \"=\";\r\n var ca = document.cookie.split(';');\r\n for(var i=0; i -1 )|| backnum == \"\"){\r\n noop;\r\n } else {\r\n const here = document.URL;\r\n const last = getCookie(\"lastURL\");\r\n count = parseInt(backnum);\r\n if (last == here || last == \"\"){\r\n setCookie(\"lastURL\", here);\r\n } else {\r\n count++;\r\n }\r\n }\r\n setCookie(\"backnum\",count);\r\n let el = document.querySelector('.change-country-link a');\r\n if (el){\r\n el.href = \"javascript:history.go(-\" + count +\")\";\r\n }\r\n }\r\n }\r\n }, []);\r\n\r\n\r\n \r\n\r\n\r\n return (\r\n \r\n { categories.map((category: ReactNode, index: number) => {\r\n return (\r\n \r\n {category}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nexport default FooterCategoryView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IBuyboxAddToCartViewProps,\n IBuyboxAddToOrderTemplateViewProps,\n IBuyboxAddToWishlistViewProps,\n IBuyboxCallbacks,\n IBuyboxData,\n IBuyboxFindInStoreViewProps,\n IBuyboxKeyInPriceViewProps,\n IBuyboxProductConfigureDropdownViewProps,\n IBuyboxProductConfigureViewProps,\n IBuyboxProductQuantityViewProps,\n IBuyboxProps,\n IBuyboxShopSimilarLookViewProps,\n IBuyboxState,\n IBuyboxViewProps\n} from '@msdyn365-commerce-modules/buybox';\nimport { IncrementalQuantity, ITelemetryContent, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBuyboxProps as IBuyboxExtentionProps,\n IBuyboxResources as IBuyboxExtentionResources\n} from '../definition-extensions/buybox.ext.props.autogenerated';\n\nconst BuyboxView: React.FC> = props => {\n const {\n ModuleProps,\n MediaGalleryContainerProps,\n ProductInfoContainerProps,\n addToCart,\n addToOrderTemplate,\n addToWishlist,\n telemetryContent,\n configure,\n description,\n findInStore,\n quantity,\n price,\n title,\n rating,\n callbacks,\n state,\n resources,\n inventoryLabel,\n shopSimilarLook,\n keyInPrice,\n quantityLimitsMessages,\n min,\n max,\n applyDefaultOrderSettings,\n shopSimilarDescription,\n unitOfMeasure\n } = props;\n\n return (\n \n {props.mediaGallery}\n \n {title}\n {price}\n {unitOfMeasure}\n {props.bulkPurchaseLink}\n {description}\n {_renderTextBlock(props.slots.textBlocks)}\n {rating}\n {configure && _renderConfigure(configure)}\n {keyInPrice && _renderKeyInPrice(keyInPrice)}\n {quantity &&\n _renderQuantity(\n quantity,\n callbacks,\n props,\n state,\n resources,\n quantityLimitsMessages,\n min,\n max,\n applyDefaultOrderSettings,\n telemetryContent\n )}\n {inventoryLabel}\n {_renderCartAndActions(addToCart, addToOrderTemplate, addToWishlist)}\n {findInStore && _renderFindInStore(findInStore)}\n {_renderSocialShare(props.slots && props.slots.socialShare)}\n {shopSimilarLook && _renderShopSimilarItem(shopSimilarLook)}\n {shopSimilarDescription && _renderShopSimilarItem(shopSimilarDescription)}\n \n \n );\n};\n\nconst _renderTextBlock = (textBlocks: React.ReactNode[]): JSX.Element | undefined => {\n if (!textBlocks || textBlocks.length === 0) {\n return undefined;\n }\n\n return <>{textBlocks[0]};\n};\n\nconst _renderSocialShare = (socialShare: React.ReactNode[]): JSX.Element | undefined => {\n if (!socialShare || socialShare.length === 0) {\n return undefined;\n }\n\n return <>{socialShare[0]};\n};\n\nconst _renderCartAndActions = (\n addToCart?: IBuyboxAddToCartViewProps,\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps,\n addToWishlist?: IBuyboxAddToWishlistViewProps\n): JSX.Element | undefined => {\n if (!addToCart && !addToWishlist) {\n return undefined;\n }\n\n return (\n
\n {addToCart && addToCart.errorBlock}\n {addToOrderTemplate && addToOrderTemplate.errorBlock}\n {addToWishlist && addToWishlist.errorBlock}\n
\n {addToCart && addToCart.button}\n {addToOrderTemplate && addToOrderTemplate.button}\n {addToWishlist && addToWishlist.button}\n
\n
\n );\n};\n\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\n const { ContainerProps, dropdowns } = configure;\n\n return {dropdowns.map(_renderConfigureDropdown)};\n};\n\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\n\n return (\n \n \n {heading}\n {errors}\n \n {select}\n \n );\n};\n\nconst _renderFindInStore = (findInStore: IBuyboxFindInStoreViewProps): JSX.Element => {\n const { ContainerProps, storeSelector, heading, description, errors, button, modal, productPickupOptionList } = findInStore;\n\n return (\n \n {storeSelector}\n {heading}\n {productPickupOptionList}\n {description}\n {errors}\n {button}\n {modal}\n \n );\n};\n\n/**\n * On Change function.\n * @param callbacks -Callbacks.\n * @returns Update quantity.\n */\nconst onChangeHandler = (callbacks: IBuyboxCallbacks) => (newValue: number): boolean => {\n if (callbacks.updateQuantity) {\n return callbacks.updateQuantity(newValue);\n }\n return true;\n};\n\nconst _renderQuantity = (\n quantityComponent: IBuyboxProductQuantityViewProps,\n callbacks: IBuyboxCallbacks,\n props: IBuyboxProps,\n state: IBuyboxState,\n extentionResources: IBuyboxExtentionResources,\n quantityLimitsMessages: React.ReactNode,\n min: number | undefined,\n max: number | undefined,\n applyDefaultOrderSettings?: boolean,\n telemetryContent?: ITelemetryContent\n): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors } = quantityComponent;\n\n const { resources } = props;\n\n const { quantity } = state;\n\n return (\n \n \n {heading}\n {errors}\n \n\n \n {quantityLimitsMessages}\n \n );\n};\n\nconst _renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\n\n return (\n \n {heading}\n {input}\n \n );\n};\n\nconst _renderShopSimilarItem = (shopSimilarItem: IBuyboxShopSimilarLookViewProps): JSX.Element => {\n const { ContainerProps, errors, input } = shopSimilarItem;\n\n return (\n \n {errors}\n {input}\n \n );\n};\n\nexport default BuyboxView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISitePickerViewProps } from './site-picker';\n\nexport default (props: ISitePickerViewProps) => {\n return <>{_renderSitePicker(props)};\n};\n\nconst _renderDesktopView = (props: ISitePickerViewProps) => {\n const { SitePickerMenu, SitePickerMenuSpan } = props;\n return (\n <>\n \n {props.config.heading?.text}\n \n \n {props.siteOptionsState ? _renderSiteOptionsList(props) : null}\n \n );\n};\n\nconst _renderSiteOptionsList = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMenuList, SitePickerMenuListItem, SitePickerMenuListItemArray } = props;\n const options = SitePickerMenuListItemArray!.map((item, index) => {\n return (\n \n {item}\n \n );\n });\n return (\n \n {options}\n \n );\n};\n\nconst _renderMobileView = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMobileContainer } = props;\n return (\n \n
\n {props.SitePickerMenuListItemArray?.map((item, index) => {\n return
{item}
;\n })}\n
\n
\n );\n};\n\nconst _renderSitePicker = (props: ISitePickerViewProps): React.ReactNode => {\n const { isMobileView, SitePicker } = props;\n return {isMobileView ? _renderMobileView(props) : _renderDesktopView(props)};\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IBuyboxAddToCartViewProps, IBuyboxAddToWishlistViewProps, IBuyboxKeyInPriceViewProps, IBuyboxProductConfigureDropdownViewProps, IBuyboxProductConfigureViewProps, IBuyboxProductQuantityViewProps } from '@msdyn365-commerce-modules/buybox/src/modules/quickview/../../common';\r\nimport { IQuickviewViewProps } from '@msdyn365-commerce-modules/buybox/src/modules/quickview/./quickview';\r\n\r\nconst _renderAddToCart = (addToCart: IBuyboxAddToCartViewProps): JSX.Element => {\r\n const { ContainerProps, errorBlock, button } = addToCart;\r\n\r\n return (\r\n \r\n {errorBlock}\r\n {button}\r\n \r\n );\r\n};\r\n\r\nconst _renderAddToWishlist = (addToWishlist: IBuyboxAddToWishlistViewProps): JSX.Element => {\r\n const { ContainerProps, errorBlock, button } = addToWishlist;\r\n\r\n return (\r\n \r\n {errorBlock}\r\n {button}\r\n \r\n );\r\n};\r\n\r\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\r\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n {errors}\r\n \r\n {select}\r\n \r\n );\r\n};\r\n\r\nconst _renderQuickViewPopup = (props: IQuickviewViewProps): JSX.Element => {\r\n const { ModalContainer, ModalHeaderContainer, ModalFooterContainer, ModalHeaderContent, ModalBodyContainer, addToCart,\r\n cartContainerProps } = props;\r\n\r\n return (\r\n \r\n \r\n {ModalHeaderContent}\r\n \r\n \r\n {_renderBodyContent(props)}\r\n \r\n \r\n \r\n {addToCart && _renderAddToCart(addToCart)}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderQuantity = (quantity: IBuyboxProductQuantityViewProps, quantityLimitsMessages: React.ReactNode): JSX.Element => {\r\n const { ContainerProps, LabelContainerProps, heading, input, errors } = quantity;\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n {errors}\r\n \r\n {input}\r\n {quantityLimitsMessages}\r\n \r\n );\r\n};\r\n\r\nconst _renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\r\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n \r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\r\n const { ContainerProps, dropdowns } = configure;\r\n\r\n return (\r\n \r\n {dropdowns.map(_renderConfigureDropdown)}\r\n \r\n );\r\n};\r\n\r\nconst _renderBodyContent = (props: IQuickviewViewProps): JSX.Element => {\r\n const { title, price, rating, keyInPrice, quantity, configure, inventoryLabel, quantityLimitsMessages, seeDetailsbutton, loading,\r\n ProductInfoContainerProps, MediaGalleryContainerProps, CarouselProps, unitOfMeasure,addToWishlist } = props;\r\n if (loading) {\r\n return (\r\n <>\r\n {loading}\r\n \r\n );\r\n }\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n {title}\r\n \r\n {addToWishlist && _renderAddToWishlist(addToWishlist)}\r\n
\r\n {price}\r\n {unitOfMeasure}\r\n {rating}\r\n
\r\n {seeDetailsbutton}\r\n {configure && _renderConfigure(configure)}\r\n {keyInPrice && _renderKeyInPrice(keyInPrice)}\r\n {quantity && _renderQuantity(quantity, quantityLimitsMessages)}\r\n {inventoryLabel}\r\n
\r\n \r\n );\r\n\r\n};\r\n\r\n/**\r\n * Functional component which renders quick view button and popup based by the given props file.\r\n * @param {IQuickviewViewProps} props - Configuration for the quick view component.\r\n * @returns {React.FC} - Functional component of the quick view.\r\n */\r\nexport const QuickViewFunctionalComponent: React.FC = (props: IQuickviewViewProps) => {\r\n const { quickView, quickViewButton, isModalOpen, isMobileDevice } = props;\r\n return (\r\n \r\n {!isMobileDevice && quickViewButton}\r\n {isModalOpen && _renderQuickViewPopup(props)}\r\n \r\n );\r\n};\r\n\r\nexport default QuickViewFunctionalComponent;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport 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 {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionMosaicContainer,\n interactiveFeatureCollectionMosaicImage,\n interactiveFeatureCollectionMosaicDetails\n } = 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 =\n 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 {image}\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 {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionCarouselContainer,\n interactiveFeatureCollectionCarouselImage,\n interactiveFeatureCollectionCarouselContent\n } = thisProps;\n return (\n \n {image}\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 <>{renderMosaic(props, indexItem, itemCounter)};\n }\n return {renderCarousel(props)};\n};\n\nexport default FeatureItemViewComponent;\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// @ts-ignore\r\nimport { Button, getTelemetryAttributes, Module, Node } from \"@msdyn365-commerce-modules/utilities\";\r\nimport * as React from 'react';\r\n\r\nimport {\r\n IAccountPreference, IAccountPreferences, IAccountProfileItem, IAccountProfileViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/account-profile/./account-profile';\r\nimport classnames from \"classnames\";\r\nimport { IAccountProfileProps } from \"../definition-extensions/account-profile.ext.props.autogenerated\";\r\n// @ts-ignore\r\nimport { GetMailchimpSubscriptionStatusInput, IGetMailchimpSubscriptionStatusData } from \"../../../actions/get-mailchimp-subscription-status.action\";\r\n// @ts-ignore\r\nimport { getMailChimpSubscriptionStatusAsync, changeMailChimpSubscriptionStatusAsync, createChangeMailChimpSubscriptionStatusInput } from \"../../../actions/DataActionExtension.g\";\r\n// @ts-ignore\r\nimport { toInteger } from \"lodash\";\r\nimport { MouseEventHandler } from \"react\";\r\n// from account-profile.ext.data.tsx file, which is now deleted\r\nimport { AsyncResult } from \"@msdyn365-commerce/retail-proxy\";\r\n\r\ninterface IMailchimpSignupPreferences {\r\n heading: string;\r\n description: string;\r\n yesText: string;\r\n noText: string;\r\n state: IMailchimpState;\r\n handler: MouseEventHandler;\r\n}\r\n\r\ninterface IMailchimpState {\r\n isSubscribed: boolean;\r\n}\r\n\r\n// from account-profile.ext.data.tsx file, now deleted\r\nexport interface IAccountProfileData {\r\n mailchimpSubscriptionStatus: AsyncResult;\r\n}\r\n\r\nconst AccountPreferencesSection: React.FC = ({\r\n accountPreferences,\r\n heading,\r\n personalization,\r\n extraPreferences\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n \r\n {\r\n extraPreferences && extraPreferences.map((preferenceSecton, index) => {\r\n return ;\r\n })\r\n }\r\n \r\n );\r\n};\r\n\r\nconst AccountPreferenceSection: React.FC = ({\r\n accountPreference,\r\n heading,\r\n description,\r\n buttonWrapper,\r\n buttonYesText,\r\n button,\r\n buttonNoText\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {description}\r\n \r\n {buttonNoText}\r\n {button}\r\n {buttonYesText}\r\n \r\n \r\n );\r\n};\r\n\r\nconst AccountProfileSection: React.FC = ({\r\n AccountProfileItem,\r\n heading,\r\n links,\r\n description\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {description}\r\n {links}\r\n \r\n );\r\n};\r\n\r\n\r\nconst MailchimpSignupSection: React.FC> = ({\r\n noText,\r\n description,\r\n heading,\r\n yesText,\r\n state,\r\n handler\r\n}) => {\r\n\r\n const classText = state.isSubscribed ? 'enable' : 'disable';\r\n const classNames = classnames('ms-account-profile__preference', `ms-account-profile__preference-web-tracking`, { 'ms-account-profile__personalization-updating': true })\r\n const buttonWrapper = {\r\n className: classnames('ms-account-profile__toggle-wrapper', `ms-account-profile__toggle-${classText}`)\r\n }\r\n const button = ( )\r\n const buttonYesText = (\r\n \r\n {yesText}\r\n \r\n )\r\n const buttonNoText =\r\n \r\n {noText}\r\n \r\n\r\n const descriptionComponent =\r\n

\r\n {description}\r\n

\r\n\r\n return (\r\n <>\r\n

{heading}

\r\n \r\n {descriptionComponent}\r\n \r\n {buttonNoText}\r\n {button}\r\n {buttonYesText}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\n\r\nexport class AccountProfileView extends React.PureComponent, IMailchimpState> {\r\n constructor(props: IAccountProfileViewProps & IAccountProfileProps) {\r\n super(props);\r\n this.state = {\r\n isSubscribed : false\r\n };\r\n }\r\n\r\n async componentDidMount(): Promise {\r\n const { data : { mailchimpSubscriptionStatus }} = this.props;\r\n const status = await mailchimpSubscriptionStatus.result;\r\n\r\n this.setState({\r\n isSubscribed: status?.active || false\r\n })\r\n }\r\n\r\n handleMailChimpSubscriptionStatusClick = () => {\r\n changeMailChimpSubscriptionStatusAsync({callerContext: this.props.context.actionContext}, !this.state.isSubscribed).then(res => {\r\n if (res.Success) {\r\n this.setState({isSubscribed : !this.state.isSubscribed});\r\n }});\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { resources: {\r\n mailchimpHeading,\r\n mailchimpDescription,\r\n mailchimpYesText,\r\n mailchimpNoText\r\n } } = this.props;\r\n return (\r\n \r\n {this.props.accountProfileWrapper && (\r\n {this.props.heading}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {this.props.customerAttributesWrapper && (\r\n {this.props.customerAttributesSection}\r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n\r\n};\r\n\r\nexport default AccountProfileView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IInvoiceDetailsViewProps } from './invoice-details';\n\nexport const InvoiceDetailsView: React.FC = props => {\n const { header, products, paymentDetails, payInvoiceError } = props;\n\n return (\n \n {header}\n {products}\n {paymentDetails}\n {payInvoiceError}\n \n );\n};\n\nexport default InvoiceDetailsView;\n","/*--------------------------------------------------------------\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\n/* eslint-disable no-duplicate-imports */\r\nimport { AsyncResult } from '@msdyn365-commerce/core';\r\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\r\nimport { Collapse, Drawer, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { IHeaderViewProps } from '../../../modules/custom-header/custom-header';\r\n\r\nconst headerView: React.FC = props => {\r\n const {\r\n HeaderTag,\r\n HeaderContainer,\r\n HeaderTopBarContainer,\r\n Divider\r\n } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n {props.navIcon}\r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n {props.preferredStore}\r\n {_renderAccountBlock(props, false)}\r\n {props.wishListIconDesktop}\r\n \r\n {props.cartIcon}\r\n {_renderReactFragment(props.siteOptions)}\r\n \r\n {_renderCollapseMenu(props)}\r\n \r\n {_renderReactFragment(props.menuBar)}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderCollapseMenu(props: IHeaderViewProps): JSX.Element | null {\r\n const { Divider, MobileMenuLinksContainer, mobileMenuCollapsed } = props;\r\n return (\r\n \r\n \r\n {_renderReactFragment(props.search)}\r\n {_renderMobileAccountBlock(props, true)}\r\n { props.wishListIconMobile }\r\n {props.siteOptions}\r\n \r\n \r\n {_renderReactFragment(props.menuBar)}\r\n \r\n );\r\n}\r\n\r\nconst renderCustomerName = (accountInformation: AsyncResult): React.ReactChild => {\r\n const customer = accountInformation && accountInformation.result;\r\n return (\r\n <>\r\n {customer ? customer.FirstName || customer.Name : ''}\r\n \r\n );\r\n};\r\n\r\nfunction _renderMobileAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n signOutLink,\r\n signInLink,\r\n data,\r\n accountLinks } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n const accountClassName = classnames('ms-header__drawer', AccountInfoDropdownParentContainer.className, renderForMobile ? 'account-mobile' : 'account-desktop');\r\n\r\n if (accountLinks) {\r\n return (\r\n \r\n
\r\n { accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false }\r\n {signOutLink}\r\n
\r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nfunction _renderAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n const accountClassName = classnames(AccountInfoDropdownParentContainer.className, renderForMobile ? 'account-mobile' : 'account-desktop');\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n { accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false }\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n <>\r\n {items && items.length > 0 ? items.map((slot: React.ReactNode, index: number) => {\r\n return (\r\n {slot}\r\n );\r\n }) : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IImageListViewProps } from './image-list';\n\n/**\n * Render the thumbnail item images.\n * @param props - The image list view props.\n * @returns Return HTML having IImageListViewProps props with image List.\n */\nexport const imageListView = (props: IImageListViewProps): JSX.Element => {\n const { imageList, imageListContainer, imageListHeading, imageListItem, imageListItems, imageListItemAnchorTag } = props;\n return (\n \n {imageListHeading}\n \n {imageListItems?.map(item => {\n let indexKey: string;\n\n if (item.image) {\n const image = (item.image as unknown) as Msdyn365.Image;\n indexKey = image.props.src as string;\n } else {\n const text = (item.text as unknown) as Msdyn365.RichTextComponent;\n indexKey = text.props.text as string;\n }\n return (\n \n {item.image && (\n \n {item.image}\n \n )}\n {item.text}\n \n );\n })}\n
\n \n );\n};\n\nexport default imageListView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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","/*--------------------------------------------------------------\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\n/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ICountryPickerViewProps } from './country-picker-all';\r\n\r\n/**\r\n * Functional component which renders country picker module.\r\n * @param props - Configuration for the country picker component.\r\n * @returns React.FC - Functional component of the country picker module.\r\n */\r\nexport const countryPickerView: React.FC = (props: ICountryPickerViewProps) => {\r\n const {\r\n isModalOpen,\r\n modalContainer,\r\n modalHeaderContainer,\r\n modalBodyContainer,\r\n heading,\r\n modalFooterContainer,\r\n subheading,\r\n link,\r\n countryList,\r\n resources\r\n } = props;\r\n const preferredSite = props.context.request.cookies.get('_msdyn365___site_').value as string;\r\n\r\n function stripLocale(urlExt: string): string {\r\n const stripRegex = /^\\/(eu-en|en|fr-ch|fr|eu)\\/?/gi;\r\n const newUrlExt = urlExt.replace(stripRegex, '');\r\n return newUrlExt;\r\n }\r\n\r\n function prefhref(preferredSite: string, urlExt: string): string {\r\n return preferredSite.charAt(preferredSite.length - 1) === '/' || urlExt.charAt(0) === '/'\r\n ? `${preferredSite}${urlExt}`\r\n : `${preferredSite}/${urlExt}`;\r\n }\r\n const urlExt = stripLocale(props.context.request.url.requestUrl.pathname);\r\n\r\n if (preferredSite && countryList && isModalOpen) {\r\n const preferredSiteName = props.context.request.cookies.get('_msdyn365___sitename_').value as string;\r\n const currentLocaleName = function() {\r\n const currentLocale = props.context.request.url.requestUrl.pathname;\r\n\r\n if (currentLocale.indexOf('/eu-en') === 0) {\r\n return 'European Union (English)';\r\n } else if (currentLocale.indexOf('/en') === 0) {\r\n return 'Switzerland (English)';\r\n } else if (currentLocale.indexOf('/fr-ch') === 0) {\r\n return 'Suisse (Français)';\r\n } else if (currentLocale.indexOf('/fr') === 0) {\r\n return 'Union Européenne (Français)';\r\n } else if (currentLocale.indexOf('/eu') === 0) {\r\n return 'Europäische Union (Deutsch)';\r\n } else {\r\n return 'Schweiz (Deutsch)';\r\n }\r\n };\r\n return (\r\n \r\n \r\n
\r\n

Welcome Back!

\r\n
\r\n

\r\n {resources.geolocationOopsText}\r\n {` ${currentLocaleName()}`}.\r\n

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

\r\n {resources.geolocationReturnText}\r\n {preferredSiteName}?\r\n

\r\n
\r\n
\r\n —{resources.geolocationOrText}—\r\n \r\n

{resources.geolocationPickNewText}

\r\n
\r\n \r\n {countryList.map(country => (\r\n
\r\n {country?.elements}\r\n
\r\n ))}\r\n
\r\n\r\n {link}\r\n
\r\n );\r\n }\r\n\r\n return isModalOpen && countryList ? (\r\n \r\n \r\n {heading}\r\n
{resources.geolocationSubText}
\r\n {subheading}\r\n
\r\n \r\n {countryList.map(country => (\r\n
\r\n {country?.elements}\r\n
\r\n ))}\r\n
\r\n\r\n {link}\r\n
\r\n ) : null;\r\n};\r\n\r\nexport default countryPickerView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport React, { useState } from 'react';\n\nimport { IPayableInvoice } from '../helpers/invoice-data';\nimport { payInvoices } from '../helpers/pay-invoices';\nimport { IInvoiceErrorState } from '../invoices-list';\n\nexport interface IPayInvoiceData {\n invoice: IPayableInvoice;\n}\n\nexport interface IPayInvoiceResources {\n payInvoiceButtonText: string;\n payInvoiceButtonAriaLabel: string;\n}\n\nexport interface IPayInvoiceProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n reference?: React.RefObject;\n resources: IPayInvoiceResources;\n disabled?: boolean;\n\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n}\n\ninterface IPayInvoiceComponent extends IComponent {}\n\nconst onClick = async (\n _event: React.MouseEvent,\n props: IPayInvoiceProps,\n setDisabled: (disabled: boolean) => void\n): Promise => {\n setDisabled(true);\n\n const propagateError = (errorState: IInvoiceErrorState): void => {\n if (props.onError) {\n props.onError(errorState, props.reference);\n }\n setDisabled(false);\n };\n\n await payInvoices([props.data.invoice], props.context.actionContext, propagateError);\n};\n\nconst PayInvoiceComponentActions = {\n onClick\n};\n\n/**\n * On click handler function.\n * @param props -Invoice props.\n * @param setDisabled -Set disabled.\n * @returns Pay invoice component action.\n */\nconst onClickHandler = (props: IPayInvoiceProps, setDisabled: React.Dispatch>) => async (\n event: React.MouseEvent\n) => {\n await PayInvoiceComponentActions.onClick(event, props, setDisabled);\n};\n\nconst PayInvoice: React.FC = (props: IPayInvoiceProps): JSX.Element => {\n const [disabled, setDisabled] = useState(false);\n\n return (\n \n {props.resources.payInvoiceButtonText}\n \n );\n};\n\n// @ts-expect-error\nexport const PayInvoiceComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'PayInvoiceComponent',\n { component: PayInvoice, ...PayInvoiceComponentActions }\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountInvoiceTileDescription {\n description: string;\n}\n\nexport const AccountInvoiceTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-invoice-tile.props.autogenerated';\n\nexport interface IAccountInvoiceTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountInvoiceTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-invoice-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountInvoiceTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountInvoiceTileData } from './account-invoice-tile.data';\nimport { IAccountInvoiceTileProps } from './account-invoice-tile.props.autogenerated';\nimport { AccountInvoiceTileDescription } from './components';\nimport LinksComponent from './components/account-invoice-tile-links';\n\nexport interface IAccountInvoiceTileViewProps extends IAccountInvoiceTileProps {\n AccountInvoiceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountInvoiceTile component.\n * @extends {React.PureComponent>}\n */\nclass AccountInvoiceTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountInvoiceTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const {\n config,\n data,\n resources,\n context: {\n cultureFormatter: {\n formatCurrency,\n\n // @ts-expect-error\n currencyCode\n }\n }\n } = this.props;\n const { className, heading, links } = config;\n const { accountInvoiceTileDescription } = resources;\n\n const openinvoiceAmount = data.customerBalance.result?.OpenInvoiceBalance || 0;\n const invoiceTotalAmount: string | undefined = formatCurrency(openinvoiceAmount.toFixed(2), currencyCode);\n\n const description = invoiceTotalAmount && format(accountInvoiceTileDescription, invoiceTotalAmount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountInvoiceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-invoice-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: description && \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountInvoiceTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILink {\n className?: string;\n text?: string;\n href?: string;\n ariaLabel?: string;\n index: string;\n noclick?: boolean;\n telemetryContent: ITelemetryContent;\n}\n\nexport const Link: React.FC = ({ text, className, href, ariaLabel, index, noclick, telemetryContent }) => {\n const payLoad = getPayloadObject('click', telemetryContent, '', '');\n\n const linkText = text !== undefined ? text : '';\n payLoad.contentAction.etext = linkText;\n\n // Construct telemetry attribute to render\n const attribute = getTelemetryAttributes(telemetryContent, payLoad);\n\n return (\n \n {linkText}\n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface ISeparator {\n separator: string;\n}\n\nexport const Separator: React.FC = ({ separator }) => (\n \n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport { ICategoryUrl } from '@msdyn365-commerce/core-internal/dist/types/interfaces/ICategoryPathInterfaces';\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbData } from './breadcrumb.data';\nimport { IBreadcrumbProps, ILinksData } from './breadcrumb.props.autogenerated';\nimport { Link } from './components/link';\nimport { Separator } from './components/separator';\n\nexport interface IBreadcrumbViewProps extends IBreadcrumbProps {\n root?: React.ReactNode;\n links?: React.ReactNode[];\n backButton?: React.ReactNode;\n separator?: React.ReactNode;\n BreadcrumbContainer: IModuleProps;\n BreadcrumbList: INodeProps;\n BreadcrumbListItem: INodeProps;\n}\n\n/**\n *\n * Breadcrumb component.\n * @extends {React.PureComponent>}\n */\nclass Breadcrumb extends React.PureComponent> {\n private readonly _pageType: string | undefined = this.props.context.request.urlTokens.pageType;\n\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public render(): JSX.Element | null {\n const { className } = this.props.config;\n let rootLink = null;\n let breadcrumbLinks = null;\n let backButtonComponent = null;\n rootLink = this._getRootLink();\n const itemPosition = rootLink ? 1 : 0;\n if (this._pageType === 'Category') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n breadcrumbLinks = this._getCategoryHierarchy(itemPosition);\n }\n } else if (this._pageType === 'Product') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n const breaCrumbType = this.props.context.app.config.breadcrumbType;\n if (breaCrumbType === 'category') {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'categoryAndBack') {\n backButtonComponent = this._getPDPBackButton();\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'back') {\n backButtonComponent = this._getPDPBackButton();\n if (backButtonComponent === null) {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n }\n }\n } else {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n }\n const linkSeparator = ;\n\n const breadcrumbViewProps = {\n ...this.props,\n BreadcrumbContainer: {\n moduleProps: this.props,\n className: classnames('ms-breadcrumb', className),\n tag: 'nav',\n role: 'navigation'\n },\n BreadcrumbList: {\n tag: 'ol' as NodeTag,\n className: 'ms-breadcrumb_list'\n },\n BreadcrumbListItem: {\n tag: 'li',\n className: 'ms-breadcrumb_item'\n },\n root: rootLink,\n links: breadcrumbLinks,\n backButton: backButtonComponent,\n separator: linkSeparator\n };\n return this.props.renderView(breadcrumbViewProps) as React.ReactElement;\n }\n\n private readonly _getRootLink = (): JSX.Element | null => {\n const { root } = this.props.config;\n if (!root || !root.linkUrl || !root.linkUrl.destinationUrl) {\n this.props.context.telemetry.error('BreadCrumb link url content is empty, link wont render');\n return null;\n }\n return (\n \n );\n };\n\n private readonly _getCustomBreadcrumbLinks = (itemPosition: number): JSX.Element[] | null => {\n const { links } = this.props.config;\n\n if (!links || links.length === 0) {\n this.props.context.telemetry.error('BreadCrumb links content is empty, links wont render');\n return null;\n }\n const defaultValueToSubtract = 1;\n return links.map((value: ILinksData, index: number) => {\n itemPosition++;\n const keyIndex = index;\n return index !== links.length - defaultValueToSubtract ? (\n \n ) : (\n
\n {value.linkText}\n
\n );\n });\n };\n\n private readonly _getCategoryHierarchy = (itemPosition: number): JSX.Element[] | null => {\n const { data } = this.props;\n const categoryHierarchy = data.categoryHierarchy.result;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category Hierarchy content is empty, module wont render');\n return null;\n }\n return categoryHierarchy.map((value: CategoryHierarchy, index: number) => {\n itemPosition++;\n\n const friendlyName = this._getFriendlyName(this.props.context.request.locale, value.NameTranslations);\n\n return (\n \n );\n });\n };\n\n /**\n * The function to get translation name for the locale.\n * @param locale - The locale information.\n * @param nameTranslations - The name translations names.\n * @returns - The translation name for the locale.\n */\n private readonly _getFriendlyName = (locale: string, nameTranslations?: TextValueTranslation[]): string | undefined => {\n let nameTranslation: TextValueTranslation | undefined;\n if (locale && nameTranslations && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\n }\n\n // If friendly name for current locale is null, should use default locale.\n if (nameTranslation === undefined && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations[0];\n }\n\n return nameTranslation?.Text;\n };\n\n private readonly _getPDPLinks = (itemPosition: number): JSX.Element[] | null => {\n const { data, config } = this.props;\n const categoryHierarchy = data.categoryPaths.result;\n const product = data.product.result;\n const url = this.props.context.request.url.requestUrl.href;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category path content is empty for the product');\n return null;\n }\n const links: JSX.Element[] = [];\n\n categoryHierarchy.map((value: ICategoryUrl, index: number) => {\n itemPosition++;\n links.push(\n \n );\n });\n if (product && !config.hideProductName) {\n itemPosition++;\n links.push(\n \n );\n }\n return links;\n };\n\n private readonly _goBack = (): void => {\n window.history.back();\n };\n\n private readonly _getPDPBackButton = (): JSX.Element | null => {\n const isBackAllowed =\n this.props.context && this.props.context.request && this.props.context.request.query && this.props.context.request.query.back;\n if (!isBackAllowed) {\n return null;\n }\n if (MsDyn365.isBrowser && (document.referrer === '' || window.history.length < 2)) {\n return null;\n }\n return (\n \n {this.props.resources.backToResultsText}\n \n );\n };\n}\n\nexport default Breadcrumb;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport {\n IReportReviewModalViewProps,\n IReviewCardViewProps,\n IReviewsListData,\n IReviewsListResources,\n IReviewsListState,\n IReviewsListViewProps\n} from '@msdyn365-commerce-modules/ratings-reviews';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IReviewsListProps } from '../definition-extensions/reviews-list.ext.props.autogenerated';\n\n/**\n * Build Review Card.\n * @param props - Review Card ViewProps.\n * @param resources - Resource Strings.\n * @param isUserReview - User review flag.\n * @returns JSX Element.\n */\nconst buildReviewCard = (props: IReviewCardViewProps, resources: IReviewsListResources, isUserReview: boolean) => {\n return (\n \n \n
\n {props.rating}\n {props.date}\n
\n {props.name}\n
\n \n \n {props.reviewTitle}\n {props.reviewText}\n \n \n {props.responseName}\n {props.responseDate}\n {props.responseText}\n \n \n {isUserReview ? undefined :

{resources.wasReviewHelpfulText}

}\n {props.like}\n {props.dislike}\n {props.edit}\n
\n
\n
\n );\n};\n\n/**\n * Render Product Image.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductImage = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const primaryImageSource = props.data.product.result?.PrimaryImageUrl;\n const imageUrl = generateImageUrl(primaryImageSource, props.context.request.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=111&h=111&m=6', w: 111, h: 111 },\n sm: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n md: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n lg: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n xl: { q: 'w=130&h=130&m=6', w: 130, h: 130 }\n },\n lazyload: true,\n cropFocalRegion: true\n };\n\n return (\n \n );\n};\n\n/**\n * Render Product Description.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductDescription = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const product = props.data.product.result;\n return (\n \n
{renderProductImage(props)}
\n
\n
{product?.Name}
\n
{product?.Name}
\n
{product?.ItemId}
\n
\n
\n );\n};\n\n/**\n * Build Review modal.\n * @param props - Review list ViewProps.\n * @returns JSX Element.\n */\nconst createReviewModal = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const { resources, moduleProps, reviewModal } = props;\n return (\n \n {reviewModal.modalHeader}\n \n \n \n {renderProductDescription(props)}\n \n
{resources.selectRatingLabel}
\n {reviewModal.rating}\n
\n
\n \n {resources.reviewTitleLabel}\n {reviewModal.titleInput}\n \n \n {resources.reviewTextLabel}\n {reviewModal.textInput}\n \n {reviewModal.privacyPolicyUrl}\n {reviewModal.error}\n
\n
\n \n {reviewModal.submitButton}\n {reviewModal.cancelButton}\n \n
\n );\n};\n\n/**\n * Build Review modal.\n * @param props - Review modal ViewProps.\n * @param state - Review List State.\n * @returns JSX Element.\n */\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\n return (\n \n {state.reported ? props.headerSubmitted : props.header}\n \n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\n \n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\n \n );\n};\n\n/**\n * ReviewsList view.\n * @param props - Ratings ReviewsList ViewProps.\n * @returns ReviewsList view module.\n */\nconst ReviewsListview: React.FC> = props => {\n const {\n filterByDropdown,\n heading,\n moduleProps,\n noReviewsMessage,\n noReviewsWithFilterMessage,\n pageControls,\n refineReviewsProps,\n reportReviewModal,\n reviewsListProps,\n reviewCards,\n sortByDropdown,\n state,\n userReview,\n resources\n } = props;\n\n if (!userReview && !ArrayExtensions.hasElements(reviewCards) && !state.isFilterApplied) {\n return {noReviewsMessage};\n }\n\n return (\n \n {heading}\n \n {sortByDropdown}\n {filterByDropdown}\n \n \n {userReview && buildReviewCard(userReview, resources, true)}\n {reviewCards.map(review => {\n return buildReviewCard(review, resources, false);\n })}\n \n {!ArrayExtensions.hasElements(reviewCards) && state.isFilterApplied && noReviewsWithFilterMessage}\n {pageControls}\n {createReviewModal(props)}\n {createReportModal(reportReviewModal, state)}\n \n );\n};\n\nexport default ReviewsListview;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 { accordion, accordionView, createAccordionStateInput, IAccordionExpandedState, interactionStyle };\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 { Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IVideoPlayerAdditionalContentViewProps } from '@msdyn365-commerce-modules/video-player/src/modules/video-player/./components/additional-content';\r\nimport { IVideoPlayerViewProps } from '@msdyn365-commerce-modules/video-player/src/modules/video-player/./video-player';\r\nimport {\r\n IVideoPlayerProps as IVideoPlayerViewExtensionProps\r\n } from '../definition-extensions/video-player.ext.props.autogenerated';\r\n\r\n/**\r\n * Render Additional Content.\r\n * @param additionalContent - Additional content view props.\r\n * @returns JSX Element.\r\n */\r\nconst renderAdditionalContent = (additionalContent: IVideoPlayerAdditionalContentViewProps) => {\r\n if (additionalContent.additionalContentItems) {\r\n return (\r\n \r\n <>\r\n {additionalContent.additionalContentItems.heading}\r\n \r\n {additionalContent.additionalContentItems.text}\r\n \r\n {additionalContent.additionalContentItems.links}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst VideoPlayerView: React.FC> = props => {\r\n const [yPosition, setYPosition] = React.useState(0);\r\n\r\n React.useEffect(() => {\r\n const onScroll = () => setYPosition(window.pageYOffset);\r\n window.removeEventListener('scroll', onScroll);\r\n window.addEventListener('scroll', onScroll, { passive: true });\r\n return () => window.removeEventListener('scroll', onScroll);\r\n });\r\n \r\n const scrollDownClickHandler = (id: string) => {\r\n const element = document.getElementById(id);\r\n const header = document.getElementsByTagName('header').item(0);\r\n const videoPlayerHeight = element ? element.clientHeight : 0;\r\n const headerHeight = header ? header.clientHeight : 0;\r\n return window.scrollTo(0, headerHeight+videoPlayerHeight) ;\r\n }\r\n return (\r\n \r\n {props.player}\r\n \r\n {props.title}\r\n {props.text}\r\n {props.additionalContent && renderAdditionalContent(props.additionalContent)}\r\n \r\n {props.links}\r\n \r\n \r\n \r\n {props.config.showScrollDownButton && yPosition <= 0 &&
scrollDownClickHandler(props.id)}>{props.resources.scrollDownButton}
}\r\n \r\n );\r\n};\r\n\r\nexport default VideoPlayerView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccordionItemViewProps } from './accordion-item';\n\nconst AccordionItemView: React.FC = props => {\n const { drawer, accordionSlots, AccordionItemContainer, AccordionItemContent } = props;\n return (\n \n \n \n {accordionSlots &&\n accordionSlots.accordionItemContent &&\n accordionSlots.accordionItemContent.length &&\n _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 {item};\n })\n : null}\n \n );\n};\nexport default AccordionItemView;\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\n/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IFooterViewProps } from './footer-region-switch';\r\n\r\n/**\r\n *\r\n * FooterItemView component.\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return {this._renderElement(this.props)};\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\r\n if (heading) {\r\n return {heading} ;\r\n } else if (Link && image) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n } else if (EditableLink) {\r\n return EditableLink;\r\n }\r\n return (\r\n <>\r\n {text}\r\n {image}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default FooterItemView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport React, { useState } from 'react';\n\nimport { InvoiceModel } from '../../helpers/invoice-data';\nimport { IInvoiceErrorState } from '../../invoices-list';\nimport { IInvoicesTableHeaderResources, InvoicesTableHeaderComponent } from './components/invoices-table-header-component';\nimport { IInvoicesTableRowResources, InvoicesTableRowComponent } from './components/invoices-table-row-component';\n\ninterface IInvoicesTableData {\n invoices: InvoiceModel[];\n customer: Customer;\n}\n\nexport interface IInvoicesTableResources extends IInvoicesTableHeaderResources, IInvoicesTableRowResources {}\n\nexport interface IInvoicesTableProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n invoiceButtonReferences?: React.RefObject[];\n payInvoiceButtonReferences?: React.RefObject[];\n resources: IInvoicesTableResources;\n\n onChange(): void;\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n onRequestInvoice(invoice: InvoiceModel, requestInvoiceButtonReference: React.RefObject): void;\n}\n\nexport interface IInvoicesTableComponent extends IComponent {}\n\ntype GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nconst getViewport = (context: ICoreContext): GridSize => {\n // Always render in mobile viewport on a mobile device\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (window?.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n\n return 'xs';\n};\n\nconst isMobileView = (context: ICoreContext) => {\n const viewport = getViewport(context);\n return viewport === 'xs' || viewport === 'sm';\n};\n\n/**\n * On select all function.\n * @param props -Invoice table props.\n * @returns On change.\n */\nconst onSelectAllHandler = (props: IInvoicesTableProps) => (isSelected: boolean) => {\n props.data.invoices.forEach(invoice => {\n invoice.isSelected = isSelected;\n });\n props.onChange();\n};\n\nconst InvoicesTable: React.FC = (props: IInvoicesTableProps): JSX.Element => {\n const [isMobile, setIsMobile] = useState(isMobileView(props.context));\n\n const updateViewport = () => {\n setIsMobile(isMobileView(props.context));\n };\n\n if (typeof window !== undefined && window.addEventListener) {\n window.addEventListener('resize', updateViewport);\n }\n const rowClassName = `${props.className}__row`;\n const headerClassName = `${props.className}__header`;\n\n return (\n \n invoice.isSelected)}\n isMobile={isMobile}\n isAdmin={props.data.customer.IsB2bAdmin || false}\n onSelectAll={onSelectAllHandler(props)}\n resources={props.resources}\n data={{}}\n />\n {props.data.invoices.map((invoice, index: number) => {\n return (\n \n );\n })}\n
\n );\n};\n\nexport const InvoicesTableComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoicesTableComponent\n>('InvoicesTableComponent', { component: InvoicesTable });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * 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 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(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\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 =\n accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded === undefined\n ? data && config.isExpandedOnInitialLoad\n : 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}\nexport default AccordionItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAadGenericViewProps } from './aad-generic';\n\nexport default (props: IAadGenericViewProps) => {\n const { aadGeneric, aadConainer, aadAPIConainer, heading } = props;\n\n return (\n \n \n {heading}\n {aadAPIConainer}\n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICatalogPickerViewProps } from './catalog-picker';\n\n/**\n * ICatalogPickerViewProps.\n * @param props - ICatalogPickerViewProps.\n * @returns - Render Catalog Picker.\n */\nexport const CatalogPickerViewFunctionComponent: React.FC = props => {\n const { catalogPicker } = props;\n return (\n \n {props.heading}\n {props.paragraph}\n {props.catalogs}\n \n );\n};\n\nexport default CatalogPickerViewFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { 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 {heading}\n {props.accordionButtons && {props.accordionButtons}}\n \n {accordionItems}\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 { Modal, ModalBody, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAccountLoyaltyViewProps } from '@msdyn365-commerce-modules/account-management/src/modules/account-loyalty/./account-loyalty';\r\nimport {IAccountLoyaltyProps, IAccountLoyaltyResources} from '../definition-extensions/account-loyalty.ext.props.autogenerated';\r\n\r\nconst AccountLoyaltyView: React.FC> = props => {\r\n\r\n const { AccountLoyalty, Info, Points, Button, heading, infoLabel, cardNumber, /*joinDate,*/ pointsLabel, points, homeButton, pointsModal, resources } = props;\r\n const { ModalBodyTop, ModalBodyHeaders } = pointsModal;\r\n return (\r\n \r\n {heading}\r\n \r\n {infoLabel}\r\n {cardNumber}\r\n {/*joinDate*/}\r\n \r\n \r\n {pointsLabel}\r\n {points}\r\n\r\n \r\n

\r\n \r\n \r\n {homeButton}\r\n \r\n\r\n {!pointsModal.isOpen &&\r\n ||\r\n \r\n\r\n \r\n {pointsModal.modalHeader}\r\n \r\n \r\n \r\n {pointsModal.pointsDescription}\r\n {pointsModal.totalPoints}\r\n \r\n \r\n {pointsModal.date}\r\n {pointsModal.balanceLabel}\r\n \r\n {pointsModal.rewardPointsActivity && pointsModal.rewardPointsActivity.map((activity, index) => {\r\n const { Activity, activityType, activityDate, activityPoints } = activity;\r\n return (\r\n \r\n {activityType}\r\n {activityDate}\r\n {activityPoints}\r\n \r\n );\r\n })}\r\n \r\n }\r\n \r\n );\r\n};\r\n\r\nexport default AccountLoyaltyView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IInvoicesListViewProps } from './invoices-list';\n\nexport const InvoiceListView: React.FC = props => {\n const { header, filter, content, invoiceRequestModal, pagination } = props;\n\n return (\n \n {header}\n {invoiceRequestModal}\n {filter}\n {content}\n {pagination}\n \n );\n};\n\nexport default InvoiceListView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, ITelemetry, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport React, { useState } from 'react';\n\nimport { InvoiceModel } from '../helpers/invoice-data';\nimport { payInvoices } from '../helpers/pay-invoices';\nimport { IInvoiceErrorState } from '../invoices-list';\n\ninterface IMakePaymentData {\n invoices: InvoiceModel[];\n}\n\nexport interface IMakePaymentResources {\n makePaymentButtonText: string;\n makePaymentButtonAriaLabel: string;\n}\n\nexport interface IMakePaymentProps extends IComponentProps {\n context: ICoreContext;\n itemKey?: string;\n telemetry: ITelemetry;\n moduleId: string;\n moduleTypeName: string;\n telemetryContent?: ITelemetryContent;\n navigationUrl?: string;\n buttonReferences?: React.RefObject;\n resources: IMakePaymentResources;\n disabled?: boolean;\n\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n}\n\nexport interface IMakePaymentComponent extends IComponent {}\n\nconst onClick = async (\n _event: React.MouseEvent,\n props: IMakePaymentProps,\n setDisabled: (disabled: boolean) => void\n): Promise => {\n setDisabled(true);\n\n const propagateError = (errorState: IInvoiceErrorState): void => {\n if (props.onError) {\n props.onError(errorState, props.buttonReferences);\n }\n setDisabled(false);\n };\n\n await payInvoices(props.data.invoices, props.context.actionContext, propagateError);\n};\n\nconst MakePaymentComponentActions = {\n onClick\n};\n\n/**\n * On Click function.\n * @param input -Make payment props.\n * @param setDisabled -Set Disabled.\n * @returns Make payment component on click.\n */\nconst onClickHandler = (input: IMakePaymentProps, setDisabled: React.Dispatch>) => async (\n event: React.MouseEvent\n) => {\n await MakePaymentComponentActions.onClick(event, input, setDisabled);\n};\n\nconst MakePayment: React.FC = (input: IMakePaymentProps): JSX.Element => {\n const {\n data: { invoices }\n } = input;\n const hasInvoices = ArrayExtensions.hasElements(invoices.filter(invoice => invoice.canBePaid));\n const [disabled, setDisabled] = useState(false);\n\n return (\n \n {input.resources.makePaymentButtonText}\n \n );\n};\n\n// @ts-expect-error\nexport const MakePaymentComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'MakePayment',\n { component: MakePayment }\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * 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 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 };\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.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Alert, Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nexport interface IInvoiceErrorProps extends IComponentProps {\n messageHeader?: string;\n errorMessage?: string;\n otherError?: string;\n showError: boolean;\n payInvoiceErrorModalOpen: boolean;\n\n errorDialogHeader: string;\n errorDialogBodyErrorTitle: string;\n errorDialogBodyErrorDescription: string;\n errorDialogFooterGoToCartButtonText: string;\n errorDialogFooterCancelButtonText: string;\n cartUrl: string;\n\n setPayInvoiceErrorModalClose(): void;\n}\n\nexport interface IInvoiceErrorComponent extends IComponent {}\n\nexport const InvoiceError: React.FC = ({\n messageHeader,\n errorMessage,\n otherError,\n showError,\n payInvoiceErrorModalOpen,\n errorDialogHeader,\n errorDialogBodyErrorTitle,\n errorDialogBodyErrorDescription,\n errorDialogFooterGoToCartButtonText,\n errorDialogFooterCancelButtonText,\n cartUrl,\n setPayInvoiceErrorModalClose\n}) => {\n const errorMessages: (string | undefined)[] = [];\n\n if (otherError) {\n errorMessages.push(otherError);\n } else {\n errorMessages.push(errorMessage);\n }\n\n const className = 'msc-pay-invoice-error-dialog';\n\n return (\n <>\n 0} color='danger' assertive aria-label={messageHeader}>\n \n {errorMessages.map((message, index) => {\n return (\n
\n {message}\n
\n );\n })}\n
\n \n \n {errorDialogHeader}\n \n \n
\n
{errorDialogBodyErrorTitle}
\n
{errorDialogBodyErrorDescription}
\n
\n
\n \n \n {errorDialogFooterGoToCartButtonText}\n \n \n {errorDialogFooterCancelButtonText}\n \n \n
\n \n );\n};\n\n// @ts-expect-error\nexport const InvoiceErrorComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'InvoiceError',\n { component: InvoiceError }\n);\n","/*!\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 { Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ICartIconViewProps } from '@msdyn365-commerce-modules/cart/src/modules/cart-icon/./cart-icon';\r\nimport { IFlyoutCartLineItemViewProps } from '@msdyn365-commerce-modules/cart/src/modules/cart-icon/./components/flyout-cart-line-items';\r\n//import { useEffect } from 'react';\r\nimport { ICartIconProps as ICartIconExtensionProps } from '../definition-extensions/cart-icon.ext.props.autogenerated';\r\n\r\nconst _renderCartlines = (cartLines: IFlyoutCartLineItemViewProps[] | undefined, props: ICartIconViewProps): JSX.Element[] | null => {\r\n if (!cartLines) {\r\n props.context.telemetry.error('Cartlines content is empty, module wont render');\r\n return null;\r\n }\r\n return cartLines.map((cartLine, index) => {\r\n return (\r\n \r\n {cartLine.cartline}\r\n {cartLine.storeLocation}\r\n {/* {cartLine.remove} */}\r\n {React.cloneElement(cartLine.remove as React.ReactElement, { 'data-article-number': cartLine.data?.product?.ItemId })}\r\n \r\n );\r\n });\r\n};\r\n\r\nconst CartIconView: React.FC> = props => {\r\n return (\r\n \r\n {props.cartIcon}\r\n {props.FlyoutContainer ? (\r\n \r\n {props.flyoutTitle}\r\n {props.checkoutBlockedDueToUnavailableFunds}\r\n {_renderCartlines(props.cartlines, props)}\r\n {props.totalPrice}\r\n {props.checkoutAsSignInUserButton}\r\n {/* {props.checkoutAsGuestButton} */}\r\n {props.goToCartButton}\r\n \r\n ) : (\r\n false\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CartIconView;\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport IAccordionItemData from \"@msdyn365-commerce-modules/accordion/src/modules/accordion-item/./accordion-item\"\r\nimport { IAccordionItemProps } from '../definition-extensions/accordion-item.ext.props.autogenerated';\r\nimport { IAccordionItemViewProps } from '@msdyn365-commerce-modules/accordion/src/modules/accordion-item/./accordion-item';\r\n\r\nconst AccordionItemView: React.FC & IAccordionItemViewProps> = props => {\r\n const { drawer, accordionSlots, AccordionItemContainer, AccordionItemContent } = props;\r\n return (\r\n \r\n \r\n \r\n {accordionSlots &&\r\n accordionSlots.accordionItemContent &&\r\n accordionSlots.accordionItemContent.length &&\r\n _renderAccordionItemContent(accordionSlots.accordionItemContent)}\r\n {accordionSlots &&\r\n accordionSlots.paymentSlot &&\r\n _renderAccordionItemContent(accordionSlots.paymentSlot)\r\n }\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderAccordionItemContent = (items: React.ReactNode[]): JSX.Element | null => {\r\n return (\r\n <>\r\n {items && items.length > 0\r\n ? items.map((item: React.ReactNode, index: number) => {\r\n return {item};\r\n })\r\n : null}\r\n \r\n );\r\n};\r\nexport default AccordionItemView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport 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.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport Msdyn365, {\n ContentEditableEvent,\n generateImageUrl,\n getCatalogId,\n getUrlSync,\n Image,\n RichTextComponent,\n Text\n} from '@msdyn365-commerce/core';\nimport { MediaLocation, ProductCatalog } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ICatalogPickerData } from './catalog-picker.data';\nimport { ICatalogPickerProps } from './catalog-picker.props.autogenerated';\n\n/**\n * ICatalogPickerViewProps.\n */\nexport interface ICatalogPickerViewProps extends ICatalogPickerProps {\n catalogPicker: IModuleProps;\n heading: React.ReactNode;\n paragraph: React.ReactNode;\n catalogs: ReactNode;\n}\n\n/**\n * CatalogPicker component.\n * @extends {React.PureComponent>}\n */\nexport class CatalogPicker extends React.PureComponent> {\n private static readonly _moduleClassName = 'ms-catalog-picker';\n\n public constructor(props: ICatalogPickerViewProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { heading, paragraph } = this.props.config;\n\n const catalogPickerHeading = heading && (\n \n );\n\n const isCatalogsAvailable: boolean = ArrayExtensions.hasElements(this.props.data.catalogs?.result);\n const catalogPickerParagraph = paragraph && (\n \n );\n const viewProps = {\n ...this.props,\n handleText: this.handleTextChange,\n catalogPicker: {\n moduleProps: this.props,\n className: CatalogPicker._moduleClassName\n },\n heading: catalogPickerHeading,\n paragraph: catalogPickerParagraph,\n catalogs: isCatalogsAvailable ? this._renderCatalogPicker() : ''\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: 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: ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n private _renderCatalogPickerButton(item: ProductCatalog): React.ReactNode {\n const catalogId = item.RecordId;\n const currentCatalogId = getCatalogId(this.props.context.request);\n if (currentCatalogId === catalogId) {\n return
{this.props.resources.currentCatalogText}
;\n }\n let linkToCatalog = '';\n if (Msdyn365.isBrowser) {\n const catalogUrl = getUrlSync('home', this.props.context.actionContext) ?? '';\n const fullUrl = new URL(catalogUrl, window.location.href);\n fullUrl.searchParams.set('catalogid', `${catalogId}`);\n linkToCatalog = fullUrl.href;\n }\n return (\n \n {this.props.resources.changeCatalogButtonText}\n \n );\n }\n\n private _renderCatalogPicker(): React.ReactNode {\n const catalogs = this.props.data.catalogs?.result;\n\n const isBrowser = Msdyn365.isBrowser;\n\n return (\n
\n {catalogs?.map(item => {\n const reactKey = `${JSON.stringify(item)}-${String(isBrowser)}`;\n const image: MediaLocation | undefined = ArrayExtensions.firstOrDefault(item.Images);\n return (\n \n

{item.Name}

\n
\n \n
\n {this._renderCatalogPickerButton(item)}\n
\n
\n
\n );\n })}\n
\n );\n }\n}\n\nexport default CatalogPicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport 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\n } = props;\n return (\n \n {title}\n {interactiveFeatureCollectionDesktopItems}\n \n \n {interactiveFeatureCollectionMobileItems &&\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","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync, IActionContext } from '@msdyn365-commerce/core';\nimport { getCartState } from '@msdyn365-commerce/global-state';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { IInvoiceErrorState } from '../invoices-list';\nimport { IPayableInvoice } from './invoice-data';\n\nexport type ICartActionFailureReason = 'EMPTYINPUT' | 'CARTACTIONFAILED';\nexport interface IAddInvoicesToCartFailureResult {\n failureReason: ICartActionFailureReason;\n}\n\nexport const payInvoices = async (\n invoices: IPayableInvoice[],\n actionContext: IActionContext,\n onError: (errorState: IInvoiceErrorState) => void\n) => {\n const invoicesToAdd: string[] = invoices.filter(invoice => invoice.canBePaid).map(invoice => invoice.id);\n\n if (!ArrayExtensions.hasElements(invoicesToAdd)) {\n onError({ errorMessage: '', errorReason: { failureReason: 'EMPTYINPUT' } });\n return;\n }\n\n const cartState = await getCartState(actionContext);\n const result = await cartState.addInvoicesToCart({ invoiceIds: invoicesToAdd });\n\n if (result.status !== 'SUCCESS') {\n onError({\n errorMessage: '',\n errorReason: { failureReason: 'CARTACTIONFAILED' },\n otherError: result.errorDetails?.LocalizedMessage,\n errorCode: result.errorDetails?.ErrorResourceId\n });\n return;\n }\n\n const cartUrl = getUrlSync('cart', actionContext);\n if (cartUrl) {\n window?.location.assign(cartUrl);\n }\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, IDateFormatOptions, isOboRequest, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { IInvoiceErrorState, IPayInvoiceResources, PayInvoiceComponent } from '@msdyn365-commerce-modules/invoice';\nimport React from 'react';\n\nimport { InvoiceDetailsModel } from '../helpers/invoice-data';\n\nexport interface IInvoiceDetailsHeaderData {\n invoiceDetails: InvoiceDetailsModel;\n}\n\nexport interface IInvoiceDetailsHeaderResources extends IPayInvoiceResources {\n invoiceOrderItem: string;\n invoiceOrderItems: string;\n invoiceIdLabel: string;\n invoicePlacedByLabel: string;\n invoiceAmountDueText: string;\n invoicePaymentDueDateText: string;\n}\n\nexport interface IInvoiceDetailsHeaderProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n resources: IInvoiceDetailsHeaderResources;\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n}\n\nexport interface IInvoiceDetailsHeaderComponent extends IComponent {}\n\nconst formatShortDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'numeric', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\nconst formatLongDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\nconst formatAmount = (context: ICoreContext, amount: number | undefined, currencyCode: string | undefined) => {\n if (amount === undefined) {\n return '';\n }\n return context.cultureFormatter.formatCurrency(amount, currencyCode);\n};\n\nconst InvoiceDetailsHeader: React.FC = (props: IInvoiceDetailsHeaderProps): JSX.Element => {\n const {\n className,\n data: { invoiceDetails },\n resources,\n onError\n } = props;\n\n const invoiceNumberText = resources.invoiceIdLabel.replace('{0}', invoiceDetails.id);\n\n const invoiceOrderItemsText =\n invoiceDetails.lines.length === 1\n ? resources.invoiceOrderItem\n : resources.invoiceOrderItems.replace('{0}', invoiceDetails.lines.length.toString());\n\n const invoiceInfoContainerClassName = `${className}__invoice-info-container`;\n const orderInfoContainerClassName = `${invoiceInfoContainerClassName}__order-info-container`;\n const orderInfoClassName = `${orderInfoContainerClassName}__order-info`;\n const orderMainInfoClassName = `${orderInfoClassName}__main-info`;\n const orderDetailsClassName = `${orderInfoClassName}__details`;\n `${className}__actions`;\n const actionsClassName = `${className}__actions`;\n const amountSummaryClassName = `${invoiceInfoContainerClassName}__amount-summary`;\n const orderDate = formatShortDate(props.context, invoiceDetails.invoiceDate);\n\n const dueDate = formatLongDate(props.context, invoiceDetails.dueDate);\n const dueDateText = resources.invoicePaymentDueDateText.replace('{0}', dueDate);\n const isOnBehalfOfRequest = isOboRequest(props.context.request);\n\n return (\n
\n
{invoiceNumberText}
\n
\n
\n
\n
\n
\n {resources.invoicePlacedByLabel}\n {invoiceDetails.customerName}\n
\n
\n
\n
{orderDate}
\n
{invoiceOrderItemsText}
\n
\n
\n
\n
\n
{resources.invoiceAmountDueText}
\n
\n {formatAmount(props.context, invoiceDetails.amountDue, invoiceDetails.currencyCode)}\n
\n
{dueDateText}
\n
\n
\n
\n \n
\n
\n );\n};\n\nexport const InvoiceDetailsHeaderComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoiceDetailsHeaderComponent\n>('InvoiceDetailsHeaderComponent', { component: InvoiceDetailsHeader });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { IInvoicePaymentDetails } from '../helpers/invoice-data';\n\nexport interface IInvoiceDetailsPaymentDetailsData {\n invoicePaymentDetails: IInvoicePaymentDetails;\n}\n\nexport interface IInvoiceDetailsPaymentDetailsResources {\n invoicePaymentDiscounts: string;\n invoicePaymentSubtotal: string;\n invoicePaymentCharges: string;\n invoicePaymentTax: string;\n invoicePaymentInvoiceTotal: string;\n}\n\nexport interface IInvoiceDetailsPaymentDetailsProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n resources: IInvoiceDetailsPaymentDetailsResources;\n}\n\nexport interface IInvoiceDetailsPaymentDetailsComponent extends IComponent {}\n\ninterface IInvoicePaymentLineProps {\n label: string;\n value: number;\n className: string;\n}\n\nconst InvoiceDetailsPaymentDetails: React.FC = (\n props: IInvoiceDetailsPaymentDetailsProps\n): JSX.Element | null => {\n const {\n className,\n data: { invoicePaymentDetails },\n resources\n } = props;\n\n const lineClassName = `${className}__line`;\n\n const lines: IInvoicePaymentLineProps[] = [];\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalDiscount)) {\n lines.push({\n label: resources.invoicePaymentDiscounts,\n value: invoicePaymentDetails.totalDiscount,\n className: `${lineClassName}-total-discount`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.subtotal)) {\n lines.push({\n label: resources.invoicePaymentSubtotal,\n value: invoicePaymentDetails.subtotal,\n className: `${lineClassName}-subtotal`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalCharges)) {\n lines.push({\n label: resources.invoicePaymentCharges,\n value: invoicePaymentDetails.totalCharges,\n className: `${lineClassName}-total-charges`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalTax)) {\n lines.push({\n label: resources.invoicePaymentTax,\n value: invoicePaymentDetails.totalTax,\n className: `${lineClassName}-total-tax`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalAmount)) {\n lines.push({\n label: resources.invoicePaymentInvoiceTotal,\n value: invoicePaymentDetails.totalAmount,\n className: `${lineClassName}-total-amount`\n });\n }\n\n if (!ArrayExtensions.hasElements(lines)) {\n return null;\n }\n\n return (\n
\n {lines.map(line => {\n return (\n
\n
{line.label}
\n
\n {props.context.cultureFormatter.formatCurrency(line.value, invoicePaymentDetails.currencyCode)}\n
\n
\n );\n })}\n
\n );\n};\n\nexport const InvoiceDetailsPaymentDetailsComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoiceDetailsPaymentDetailsComponent\n>('InvoiceDetailsPaymentDetailsComponent', { component: InvoiceDetailsPaymentDetails });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, IImageSettings, Image, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { SalesInvoiceLine } from '@msdyn365-commerce/retail-proxy';\nimport { getFallbackImageUrl, getProductPageUrlSync, ObjectExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport React from 'react';\n\nimport { IInvoiceProductLine, InvoiceDetailsModel } from '../helpers/invoice-data';\n\nexport interface IInvoiceDetailsProductsData {\n invoiceDetails: InvoiceDetailsModel;\n}\n\nexport interface IInvoiceDetailsProductsResources {\n invoiceProductColor: string;\n invoiceProductSize: string;\n invoiceProductStyle: string;\n invoiceQuantity: string;\n}\n\nexport interface IInvoiceDetailsProductsProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n imageSettings?: IImageSettings;\n resources: IInvoiceDetailsProductsResources;\n}\n\nexport interface IInvoiceDetailsProductsComponent extends IComponent {}\n\nconst _renderProductDimensions = (\n className: string,\n resources: IInvoiceDetailsProductsResources,\n product: SalesInvoiceLine\n): JSX.Element => {\n return (\n
\n {StringExtensions.isNullOrWhitespace(product.ColorName) ? null : (\n
{resources.invoiceProductColor.replace('{0}', product.ColorName!)}
\n )}\n {StringExtensions.isNullOrWhitespace(product.SizeName) ? null : (\n
{resources.invoiceProductSize.replace('{0}', product.SizeName!)}
\n )}\n {StringExtensions.isNullOrWhitespace(product.StyleName) ? null : (\n
{resources.invoiceProductStyle.replace('{0}', product.StyleName!)}
\n )}\n
\n );\n};\n\nconst _renderProductImage = (\n className: string,\n context: ICoreContext,\n product: IInvoiceProductLine,\n imageSettings?: IImageSettings\n): JSX.Element | null => {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=80&h=94&m=6', w: 0, h: 0 },\n lg: { q: 'w=148&h=174&m=6', w: 0, h: 0 },\n xl: { q: 'w=148&h=174&m=6', w: 0, h: 0 }\n },\n lazyload: true,\n cropFocalRegion: true\n };\n\n if (imageSettings) {\n imageSettings.cropFocalRegion = true;\n }\n\n const fallbackImage = getFallbackImageUrl(\n product.ItemId,\n context.actionContext.requestContext.apiSettings,\n context.request.app?.config?.OmniChannelMedia\n );\n return (\n \n );\n};\n\nconst formatAmount = (context: ICoreContext, amount: number | undefined, currencyCode: string | undefined) => {\n if (amount === undefined) {\n return '';\n }\n return context.cultureFormatter.formatCurrency(amount, currencyCode);\n};\n\nconst InvoiceDetailsProducts: React.FC = (props: IInvoiceDetailsProductsProps): JSX.Element => {\n const {\n className,\n data: { invoiceDetails },\n resources\n } = props;\n\n const productLineClass = `${className}__product-line`;\n const productLineInfoContainerClass = `${productLineClass}__product-info-container`;\n const productLineDetailsClass = `${productLineInfoContainerClass}__product-details`;\n const productLineSmallDetailsClass = `${productLineDetailsClass}__small-details`;\n\n return (\n
\n {invoiceDetails.lines.map(product => {\n const quantity = product.Quantity || 1;\n\n let productUrl = '';\n if (!ObjectExtensions.isNullOrUndefined(product.ProductName) && !ObjectExtensions.isNullOrUndefined(product.ProductId)) {\n productUrl = getProductPageUrlSync(product.ProductName, product.ProductId, props.context.actionContext);\n }\n\n return (\n
\n
\n {_renderProductImage(`${productLineInfoContainerClass}__product-image`, props.context, product)}\n
\n \n {product.ProductName}\n \n
\n {_renderProductDimensions(`${productLineSmallDetailsClass}__dimensions`, resources, product)}\n
\n {formatAmount(props.context, product.Price, invoiceDetails.currencyCode)}\n
\n
\n {resources.invoiceQuantity.replace('{0}', quantity.toString())}\n
\n
\n
\n
\n
\n {formatAmount(props.context, product.NetAmount, invoiceDetails.currencyCode)}\n
\n
\n );\n })}\n
\n );\n};\n\nexport const InvoiceDetailsProductsComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoiceDetailsProductsComponent\n>('InvoiceDetailsProductsComponent', { component: InvoiceDetailsProducts });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { InvoicePaidStatus, OrderInvoice, SalesInvoice, SalesInvoiceLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { IPayableInvoice } from '@msdyn365-commerce-modules/invoice';\n\nexport interface IInvoicePaymentDetails {\n totalDiscount?: number;\n subtotal?: number;\n totalCharges?: number;\n totalTax?: number;\n totalAmount?: number;\n currencyCode?: string;\n}\n\nexport interface IInvoiceProductLine extends SalesInvoiceLine {\n primaryImageUrl?: string;\n}\n\n/**\n * Represents invoice details data model.\n */\nexport class InvoiceDetailsModel implements IPayableInvoice, IInvoicePaymentDetails {\n public id: string;\n\n public invoiceDate?: Date;\n\n public customerAccountNumber?: string;\n\n public customerName?: string;\n\n public dueDate?: Date;\n\n public amountDue?: number;\n\n public status?: InvoicePaidStatus;\n\n public lines: IInvoiceProductLine[];\n\n public totalDiscount?: number;\n\n public subtotal?: number;\n\n public totalCharges?: number;\n\n public totalTax?: number;\n\n public totalAmount?: number;\n\n public currencyCode?: string;\n\n public constructor(invoice: OrderInvoice, invoiceDetails: SalesInvoice, products: SimpleProduct[]) {\n this.id = invoice.Id || '';\n this.invoiceDate = invoice.InvoiceDate ? new Date(invoice.InvoiceDate) : undefined;\n this.customerName = invoice.CustomerName;\n this.dueDate = invoice.InvoiceDueDate ? new Date(invoice.InvoiceDueDate) : undefined;\n this.amountDue = invoice.AmountBalance;\n this.status = invoice.InvoicePaidStatusValue;\n this.lines = (invoiceDetails.SalesInvoiceLine || []).map(line => {\n const productLine: IInvoiceProductLine = {\n ...line,\n primaryImageUrl: products.find(product => product.RecordId === line.ProductId)?.PrimaryImageUrl\n };\n return productLine;\n });\n\n this.totalDiscount = invoiceDetails.TotalDiscount;\n this.subtotal = invoiceDetails.InvoiceSubtotal;\n this.totalCharges = invoiceDetails.TotalCharges;\n this.totalTax = invoiceDetails.TotalTaxAmount;\n this.totalAmount = invoice.TotalAmount;\n this.currencyCode = invoice.CurrencyCode;\n }\n\n public get canBePaid(): boolean {\n return this.status !== InvoicePaidStatus.Paid;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync } from '@msdyn365-commerce/core';\nimport { SalesInvoiceLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { IInvoiceErrorState, InvoiceErrorComponent } from '@msdyn365-commerce-modules/invoice';\nimport { getSimpleProductsAction, ProductInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { InvoiceDetailsHeaderComponent } from './components/invoice-details-header';\nimport { InvoiceDetailsPaymentDetailsComponent } from './components/invoice-details-payment-summary';\nimport { InvoiceDetailsProductsComponent } from './components/invoice-details-products';\nimport { InvoiceDetailsModel } from './helpers/invoice-data';\nimport { IInvoiceDetailsData } from './invoice-details.data';\nimport { IInvoiceDetailsProps } from './invoice-details.props.autogenerated';\n\nexport interface IInvoiceDetailsViewState {\n invoiceDetails?: InvoiceDetailsModel;\n payInvoiceErrorModalOpen?: boolean;\n errorState?: IInvoiceErrorState;\n}\n\nexport interface IInvoiceDetailsViewProps extends IInvoiceDetailsProps {\n moduleProps: IModuleProps;\n header: JSX.Element;\n products: JSX.Element;\n paymentDetails: JSX.Element;\n payInvoiceError?: JSX.Element;\n}\n\n/**\n * InvoiceDetails component.\n * @extends {React.PureComponent>}\n */\nclass InvoiceDetails extends React.PureComponent, IInvoiceDetailsViewState> {\n private static readonly _className: string = 'msc-invoice-details';\n\n public constructor(props: IInvoiceDetailsProps) {\n super(props);\n\n this.state = { errorState: { errorMessage: '', otherError: '' } };\n this._onAddToCartFailed = this._onAddToCartFailed.bind(this);\n this._setPayInvoiceErrorModalClose = this._setPayInvoiceErrorModalClose.bind(this);\n }\n\n public async componentDidMount(): Promise {\n const invoice = await this.props.data.invoice;\n const invoiceDetails = await this.props.data.invoiceDetails;\n\n const products = await this._getProducts(invoiceDetails.SalesInvoiceLine, invoiceDetails.ChannelId);\n\n const invoiceDetailsModel = new InvoiceDetailsModel(invoice, invoiceDetails, products);\n\n this.setState({\n invoiceDetails: invoiceDetailsModel,\n payInvoiceErrorModalOpen: false,\n errorState: { errorMessage: '', otherError: '' }\n });\n }\n\n public render(): JSX.Element | null {\n if (!this.state.invoiceDetails) {\n return null;\n }\n\n const header = this._renderHeader();\n const products = this._renderProducts();\n const paymentDetails = this._renderPaymentDetails();\n const payInvoiceError = this._renderInvoiceErrors();\n\n const props: IInvoiceDetailsViewProps = {\n ...(this.props as IInvoiceDetailsProps),\n moduleProps: {\n moduleProps: this.props,\n className: InvoiceDetails._className\n },\n header,\n products,\n paymentDetails,\n payInvoiceError\n };\n\n return this.props.renderView(props);\n }\n\n private async _getProducts(invoiceLines: SalesInvoiceLine[] = [], channelId?: number): Promise {\n const productInputs = invoiceLines\n .filter(product => product.ProductId)\n .map(\n product =>\n new ProductInput(\n product.ProductId!,\n this.props.context.request.apiSettings,\n channelId,\n undefined,\n this.props.context.actionContext.requestContext\n )\n );\n return getSimpleProductsAction(productInputs, this.props.context.actionContext);\n }\n\n private _renderHeader(): JSX.Element {\n const invoiceDetails = this.state.invoiceDetails!;\n return (\n \n );\n }\n\n private _renderProducts(): JSX.Element {\n const invoiceDetails = this.state.invoiceDetails!;\n const { imageSettings } = this.props.config;\n return (\n \n );\n }\n\n private _renderPaymentDetails(): JSX.Element {\n const invoiceDetails = this.state.invoiceDetails!;\n return (\n \n );\n }\n\n private _onAddToCartFailed(newErrorState: IInvoiceErrorState): void {\n const errorState = { ...newErrorState };\n errorState.errorHost = 'ADDINVOICETOCART';\n\n // check for errorcode and otherError which contains the LocalizedMessage from API\n if (\n errorState &&\n errorState.errorCode === 'Microsoft_Dynamics_Commerce_Runtime_InvoiceLineAlreadyExistsInCart' &&\n errorState.otherError\n ) {\n this.setState({ errorState: errorState });\n }\n\n this.setState({ payInvoiceErrorModalOpen: true });\n }\n\n private _setPayInvoiceErrorModalClose(): void {\n this.setState({ payInvoiceErrorModalOpen: false });\n }\n\n private _renderInvoiceErrors(): JSX.Element {\n const {\n resources: {\n payInvoiceErrorDialogHeader,\n payInvoiceErrorDialogBodyErrorTitle,\n payInvoiceErrorDialogBodyErrorDescription,\n payInvoiceErrorDialogFooterGoToCartButtonText,\n payInvoiceErrorDialogFooterCancelButtonText\n }\n } = this.props;\n\n const cartUrl = getUrlSync('cart', this.props.context.actionContext) || '';\n\n const errorClassName = `${InvoiceDetails._className}__errors`;\n\n return (\n \n );\n }\n}\n\nexport default InvoiceDetails;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport classnames from 'classnames';\nimport React from 'react';\n\nexport interface IInvoicesTableHeaderResources {\n invoicesText: string;\n invoiceNumberText: string;\n invoiceDateMobileText: string;\n invoiceDateText: string;\n invoiceUsersText: string;\n invoiceAmountText: string;\n invoiceDueDateText: string;\n invoiceAmountDueText: string;\n invoiceStatusText: string;\n invoiceActionsText: string;\n invoiceListSelectAllRadioAriaLabelText: string;\n}\n\nexport interface IInvoicesTableHeaderProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n\n isSelectedAll: boolean;\n isMobile: boolean;\n isAdmin: boolean;\n\n resources: IInvoicesTableHeaderResources;\n\n onSelectAll(isSelected: boolean): void;\n}\n\nexport interface IInvoicesTableHeaderComponent extends IComponent {}\n\nconst getDesktopHeaderCells = (props: IInvoicesTableHeaderProps, rowClassName: string, switchCheckedState: () => void) => {\n const { resources } = props;\n return (\n <>\n \n \n \n {resources.invoiceNumberText}\n {resources.invoiceDateText}\n {resources.invoiceUsersText}\n {resources.invoiceAmountText}\n {resources.invoiceDueDateText}\n {resources.invoiceAmountDueText}\n {resources.invoiceStatusText}\n {resources.invoiceActionsText}\n \n );\n};\n\nconst getMobileHeaderCells = (props: IInvoicesTableHeaderProps, rowClassName: string, switchCheckedState: () => void) => {\n const { resources } = props;\n return (\n <>\n \n \n \n {resources.invoicesText}\n {resources.invoiceDateMobileText}\n \n {` `}\n {/* Actions */}\n \n );\n};\n\nconst InvoicesTableHeader: React.FC = (props: IInvoicesTableHeaderProps): JSX.Element => {\n const rowClassName = `${props.className}__row`;\n\n const switchCheckedState = () => {\n props.onSelectAll(!props.isSelectedAll);\n };\n\n let headerCells: JSX.Element;\n if (props.isMobile) {\n headerCells = getMobileHeaderCells(props, rowClassName, switchCheckedState);\n } else {\n headerCells = getDesktopHeaderCells(props, rowClassName, switchCheckedState);\n }\n\n return (\n \n {headerCells}\n \n );\n};\n\nexport const InvoicesTableHeaderComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoicesTableHeaderComponent\n>('InvoicesTableHeaderComponent', { component: InvoicesTableHeader });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { 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) ? (\n \n ) : 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.\n * All rights reserved. See LICENSE 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(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\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.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n getTelemetryObject,\n IComponentNodeProps,\n IModuleProps,\n INodeProps,\n ISingleSlideCarouselProps,\n ITelemetryContent,\n NodeTag,\n SingleSlideCarousel\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureCollectionProps } 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(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\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 constructor(props: IInteractiveFeatureCollectionProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { resources } = this.props;\n const { title, className } = this.props.config;\n const interactiveItems = this.props.slots && this.props.slots.interactiveFeatureItems;\n const itemsFeatureCounter = interactiveItems && 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 createHeading = title && (\n \n );\n const viewProps = {\n ...this.props,\n title: createHeading,\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:\n itemsFeatureCounter > initItemsFeatureCounter &&\n interactiveItems.map((item: React.ReactNode, index: number) =>\n InteractiveFeatureCollection._getFeatureItem(item, index, itemsFeatureCounter)\n )\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * To handle text change.\n * @param event - To handle text change event.\n * @name - HandleTextChange\n * @public\n * @returns - The Text value.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.title!.text = event.target.value);\n}\n\nexport default InteractiveFeatureCollection;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, {\n IComponent,\n IComponentProps,\n ICoreContext,\n IDateFormatOptions,\n isOboRequest,\n msdyn365Commerce\n} from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { getInvoiceDetailsPageUrlSync, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, format } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React, { useState } from 'react';\n\nimport { InvoiceModel } from '../../../helpers/invoice-data';\nimport { getInvoiceStatusText, IInvoiceStatusResources } from '../../../helpers/invoice-status';\nimport { IInvoiceErrorState } from '../../../invoices-list';\nimport { IPayInvoiceResources, PayInvoiceComponent } from '../../pay-invoice-component';\nimport { RequestInvoiceButton } from '../../request-invoice-button';\n\ninterface IInvoicesTableRowData {\n invoice: InvoiceModel;\n index: number;\n customer: Customer;\n}\n\nexport interface IInvoicesTableRowResources extends IInvoiceStatusResources, IPayInvoiceResources {\n invoiceCurrentUser: string;\n invoiceViewDetailsButtonText: string;\n invoiceViewDetailsButtonAriaLabel: string;\n invoiceActionsButtonTextAriaLabel?: string;\n invoiceActionsButtonIsOnBehalfOfTextAriaLabel?: string;\n invoiceRequestButtonLabel: string;\n invoiceListSelectRadioAriaLabelText: string;\n}\n\nexport interface IInvoicesTableRowProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n isMobile: boolean;\n invoiceReferences?: React.RefObject;\n payInvoiceReferences?: React.RefObject;\n resources: IInvoicesTableRowResources;\n\n onChange(): void;\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n onRequestInvoice?(invoice: InvoiceModel, requestInvoiceButtonReference: React.RefObject): void;\n}\n\nexport interface IInvoicesTableRowComponent extends IComponent {}\n\nconst formatAmount = (context: ICoreContext, amount: number | undefined, currencyCode: string | undefined) => {\n if (amount === undefined) {\n return '';\n }\n return context.cultureFormatter.formatCurrency(amount, currencyCode);\n};\n\nconst formatDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\n/**\n * Request specific invoice function.\n * @param props -Invoice table row props.\n * @param requestInvoiceButtonReference -Reference button.\n * @returns Call Request Invoice.\n */\nconst onRequestSpecificInvoice = (\n props: IInvoicesTableRowProps,\n requestInvoiceButtonReference: React.RefObject\n) => () => {\n props.onRequestInvoice!(props.data.invoice, requestInvoiceButtonReference);\n};\n\nconst getDesktopRowCells = (props: IInvoicesTableRowProps, onSelectLine: () => void) => {\n const {\n data: { invoice, customer }\n } = props;\n\n const isCurrentUser =\n !StringExtensions.isNullOrWhitespace(customer.AccountNumber) && customer.AccountNumber === invoice.customerAccountNumber;\n\n const linkToInvoiceDetails = getInvoiceDetailsPageUrlSync(props.data.invoice.id, props.context.actionContext);\n const invoiceRowArialabel = format(props.resources.invoiceListSelectRadioAriaLabelText, invoice.id);\n return (\n <>\n \n \n \n \n \n {invoice.id}\n \n \n \n {formatDate(props.context, invoice.invoiceDate)}\n \n \n {invoice.customerName}\n {isCurrentUser ? {props.resources.invoiceCurrentUser} : null}\n \n {formatAmount(props.context, invoice.amount, invoice.currencyCode)}\n \n {formatDate(props.context, invoice.dueDate)}\n \n {formatAmount(props.context, invoice.amountDue, invoice.currencyCode)}\n \n {getInvoiceStatusText(props.resources, invoice.status)}\n \n {extraActionsPopup(props)}\n \n );\n};\n\nlet setShowPreviousActions: React.Dispatch> | undefined;\n\n/**\n * On Click view details function.\n * @param linkToInvoiceDetails -Link to invoice details.\n * @returns Go to invoice details.\n */\nconst onClickViewDetails = (linkToInvoiceDetails: string) => () => {\n if (MsDyn365.isBrowser) {\n window.location.href = linkToInvoiceDetails;\n }\n return;\n};\n\n/**\n * Toggle function.\n * @param isShowActions -Link to invoice details.\n * @param setShowActions -Link to invoice details.\n * @returns Go to invoice details.\n */\nconst toggle = (isShowActions: boolean, setShowActions: React.Dispatch>) => () => {\n const shouldShowActions = !isShowActions;\n if (shouldShowActions) {\n if (setShowPreviousActions) {\n setShowPreviousActions(false);\n }\n setShowActions(shouldShowActions);\n setShowPreviousActions = setShowActions;\n } else {\n setShowPreviousActions = undefined;\n setShowActions(shouldShowActions);\n }\n};\n\nconst extraActionsPopup = (props: IInvoicesTableRowProps): JSX.Element | null => {\n const {\n resources: {\n invoiceViewDetailsButtonAriaLabel,\n invoiceViewDetailsButtonText,\n invoiceActionsButtonTextAriaLabel,\n invoiceActionsButtonIsOnBehalfOfTextAriaLabel\n },\n data: { index }\n } = props;\n\n const [showActions, setShowActions] = useState(false);\n const isOnBehalfOfRequest = isOboRequest(props.context.request);\n\n const linkToInvoiceDetails = getInvoiceDetailsPageUrlSync(props.data.invoice.id, props.context.actionContext);\n\n const className = `${props.className}__extra-actions-cell`;\n const actionsContainerClassName = `${className}__actions-container`;\n const payInvoiceClassName = `${actionsContainerClassName}__pay-invoice`;\n return (\n
\n \n {showActions && !isOnBehalfOfRequest && (\n
\n \n {invoiceViewDetailsButtonText}\n \n \n \n
\n )}\n
\n );\n};\n\nconst getMobileRowCells = (props: IInvoicesTableRowProps, onSelectLine: () => void) => {\n const {\n data: { invoice }\n } = props;\n\n const linkToInvoiceDetails = getInvoiceDetailsPageUrlSync(props.data.invoice.id, props.context.actionContext);\n const invoiceRowArialabel = format(props.resources.invoiceListSelectRadioAriaLabelText, invoice.id);\n\n return (\n <>\n \n \n \n \n \n {invoice.id}\n \n
\n {invoice.customerName}\n \n \n {formatDate(props.context, invoice.dueDate)}\n
\n {getInvoiceStatusText(props.resources, invoice.status)}\n \n {extraActionsPopup(props)}\n \n );\n};\n\nconst InvoicesTableRow: React.FC = (props: IInvoicesTableRowProps): JSX.Element => {\n const {\n data: { invoice }\n } = props;\n\n const onSelectLine = () => {\n invoice.isSelected = !invoice.isSelected;\n props.onChange();\n };\n\n let rowCells: JSX.Element;\n if (props.isMobile) {\n rowCells = getMobileRowCells(props, onSelectLine);\n } else {\n rowCells = getDesktopRowCells(props, onSelectLine);\n }\n\n return {rowCells};\n};\n\nexport const InvoicesTableRowComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoicesTableRowComponent\n>('InvoicesTableRowComponent', { component: InvoicesTableRow });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrganizationUsersTileViewProps } from './organization-users-tile';\n\nconst OrganizationUsersTileView: React.FC = props => {\n const { OrganizationUsersTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default OrganizationUsersTileView;\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 { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address/src/modules/account-management-address/../../common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address/src/modules/account-management-address/../../common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address/src/modules/account-management-address/../../common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/src/modules/account-management-address/./account-management-address';\r\n\r\ninterface IAddressListExtended extends IAddressList {\r\n classNameExtended: string;\r\n}\r\n\r\n/**\r\n * Address show component.\r\n * @param param0 - Root param.\r\n * @param param0.AddressDetail - Address detail.\r\n * @param param0.items - IAddressShowItem[].\r\n * @returns - Address Node.\r\n */\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Address List Component.\r\n * @param param0 - Root param.\r\n * @param param0.List - Address list.\r\n * @param param0.isShowList - Boolean.\r\n * @param param0.heading - Address heading.\r\n * @param param0.items - IAddressListItem[].\r\n * @returns - AddressListComponent Node.\r\n */\r\nconst AddressList: React.FC = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items,\r\n classNameExtended\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {items.length ? : null}\r\n \r\n {heading}\r\n {items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton, removeButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n {isShowError && \r\n {title}\r\n {message}\r\n }\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n {removeButton}\r\n );\r\n })}\r\n \r\n \r\n\r\n );\r\n};\r\n\r\n/**\r\n * Address Lists Component.\r\n * @param param0 - Root param.\r\n * @param param0.ListAddress - List address.\r\n * @param param0.heading - List heading.\r\n * @param param0.isShowEmptyListMessage - Boolean.\r\n * @param param0.emptyListMessage - Empty list message.\r\n * @param param0.addButton - Add button.\r\n * @param param0.primaryAddressList - Primary address.\r\n * @param param0.otherAddressList - Other address.\r\n * @returns Address Lists Component Node.\r\n */\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n {/**/}\r\n \r\n {/**/}\r\n \r\n \r\n );\r\n};\r\n\r\n/**\r\n * AddressAddUpdateComponent.\r\n * @param param0 - Root param.\r\n * @param param0.AddressForm - Address form.\r\n * @param param0.heading - Address heading.\r\n * @param param0.items - IAddressAddItem[].\r\n * @param param0.hasError - Boolean.\r\n * @param param0.error - Error message.\r\n * @param param0.isShowSaveButton - Boolean.\r\n * @param param0.saveButton - Save button.\r\n * @param param0.isShowCancelButton - Boolean.\r\n * @param param0.cancelButton - Cancel button.\r\n * @returns Address add update component node.\r\n */\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Account Management Address View Component.\r\n * @param props - Props.\r\n * @returns - AccountAddressManagement Module.\r\n */\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, viewState, showAddressList, showAddOrUpdateAddress, screenReaderNotification } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n {screenReaderNotification}\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\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\n/* eslint-disable no-duplicate-imports */\r\nimport { Alert, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ICookieComplianceViewProps } from './clarity-cookie-compliance';\r\n\r\nconst CookieComplianceView: React.FC = props => {\r\n const { CookieComplianceBanner, AlertProps, Content, acceptButton, text, links } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n {text}\r\n {links}\r\n \r\n {acceptButton}\r\n \r\n \r\n );\r\n};\r\nexport default CookieComplianceView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/// \n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observable, reaction, when } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { IMapData } from './map.data';\nimport { IMapProps, IPushpinOptionsData } from './map.props.autogenerated';\n\n/**\n * Header Interface.\n */\nexport interface IHeader {\n headerProps: INodeProps;\n heading: React.ReactNode;\n}\n\n/**\n * MapViewProps Interface.\n */\nexport interface IMapViewProps extends IMapProps {\n ModuleProps: IModuleProps;\n Header: IHeader;\n MapProps: INodeProps;\n Map: Microsoft.Maps.Map | undefined;\n}\n\n/**\n *\n * Map component.\n * @extends {React.Component>}\n */\n@observer\nclass Map extends React.Component> {\n @observable public map: Microsoft.Maps.Map | undefined;\n private timeout: number = 500;\n\n private readonly mapRef: React.RefObject = React.createRef();\n\n public constructor(props: IMapProps) {\n super(props);\n }\n\n public componentDidMount(): void {\n const {\n context: {\n telemetry,\n actionContext: {\n requestContext: { channel }\n }\n }\n } = this.props;\n\n if (channel && !channel.BingMapsApiKey) {\n telemetry.error('BingMapsApiKey is missing.');\n return;\n }\n\n if (channel && !channel.BingMapsEnabled) {\n telemetry.error('Map is disabled from HQ.');\n return;\n }\n\n const loadMapAPIInput = {\n key: channel?.BingMapsApiKey,\n lang: this.props.context.actionContext.requestContext.locale,\n market: this.props.context?.actionContext?.requestContext?.channel?.ChannelCountryRegionISOCode\n };\n\n if (\n this.props.data.storeSelectorStateManager?.result?.isMapApiLoaded ||\n this.props.data.distributorSelectorStateManager?.result?.isMapApiLoaded\n ) {\n this._initMap();\n if (this.props.data.distributorSelectorStateManager?.result?.isDistributorSelectorDialogOpen) {\n this._updateMapsForDistributor();\n } else {\n this._updateMap();\n }\n }\n\n when(\n () => !!this.props.data.storeSelectorStateManager?.result?.setMapModuleLoaded,\n () => {\n this.props.data.storeSelectorStateManager?.result?.setMapModuleLoaded(true);\n }\n );\n\n when(\n () => !!this.props.data.distributorSelectorStateManager?.result?.setMapModuleLoaded,\n () => {\n this.props.data.distributorSelectorStateManager?.result?.setMapModuleLoaded(true);\n }\n );\n\n reaction(\n () =>\n this.props.data.storeSelectorStateManager?.result?.loadMapApi ||\n this.props.data.distributorSelectorStateManager?.result?.loadMapApi,\n () => {\n if (this.props.data.distributorSelectorStateManager?.result?.loadMapApi) {\n this.props.data.distributorSelectorStateManager?.result?.loadMapApi(loadMapAPIInput);\n } else {\n this.props.data.storeSelectorStateManager?.result?.loadMapApi(loadMapAPIInput);\n }\n }\n );\n\n reaction(\n () =>\n this.props.data.storeSelectorStateManager?.result?.isMapApiLoaded ||\n this.props.data.distributorSelectorStateManager?.result?.isMapApiLoaded,\n () => {\n this._initMap();\n }\n );\n\n reaction(\n () => {\n return [\n this.props.data.storeSelectorStateManager.result?.context?.orgUnitStoreInformation,\n this.props.data.storeSelectorStateManager.result?.selectedStoreLocationId,\n this.map\n ];\n },\n () => {\n this._updateMap();\n }\n );\n\n reaction(\n () => {\n return [\n this.props.data.distributorSelectorStateManager?.result?.distributorList,\n this.props.data.distributorSelectorStateManager?.result?.selectedDistributorId,\n this.map\n ];\n },\n () => {\n this._updateMapsForDistributor();\n }\n );\n }\n\n public render(): JSX.Element | null {\n const {\n config: { heading, className },\n data\n } = this.props;\n\n const shouldDisplayMap = data.storeSelectorStateManager?.result?.isDialogOpen\n ? data.storeSelectorStateManager?.result?.listMapViewState.displayMap\n : data.distributorSelectorStateManager?.result?.isDistributorSelectorDialogOpen\n ? data.distributorSelectorStateManager?.result?.listMapViewState.displayMap\n : false;\n\n const viewProps: IMapViewProps = {\n ...this.props,\n ModuleProps: {\n tag: 'div',\n moduleProps: this.props,\n className: classname('ms-map', { show: shouldDisplayMap }, className)\n },\n Header: {\n headerProps: { className: 'ms-map__header' },\n heading: heading?.text && (\n \n )\n },\n MapProps: {\n tag: 'div',\n className: 'ms-map__body',\n ref: this.mapRef\n },\n Map: this.map\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Method to be called on heading change.\n * @param event -Content Edit Event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Initialize the map.\n */\n private readonly _initMap = () => {\n const {\n context: {\n actionContext: {\n requestContext: { channel }\n }\n },\n data\n } = this.props;\n\n if (data.storeSelectorStateManager?.result?.isMapApiLoaded || data.distributorSelectorStateManager?.result?.isMapApiLoaded) {\n this.map = new Microsoft.Maps.Map(this.mapRef.current as HTMLElement, {\n credentials: channel?.BingMapsApiKey,\n pushpinAccessible: true\n });\n Microsoft.Maps.Events.addHandler(this.map, 'click', async () => {\n if (data.distributorSelectorStateManager?.result?.isDistributorSelectorDialogOpen) {\n // Hide the distributor details that appear below the screen size of 768px.\n data.distributorSelectorStateManager?.result?.updateDistributorMapVisibility(false);\n await data.distributorSelectorStateManager?.result?.setSelectedDistributorId(undefined);\n } else {\n await data.storeSelectorStateManager?.result?.setSelectedStoreLocationId(undefined);\n }\n });\n }\n };\n\n private readonly _updateMapsForDistributor = () => {\n const pushpinOptions = this.props.config.pushpinOptions;\n const distributorSelectorStateManager = this.props.data.distributorSelectorStateManager?.result;\n const distributorInfoList = distributorSelectorStateManager?.distributorList;\n const selectedDistributorId = distributorSelectorStateManager?.selectedDistributorId;\n\n if (this.map && ArrayExtensions.hasElements(distributorInfoList)) {\n let mapLocation: OrgUnitLocation | undefined;\n this.map.entities.clear();\n const pushpins: Microsoft.Maps.IPrimitive[] = [];\n\n const distributorList = distributorInfoList.filter(distributor => distributor.OrgUnit !== undefined);\n\n for (const [index, distributorInfo] of distributorList.entries()) {\n const orgUnit = distributorInfo.OrgUnit;\n\n if (orgUnit?.Latitude && orgUnit.Longitude) {\n const isLocationSelected = selectedDistributorId === orgUnit?.RecordId;\n const options = this._getPushpinOptions(isLocationSelected, index, pushpinOptions);\n const pushpin = new Microsoft.Maps.Pushpin(new Microsoft.Maps.Location(orgUnit?.Latitude, orgUnit.Longitude), options);\n\n Microsoft.Maps.Events.addHandler(pushpin, 'click', () => {\n this.handleDistributorPushpinClick(orgUnit.RecordId);\n });\n isLocationSelected ? pushpins.unshift(pushpin) : pushpins.push(pushpin);\n\n if (isLocationSelected) {\n mapLocation = orgUnit;\n }\n }\n }\n if (mapLocation) {\n const currentLocation = new Microsoft.Maps.Location(mapLocation.Latitude, mapLocation.Longitude);\n this.map.setView({ center: currentLocation });\n } else {\n this.map.setView({\n bounds: Microsoft.Maps.LocationRect?.fromShapes(pushpins)\n });\n }\n\n this.map.setOptions({ pushpinAccessible: true });\n this.map.entities.push(pushpins);\n }\n };\n\n /**\n * Update the map.\n */\n private readonly _updateMap = () => {\n const pushpinOptions = this.props.config.pushpinOptions;\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager?.result;\n const orgUnitStoreInformation = storeSelectorStateManager?.context?.orgUnitStoreInformation;\n const selectedStoreLocationId = storeSelectorStateManager?.selectedStoreLocationId;\n\n if (this.map && orgUnitStoreInformation) {\n let mapLocation: OrgUnitLocation | undefined;\n this.map.entities.clear();\n const pushpins: Microsoft.Maps.IPrimitive[] = [];\n\n const storeLocationList = orgUnitStoreInformation.filter(store => store.OrgUnitAvailability !== undefined);\n\n for (const [index, unitStoreInfo] of storeLocationList.entries()) {\n const storeLocation = unitStoreInfo.OrgUnitAvailability?.OrgUnitLocation;\n\n if (storeLocation?.Latitude && storeLocation.Longitude) {\n const isSelectedLocation = selectedStoreLocationId === storeLocation.OrgUnitNumber;\n const options = this._getPushpinOptions(isSelectedLocation, index, pushpinOptions);\n const pushpin = new Microsoft.Maps.Pushpin(\n new Microsoft.Maps.Location(storeLocation.Latitude, storeLocation.Longitude),\n options\n );\n\n Microsoft.Maps.Events.addHandler(pushpin, 'click', () => {\n this.handleClickEvent(storeLocation.OrgUnitNumber);\n });\n isSelectedLocation ? pushpins.unshift(pushpin) : pushpins.push(pushpin);\n\n if (isSelectedLocation) {\n mapLocation = storeLocation;\n }\n }\n }\n\n if (mapLocation) {\n const currentLocation = new Microsoft.Maps.Location(mapLocation.Latitude, mapLocation.Longitude);\n this.map.setView({ center: currentLocation });\n } else {\n // Create a LocationRect from array of pushpins and set the map view.\n this.map.setView({\n bounds: Microsoft.Maps.LocationRect?.fromShapes(pushpins)\n });\n }\n\n this.map.setOptions({ pushpinAccessible: true });\n this.map.entities.push(pushpins);\n }\n };\n\n /**\n * Handle click event.\n * @param orgUnitNumber - Organization unit number.\n */\n private readonly handleClickEvent = (orgUnitNumber: string | undefined): void => {\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager.result;\n storeSelectorStateManager?.setSelectedStoreLocationId(undefined);\n if (orgUnitNumber) {\n setTimeout(() => {\n storeSelectorStateManager?.setSelectedStoreLocationId(orgUnitNumber);\n }, this.timeout);\n }\n };\n\n /**\n * Handle the click event of the pushpin for distributors on the maps.\n * @param recordId - RecordId.\n */\n private readonly handleDistributorPushpinClick = (recordId: number | undefined): void => {\n const distributorSelectorStateManager = this.props.data.distributorSelectorStateManager?.result;\n // Show the distributor details that appear below the screen size of 768px.\n distributorSelectorStateManager?.updateDistributorMapVisibility(true);\n distributorSelectorStateManager?.setSelectedDistributorId(undefined);\n if (recordId) {\n setTimeout(() => {\n distributorSelectorStateManager?.setSelectedDistributorId(recordId);\n }, this.timeout);\n }\n };\n\n /**\n * Get the pushpin option.\n * @param isSelectedLocation - Is selected location.\n * @param index - Index.\n * @param pushpinOptions - PushpinOptions.\n * @returns - The pushpin options.\n */\n private readonly _getPushpinOptions = (isSelectedLocation: boolean, index: number, pushpinOptions?: IPushpinOptionsData) => {\n const text = pushpinOptions?.showIndex ? (index + 1).toString() : undefined;\n\n const size = pushpinOptions?.size || 1;\n const color = isSelectedLocation ? pushpinOptions?.selectionColor || pushpinOptions?.color : pushpinOptions?.color;\n const icon = this._getSvgIcon(size, color, text);\n\n return {\n // Fallback if icon doesn't render properly\n color: isSelectedLocation ? pushpinOptions?.selectionColor : pushpinOptions?.color,\n icon\n };\n };\n\n private readonly _getSvgIcon = (size: number, color?: string, text?: string) => {\n const baseValue: number = 32;\n return `\n \n ${text ? `${text}` : ''}\n `;\n };\n}\n\nexport default Map;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { InvoicePaidStatus, OrderInvoice } from '@msdyn365-commerce/retail-proxy';\n\nexport interface IPayableInvoice {\n readonly id: string;\n readonly canBePaid: boolean;\n}\n\n/**\n * Represents invoice data model.\n */\nexport class InvoiceModel implements IPayableInvoice {\n public id: string;\n\n public invoiceDate?: Date;\n\n public customerAccountNumber?: string;\n\n public customerName?: string;\n\n public amount?: number;\n\n public dueDate?: Date;\n\n public amountDue?: number;\n\n public status?: InvoicePaidStatus;\n\n public currencyCode?: string;\n\n public isSelected: boolean;\n\n public constructor(invoice: OrderInvoice) {\n this.id = invoice.Id || '';\n this.invoiceDate = invoice.InvoiceDate ? new Date(invoice.InvoiceDate) : undefined;\n this.customerAccountNumber = invoice.CustomerAccountNumber;\n this.customerName = invoice.CustomerName;\n this.amount = invoice.TotalAmount;\n this.dueDate = invoice.InvoiceDueDate ? new Date(invoice.InvoiceDueDate) : undefined;\n this.amountDue = invoice.AmountBalance;\n this.status = invoice.InvoicePaidStatusValue;\n this.currencyCode = invoice.CurrencyCode;\n\n this.isSelected = false;\n }\n\n public get canBePaid(): boolean {\n return this.status !== InvoicePaidStatus.Paid;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { InvoicePaidStatus } from '@msdyn365-commerce/retail-proxy';\n\nexport interface IInvoiceStatusResources {\n invoiceStatusNone: string;\n invoiceStatusUnpaid: string;\n invoiceStatusPartiallyPaid: string;\n invoiceStatusPaid: string;\n}\n\nexport const getInvoiceStatusText = (resources: IInvoiceStatusResources, invoiceStatus: InvoicePaidStatus | undefined) => {\n switch (invoiceStatus) {\n case InvoicePaidStatus.None:\n return resources.invoiceStatusNone;\n\n case InvoicePaidStatus.Unpaid:\n return resources.invoiceStatusUnpaid;\n\n case InvoicePaidStatus.PartiallyPaid:\n return resources.invoiceStatusPartiallyPaid;\n\n case InvoicePaidStatus.Paid:\n return resources.invoiceStatusPaid;\n default:\n return '';\n }\n};\n","/*--------------------------------------------------------------\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 {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInSocialAccount, ISignInSocialItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/./sign-in';\r\n\r\nimport { ISignInConfig, ISignInProps } from '../definition-extensions/sign-in.ext.props.autogenerated';\r\nimport msdyn365Commerce from '@msdyn365-commerce/core-internal';\r\n\r\n\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n\r\n return (\r\n \r\n {disclaimer}\r\n {items && items.map((item: ISignInItem) => {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {forgetPassword}\r\n {error}\r\n {signInButton}\r\n \r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\n\r\nconst signUpNilecardDescription = (langstrings: string[]): React.ReactNode => {\r\n return (\r\n <>\r\n {langstrings[0]}\r\n
    \r\n
  • {langstrings[1]}
  • \r\n
  • {langstrings[2]}
  • \r\n
  • {langstrings[3]}
  • \r\n
  • {langstrings[4]}
  • \r\n
\r\n \r\n );\r\n};\r\n\r\n\r\nconst SignInView: React.FC> = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n // signUpDescription,\r\n signUpLink,\r\n resources\r\n } = props;\r\n let langver;\r\n if (msdyn365Commerce.isBrowser){\r\n const params = new URLSearchParams(window.location.search);\r\n let lang = params.get('ui_locales');\r\n console.log(lang);\r\n switch (lang){\r\n case \"en-US\":\r\n langver = [\"Register for a Nilecard and benefit from many advantages:\",\r\n \"Receive up to 10% discount with the Nilecard points system\",\r\n \"Receive discount vouchers and invitations to special events\", \r\n \"Save products on your wish list for later\", \r\n \"Track your order history and points balance in your account\"];\r\n break;\r\n case \"fr-CH\":\r\n langver = [\"Crée une Nilecard et profite de nombreux avantages:\",\r\n \"Reçois jusqu'à 10% de réduction avec le système de points Nilecard\",\r\n \"Reçois des bons de réduction et des invitations à des événements spéciaux\",\r\n \"Enregistre des produits sur ta liste d'envies pour plus tard\",\r\n \"Suis les commandes et le solde de points dans ton compte\"]\r\n break;\r\n case \"de-CH\":\r\n langver = [\"Erstelle ein NILE-Kundenkonto und profitiere von vielen Vorteilen:\",\r\n \"Erhalte bis zu 10% Rabatt mit dem Nilecard Punktesystem\", \r\n \"Erhalte Rabattgutscheine und Einladungen zu speziellen Events\", \r\n \"Speichere Produkte auf deiner Wunschliste für später\", \r\n \"Verfolge deinen Bestellverlauf und Punktestand in deinem Konto\"];\r\n break;\r\n default:\r\n langver = [resources.liLead, resources.liOne, resources.liTwo, resources.liThree, resources.liFour];\r\n break;\r\n }\r\n }\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n \r\n \r\n {signUpSectionHeading}\r\n {/* {signUpDescription} */}\r\n {langver && signUpNilecardDescription(langver)}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SignInView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './invoice-data';\nexport * from './invoice-status';\nexport * from './pay-invoices';\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterItemConfig, IFooterItemProps, IHeadingData, ILinkData } from './footer-item.props.autogenerated';\n\nexport interface IFooterViewProps extends IFooterItemProps {\n heading: React.ReactNode;\n image: React.ReactNode;\n text: React.ReactNode;\n linkText: React.ReactNode;\n className?: string;\n FooterItem: IModuleProps;\n HeadingContainer: INodeProps;\n ItemContainer: INodeProps;\n Link: INodeProps;\n EditableLink: React.ReactNode;\n}\n\n/**\n *\n * FooterItem component.\n * @extends {React.PureComponent>}\n */\nexport class FooterItem extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private attributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: IFooterItemProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n // Construct telemetry attribute to render\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public render(): JSX.Element {\n const { heading, image, link, text } = this.props.config;\n const footerItemClassName = classnames('ms-footer__item', this.props.config.className);\n const linkText = link && link.linkText ? link.linkText : '';\n this.payLoad.contentAction.etext = linkText;\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n const viewProps: IFooterViewProps = {\n ...this.props,\n heading: this._createHeading(heading!),\n image: this._createImageMarkup(image!),\n text: this._createText(text!),\n linkText: this._createLinkText(link!),\n EditableLink: this._createLink(link!),\n\n FooterItem: {\n moduleProps: this.props,\n className: footerItemClassName\n },\n\n HeadingContainer: {\n className: 'ms-footer__heading'\n },\n\n ItemContainer: {\n className: 'ms-footer__link__container'\n },\n\n // @ts-expect-error\n Link: link &&\n link.linkUrl &&\n link.linkUrl.destinationUrl && {\n tag: 'a',\n role: 'link',\n className: 'ms-footer__link',\n href: link.linkUrl.destinationUrl,\n title: linkText,\n 'aria-label': link.ariaLabel,\n target: link.openInNewTab ? '_blank' : undefined,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText),\n ...this.attributes\n },\n className: footerItemClassName\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.text = event.target.value);\n\n public handleLinkTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.link!.linkText = event.target.value);\n\n private _createLink(link: ILinkData): React.ReactNode | null {\n if (link) {\n const linkText = link.linkText ? link.linkText : '';\n\n // TODO: Update the inner tag in the anchor link to span\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-footer__link',\n linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: this.attributes!,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText)\n };\n return (\n \n );\n }\n return null;\n }\n\n private _createLinkText(link: ILinkData): React.ReactNode | null {\n if (!link || !link.linkText) {\n return null;\n }\n\n return {link.linkText};\n }\n\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\n if (!heading || !heading.text || heading.text.length === 0) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _createText(text: string): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createImageMarkup(item: Msdyn365.IImageData, ariaHiddenAttr?: boolean): React.ReactNode | null {\n if (!item || !item.src || item.src.length === 0) {\n return null;\n }\n\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=24&h=24&m=6', w: 0, h: 0 },\n lg: { q: 'w=24&h=24&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n return (\n \n );\n }\n}\n\nexport default FooterItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { addThrottledEvent, Drawer, IModuleProps, INodeProps, KeyCodes, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport React from 'react';\n\nimport { ISitePickerConfig, ISitePickerProps } from './site-picker.props.autogenerated';\n\nexport interface ISitePickerViewProps extends ISitePickerProps {\n SitePicker: IModuleProps;\n SitePickerMenu: INodeProps;\n SitePickerMenuSpan: INodeProps;\n SitePickerMenuList: INodeProps;\n SitePickerMenuListItem: INodeProps;\n SitePickerMenuListItemArray: React.ReactNode[] | undefined;\n siteOptionsState: boolean;\n SitePickerMobileContainer: INodeProps;\n isMobileView: boolean;\n renderSiteOptions(): void;\n resetSiteOptionsState(): void;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\ninterface ISitePickerState {\n expandSiteOptions: boolean;\n isMobile: boolean;\n}\n\n/**\n *\n * SitePicker component.\n * @extends {React.PureComponent>}\n */\nclass SitePicker extends React.PureComponent, ISitePickerState> {\n private readonly _cookieName: string = '_msdyn365___site_';\n\n private readonly _cookieExpirationInSeconds: number = 5_184_000;\n\n private readonly _sitePickerMenuNode: React.RefObject;\n\n private readonly _sitePickerMenuButton: React.RefObject;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\n @observable\n private viewport: GridSize;\n\n public constructor(props: ISitePickerViewProps) {\n super(props);\n this._handleChange = this._handleChange.bind(this);\n this._sitePickerMenuNode = React.createRef();\n this._sitePickerMenuButton = React.createRef();\n this._renderSiteOptions = this._renderSiteOptions.bind(this);\n this._resetSiteOptionsState = this._resetSiteOptionsState.bind(this);\n this._escFunction = this._escFunction.bind(this);\n this._handleOutsideClick = this._handleOutsideClick.bind(this);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this.state = {\n expandSiteOptions: false,\n isMobile: this.isMobile\n };\n }\n\n @computed get isMobile(): boolean {\n return this.viewport === 'xs' || this.viewport === 'sm';\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document?.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.addEventListener('mousedown', this._handleOutsideClick);\n this.resizeThrottledEventHandler = window && addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document?.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.removeEventListener('mousedown', this._handleOutsideClick, false);\n window && window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n\n public render(): JSX.Element | null {\n const viewProps: ISitePickerViewProps = {\n ...(this.props as ISitePickerProps),\n SitePicker: {\n moduleProps: this.props,\n className: classnames('ms-site-picker', this.props.config.className, this.state.isMobile ? 'mobile-view' : 'desktop-view'),\n tag: 'div'\n },\n SitePickerMenu: {\n tag: 'button' as NodeTag,\n className: 'ms-site-picker__button',\n 'aria-label': this.props.config.heading?.text,\n 'aria-expanded': this.state.expandSiteOptions,\n onClick: this.props,\n ref: this._sitePickerMenuButton\n },\n SitePickerMenuSpan: {\n className: 'ms-site-picker__span',\n tag: 'span'\n },\n SitePickerMenuList: {\n className: 'ms-site-picker__list',\n role: 'menu',\n tag: 'ul',\n ref: this._sitePickerMenuNode\n },\n SitePickerMenuListItem: {\n className: 'ms-site-picker__list__item',\n role: 'presentation',\n tag: 'li'\n },\n SitePickerMobileContainer: {\n tag: Drawer,\n className: 'ms-site-picker__drawer',\n toggleButtonText: this.props.config.heading?.text,\n openGlyph: 'ms-site-picker__drawer-open',\n closeGlyph: 'ms-site-picker__drawer-close',\n glyphPlacement: 'end'\n },\n isMobileView: this.state.isMobile,\n SitePickerMenuListItemArray: this._renderSitePickerImage(),\n renderSiteOptions: this._renderSiteOptions,\n resetSiteOptionsState: this._resetSiteOptionsState,\n siteOptionsState: this.state.expandSiteOptions\n };\n return this.props.renderView(viewProps);\n }\n\n private _renderSiteOptions(): void {\n const expandSiteOptionsState = this.state.expandSiteOptions;\n this.setState({\n expandSiteOptions: !expandSiteOptionsState\n });\n }\n\n private _resetSiteOptionsState(): void {\n this.setState({\n expandSiteOptions: false\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _escFunction = (event: any) => {\n const key = event.keyCode;\n if (this.state.expandSiteOptions) {\n switch (key) {\n case KeyCodes.Escape: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n this._sitePickerMenuButton?.current?.contains(nextFocus) ||\n this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n this._sitePickerMenuButton?.current?.focus();\n }\n }, 50);\n break;\n }\n case KeyCodes.Tab: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n !this._sitePickerMenuButton?.current?.contains(nextFocus) &&\n !this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n }\n }, 50);\n break;\n }\n default:\n return;\n }\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _handleOutsideClick = (event: any) => {\n if (\n (this._sitePickerMenuButton.current?.contains(event.target) && this.state.expandSiteOptions) ||\n (this._sitePickerMenuNode.current?.contains(event.target) && this.state.expandSiteOptions)\n ) {\n return;\n }\n this._resetSiteOptionsState();\n };\n\n private _handleChange(e: React.MouseEvent): void {\n e.preventDefault();\n if (e.currentTarget.href && e.currentTarget.href.length > 0 && window) {\n if (this.props.context.request.cookies.isConsentGiven()) {\n const cookieConfig = { maxAge: this._cookieExpirationInSeconds };\n this.props.context.request.cookies.set(this._cookieName, e.currentTarget.href, cookieConfig);\n }\n window.location.assign(e.currentTarget.href);\n }\n }\n\n private _renderSitePickerImage(): React.ReactNode[] | undefined {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n sm: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n md: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n lg: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n xl: { q: 'w=40&h=20&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n const siteOptions = this.props.config.siteOptions && this.props.config.siteOptions;\n return (\n siteOptions &&\n siteOptions.map((item, index) => {\n const image = item?.siteImage;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings?.viewports ? image.imageSettings : defaultImageSettings\n };\n return (\n \n {item?.siteName}\n \n \n );\n })\n );\n }\n\n private _updateViewport(): void {\n this.viewport = this._getViewport();\n this.setState({ isMobile: this.isMobile });\n }\n\n private _getViewport(): GridSize {\n const { context } = this.props;\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (typeof window !== undefined && 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 return 'xs';\n }\n}\n\nexport default SitePicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { EnumExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, Popover } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { IInvoiceStatusResources } from '../helpers/invoice-status';\n\nexport interface IInvoicesFilterResources extends IInvoiceStatusResources {\n invoicesFilterShowAll: string;\n}\n\nexport interface IInvoicesFilterProps extends IComponentProps {\n className: string;\n disabled: boolean;\n\n resources: IInvoicesFilterResources;\n\n currentState: InvoicesFilterState;\n onFilterStateChanged(state: InvoicesFilterState): void;\n}\n\nexport enum InvoicesFilterState {\n ShowAll,\n Paid,\n PartiallyPaid,\n Unpaid\n}\n\nconst getInvoicesFilterStateResources = (filterState: InvoicesFilterState, resources: IInvoicesFilterResources): string => {\n switch (filterState) {\n case InvoicesFilterState.ShowAll:\n return resources.invoicesFilterShowAll;\n case InvoicesFilterState.Paid:\n return resources.invoiceStatusPaid;\n case InvoicesFilterState.PartiallyPaid:\n return resources.invoiceStatusPartiallyPaid;\n case InvoicesFilterState.Unpaid:\n return resources.invoiceStatusUnpaid;\n default:\n throw new Error('Failed to retrieve resource description for unknown invoices filter state.');\n }\n};\n\n/**\n * On Click function.\n * @param onStateClick -Invoice filter state function.\n * @param filterState -Invoice filter state.\n * @returns Set Invoice filter state.\n */\nconst onClickHandler = (onStateClick: (filterState: InvoicesFilterState) => void, filterState: InvoicesFilterState) => () => {\n onStateClick(filterState);\n};\n\nconst renderFilterStateItem = (\n filterState: InvoicesFilterState,\n resources: IInvoicesFilterResources,\n className: string,\n onStateClick: (filterState: InvoicesFilterState) => void\n): React.ReactNode => {\n const stateStringRepresentation = InvoicesFilterState[filterState];\n\n return (\n \n );\n};\n\nconst InvoicesFilter: React.FC = (props: IInvoicesFilterProps) => {\n const popoverRef = React.createRef();\n const [popoverState, setPopoverState] = React.useState(false);\n const togglePopover = React.useCallback(() => {\n setPopoverState(!popoverState);\n }, [popoverState]);\n\n const [filterState, setFilterState] = React.useState(props.currentState);\n\n const onFilterStateClick = (clickedState: InvoicesFilterState) => {\n setFilterState(clickedState);\n setPopoverState(false);\n props.onFilterStateChanged(clickedState);\n };\n\n return (\n
\n \n {getInvoicesFilterStateResources(filterState, props.resources)}\n \n \n {EnumExtensions.getEnumValues(InvoicesFilterState).map(state => {\n return renderFilterStateItem(state, props.resources, props.className, onFilterStateClick);\n })}\n \n
\n );\n};\n\nexport const InvoicesFilterComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoicesFilterProps\n>('InvoicesFilterComponent', { component: InvoicesFilter });\n","/*--------------------------------------------------------------\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\n/* eslint-disable no-duplicate-imports */\r\nimport { getPayloadObject, getTelemetryAttributes, IPayLoad, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface ICookieComplianceAcceptButton {\r\n acceptCookiesButtonText?: string;\r\n acceptCookiesButtonAriaLabel?: string;\r\n\r\n /**\r\n * The telemetry content\r\n */\r\n telemetryContent?: ITelemetryContent;\r\n onClose(): void;\r\n}\r\n\r\nexport const CookieComplianceAcceptButton: React.FC = ({\r\n acceptCookiesButtonText,\r\n acceptCookiesButtonAriaLabel,\r\n telemetryContent,\r\n onClose\r\n}) => {\r\n const payLoad: IPayLoad = getPayloadObject('click', telemetryContent!, 'accept cookies');\r\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n\r\n return (\r\n \r\n {acceptCookiesButtonText}\r\n \r\n );\r\n};\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\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IActionLinksData } from '../clarity-cookie-compliance.props.autogenerated';\r\n\r\nexport interface ICookieComplianceLinks {\r\n links: IActionLinksData[];\r\n requestContext: Msdyn365.IRequestContext;\r\n telemetryContent: ITelemetryContent;\r\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\r\n}\r\n\r\n/**\r\n *\r\n * ContentCardLinks component.\r\n * @extends {React.PureComponent}\r\n */\r\nexport class CookieComplianceLinks extends React.PureComponent {\r\n public render(): JSX.Element {\r\n const editableLinks = this._mapEditableLinks(this.props.links);\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\n private readonly _mapEditableLinks = (linkdata: IActionLinksData[]): Msdyn365.ILinksData[] | null => {\r\n if (!linkdata || linkdata.length === 0) {\r\n return null;\r\n }\r\n const editableLinks: Msdyn365.ILinksData[] = [];\r\n linkdata.forEach((link, index) => {\r\n // Construct telemetry attribute to render\r\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\r\n const linkText = link.linkText ? link.linkText : '';\r\n payLoad.contentAction.etext = linkText;\r\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\r\n const editableLink: Msdyn365.ILinksData = {\r\n ariaLabel: link.ariaLabel,\r\n className: 'link',\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 onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\r\n };\r\n editableLinks.push(editableLink);\r\n });\r\n\r\n return editableLinks;\r\n };\r\n}\r\n\r\nexport default CookieComplianceLinks;\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\n/* eslint-disable no-duplicate-imports */\r\nimport * as MsDyn365 from '@msdyn365-commerce/core';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { getTelemetryObject, IAlertProps, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { CookieComplianceAcceptButton, CookieComplianceLinks } from './components';\r\nimport { IClarityCookieComplianceConfig, IClarityCookieComplianceProps } from './clarity-cookie-compliance.props.autogenerated';\r\n\r\n/**\r\n * Alert state interface.\r\n */\r\nexport interface IAlertState {\r\n visible: boolean;\r\n}\r\n\r\n/**\r\n * Cookie compliance view props interface.\r\n */\r\nexport interface ICookieComplianceViewProps extends IClarityCookieComplianceProps<{}> {\r\n CookieComplianceBanner: IModuleProps;\r\n AlertProps: IAlertProps;\r\n Content: INodeProps;\r\n text?: React.ReactNode;\r\n links?: React.ReactNode;\r\n acceptButton?: React.ReactNode;\r\n className: string;\r\n onDismiss(): void;\r\n}\r\n\r\n/**\r\n *\r\n * CookieCompliance component.\r\n * @extends {React.PureComponent>}\r\n */\r\nclass CookieCompliance extends React.PureComponent, IAlertState> {\r\n private readonly cookieRef: React.RefObject;\r\n\r\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n\r\n public constructor(props: IClarityCookieComplianceProps) {\r\n super(props);\r\n this.state = { visible: false };\r\n this.cookieRef = React.createRef();\r\n this._onDismiss = this._onDismiss.bind(this);\r\n }\r\n\r\n public componentDidMount(): void {\r\n const { context } = this.props;\r\n\r\n if (context && context.request && context.request.cookies && !context.request.cookies.isConsentGiven()) {\r\n this.setState({ visible: true });\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { config, context, resources, telemetry } = this.props;\r\n const { acceptCookiesButtonText, acceptCookiesAriaLabel } = resources;\r\n const { visible } = this.state;\r\n\r\n const isConsentGiven = context && context.request && context.request.cookies && context.request.cookies.isConsentGiven();\r\n let moduleConfig: IClarityCookieComplianceConfig;\r\n\r\n try {\r\n moduleConfig = config;\r\n } catch (error) {\r\n telemetry.error(`Something went wrong while rendering the alert module ------${error}`);\r\n return
{error}
;\r\n }\r\n\r\n if (isConsentGiven && !visible) {\r\n this.props.context.telemetry.error('Cookie Compliance content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n if (!MsDyn365.msdyn365Commerce.isBrowser) {\r\n return <>;\r\n }\r\n\r\n const viewProps = {\r\n ...this.props,\r\n onDismiss: this._onDismiss,\r\n CookieComplianceBanner: {\r\n moduleProps: this.props,\r\n className: classnames('ms-cookie-compliance', moduleConfig.className),\r\n ref: this.cookieRef\r\n },\r\n AlertProps: {\r\n className: 'ms-cookie-compliance__container',\r\n color: 'white',\r\n fade: false\r\n },\r\n Content: {\r\n className: 'ms-cookie-compliance__content'\r\n },\r\n text: moduleConfig.content && (\r\n \r\n ),\r\n links: ArrayExtensions.hasElements(moduleConfig.actionLinks) && (\r\n \r\n ),\r\n acceptButton: (\r\n \r\n )\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n /**\r\n * Handles Link content change event.\r\n * @param linkIndex - Index of link in linkarray.\r\n * @returns Void.\r\n */\r\n public handleLinkTextChange = (linkIndex: number) => (event: MsDyn365.ContentEditableEvent): void => {\r\n if (this.props.config.actionLinks?.[linkIndex]) {\r\n this.props.config.actionLinks[linkIndex].linkText = event.target.value;\r\n }\r\n };\r\n\r\n /**\r\n * Handles content change event.\r\n * @param event - Event.\r\n */\r\n public handleContentChange = (event: MsDyn365.ContentEditableEvent): void => {\r\n this.props.config.content = event.target.value;\r\n };\r\n\r\n private _onDismiss(): void {\r\n const { context } = this.props;\r\n\r\n if (context && context.request && context.request.cookies) {\r\n context.request.cookies.setConsentCookie();\r\n if (MsDyn365.msdyn365Commerce.isBrowser && window.frames['clarity'] !== null) {\r\n // https://learn.microsoft.com/en-us/clarity/setup-and-installation/cookie-consent#step-2\r\n // @ts-expect-error\r\n window.clarity('consent');\r\n }\r\n location.reload();\r\n }\r\n this.setState({ visible: false });\r\n }\r\n}\r\n\r\nexport default CookieCompliance;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n NodeTag,\n TelemetryConstant\n} 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 private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private readonly expandAllButtonRef: React.RefObject = React.createRef();\n\n private readonly collapseAllButtonRef: React.RefObject = React.createRef();\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(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n this.state = { isDisabled: false };\n }\n\n public render(): JSX.Element {\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:\n slots &&\n slots.accordionItems &&\n slots.accordionItems.length > 0 &&\n 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 const { heading } = config;\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 setTimeout(() => {\n this.collapseAllButtonRef.current?.focus();\n }, 50);\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 setTimeout(() => {\n this.expandAllButtonRef.current?.focus();\n }, 50);\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\nexport default Accordion;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountInvoiceTileViewProps } from './account-invoice-tile';\n\nexport default (props: IAccountInvoiceTileViewProps) => {\n const { AccountInvoiceTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\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\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport {\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n getTelemetryObject,\r\n IModuleProps,\r\n INodeProps,\r\n IPayLoad,\r\n ITelemetryContent,\r\n onTelemetryClick\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { ICookieSetOptions } from '@msdyn365-commerce/core-internal'; //\r\n\r\nimport { IFooterRegionSwitchConfig, IFooterRegionSwitchProps, IHeadingData } from './footer-region-switch.props.autogenerated';\r\n\r\nexport interface IFooterViewProps extends IFooterRegionSwitchProps {\r\n heading: React.ReactNode;\r\n image: React.ReactNode;\r\n text: React.ReactNode;\r\n linkText: React.ReactNode;\r\n className?: string;\r\n FooterItem: IModuleProps;\r\n HeadingContainer: INodeProps;\r\n ItemContainer: INodeProps;\r\n Link: INodeProps;\r\n EditableLink: React.ReactNode;\r\n}\r\n\r\n/**\r\n *\r\n * FooterItem component.\r\n * @extends {React.PureComponent>}\r\n */\r\nexport class FooterItem extends React.PureComponent> {\r\n private readonly telemetryContent: ITelemetryContent;\r\n private _preferredSiteStorageKey: string = '_msdyn365___site_';\r\n private readonly payLoad: IPayLoad;\r\n\r\n private attributes: Msdyn365.IDictionary | undefined;\r\n\r\n constructor(props: IFooterRegionSwitchProps) {\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 // Construct telemetry attribute to render\r\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\r\n }\r\n\r\n /**\r\n * Handles click event of country selection.\r\n * @param storageKey - Cookie storage key.\r\n * @param storageValue - Preffered site url.\r\n */\r\n public _writeToCookie = (storageKey?: string, storageValue?: string): void => {\r\n if (!storageKey || !storageValue) {\r\n return;\r\n }\r\n const cookieOptions: ICookieSetOptions = { secure: true, sameSite: 'none' };\r\n cookieOptions.maxAge = this.props.config.cookieLifetime;\r\n this.props.context.request.cookies.set(storageKey, storageValue, cookieOptions);\r\n };\r\n\r\n public _stripTrailingSlashes = (path: string): string => {\r\n return path.replace(/\\/+$/, '');\r\n };\r\n\r\n public stripLocale = (input: string): string => {\r\n var result = input;\r\n if (input.includes('/eu-en') || input.includes('/fr-ch')) {\r\n result = input.slice(6);\r\n } else if (input.includes('/en') || input.includes('/eu') || input.includes('/fr')) {\r\n result = input.slice(3);\r\n } else if (input.length > 0) {\r\n result = input.slice(0);\r\n }\r\n return result;\r\n };\r\n\r\n public render(): JSX.Element {\r\n const { heading, image, link, linkText, text } = this.props.config;\r\n const footerItemClassName = classnames('ms-footer__item', this.props.config.className);\r\n this.payLoad.contentAction.etext = linkText;\r\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\r\n const goodLink = link ? link : '';\r\n const fixedURL = this._stripTrailingSlashes(\r\n `${this.props.context.request.url.requestUrl.origin}/${goodLink}${this.stripLocale(\r\n this.props.context.request.url.requestUrl.pathname.toString()\r\n )}${this.props.context.request.url.requestUrl.search ?? ''}`\r\n );\r\n const cookieLink = `${this.props.context.request.url.requestUrl.origin}/${goodLink}`; //TODO: Make sure cookie link is correct.\r\n const viewProps: IFooterViewProps = {\r\n ...this.props,\r\n heading: this._createHeading(heading!),\r\n image: this._createImageMarkup(image!),\r\n text: this._createText(text!),\r\n linkText: this._createLinkText(linkText!),\r\n EditableLink: this._createLink(fixedURL, linkText!, cookieLink),\r\n\r\n FooterItem: {\r\n moduleProps: this.props,\r\n className: footerItemClassName\r\n },\r\n\r\n HeadingContainer: {\r\n className: 'ms-footer__heading'\r\n },\r\n\r\n ItemContainer: {\r\n className: 'ms-footer__link__container'\r\n },\r\n\r\n // @ts-expect-error\r\n Link: goodLink &&\r\n fixedURL && {\r\n tag: 'a',\r\n role: 'link',\r\n className: 'ms-footer__link',\r\n href: fixedURL,\r\n title: linkText,\r\n // 'aria-label': link.ariaLabel,\r\n // target: link.openInNewTab ? '_blank' : undefined,\r\n onClick: () => {\r\n this._writeToCookie(this._preferredSiteStorageKey, cookieLink);\r\n onTelemetryClick(this.telemetryContent, this.payLoad, linkText!);\r\n },\r\n ...this.attributes\r\n },\r\n className: footerItemClassName\r\n };\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\r\n\r\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.text = event.target.value);\r\n\r\n public handleLinkTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.linkText = event.target.value);\r\n\r\n private _createLink(link: string, linkText: string, cookieLink: string): React.ReactNode | null {\r\n if (link) {\r\n // TODO: Update the inner tag in the anchor link to span\r\n const editableLink: Msdyn365.ILinksData = {\r\n //ariaLabel: link.ariaLabel,\r\n className: 'ms-footer__link',\r\n linkText,\r\n linkUrl: link,\r\n //openInNewTab: link.openInNewTab,\r\n role: 'link',\r\n additionalProperties: this.attributes!,\r\n onClick: () => {\r\n this._writeToCookie(this._preferredSiteStorageKey, cookieLink);\r\n onTelemetryClick(this.telemetryContent, this.payLoad, linkText);\r\n }\r\n };\r\n return (\r\n \r\n );\r\n }\r\n return null;\r\n }\r\n\r\n private _createLinkText(linkText: string): React.ReactNode | null {\r\n if (!linkText) {\r\n return null;\r\n }\r\n\r\n return {linkText};\r\n }\r\n\r\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\r\n if (!heading || !heading.text || heading.text.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _createText(text: string): React.ReactNode | null {\r\n if (!text) {\r\n return null;\r\n }\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _createImageMarkup(item: Msdyn365.IImageData, ariaHiddenAttr?: boolean): React.ReactNode | null {\r\n if (!item || !item.src || item.src.length === 0) {\r\n return null;\r\n }\r\n\r\n const defaultImageSettings: Msdyn365.IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=24&h=24&m=6', w: 0, h: 0 },\r\n lg: { q: 'w=24&h=24&m=6', w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default FooterItem;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { Button, ITelemetryContent, getPayloadObject, getTelemetryAttributes } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-organization-wide-selector';\nconst buttonClassName = `${componentClassName}__button`;\nconst buttonActiveClassName = `${componentClassName}__active-button`;\nconst buttonInactiveClassName = `${componentClassName}__inactive-button`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources {\n currentUserOptionLabel: string;\n currentUserOptionAriaLabel?: string;\n organizationWideOptionLabel: string;\n organizationWideOptionAriaLabel?: string;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState interface.\n */\nexport enum OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState {\n CurrentUser,\n OrganizationWide\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorData interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorData {\n customer: Customer;\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n extends IComponentProps {\n className?: string;\n resources: IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources;\n currentSelectorState: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState;\n telemetryContent?: ITelemetryContent;\n onChange(state: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState): void;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelector component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersOrganizationWideSelectorFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n) => {\n // Current version doesn't include functionality for non b2b users or non-admin b2b users.\n if (!props.data.customer.IsB2bAdmin) {\n return
;\n }\n\n const [selectorState, setSelectorState] = React.useState(props.currentSelectorState);\n\n const onClickHandler = (newSelectorState: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState) => {\n setSelectorState(newSelectorState);\n props.onChange(newSelectorState);\n };\n\n // define telemetry attributes\n const currentUserOrderHistoryAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, props.resources?.currentUserOptionLabel ?? 'Current user order history')\n );\n const orgWideOrderHistoryAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, props.resources?.currentUserOptionLabel ?? 'Org wide order history')\n );\n\n return (\n
\n onClickHandler(OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.CurrentUser)}\n {...currentUserOrderHistoryAttributes}\n >\n {props.resources?.currentUserOptionLabel}\n \n onClickHandler(OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.OrganizationWide)}\n {...orgWideOrderHistoryAttributes}\n >\n {props.resources?.organizationWideOptionLabel}\n \n
\n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelector component.\n */\nexport const OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n>('OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent', {\n component: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorFunctionalComponent\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IHeader, IMapViewProps } from './map';\n\n/**\n * Render the heading.\n * @param param0 -- Heading props.\n * @param param0.headerProps -- Heading Props.\n * @param param0.heading -- Heading Node.\n * @returns -- Returns the node.\n */\nconst MapHeader: React.FC = ({ headerProps, heading }) => {heading};\n\n/**\n * Renders the map view props.\n * @param param0 -- Map view props.\n * @param param0.ModuleProps -- Module props.\n * @param param0.Header -- Header props.\n * @param param0.MapProps -- Map props.\n * @returns -- Returns the map module.\n */\nconst MapView: React.FC = ({ ModuleProps, Header, MapProps }) => (\n \n {Header && }\n \n \n);\n\nexport default MapView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IFooterViewProps } from './footer-item';\n\n/**\n *\n * FooterItemView component.\n * @extends {React.PureComponent}\n */\nexport class FooterItemView extends React.PureComponent {\n public render(): JSX.Element | null {\n const { FooterItem } = this.props;\n return {this._renderElement(this.props)};\n }\n\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\n if (heading) {\n return {heading} ;\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","/*--------------------------------------------------------------\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\n/* eslint-disable no-duplicate-imports */\r\nimport * as MsDyn365Lib from '@msdyn365-commerce/core';\r\nimport MsDyn365 from '@msdyn365-commerce/core';\r\nimport { ICookieSetOptions, IImageDimension } from '@msdyn365-commerce/core-internal';\r\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport {\r\n Button,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n getTelemetryObject,\r\n IModuleProps,\r\n INodeProps,\r\n ITelemetryContent,\r\n Modal,\r\n ModalBody,\r\n ModalFooter,\r\n ModalHeader,\r\n onTelemetryClick\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ICountryPickerAllData } from './country-picker-all.data';\r\nimport { IActionLinkData, ICountryListData, ICountryPickerAllProps } from './country-picker-all.props.autogenerated';\r\n\r\n/**\r\n * CountryPicker view props interface.\r\n */\r\nexport interface ICountryPickerViewProps extends ICountryPickerAllProps {\r\n modalContainer: IModuleProps;\r\n modalHeaderContainer: INodeProps;\r\n modalFooterContainer: INodeProps;\r\n modalBodyContainer: INodeProps;\r\n heading?: React.ReactNode;\r\n subheading?: React.ReactNode;\r\n link?: React.ReactNode;\r\n countryList?: ICountryStructure[];\r\n isModalOpen?: boolean;\r\n state?: ICountryPickerState;\r\n stayOnCurrentSiteButton?: React.ReactNode;\r\n}\r\n\r\nexport interface ICountryStructure {\r\n name?: string;\r\n elements?: React.ReactNode[];\r\n}\r\n\r\n/**\r\n * ICountryPickerState: Interface for Country picker State.\r\n */\r\nexport interface ICountryPickerState {\r\n isModalOpen: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * CountryPicker component.\r\n * @extends {React.PureComponent>}\r\n */\r\nexport class CountryPicker extends React.PureComponent, ICountryPickerState> {\r\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n\r\n private readonly _preferredSiteStorageKey: string = '_msdyn365___site_';\r\n private readonly _preferredSiteNameStorageKey: string = '_msdyn365___sitename_';\r\n\r\n //private readonly _cookieExpirationTime = 5_184_000;\r\n\r\n private readonly _makeBaseUrl = function(origin: string, path: string) {\r\n let ext = '';\r\n const base = origin.charAt(origin.length - 1) === '/' ? origin.slice(0, origin.length - 1) : origin;\r\n if (path.indexOf('/eu-en') === 0) {\r\n ext = 'eu-en';\r\n } else if (path.indexOf('/en') === 0) {\r\n ext = 'en';\r\n } else if (path.indexOf('/fr-ch') === 0) {\r\n ext = 'fr-ch';\r\n } else if (path.indexOf('/fr') === 0) {\r\n ext = 'fr';\r\n } else if (path.indexOf('/eu') === 0) {\r\n ext = 'eu';\r\n } else {\r\n return base;\r\n }\r\n return `${base}/${ext}`;\r\n };\r\n\r\n private validateCookieValue(cookie: string): boolean {\r\n if (\r\n cookie === `${this.props.context.request.url.requestUrl.origin}` ||\r\n cookie === `${this.props.context.request.url.requestUrl.origin}/` ||\r\n cookie === `${this.props.context.request.url.requestUrl.origin}/en` ||\r\n cookie === `${this.props.context.request.url.requestUrl.origin}/fr-ch` ||\r\n cookie === `${this.props.context.request.url.requestUrl.origin}/fr` ||\r\n cookie === `${this.props.context.request.url.requestUrl.origin}/eu` ||\r\n cookie === `${this.props.context.request.url.requestUrl.origin}/eu-en`\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public constructor(props: ICountryPickerAllProps) {\r\n super(props);\r\n let isCookieValueSet: boolean = false;\r\n const baseUrl = this._makeBaseUrl(props.context.request.url.requestUrl.origin, props.context.request.url.requestUrl.pathname);\r\n let cookieValue: string | undefined;\r\n if (props.context.request.cookies.get(this._preferredSiteStorageKey).value) {\r\n isCookieValueSet = true;\r\n cookieValue = this._stripTrailingSlashes(props.context.request.cookies.get(this._preferredSiteStorageKey).value as string);\r\n if (MsDyn365.isBrowser) {\r\n if (\r\n this.validateCookieValue(this._appendProtocolToUrl(cookieValue)) &&\r\n this._appendProtocolToUrl(cookieValue) !== baseUrl &&\r\n props.config.autoRedirect &&\r\n window.location.href.search('localhost:4000') !== 8 //This will always be 8 if you are on localhost. please do not redirect\r\n ) {\r\n window.location.replace(\r\n this._appendProtocolToUrl(cookieValue) +\r\n this.stripLocale(this.props.context.request.url.requestUrl.pathname.toString()) +\r\n this.props.context.request.url.requestUrl.search ?? ''\r\n );\r\n }\r\n }\r\n }\r\n if (this.props.config.autoRedirect) {\r\n this.state = {\r\n isModalOpen: !isCookieValueSet // || (cookieValue !== undefined && this._appendProtocolToUrl(cookieValue) !== baseUrl)\r\n };\r\n } else {\r\n this.state = {\r\n isModalOpen: !isCookieValueSet || (cookieValue !== undefined && this._appendProtocolToUrl(cookieValue) !== baseUrl)\r\n };\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { heading, subheading, countryList, actionLink } = this.props.config;\r\n\r\n const isConsentGiven = this.props.context.request.cookies.isConsentGiven();\r\n\r\n if (!isConsentGiven) {\r\n return null;\r\n }\r\n\r\n const countryPickerHeading = heading && (\r\n \r\n );\r\n\r\n const countryPickerSubHeading = subheading && (\r\n \r\n );\r\n\r\n const countryPickerActionLink = actionLink && this.createLink(actionLink);\r\n const currentSiteButton = (\r\n \r\n );\r\n\r\n const viewprops: ICountryPickerViewProps = {\r\n ...this.props,\r\n state: this.state,\r\n isModalOpen: this.state.isModalOpen,\r\n modalContainer: {\r\n moduleProps: this.props,\r\n tag: Modal,\r\n className: 'ms-country-picker__dialog',\r\n isOpen: true,\r\n 'aria-label': 'country-picker',\r\n toggle: this.closeModal,\r\n modalTransition: { timeout: 0 },\r\n shouldUpdateFocusToFirstElement: true\r\n },\r\n modalHeaderContainer: {\r\n tag: ModalHeader,\r\n className: 'ms-country-picker__modal-header',\r\n toggle: this.closeModal\r\n },\r\n modalFooterContainer: {\r\n tag: ModalFooter,\r\n className: 'ms-countryPicker__modal-footer'\r\n },\r\n modalBodyContainer: {\r\n tag: ModalBody,\r\n className: 'ms-counrtyPicker__modal-body'\r\n },\r\n heading: countryPickerHeading,\r\n subheading: countryPickerSubHeading,\r\n link: countryPickerActionLink,\r\n countryList: countryList && this.renderCountryList(),\r\n stayOnCurrentSiteButton: currentSiteButton\r\n };\r\n\r\n return this.props.renderView(viewprops);\r\n }\r\n\r\n /**\r\n * Initiate close modal.\r\n */\r\n public readonly closeModal = (): void => {\r\n this.setState({\r\n isModalOpen: false\r\n });\r\n };\r\n\r\n public handleParagraphChange(event: MsDyn365Lib.ContentEditableEvent): void {\r\n this.props.config.subheading = event.target.value;\r\n }\r\n\r\n public handleTextChange(event: MsDyn365Lib.ContentEditableEvent): void {\r\n this.props.config.heading!.text = event.target.value;\r\n }\r\n\r\n public handleLinkTextChange(event: MsDyn365Lib.ContentEditableEvent): void {\r\n if (this.props.config.actionLink?.linkText) {\r\n this.props.config.actionLink.linkText = event.target.value;\r\n }\r\n }\r\n\r\n public createLink(link?: IActionLinkData): React.ReactNode | null {\r\n if (!StringExtensions.isNullOrEmpty(link?.linkUrl.destinationUrl)) {\r\n const linkText = link?.linkText ?? '';\r\n const payLoad = getPayloadObject('click', this._telemetryContent, '', '');\r\n const attributes = getTelemetryAttributes(this._telemetryContent, payLoad);\r\n const editableLink: MsDyn365Lib.ILinksData = {\r\n ariaLabel: link?.ariaLabel,\r\n className: 'ms-countryPicker__link',\r\n linkText,\r\n linkUrl: link?.linkUrl.destinationUrl,\r\n openInNewTab: link?.openInNewTab,\r\n role: 'link',\r\n additionalProperties: attributes!,\r\n onClick: onTelemetryClick(this._telemetryContent, payLoad, linkText)\r\n };\r\n return (\r\n \r\n );\r\n }\r\n return null;\r\n }\r\n\r\n public renderCountryList(): ICountryStructure[] {\r\n const countryList = this.props.config.countryList;\r\n\r\n const countryGroups = countryList && groupBy(countryList, x => x.displayGroup);\r\n\r\n const countryLinks: ICountryStructure[] = [];\r\n\r\n countryGroups?.forEach(countrydata => {\r\n const clinks = countrydata.map((item: ICountryListData) => {\r\n return this.renderCountry(item);\r\n });\r\n\r\n countryLinks.push({ name: countrydata[0].displayGroup, elements: clinks });\r\n });\r\n return countryLinks;\r\n }\r\n\r\n public renderCountry(item: ICountryListData): React.ReactNode {\r\n const imageSize: IImageDimension = { q: 'w=48&h=48&m=6', w: 0, h: 0 };\r\n const defaultImageSettings: MsDyn365Lib.IImageSettings = {\r\n viewports: {\r\n xs: imageSize,\r\n lg: imageSize,\r\n xl: imageSize\r\n },\r\n lazyload: true\r\n };\r\n const image = item.image;\r\n const imageProps = {\r\n gridSettings: this.props.context.request.gridSettings!,\r\n imageSettings: image?.imageSettings ?? defaultImageSettings\r\n };\r\n\r\n return (\r\n \r\n {image && (\r\n \r\n )}\r\n
\r\n {`${item.displayGroupLocalizedName ??\r\n item.displayGroup}(${item.displayString})`}\r\n
\r\n \r\n );\r\n }\r\n\r\n private stripLocale(input: string): string {\r\n var result = input;\r\n if (input.includes('/eu-en') || input.includes('/fr-ch')) {\r\n result = input.slice(6);\r\n } else if (input.includes('/en') || input.includes('/eu') || input.includes('/fr')) {\r\n result = input.slice(3);\r\n } else if (input.length > 0) {\r\n result = input;\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Writes the current site base url to cookie and closes the country picker modal dialog.\r\n */\r\n private readonly _handleStayOnSiteButtonClick = (): void => {\r\n const currentBaseUrl = this.props.context.request.marketSettings?.currentBaseUrl;\r\n if (currentBaseUrl) {\r\n const urlToStore = this._appendProtocolToUrl(currentBaseUrl);\r\n this._writeToCookie(this._preferredSiteStorageKey, urlToStore);\r\n }\r\n this.closeModal();\r\n };\r\n\r\n /**\r\n * Handles click event of country selection.\r\n * @param storageKey - Cookie storage key.\r\n * @param storageValue - Preffered site url.\r\n * @returns - This method just writes the cookie to the browser.\r\n */\r\n private readonly _handleClick = (storageKey?: string, storageValue?: string, storageKey2?: string, storageValue2?: string) => () => {\r\n this._writeToCookie(storageKey, storageValue);\r\n this._writeToCookie(storageKey2, storageValue2);\r\n };\r\n\r\n /**\r\n * Handles click event of country selection.\r\n * @param storageKey - Cookie storage key.\r\n * @param storageValue - Preffered site url.\r\n */\r\n private readonly _writeToCookie = (storageKey?: string, storageValue?: string): void => {\r\n if (!storageKey || !storageValue) {\r\n return;\r\n }\r\n const cookieOptions: ICookieSetOptions = { secure: true, sameSite: 'none' };\r\n cookieOptions.maxAge = this.props.config.cookieLifetime;\r\n this.props.context.request.cookies.set(storageKey, storageValue, cookieOptions);\r\n };\r\n\r\n /**\r\n * Appends protocol to an url.\r\n * @param baseUrl - Url to be formatted.\r\n * @returns - URL after appending protocol.\r\n */\r\n private readonly _appendProtocolToUrl = (baseUrl: string): string => {\r\n return !baseUrl.includes('https://') ? `https://${baseUrl}` : baseUrl;\r\n };\r\n\r\n private readonly _stripTrailingSlashes = (path: string): string => {\r\n return path.replace(/\\/+$/, '');\r\n };\r\n}\r\n\r\nfunction groupBy(array: V[], grouper: (item: V) => K) {\r\n return array.reduce((store, item) => {\r\n var key = grouper(item);\r\n if (!store.has(key)) {\r\n store.set(key, [item]);\r\n } else {\r\n store?.get(key)?.push(item);\r\n }\r\n return store;\r\n }, new Map());\r\n}\r\n\r\nexport default CountryPicker;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountOrganizationUsersTileDescription {\n description: string;\n}\n\nexport const AccountOrganizationUsersTileDescription: React.FC = ({ description }) => (\n

{description}

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

{props.resources.headingForEmptyOrderTemplateList}

\n

{props.resources.textForEmptyOrderTemplateList}

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