{"version":3,"sources":["webpack:///src/modules/password-reset-verification/components/password-reset-verification-loading-message.tsx?97ae","webpack:///src/modules/tab-item/tab-item.view.tsx?76f0","webpack:///src/modules/account-customer-balance-tile/index.ts?038c","webpack:///./src/themes/mands/views/password-reset-verification.view.tsx?268c","webpack:///src/modules/account-address-tile/components/index.ts?24f7","webpack:///src/modules/account-customer-balance-tile/components/account-customer-balance-tile-info.tsx?a91f","webpack:///src/modules/sign-in/sign-in.view.tsx?a753","webpack:///src/modules/sign-in/components/sign-in-loading-icon.tsx?3d5a","webpack:///src/modules/account-address-tile/index.ts?effb","webpack:///src/modules/loyalty-terms/components/index.ts?508b","webpack:///src/modules/b2b-requests-tile/components/account-b2b-requests-tile-links.tsx?4f55","webpack:///src/modules/b2b-requests-tile/b2b-requests-tile.tsx?ce42","webpack:///src/modules/account-profile/index.ts?8c04","webpack:///src/modules/password-reset-verification/components/password-reset-verification-button.tsx?d3bb","webpack:///src/modules/fabrikam/views/navigation-menu.view.tsx?5991","webpack:///src/modules/account-loyalty-tile/components/index.ts?c444","webpack:///src/modules/sign-in/components/sign-in-text.tsx?92d7","webpack:///src/modules/subscribe/subscribe.view.tsx?c40a","webpack:///src/modules/loyalty-sign-up/components/loyalty-sign-up-small-components.tsx?d781","webpack:///src/modules/loyalty-sign-up/loyalty-sign-up.tsx?f29d","webpack:///src/modules/password-reset-verification/components/password-reset-verification-error.tsx?5cfd","webpack:///src/modules/password-reset-verification/components/password-reset-verification-success.tsx?8c35","webpack:///src/modules/sign-in/components/sign-in-button.tsx?a9cc","webpack:///src/modules/account-customer-balance-tile/account-customer-balance-tile.view.tsx?955a","webpack:///src/modules/sign-in/components/sign-in-label.tsx?d42c","webpack:///src/modules/account-wishlist-tile/components/account-wishlist-tile-description.tsx?c387","webpack:///src/modules/account-wishlist-tile/components/account-wishlist-tile-links.tsx?3c8d","webpack:///src/modules/account-wishlist-tile/account-wishlist-tile.tsx?8a2b","webpack:///src/modules/b2b-requests-status/b2b-requests-status.view.tsx?afa7","webpack:///src/modules/loyalty-sign-up/index.ts?408b","webpack:///src/modules/fabrikam/views/search-result-container.view.tsx?f8ea","webpack:///src/modules/sign-in/index.ts?5400","webpack:///src/modules/account-loyalty-tile/index.ts?b609","webpack:///src/modules/tab/tab.tsx?d713","webpack:///src/modules/business-organization-list/business-organization-list.view.tsx?8701","webpack:///src/modules/business-organization-list/components/small-components.tsx?104e","webpack:///src/modules/business-organization-list/business-organization-list.tsx?b6f5","webpack:///src/modules/account-customer-balance-tile/components/account-customer-balance-tile-links.tsx?5f47","webpack:///src/modules/account-generic-tile/account-generic-tile.tsx?4504","webpack:///src/modules/sign-in/sign-in.tsx?44ed","webpack:///src/index.ts?c6ae","webpack:///src/modules/business-partners/business-partners.view.tsx?677a","webpack:///src/modules/password-reset-verification/components/password-reset-verification-label.tsx?70a3","webpack:///src/modules/account-customer-balance-tile/account-customer-balance-tile.tsx?9383","webpack:///src/modules/loyalty-sign-up/loyalty-sign-up.view.tsx?ed3f","webpack:///src/modules/subscribe/subscribe.tsx?0278","webpack:///src/modules/account-generic-tile/account-generic-tile.view.tsx?bca1","webpack:///src/modules/sign-up/components/index.ts?0666","webpack:///src/modules/tab-item/tab-item.tsx?d2c1","webpack:///src/modules/password-reset-verification/components/password-reset-verification-loading-icon.tsx?7944","webpack:///src/modules/fabrikam/views/header.view.tsx?1cde","webpack:///src/modules/b2b-requests-status/index.ts?e772","webpack:///src/modules/password-reset-verification/password-reset-verification.tsx?9795","webpack:///src/modules/account-wishlist-tile/account-wishlist-tile.view.tsx?58da","webpack:///src/modules/account-welcome-tile/index.ts?2bd4","webpack:///src/modules/tab/tab.view.tsx?701e","webpack:///src/modules/account-loyalty/index.ts?6823","webpack:///src/modules/sign-up/index.ts?7cfc","webpack:///src/modules/loyalty-terms/components/loyalty-terms-modal.tsx?c84d","webpack:///src/modules/account-customer-balance-tile/components/index.ts?1499","webpack:///src/modules/loyalty-terms/loyalty-terms.tsx?0629","webpack:///src/modules/sign-in/components/sign-in-input.tsx?eb41","webpack:///src/modules/account-welcome-tile/account-welcome-tile.tsx?abcf","webpack:///src/modules/account-wishlist-tile/index.ts?b510","webpack:///src/modules/account-generic-tile/components/account-generic-tile-links.tsx?e4df","webpack:///src/modules/tile-list-item/tile-list-item.view.tsx?0144","webpack:///src/modules/account-profile/components/index.ts?41ea","webpack:///src/modules/account-loyalty/account-loyalty.tsx?82db","webpack:///src/modules/b2b-requests-tile/b2b-requests-tile.view.tsx?949e","webpack:///src/modules/sign-in/components/sign-in-link.tsx?fc9f","webpack:///src/modules/business-partners/components/search-bar.tsx?cefc","webpack:///src/modules/business-partners/components/data-grid.tsx?933a","webpack:///src/modules/business-partners/components/business-partner-users-table.tsx?5b50","webpack:///src/modules/business-partners/components/business-partners-table.tsx?108c","webpack:///src/modules/business-partners/business-partners.tsx?9aa8","webpack:///src/modules/password-reset-verification/components/password-reset-verification-input.tsx?6596","webpack:///src/modules/account-welcome-tile/account-welcome-tile.view.tsx?a13c","webpack:///src/modules/sign-in/components/sign-in-error.tsx?2f11","webpack:///src/modules/loyalty-terms/loyalty-terms.view.tsx?5155","webpack:///src/modules/tile-list-item/components/links.tsx?e54f","webpack:///src/modules/tile-list-item/tile-list-item.tsx?99bb","webpack:///src/modules/account-loyalty/components/account-loyalty-small-components.tsx?9694","webpack:///src/modules/sign-in/components/sign-in-description.tsx?196e","webpack:///src/modules/account-loyalty/account-loyalty.view.tsx?06f4","webpack:///src/modules/account-customer-balance/index.tsx?fe9b","webpack:///src/modules/account-order-templates-tile/index.ts?21a3","webpack:///src/modules/sign-in/components/index.ts?3da2","webpack:///src/modules/b2b-requests-status/components/b2b-requests-table.tsx?6d33","webpack:///src/modules/b2b-requests-status/b2b-requests-status.tsx?692d","webpack:///src/modules/password-reset-verification/password-reset-verification.view.tsx?9e1f","webpack:///src/modules/loyalty-terms/index.ts?01e8","webpack:///src/modules/b2b-requests-tile/index.ts?ef19","webpack:///src/modules/sign-in/components/sign-in-loading-message.tsx?7f4d"],"names":["PasswordResetVerificationLoadingMessage","_ref","className","message","React","_renderTabItemContent","items","length","map","item","index","key","TabItemView","props","tabItemType","tabSlots","TabContentContainer","TabHeaderContainer","TabItemContent","tabHeader","TabItemType","TabContent","Module","Object","assign","Node","tabItemContent","TabHeader","PasswordResetVerificationItem","wrapper","label","errorMessage","input","PasswordResetVerificationLoading","_ref2","modal","modalBody","icon","PasswordResetVerificationView","constructor","super","LocalAccount","_ref3","localAccount","successMessage","verificationButtonsWrapper","verificationButtons","buttonsWrapper","buttons","verificationSuccessModal","verificationSuccessModalMessage","error","button","componentDidMount","emailInputField","document","getElementById","sendVerificationCodeBtn","addEventListener","event","keyCode","preventDefault","click","render","passwordResetVerification","viewState","loading","defaultAADConainer","aadConainer","heading","passwordResetVerificationLocalAccount","this","isShowLoading","ErrorComponent","CreditComponent","verbagePrefix","verbagePostfix","value","SignInLoading","_ref4","SignInView","signIn","signInSection","signUpSection","signInSectionHeading","signInLocalAccount","signInSocialAccount","signUpSectionHeading","signInB2BAccount","signUpDescription","signUpLink","forgetPassword","disclaimer","signInButton","socialAccounts","image","text","SocialAccount","B2BAccount","SignInLoadingIcon","B2bRequestsTileLinks","links","telemetryContent","onTextChange","requestContext","ArrayExtensions","hasElements","editableLinks","_mapEditableLinks","Msdyn365","editProps","linkdata","payLoad","getPayloadObject","link","contentAction","etext","linkText","attributes","getTelemetryAttributes","ariaLabel","linkUrl","destinationUrl","openInNewTab","role","additionalProperties","B2bRequestsTile","handleHeadingChange","config","target","handleLinkTextChange","linkIndex","getTelemetryObject","context","request","telemetryPageName","friendlyName","telemetry","isChannelTypeB2B","actionContext","viewProps","_objectSpread","b2bRequestsTile","moduleProps","classnames","tag","onEdit","renderView","PasswordResetVerificationButton","id","disabled","onClick","Button","NavigationMenuView","currentLevel","_positionInSetOffset","escapeKey","_updateCategoryImage","categoryImageSrc","option","promotionalImage","src","altText","promotionalContent","imageSrc","promotionalItemImageSettings","imageSettings","push","setState","categoryImage","categoryImageAltText","_handleDropdownToggle","data","parentId","isMobileView","activeMenu","parentMenu","state","undefined","showCategoryImage","imageSource","_resetFocus","setTimeout","menuNode","current","focus","_handleClickOutside","contains","_handleFocusOutside","relatedTarget","_closeSubmenu","_escFunction","navDrawerList","Array","from","childNodes","navDrawerButton","firstChild","getAttribute","_getCategoryImage","categoryImageUrl","generateImageUrl","apiSettings","defaultImageSettings","viewports","xs","q","w","h","sm","md","lg","lazyload","_categoryImage$imageS","ImageData","Image","gridSettings","categoryImageSettings","loadFailureBehavior","_onDrawerChange","drawerState","drawerKeyValue","newPair","buttonText","isOpen","bind","MsDyn365","isBrowser","body","componentWillUnmount","removeEventListener","_renderMobileMenu","_renderDesktopMenu","menuItemData","Navigation","menuItem","posinset","_renderDrawerMenu","MenuList","ref","tabIndex","_renderDisplay","setSize","subMenu","_renderDrawer","_renderLinkMenuItem","toggleButtonText","keyValue","keys","isDrawerOpen","colProps","Drawer","toggleButtonProps","openGlyph","onToggle","collapseProps","closeGlyph","glyphPlacement","_renderLinkText","menuSubItem","currentPos","_menuItem$subMenu2","_menuItem$subMenu","_renderDrawerLink","linkURL","_renderSpanMenuItem","ListItem","menuItemList","menuItemDatum","_getFromSubMenu","_createMenuItemList","forEach","subMenus","i","found","_renderSubMenu","_renderButtonMenuItem","IsSubMenu","enableMultiSupportMenu","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","levelClassName","menuOptions","idx","hasOptions","haveSubmenu","Math","round","toString","_renderMenu","onFocus","hoverEffect","arguments","isParent","Link","imagesource","shouldOpenNewTab","onMouseOver","href","onTelemetryClick","_renderPromotionalLink","Span","level","currentItem","submenu","DivContainer","ImageDivContainer","showPromotionalContent","categoryImageDisplay","promotionalContentDisplay","DivContainerClass","_item$additionalPrope","SignInText","onSubmit","subscribeView","_subscribeForm$classN","_emailInput$className","_submitButton$classNa","subscribe","subscribeContainer","subscribeForm","emailInput","submitButton","submitButtonLabelText","SignUpText","createElement","LoyaltySignUp","handleMemberHeadingChange","memberHeading","_issueLoyalty","user","isAuthenticated","clicked","IssueLoyaltyInput","issueLoyalty","then","window","location","catch","debug","TelemetryConstant","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","shouldComponentUpdate","nextProps","nextState","_data$customerInforma","_this$props$context$a","resources","signInUrl","termsUrl","loyaltyJoinUrl","origin","signInurl","completeClass","classname","loyaltyCard","hasLoyaltyAccount","result","CardTenderTypeValue","customerInformation","invalidAsyncCustomerState","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","infoMessageBar","accountProcessingPendingInfoMessage","params","isEditor","status","signInLink","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","detailsLink","viewLoyaltyPageText","termsLink","loyaltyTermsLinkText","__decorate","observer","PasswordResetVerificationError","type","errorClassName","PasswordResetVerificationSuccess","successClassName","SignInButton","AccountCustomerBalanceTileView","AccountCustomerBalanceTile","content","SignInLabel","forId","htmlFor","IAccountWishlistTileDescription","description","editableLink","AccountWishlistTileLinks","AccountWishlistTile","accountWishlistTileDescription","wishlists","wishlistsCount","CommerceListLines","format","LinksComponent","DescriptionComponent","B2bRequestsStatusView","b2bRequestsStatus","table","createSearchResultModal","modalProps","refineMenu","sortByDropDown","isRecoSearchPage","modalHeader","createModalBody","modalFooter","renderSort","renderRefiner","refiners","RefineMenuContainer","RefinerSectionContainer","SortingContainer","renderCategoryHierarchy","CategoryHierarchyContainer","categoryHierarchyList","categoryHierarchySeparator","category","renderTitle","title","TitleContainer","titlePrefix","titleText","titleCount","SearchResultContainerView","_props$context$action","SearchResultContainer","products","pagination","ProductsContainer","ProductSectionContainer","choiceSummary","isMobile","modalToggle","searchResultModal","TitleViewProps","categoryHierarchy","sortByOptions","CategoryNavContainer","RefineAndProductSectionContainer","FeatureSearchContainer","similarLookProduct","query","recommendation","Tab","tabIndexQuery","_refHandler","activeLink","_onClick","e","activeTabState","activeContentIndex","tabId","update","createTabStateInput","currentTabIndex","newUrl","_setGetParameter","String","history","pushState","path","_onKeyDown","slots","slotLength","tabItems","defaultTabIndex","initialIndex","queryString","activeTab","queryTabIndex","indexOf","arr","split","Number","parseInt","_getTabHeader","_getTabContent","headingComponent","tabViewProps","TabContainer","headerSection","tabsSection","tabItemContainer","tabContents","tabHeaders","componentDidUpdate","dataActionTabId","selected","contentID","getContentID","onKeyDown","isSelected","itemIndex","paramName","paramValue","url","URL","requestUrl","URLSearchParams","search","set","decodeURIComponent","BusinessFormItem","BusinessUserForm","modalClassName","FormWrapper","modalHeading","modalDescription","inputs","toggle","_renderModal","BusinessUserDetails","selectedUser","FirstName","LastName","userFullName","InputID","isModalOpen","headingSection","bodySection","footerSection","toggleModal","Modal","wrapClassName","autoFocus","fade","applicationNode","ModalHeader","ModalBody","ModalFooter","BusinessOrganizationList","OrganizationUserList","moduleContainer","noUsersText","addUserButton","organizationListTable","form","formType","requestAccountStatementButton","requestStatementModal","ButtonList","_getForm","formProps","FormInput","pattern","maxLength","isRequired","isDisabled","onChange","fieldReference","placeholder","GetMaxLength","FormLabel","asteriskText","FormButton","FormFieldError","parsedMaxLength","isNaN","FormType","InputType","renderInputSection","asteriskAfterLabel","onInputChange","element","customClass","maxChars","_this$props$config","BusinessFormDefaultInputs","Text","businessUserFirstNameLabelText","businessUserLastNameLabelText","Email","businessUserEmailAddressLabelText","EmailRegex","defaultRegex","source","SpendingLimit","businessUserSpendingLimitLabelText","delayFocus","formChildReference","userFormEditReference","userFormDeleteReference","moduleClassName","_handleAddUserButtonClicked","newForm","formItems","newUser","B2BUserId","Random","Guid","generateGuid","isFormActive","Add","referenceBack","addUserButtonReference","hasFormError","hasActionError","selectedUserData","_handleAddEditFormSaveButton","async","updatedUser","_createBusinessPartner","Edit","editOrganizationUser","EditOrganizationUserInput","reload","trace","addOrganizationUser","AddOrganizationUserInput","businessUserActionRetailErrorMsg","parseFloat","_handleEditIcon","userData","possibleName","find","cell","fullName","lastSpaceIndex","lastIndexOf","firstName","substring","lastName","possibleCell","dataCell","_handleDeleteIcon","displayedUserData","TableDataType","Price","cultureFormatter","formatCurrency","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","None","callbackRemoveButton","_onInputChange","prev","refresh","isReady","_isFormReady","formItem","match","_formatPrice","price","_getCurrentUrl","reqContext","_getViewport","device","Type","innerWidth","_toggleStatementRequestDropdown","isStatementRequestAdminDropdownOpen","_updateFromDate","newFromDate","statementRequestFromDateString","_updateToDate","newToDate","statementRequestToDateString","_showRequestStatementModal","isFullOrg","statementRequestFullOrg","isStatementRequestModalOpen","_requestStatement","customer","currentUser","users","_getB2BUserId","statementRequest","FromDate","Date","ToDate","IsForFullOrganization","RequestedUserId","RequestingUserEmail","DeliveryTypeValue","BusinessPartnerOperationDeliveryType","callerContext","BusinessPartnerUsersDataActions","requestAccountStatementAsync","_closeStatementRequestModal","_this$statementReques","statementRequestButtonReference","_onSelectRow","records","selectedRow","rowProps","row","_toggleModal","mobileExcludedColumns","Status","_viewport","_updateViewport","submitButtonReference","addedReference","statementRequestMaxDateString","toISOString","StringExtensions","isNullOrWhitespace","businessUserSelectedUserDisplayName","replace","_this$formChildRefere","_this$submitButtonRef","_this$props$data$cust","businessUserAddUserButtonText","businessUserLoadingMessage","businessUserEmptyListMessage","businessUserErrorGettingUsersMessage","userAccountStatementLabel","fullOrganizationLabel","requestStatementButtonLabel","statementRequestModalHeaderLabel","cancelLabel","fromDateLabel","toDateLabel","submitRequestLabel","sendToEmailLabel","selectedUserLabel","hasUsers","AddUser","addUserAttributes","errorProps","Heading","headingTag","innerRef","modalState","Table","_createTableProps","_renderUserForm","_renderUserDetails","AdminRequestStatementButton","buttonReference","onRequestStatement","onToggleDropdown","myUserAccountLabel","isDropdownShowing","RequestStatementModal","email","fromDateString","toDateString","onChangeFromDate","onChangeToDate","canSubmitRequest","canSubmitStatementRequest","modalHeaderLabel","onSubmitRequest","selectedOrganizationLabel","selectedUserName","modalAriaLabel","maxDateString","tableSort","showPagination","paginationItemPerPage","businessUserPaginationNextButtonText","businessUserPaginationPreviousButtonText","businessUserEditButtonText","businessUserViewUserButtonText","businessUserDeleteButtonText","businessUserActionButtonText","businessUserPaginationAriaLabel","columnSortAriaLabel","tableData","_createTableItems","headings","includes","name","sortable","rows","editLinkText","deleteLinkText","viewLinkText","editLinkTooltip","deleteLinkTooltip","viewLinkTooltip","enableToModify","actionLinkText","showCheckBoxes","isSortable","resourcePrefix","minifyActions","excludedColumns","paginationProperty","skipCount","skip","itemPerPage","prevText","nextText","paginationText","isSingleSelectOnly","tableAriaLabel","tableTabIndex","businessUserSelectCheckBoxAriaLabelText","sortByAscending","sortByDescending","actions","onDelete","onView","formatPrice","checkBoxCallback","businessUserActiveStatusText","businessUserPendingStatusText","businessUserRemovedStatusText","usersList","statusString","StatusValue","FullName","buttonReferences","edit","delete","_this$state$reference","businessUserRemoveModalHeaderText","businessUserRemoveModalDescription","businessUserViewModalHeaderText","businessUserCancelButtonText","businessUserCancelRemoveUserButtonText","businessUserRemoveUserButtonText","businessUserErrorUpdatingUsersMessage","formClassName","typeClassName","handleRemoveButton","businessUserEditUserFormHeadingText","businessUserAddUserFormHeadingText","businessUserSaveButtonArialabel","businessUserSaveButtonText","businessUserCancelButtonArialabel","businessUserFieldIncorrectErrorText","businessUserActionErrorText","businessUserAllFieldsRequiredMessage","observable","computed","AccountCustomerBalanceTileLinks","AccountGenericTile","handleParagraphChange","signInDisclaimer","handleSignInHeadingChange","signInHeading","handleSignUpHeadingChange","signUpHeading","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","clearInterval","isInitialized","emailRegex","emailId","SA_FIELDS","AttributeFields","ID","errorMessages","requiredField_email","requriedEmailError","requiredField_password","requriedPasswordError","invalid_email","invalidEmailError","invalid_password","invalidPasswordError","unknown_error","unknownError","SignInLoadingIconComponent","SignInLoadingMessageComponent","loadingMessage","style","display","_renderInput","emailAddressLabelText","emailAddressAriaLabel","passwordLabelText","SignInLinkComponent","forgotPasswordButtonAriaLabel","forgotPasswordButtonText","SignInErrorComponent","SignInButtonComponent","loginButtonAriaLabel","loginButtonText","_renderSocialAccount","facebookButtonText","facebookButtonAriaLabel","facebookIcon","microsoftButtonText","microsoftButtonAriaLabel","microsoftIcon","_renderB2BSocialAccount","b2bButtonText","b2bButtonAriaLabel","displayB2bAccountManagerSignin","SignInDescriptionComponent","signUpDescriptionText","signUpButtonAriaLabel","signUpButtonText","labelText","SignInLabelComponent","SignInInputComponent","iconImage","_createImageMarkup","SignInTextComponent","_displayB2bAccountManagerSignin","imageProps","pictureClassName","shouldSkipToMainImage","businessPartnersView","selectedBusinessPartnerUser","businessPartnersProps","businessPartnersHeading","catalogLoadingIndicator","catalogLoadingErrorMessage","cookieConsentNotGivenErrorMessage","backToBusinessPartnersLink","businessPartnersTable","businessPartnerUsersTable","PasswordResetVerificationLabel","_initState","reaction","hasError","apiGenericErrorMessage","get","customerResult","allowOnAccountPayment","AllowOnAccountPayment","isB2BSite","enableCustomerAccountPayment","isCustomerAccountPaymentEnabled","isDetailsLinkDisplayed","account","Balance","CreditLimit","InvoiceAccountBalance","InvoiceAccountCreditLimit","noCreditErrorMessage","accountCreditVerbagePrefix","accountCreditVerbagePostfix","currencyCode","customerCredit","customerCreditFormatted","toFixed","LoyaltySignUpView","Subscribe","handleTextChange","paragraph","_emailAddressInputRef","_heading$tag","subscribeParagraph","subscribeHeading","handleText","subscribeFormAriaLabel","autoComplete","subscribeFormEmailAriaLabel","subscribeEmailPlaceholderText","subscribeFormSubmitAriaLabel","subscribeButtonLabel","AccountGenericTileView","TabItem","moduleContentClassName","moduleHeaderClassName","_renderTabHeader","activeContentIDResult","shown","tabItemTitle","PasswordResetVerificationLoadingIcon","renderCustomerName","accountInformation","Name","_renderReactFragment","slot","headerView","HeaderTag","HeaderContainer","HeaderTopBarContainer","Divider","navIcon","logo","preferredStore","renderForMobile","AccountInfoDropdownParentContainer","AccountInfoDropdownPopoverConentContainer","accountInfoDropdownButton","signOutLink","accountLinks","accountClassName","_renderAccountBlock","wishListIconDesktop","cartIcon","siteOptions","MobileMenuLinksContainer","mobileMenuCollapsed","Collapse","_renderMobileAccountBlock","wishListIconMobile","menuBar","_renderCollapseMenu","PasswordResetVerification","getValue","v1Value","v2Value","templateVersion","PasswordResetVerificationLoadingIconComponent","PasswordResetVerificationLoadingMessageComponent","_renderLocalAccount","obj","toLowerCase","PAT","verifying_blurb","verificationControlWrapper","verificationCodeLabelText","PasswordResetVerificationSuccessComponent","verificationCodeSendSuccess","emailAddressVerifiedSuccess","PasswordResetVerificationErrorComponent","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","PasswordResetVerificationButtonComponent","sendCodeButtonAriaLabel","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","continueButtonAriaLabel","continueButtonText","cancelButtonAriaLabel","cancelButtonText","cssClassName","PasswordResetVerificationLabelComponent","PasswordResetVerificationInputComponent","AccountWishlistTileView","tabView","LoyaltyTermsModal","LoyaltyTermsCancel","loyaltyTermCancelAttributes","LoyaltyTermsSubmit","loyaltyTermSubmitAttributes","LoyaltyTermsAgree","loyaltyTermCheckboxAttributes","returnFocusRef","returnRef","cancelButton","cancelLoyaltyTermsText","checked","joinLoyaltyTermsText","loyaltyTermsHeading","terms","agreeSection","checkbox","onCheck","agreeText","loyaltyAgreeToTerms","LoyaltyTerms","_toggle","_submit","_checkboxChecked","toggleRef","isJoining","qsps","qsp","splitQsp","hideToggle","serviceTerms","joinLoyaltytermsToggleText","CardNumber","card","redirectToLoyalty","getUrlSync","getLoyaltyCardAsync","fullCard","GetLoyaltyCardInput","SignInInput","AccountWelcomeTile","accountInfo","AccountGenericTileLinks","TileListItemViewComponent","tileListItem","backgroundImage","thumbnailImage","tileListContainer","tileListImageContainer","tileListThumbnailImageContainer","tileListHeadingContainer","renderTileListItemContent","AccountLoyalty","decimalPrecision","_populateModalData","focusRef","currentLoyaltyPoints","expiring","RewardPointId","currentModalData","isModalExpiring","modalID","currentFocus","getLoyaltyRewardPointsExpiringSoonAsync","queryResultSettings","points","pointsActivity","exception","getLoyaltyRewardPointActivityTimelineAsync","_closeModal","_onOpenModal","_this$state$currentFo","_buttonAvailableRef","_buttonExpireRef","BackToShopping","_Msdyn365$getUrlSync","loyaltyCardLabel","totalAvailablePointsLabel","backToShoppingText","backToShopAttributes","loyaltyCardData","rewardPoints","RewardPoints","homeLink","modalTransition","onEntered","node","isAppearing","childNode","totalPoints","_getTotalPoints","_renderRewardPoints","pointsModal","onOpened","Info","Points","Breakdown","PointsBreakdown","infoLabel","AccountLoyaltyLabel","cardNumber","joinDate","_formatJoinDate","_parseDate","LoyaltyEnrollmentDateLocal","pointsLabel","homeButton","date","joinDateFormatted","Intl","DateTimeFormat","locale","month","day","year","loyaltyPoints","availableId","expiringId","availablePointsLabel","availablePointsAriaLabel","expiringPointsFormatLabel","expiringPointsFormatAriaLabel","AvailablePoints","availablePointsAttributes","ExpiringPoints","expiringPointsAttributes","AccountLoyaltyModalLabel","Description","availableModalLabel","ActivePoints","labelFor","availableModalTrigger","color","expiringModalLabel","PointsExpiringSoon","expiringModalTrigger","_currentModalData$Des","loyaltyActivityDateLabel","loyaltyActivityBalanceLabel","horizontalPosition","verticalPosition","modalHeaderClassName","modalBodyClassName","ModalBodyTop","ModalBodyHeaders","rewardPointsActivity","_renderPointsActivity","pointsDescription","_getPoints","balanceLabel","onClose","total","_loyaltyPoints$Active","activity","_toFixed","Activity","activityType","_getTimelineType","activityDate","formatDate","ActivityDate","activityPoints","LoyaltyPoints","dateString","getUTCFullYear","getUTCMonth","getUTCDate","pointActivity","LoyaltyRewardPointTimelineEntryType","earnedPointsLabel","redeemedPointsLabel","adjustedPointsLabel","refundedPointsLabel","ExtensibleLoyaltyRewardPointActivityEntryTypeValue","B2bRequestsTileView","SignInLink","SearchBar","Component","onSearchTextChange","ev","searchText","onSearch","handleKeyUp","KeyCodes","Enter","searchPlaceholderLabel","onKeyUp","DataGrid","renderGridHeader","rowClassName","columns","column","reactKey","renderGridRow","_column$onRender","_column$onClick","call","fieldName","onRender","loadDataInternal","loadData","isLoading","_e$data","LocalizedMessage","genericErrorMessage","paging","filter","loadMore","sortData","sorting","ascending","sort","item1","item2","value1","value2","compareResult","filterData","c","isSearchable","columnValue","trim","getDataToDisplay","itemsCount","pageSize","slice","hasMore","defaultSorting","Alert","loadingLabel","Fragment","businessPartnerLoadMore","noDataMessage","BusinessPartnerUsersTable","getColumns","isMobileDevice","variant","VariantType","Viewport","businessUserTableNameHeadingText","onSelect","businessUserTableEmailHeadingText","businessUserTableSpendingLimitHeadingText","getBusinessPartnerUsers","BusinessPartnersDataActions","getUsersAsync","bypassCache","businessPartner","BusinessPartnerId","spendingLimit","ObjectExtensions","isNullOrUndefined","businessUserTableSpendingLimitZeroHoverText","businessPartnerSearchCustomer","BusinessPartnersTable","businessPartnerName","getBusinessPartners","getManagedBusinessPartnersAsync","businessPartnerSearchCompany","BusinessPartners","onSelectBusinessPartner","selectedBusinessPartner","onSelectBusinessPartnerUser","businessPartnerUser","AccountNumber","cookies","setAccountSelectionCookie","catalogId","getCustomerDefaultCatalogId","validateCatalogId","homeUrl","fullUrl","searchParams","removeAccountSelectionCookie","isLoadingCatalog","channelId","_productCatalogs$","productCatalogs","CatalogsDataActions","getCatalogsAsync","RecordId","loadCatalogErrorMessage","isConsentGiven","cookieConsentRequiredMessage","PasswordResetVerificationInput","AccountWelcomeTileView","SignInError","LoyaltyTermsView","TileListLinks","TileListItem","_telemetryContent","_this$props$config$li","redirectionUrl","tileListLinks","tileListLinkContainer","_createHeading","_createParagraph","_renderBackgroundImage","_renderThumbnailImage","isAriaHiddenAttribute","_item$imageSettings","_this$props$config$ba","verifiedImageSettings","xl","moduleType","typeName","imagePropertyName","itemImageSettings","_this$props$config$th","layout","msdyn365__moduleLayout","SignInDescription","AccountLoyaltyView","zIndex","onClosed","RequestsTableColumnHeader","getUserName","isNullOrEmpty","UserFirstName","UserLastName","b2bRequestsNameDisplay","getDetails","_requestDetails$Invoi","Details","requestDetails","accountStatementStartDateTime","AccountStatementStartDateTime","accountStatementEndDateTime","AccountStatementEndDateTime","invoiceId","InvoiceId","TypeValue","b2bRequestsAccountStatementDetails","b2bRequestsInvoiceCopyDetails","getDisplayFriendlyTypeValue","typeValue","b2bRequestsTypeCreateProspect","b2bRequestsTypeAddUser","b2bRequestsTypeDeleteUser","b2bRequestsTypeEditUser","b2bRequestsTypeRequestAccountStatement","b2bRequestsTypeRequestInvoiceCopy","b2bRequestsTypeUnknown","getDisplayFriendlyStatusValue","statusValue","b2bRequestsStatusProcessed","b2bRequestsStatusError","b2bRequestsStatusRequested","createTableProps","tableProps","_context$request$quer","operationRequests","_request$TypeValue","_request$StatusValue","b2bRequestsTypeColumn","b2bRequestsRequestDateColumn","CreatedDateTime","b2bRequestsDescriptionColumn","b2bRequestsUserColumn","b2bRequestsStatusColumn","createTableItems","b2bRequestsPreviousText","b2bRequestsNextText","B2bRequestsTable","B2bRequestsStatus","renderHeader","headingData","_this$props$data$oper","_this$props$data$oper2","itemCount","getItemNumberDisplayString","_retrieveExcludedColumns","renderTable","b2bRequestsNumberOfItemsSingular","b2bRequestsNumberOfItems","SignInLoadingMessage"],"mappings":"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","file":"static/js/12.44af96a1d5aa2700e7d6.chunk.js","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetVerificationLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default PasswordResetVerificationLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ITabItemViewProps, TabItemType } from './tab-item';\n\nconst TabItemView: React.FC = props => {\n const { tabItemType, tabSlots, TabContentContainer, TabHeaderContainer, TabItemContent, tabHeader } = props;\n\n switch (tabItemType) {\n case TabItemType.TabContent:\n return (\n \n \n {tabSlots &&\n tabSlots.tabItemContent &&\n tabSlots.tabItemContent.length &&\n _renderTabItemContent(tabSlots.tabItemContent)}\n \n \n );\n case TabItemType.TabHeader:\n return {tabHeader};\n default:\n return null;\n }\n};\n\nconst _renderTabItemContent = (items: React.ReactNode[]): JSX.Element | null => {\n return (\n <>\n {items && items.length > 0\n ? items.map((item: React.ReactNode, index: number) => {\n return {item};\n })\n : null}\n \n );\n};\nexport default TabItemView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport AccountCustomerBalanceTile from './account-customer-balance-tile';\nimport AccountCustomerBalanceTileView from './account-customer-balance-tile.view';\n\nexport * from './account-customer-balance-tile';\nexport * from './account-customer-balance-tile.data';\nexport {\n IAccountCustomerBalanceTileConfig,\n IAccountCustomerBalanceTileProps,\n IAccountCustomerBalanceTileResources\n} from './account-customer-balance-tile.props.autogenerated';\nexport * from './account-customer-balance-tile.view';\nexport * from './components';\n\nexport { AccountCustomerBalanceTile, AccountCustomerBalanceTileView };\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n IPasswordResetVerificationItem,\r\n IPasswordResetVerificationLoading,\r\n IPasswordResetVerificationLocalAccount,\r\n IPasswordResetVerificationViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/password-reset-verification/password-reset-verification';\r\n\r\nimport {\r\n IPasswordResetVerificationConfig,\r\n IPasswordResetVerificationProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/password-reset-verification/password-reset-verification.props.autogenerated';\r\n\r\nconst PasswordResetVerificationItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\r\n return (\r\n \r\n {label}\r\n {errorMessage}\r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst PasswordResetVerificationLoading: React.FC = ({ modal, modalBody, icon, message }) => {\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\n * Password Reset Verification Component\r\n * @extends {React.PureComponent>}\r\n */\r\n\r\nexport class PasswordResetVerificationView extends React.PureComponent<\r\n IPasswordResetVerificationViewProps & IPasswordResetVerificationProps\r\n> {\r\n constructor(props: IPasswordResetVerificationViewProps & IPasswordResetVerificationProps) {\r\n super(props);\r\n }\r\n public componentDidMount(): void {\r\n // document.body && document.body.addEventListener('keyup', this.onChangeEmailInput);\r\n const emailInputField = document.getElementById('email');\r\n const sendVerificationCodeBtn = document.getElementById('email_ver_but_send');\r\n emailInputField &&\r\n emailInputField.addEventListener('keyup', (event: KeyboardEvent) => {\r\n if (event.keyCode === 13) {\r\n event.preventDefault();\r\n sendVerificationCodeBtn && sendVerificationCodeBtn.click();\r\n }\r\n });\r\n }\r\n public render(): JSX.Element {\r\n const {\r\n passwordResetVerification,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n heading,\r\n passwordResetVerificationLocalAccount\r\n } = this.props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n {heading}\r\n {this.LocalAccount(passwordResetVerificationLocalAccount)}\r\n \r\n \r\n );\r\n }\r\n\r\n public LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n successMessage,\r\n errorMessage,\r\n verificationButtonsWrapper,\r\n verificationButtons,\r\n buttonsWrapper,\r\n buttons,\r\n verificationSuccessModal,\r\n verificationSuccessModalMessage\r\n }) => {\r\n return (\r\n \r\n {items &&\r\n items.map((item: IPasswordResetVerificationItem) => {\r\n return (\r\n // @ts-ignore\r\n \r\n );\r\n })}\r\n {successMessage &&\r\n successMessage.map((message: React.ReactNode, index: number) => {\r\n return {message};\r\n })}\r\n {errorMessage &&\r\n errorMessage.map((error: React.ReactNode, index: number) => {\r\n return {error};\r\n })}\r\n \r\n {verificationButtons &&\r\n verificationButtons.map((button: React.ReactNode, index: number) => {\r\n return {button};\r\n })}\r\n \r\n \r\n {buttons &&\r\n buttons.map((button: React.ReactNode, index: number) => {\r\n return {button};\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n}\r\n\r\nexport default PasswordResetVerificationView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './account-address-tile-description';\nexport * from './account-address-tile-links';\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 IAccountCustomerBalanceTileInfo {\n label?: string;\n value?: string;\n verbagePrefix?: string;\n verbagePostfix?: string;\n className?: string;\n error?: string;\n}\n\nexport const ErrorComponent: React.FC = ({ error }) => (\n {error}\n);\n\nexport const CreditComponent: React.FC = ({ verbagePrefix, verbagePostfix, value, className }) => {\n return (\n
\n {verbagePrefix}\n {value}\n {verbagePostfix}\n
\n );\n};\n\nexport const InfoComponent: React.FC = ({ label, value, className }) => (\n
\n {label}\n {value}\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 * as React from 'react';\n\nimport {\n ISignInItem,\n ISignInLoading,\n ISignInLocalAccount,\n ISignInSocialAccount,\n ISignInSocialItem,\n ISignInB2BAccount,\n ISignInB2BItem,\n ISignInViewProps\n} from './sign-in';\n\nconst LocalAccount: React.FC = ({ localAccount, items, forgetPassword, disclaimer, error, signInButton }) => {\n return (\n \n {items &&\n items.map((item: ISignInItem) => {\n return (\n \n {item.label}\n {item.error}\n {item.input}\n \n );\n })}\n {forgetPassword}\n {disclaimer}\n {error}\n {signInButton}\n \n );\n};\n\nconst SocialAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInSocialItem) => {\n return (\n \n {item.image}\n {item.text}\n \n );\n })}\n \n );\n};\n\nconst B2BAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInB2BItem) => {\n return (\n item && (\n \n {item.text}\n \n )\n );\n })}\n \n );\n};\n\nconst SignInLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst SignInView: React.FC = props => {\n const {\n signIn,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n signInSection,\n signUpSection,\n signInSectionHeading,\n signInLocalAccount,\n signInSocialAccount,\n signUpSectionHeading,\n signInB2BAccount,\n signUpDescription,\n signUpLink\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n \n {signInSectionHeading}\n {LocalAccount(signInLocalAccount)}\n {SocialAccount(signInSocialAccount)}\n {B2BAccount(signInB2BAccount)}\n \n \n {signUpSectionHeading}\n {signUpDescription}\n {signUpLink}\n \n \n \n );\n};\n\nexport default SignInView;\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 ISignInLoadingIcon {\n className: string;\n}\n\nconst SignInLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default SignInLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport AccountAddressTile from './account-address-tile';\nimport AccountAddressTileView from './account-address-tile.view';\n\nexport * from './account-address-tile';\nexport * from './account-address-tile.data';\nexport {\n IAccountAddressTileConfig,\n IAccountAddressTileProps,\n IAccountAddressTileResources,\n ILinksData\n} from './account-address-tile.props.autogenerated';\nexport * from './account-address-tile.view';\nexport * from './components';\n\nexport { AccountAddressTile, AccountAddressTileView };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './loyalty-terms-modal';\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../../..';\n\nexport interface IB2bRequestsTileLinksProps {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst defaultClassName = 'ms-account-b2b-requests-tile';\n\nexport const B2bRequestsTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (!ArrayExtensions.hasElements(links)) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {ArrayExtensions.hasElements(editableLinks) ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n\n return linkdata.map(link => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return {\n ariaLabel: link.ariaLabel,\n className: `${defaultClassName}__link`,\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n } as Msdyn365.ILinksData;\n });\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IB2bRequestsTileData } from './b2b-requests-tile.data';\nimport { IB2bRequestsTileProps } from './b2b-requests-tile.props.autogenerated';\nimport { B2bRequestsTileLinks } from './components/account-b2b-requests-tile-links';\n\nexport interface IB2bRequestsTileViewProps extends IB2bRequestsTileProps {\n b2bRequestsTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n}\n\n/**\n *\n * B2bRequestsTile component.\n * @extends {React.PureComponent>}\n */\nclass B2bRequestsTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IB2bRequestsTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n const { config } = this.props;\n const { className, heading, links } = config;\n\n const defaultClassName = 'ms-account-b2b-requests-tile';\n\n if (!isChannelTypeB2B(this.props.context.actionContext.requestContext)) {\n return null;\n }\n\n const viewProps = {\n ...this.props,\n className,\n b2bRequestsTile: {\n moduleProps: this.props,\n className: classnames(defaultClassName, config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: ArrayExtensions.hasElements(links) && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default B2bRequestsTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport AccountProfile from './account-profile';\nimport AccountProfileView from './account-profile.view';\n\nexport * from './account-profile';\nexport * from './account-profile.data';\nexport {\n EmailAddressSectionHeadingTag,\n IAccountProfileConfig,\n IAccountProfileProps,\n IAccountProfileResources,\n IEmailAddressSectionHeadingData,\n INameSectionHeadingData,\n IPersonalizationSectionHeadingData,\n IPreferencesSectionHeadingData,\n NameSectionHeadingTag,\n PersonalizationSectionHeadingTag,\n PreferencesSectionHeadingTag\n} from './account-profile.props.autogenerated';\nexport * from './account-profile.view';\nexport * from './components';\n\nexport { AccountProfile, AccountProfileView };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst PasswordResetVerificationButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n telemetryContent,\n disabled,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default PasswordResetVerificationButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IDictionary, IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { IMenuItemData, INavigationMenuViewProps } from '@msdyn365-commerce-modules/navigation-menu';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Drawer,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n ICollapseProps,\n IDrawerState,\n IPayLoad,\n ITelemetryContent,\n Module,\n Node,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\ninterface INavigationState {\n parentMenu?: number;\n activeMenu?: number;\n categoryImage?: IImageData[] | null;\n categoryImageAltText: string;\n drawerKeyValue: IDictionary;\n}\n\n/**\n *\n * NavigationMenuView component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuView extends React.PureComponent {\n private currentLevel: number = 0;\n\n private readonly _positionInSetOffset: number = 1;\n\n private readonly escapeKey: number = 27;\n\n private readonly menuNode: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: INavigationMenuViewProps) {\n super(props);\n this.menuNode = React.createRef();\n this.state = { activeMenu: undefined, parentMenu: undefined, categoryImageAltText: '', drawerKeyValue: {} };\n this._closeSubmenu = this._closeSubmenu.bind(this);\n this._escFunction = this._escFunction.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 }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document.body.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document.body.addEventListener('mousedown', this._handleClickOutside);\n document.body.addEventListener('focusout', this._handleFocusOutside);\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._handleClickOutside, false);\n document.body.removeEventListener('focusout', this._handleFocusOutside, false);\n }\n }\n\n public render(): JSX.Element | null {\n const { isMobileView } = this.props;\n\n this.currentLevel = 1;\n return <>{isMobileView ? this._renderMobileMenu() : this._renderDesktopMenu()};\n }\n\n /**\n * Method to render mobile menu.\n * @returns Jsx element.\n */\n private _renderMobileMenu(): JSX.Element {\n const { isMobileView, menuItemData, Navigation } = this.props;\n return (\n \n {menuItemData.map((menuItem: IMenuItemData, posinset: number) => {\n return this._renderDrawerMenu(menuItem, menuItemData.length, posinset + this._positionInSetOffset);\n })}\n \n );\n }\n\n /**\n * Method to render desktop menu.\n * @returns Jsx element.\n */\n private _renderDesktopMenu(): JSX.Element {\n const { MenuList, Navigation } = this.props;\n return (\n \n \n {this._renderDisplay()}\n \n \n );\n }\n\n /**\n * Method to render drawer menu.\n * @param menuItem -Menuitem data.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawerMenu(menuItem: IMenuItemData, setSize: number, posinset: number): JSX.Element | null {\n if (menuItem && menuItem.subMenu && ArrayExtensions.hasElements(menuItem.subMenu)) {\n return this._renderDrawer(menuItem, setSize, posinset);\n }\n return this._renderLinkMenuItem(menuItem, undefined, true, false, setSize, posinset);\n }\n\n /**\n * Method to render drawer component.\n * @param menuItem -Menuitem data.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawer(menuItem: IMenuItemData, setSize?: number, posinset?: number): JSX.Element | null {\n const toggleButtonText = menuItem.linkText;\n const keyValue = this.state.drawerKeyValue;\n const buttonText = toggleButtonText !== undefined ? toggleButtonText : '';\n const keys = keyValue !== undefined ? keyValue : {};\n const { isMobileView } = this.props;\n\n let isDrawerOpen = false;\n if (keys[buttonText]) {\n isDrawerOpen = true;\n }\n const colProps: ICollapseProps = { isOpen: isDrawerOpen };\n return (\n \n
\n {menuItem.subMenu!.map((menuSubItem: IMenuItemData, currentPos: number) => {\n if (ArrayExtensions.hasElements(menuSubItem.subMenu)) {\n return this._renderDrawer(menuSubItem, menuItem.subMenu?.length, currentPos + this._positionInSetOffset);\n }\n return this._renderDrawerLink(menuSubItem, menuItem.subMenu?.length, currentPos + this._positionInSetOffset);\n })}\n
\n \n );\n }\n\n /**\n * Method to render link.\n * @param linkText -Text on Menu link.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderLinkText(linkText: string | undefined, setSize: number | undefined, posinset: number | undefined): JSX.Element {\n return (\n \n {linkText}\n \n );\n }\n\n /**\n * Method to render drawer link.\n * @param item -Single Menuitem.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawerLink(item: IMenuItemData, setSize: number | undefined, posinset: number): JSX.Element | null {\n if (item && item.linkText && item.linkURL && item.linkURL.length > 0) {\n return this._renderLinkMenuItem(item, undefined, true, false, setSize, posinset);\n } else if (item && item.linkText && !item.linkURL) {\n return this._renderSpanMenuItem(item);\n }\n return null;\n }\n\n /**\n * Method to generate menu.\n * @returns Jsx element.\n */\n private _renderDisplay(): JSX.Element[] {\n const { ListItem, menuItemData, isMobileView } = this.props;\n const { activeMenu } = this.state;\n const menuItemList: JSX.Element[] = [];\n\n if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\n let menuItem: IMenuItemData = {};\n for (const menuItemDatum of menuItemData) {\n if (menuItemDatum && menuItemDatum.id === activeMenu) {\n menuItem = menuItemDatum;\n this.setState({ parentMenu: undefined });\n break;\n }\n menuItem = this._getFromSubMenu(menuItemDatum) as IMenuItemData;\n if (menuItem && menuItem.id === activeMenu) {\n break;\n }\n }\n\n menuItem &&\n menuItemList.push(\n \n {` `}\n {this._createMenuItemList(menuItem)}\n {` `}\n \n );\n } else {\n menuItemData.forEach((item: IMenuItemData, index: number) => {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n \n );\n });\n }\n\n return menuItemList;\n }\n\n /**\n * Method to get data for submenu.\n * @param item -Single Menuitem.\n * @returns IMenuItemData.\n */\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\n const subMenus = item && item.subMenu;\n if (subMenus && subMenus.length > 0) {\n for (let i = 0; i <= subMenus.length - 1; i++) {\n if (subMenus[i].id === this.state.activeMenu) {\n this.setState({ parentMenu: item?.id });\n return subMenus[i];\n }\n const found = this._getFromSubMenu(subMenus[i]);\n if (found) {\n return found;\n }\n }\n }\n return null;\n }\n\n /**\n * Method to create item list.\n * @param menuItemData -Single Menuitem.\n * @returns Jsx element.\n */\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id);\n }\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id)}\n \n );\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\n return this._renderLinkMenuItem(menuItemData, menuItemData.id, false, true);\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\n return this._renderSpanMenuItem(menuItemData, menuItemData.id, true);\n }\n\n return null;\n }\n\n private _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number, IsSubMenu?: boolean): JSX.Element | null {\n const { isMobileView, ListItem } = this.props;\n const enableMultiSupportMenu = this.props.config.enableMultilevelMenu || false;\n const subMenuLevel = 3;\n const multiLevelSupportedMenu = this.props.config.menuLevelSupport || subMenuLevel;\n\n // Const isParentMenu:boolean= false;\n if (activeMenu && this.state.activeMenu !== activeMenu) {\n this.props.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\n return null;\n }\n\n if (!subMenus || subMenus.length === 0) {\n this.props.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\n return null;\n }\n\n let levelClassName: string = '';\n const menuOptions =\n subMenus &&\n subMenus.map((option: IMenuItemData, idx: number) => {\n const hasOptions = option.subMenu && option.subMenu.length > 0;\n let menuItem: JSX.Element | null;\n if (hasOptions && isMobileView) {\n menuItem = this._renderButtonMenuItem(option, activeMenu, idx);\n } else {\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, idx) : this._renderSpanMenuItem(option);\n }\n let subMenu;\n const haveSubmenu = hasOptions && enableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - 1;\n if (haveSubmenu) {\n this.currentLevel++;\n levelClassName = enableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined, true);\n }\n return (\n \n {menuItem}\n {subMenu}\n \n );\n });\n return this._renderMenu(levelClassName, menuOptions, activeMenu, IsSubMenu);\n }\n\n /**\n * Method to render button menu item.\n * @param option -Single Menuitem.\n * @param activeMenu -Active menu number.\n * @param index -Active menu index.\n * @returns Jsx element.\n */\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\n const { Button } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n /**\n * Method to render link menu item.\n * @param option -Single Menuitem.\n * @param index -Active menu index.\n * @param hoverEffect -Active menu effect.\n * @param isParent -Is parent menu.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderLinkMenuItem(\n option: IMenuItemData,\n index?: number,\n hoverEffect: boolean = true,\n isParent: boolean = false,\n setSize?: number,\n posinset?: number\n ): JSX.Element | null {\n const { Link, isMobileView } = this.props;\n const linkText = option.linkText ? option.linkText : '';\n const imagesource = option.imageSource ? option.imageSource : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n /**\n * Method to render promotional link.\n * @param linkText -Link text.\n * @param linkUrl -Link url.\n * @returns Jsx element.\n */\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\n const { Link } = this.props;\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n if (linkText && linkUrl) {\n return (\n \n {linkText}\n \n );\n }\n return null;\n }\n\n /**\n * Method to render span menu item.\n * @param option -Single Menu Item.\n * @param index -Index.\n * @param isParent -Is parent menu.\n * @returns Jsx element.\n */\n private _renderSpanMenuItem(option: IMenuItemData, index?: number, isParent: boolean = false): JSX.Element | null {\n const { Span } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n /**\n * Method to render menu.\n * @param level -Menu level.\n * @param menuOptions -Menu lists.\n * @param currentItem -Menu current.\n * @param submenu -Mneu has submenu or not.\n * @returns Jsx element.\n */\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean): JSX.Element | null {\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, isMobileView, showPromotionalContent } = this.props;\n const categoryImageDisplay =\n !isMobileView && showCategoryImage && this.state.categoryImage !== null && this.state.categoryImage !== undefined && !submenu;\n const promotionalContentDisplay =\n !isMobileView && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !submenu;\n const DivContainerClass = this.currentLevel > 2 || categoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\n this.currentLevel = 1;\n return (\n \n 2 &&\n 'navmenu-multi-level'\n )}\n >\n {menuOptions}\n \n
\n {categoryImageDisplay &&\n this.state.categoryImage &&\n this.state.categoryImage.map(item => (\n \n {this.state.categoryImage && this._getCategoryImage(item)}\n {promotionalContentDisplay && this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n \n ))}\n
\n \n );\n }\n\n private readonly _updateCategoryImage = (categoryImageSrc: string, option: IMenuItemData) => () => {\n const linkText = option && option.linkText ? option.linkText : '';\n const promotionalImage: IImageData[] = [{ src: categoryImageSrc, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\n option.promotionalContent.map(item => {\n if (item && item.image) {\n const imageSrc = item.image.src;\n const promotionalItemImageSettings = item.image.imageSettings;\n promotionalImage.push({\n src: imageSrc,\n altText: item.text,\n imageSettings: promotionalItemImageSettings,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n }\n });\n }\n this.setState({\n categoryImage: promotionalImage.length > 0 ? promotionalImage : [{ src: 'empty' }],\n categoryImageAltText: linkText\n });\n };\n\n /**\n * Method to handle dropdwon change.\n * @param data -Menuitem data.\n * @param parentId -Menu parent.\n * @returns Jsx element.\n */\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\n if (!this.props.isMobileView) {\n this.setState({\n activeMenu: this.state.activeMenu && this.state.activeMenu === data.id! ? undefined : data.id!,\n parentMenu: parentId\n });\n if (this.props.showCategoryImage) {\n this._updateCategoryImage(data.imageSource!, data)();\n }\n } else {\n this.setState({\n activeMenu: data.id,\n parentMenu: parentId\n });\n }\n\n this._resetFocus();\n };\n\n /**\n * Method to call when focus lost from menu.\n */\n private readonly _resetFocus = () => {\n if (this.props.isMobileView) {\n setTimeout(() => {\n this.menuNode && this.menuNode.current && this.menuNode.current.focus();\n }, 0);\n }\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleClickOutside = (event: MouseEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\n this.setState({\n activeMenu: undefined,\n categoryImage: null\n });\n }\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleFocusOutside = (event: FocusEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.relatedTarget as Node)) {\n this._closeSubmenu();\n }\n };\n\n /**\n * Method to handle close submenu event.\n */\n private _closeSubmenu(): void {\n if (!this.props.isMobileView) {\n this.setState({ activeMenu: undefined });\n }\n }\n\n /**\n * Method to handle escape key event.\n * @param event -HTML event.\n */\n private readonly _escFunction = (event: React.KeyboardEvent) => {\n if (event.keyCode === this.escapeKey) {\n if (!this.props.isMobileView) {\n const navDrawerList = Array.from(this.menuNode.current!.childNodes);\n for (const item of navDrawerList) {\n const navDrawerButton = item.firstChild as HTMLButtonElement;\n if (navDrawerButton.getAttribute('aria-expanded') === 'true') {\n navDrawerButton.focus();\n }\n }\n }\n this._closeSubmenu();\n }\n };\n\n private readonly _getCategoryImage = (categoryImage?: IImageData): React.ReactNode | null => {\n if (!categoryImage || !categoryImage.src) {\n return null;\n }\n\n const categoryImageUrl = generateImageUrl(categoryImage.src, this.props.context.actionContext.requestContext.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n sm: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n md: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n lg: { q: 'w=300&h=250&m=8', w: 0, h: 0 }\n },\n lazyload: true\n };\n if (categoryImageUrl !== undefined) {\n const ImageData: IImageData = { src: categoryImageUrl };\n return (\n \n );\n }\n return null;\n };\n\n /**\n * Method to handle escape key event.\n * @param drawerState -HTML event.\n */\n private readonly _onDrawerChange = (drawerState: IDrawerState) => {\n const { drawerKeyValue } = this.state;\n const drawerText: string = drawerState.buttonText !== undefined ? drawerState.buttonText : '';\n const newPair = { [drawerText]: drawerState.isOpen };\n this.setState({ drawerKeyValue: { ...drawerKeyValue, ...newPair } });\n };\n}\n\nexport default NavigationMenuView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './account-loyalty-tile-description';\nexport { IAccountLoyaltyTileLinks } from './account-loyalty-tile-links';\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 ISignInText {\n className: string;\n text: string;\n}\n\nconst SignInText: React.FC = ({ className, text }) => {text};\n\nexport default SignInText;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISubscribeViewProps } from './subscribe';\n\n/**\n * Override form action and button action below.\n * @param event - The form event.\n */\nconst onSubmit = (event: React.FormEvent): void => {\n event.preventDefault();\n};\n\n/**\n * View component.\n * @param props - The view properties.\n * @returns - Returns nothing.\n */\nexport const subscribeView: React.FC = props => {\n const { subscribe, subscribeContainer, heading, text, subscribeForm, emailInput, submitButton } = props;\n return (\n \n \n {heading}\n {text}\n \n \n \n {props.submitButtonLabelText}\n \n \n \n \n );\n};\n\nexport default subscribeView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React from 'react';\n\nexport const SignUpText: React.FC<{ text: string }> = (props: { text: string }) => {\n return

{props.text}

;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, * as Msdyn365 from '@msdyn365-commerce/core';\nimport { issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { SignUpText } from './components/loyalty-sign-up-small-components';\nimport { ILoyaltySignUpData } from './loyalty-sign-up.data';\nimport { ILoyaltySignUpProps } from './loyalty-sign-up.props.autogenerated';\n\nexport interface IAccountLoyaltyJoinState {\n clicked: boolean;\n}\nexport interface ILoyaltySignUpViewProps extends ILoyaltySignUpProps {\n LoyaltySignUp: IModuleProps;\n heading: React.ReactNode;\n memberHeading: React.ReactNode;\n signInLink: React.ReactElement;\n signUpText: React.ReactElement;\n signUpButton: React.ReactElement;\n detailsLink: React.ReactElement;\n termsLink: React.ReactElement;\n loading: boolean;\n infoMessageBar?: React.ReactNode;\n}\n\n/**\n *\n * LoyaltySignUp component.\n * @extends {React.Component>}\n */\n@observer\nclass LoyaltySignUp extends React.Component, IAccountLoyaltyJoinState> {\n private readonly telemetryContent?: ITelemetryContent;\n private readonly loyaltySignInAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltySignUpAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyDetailsLinkAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyTermsLinkAttributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: ILoyaltySignUpProps) {\n super(props);\n this.state = { clicked: false };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.SignIn);\n this.loyaltySignInAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.SignUp;\n this.loyaltySignUpAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyDetailLink;\n this.loyaltyDetailsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsLink;\n this.loyaltyTermsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltySignUpProps, nextState: IAccountLoyaltyJoinState): 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, memberHeading },\n resources,\n context: {\n actionContext,\n request: {\n user: { signInUrl, isAuthenticated }\n }\n },\n data\n } = this.props;\n\n const termsUrl = Msdyn365.getUrlSync('loyaltyTerms', actionContext);\n let loyaltyJoinUrl = `${Msdyn365.getUrlSync('loyaltyJoin', actionContext)}?joiningLoyalty=true`;\n if (MsDyn365.isBrowser) {\n loyaltyJoinUrl = `${window.location.origin}${loyaltyJoinUrl}`;\n }\n const signInurl = `${signInUrl}?ru=${loyaltyJoinUrl}`;\n const completeClass = classname('ms-loyalty-signup', className);\n const loyaltyCard = data.loyaltyCard;\n const hasLoyaltyAccount = loyaltyCard.result && loyaltyCard.result.CardTenderTypeValue !== undefined;\n const customerInformation = data.customerInformation?.result;\n\n const invalidAsyncCustomerState: boolean =\n (this.props.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false);\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltySignUp: {\n moduleProps: this.props,\n className: completeClass\n },\n infoMessageBar: invalidAsyncCustomerState && (\n \n ),\n loading: !this.props.context.request.params.isEditor && loyaltyCard?.status === 'LOADING',\n heading: !hasLoyaltyAccount && heading && heading.text && (\n \n ),\n memberHeading: hasLoyaltyAccount && memberHeading && memberHeading.text && (\n \n ),\n signInLink: !isAuthenticated && (\n \n ),\n signUpText: !hasLoyaltyAccount && ,\n signUpButton: !hasLoyaltyAccount && isAuthenticated && (\n \n {this.props.resources.joinLoyaltyButtonText}\n \n ),\n detailsLink: hasLoyaltyAccount && (\n \n {this.props.resources.viewLoyaltyPageText}\n \n ),\n termsLink: !hasLoyaltyAccount && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleMemberHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.memberHeading!.text = event.target.value);\n\n private readonly _issueLoyalty = () => {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(() => {\n if (MsDyn365.isBrowser) {\n window.location.assign(Msdyn365.getUrlSync('loyalty', this.props.context.actionContext) || '');\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n };\n}\n\nexport default LoyaltySignUp;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationSuccess;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignInButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst SignInButton: React.FC = ({ id, className, text, ariaLabel, telemetryContent, disabled, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default SignInButton;\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 { IAccountCustomerBalanceTileViewProps } from './account-customer-balance-tile';\n\nconst AccountCustomerBalanceTileView: React.FC = props => {\n const { AccountCustomerBalanceTile, heading, content, links } = props;\n\n return (\n \n {heading}\n {content}\n {links}\n \n );\n};\n\nexport default AccountCustomerBalanceTileView;\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 ISignInLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst SignInLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default SignInLabel;\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 IAccountWishlistTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountWishlistTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n\nexport default IAccountWishlistTileDescription;\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-wishlist-tile.props.autogenerated';\n\nexport interface IAccountWishlistTileLinks {\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 AccountWishlistTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\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-wishlist-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 AccountWishlistTileLinks;\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 { IAccountWishlistTileData } from './account-wishlist-tile.data';\nimport { IAccountWishlistTileProps } from './account-wishlist-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-wishlist-tile-description';\nimport LinksComponent from './components/account-wishlist-tile-links';\n\nexport interface IAccountWishlistTileViewProps extends IAccountWishlistTileProps {\n AccountWishlistTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountWishlist component.\n * @extends {React.PureComponent>}\n */\nclass AccountWishlistTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IAccountWishlistTileProps) {\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 { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountWishlistTileDescription } = resources;\n const wishlists = data.wishlists.result;\n\n const wishlistsCount = ((wishlists && wishlists.length && wishlists[0].CommerceListLines) || []).length;\n const description = format(accountWishlistTileDescription || 'You have {0} items in the Wishlist.', wishlistsCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountWishlistTile: {\n moduleProps: this.props,\n className: classnames('ms-account-wishlist-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n 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 AccountWishlistTile;\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 React from 'react';\n\nimport { IB2bRequestsStatusViewProps } from './b2b-requests-status';\n\nconst B2bRequestsStatusView: React.FC = props => {\n const { b2bRequestsStatus, heading, table } = props;\n return (\n \n {heading}\n {table}\n \n );\n};\n\nexport default B2bRequestsStatusView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport LoyaltySignUp from './loyalty-sign-up';\nimport LoyaltySignUpView from './loyalty-sign-up.view';\n\nexport * from './loyalty-sign-up';\nexport * from './loyalty-sign-up.data';\nexport {\n ILoyaltySignUpConfig,\n ILoyaltySignUpProps,\n ILoyaltySignUpResources,\n IMemberHeadingData,\n MemberHeadingTag\n} from './loyalty-sign-up.props.autogenerated';\nexport * from './loyalty-sign-up.view';\n\nexport { LoyaltySignUp, LoyaltySignUpView };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n ICategoryHierarchyViewProps,\n IRefineMenuViewProps,\n ISearchResultContainerViewProps,\n ISearchResultModalViewProps,\n ISortByViewProps,\n ITitleViewProps\n} from '@msdyn365-commerce-modules/search-result-container';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst SearchResultContainerView: React.FC = props => {\n const {\n SearchResultContainer,\n products,\n pagination,\n ProductsContainer,\n ProductSectionContainer,\n choiceSummary,\n isMobile,\n modalToggle,\n searchResultModal,\n TitleViewProps,\n refineMenu,\n categoryHierarchy,\n sortByOptions,\n CategoryNavContainer,\n RefineAndProductSectionContainer,\n errorMessage,\n FeatureSearchContainer,\n similarLookProduct\n } = props;\n const isRecoSearchPage = props.context.actionContext.requestContext.query?.recommendation;\n if (isMobile) {\n return (\n \n {categoryHierarchy && renderCategoryHierarchy(categoryHierarchy)}\n {renderTitle(TitleViewProps)}\n {choiceSummary}\n {modalToggle}\n {createSearchResultModal(searchResultModal, refineMenu, sortByOptions, isRecoSearchPage)}\n {similarLookProduct}\n \n {errorMessage}\n {products}\n \n {pagination}\n \n );\n }\n return (\n \n {categoryHierarchy && {renderCategoryHierarchy(categoryHierarchy)}}\n \n {refineMenu && renderRefiner(refineMenu)}\n \n {similarLookProduct}\n
\n {TitleViewProps && renderTitle(TitleViewProps)}\n {choiceSummary}\n
\n
\n {sortByOptions && !isRecoSearchPage && renderSort(sortByOptions)}\n
\n \n {errorMessage}\n {products}\n \n {pagination}\n
\n
\n
\n );\n};\n\nconst createSearchResultModal = (\n modalProps: ISearchResultModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element => {\n return React.cloneElement(\n modalProps.modal,\n {},\n modalProps.modalHeader,\n createModalBody(modalProps, refineMenu, sortByDropDown, isRecoSearchPage),\n modalProps.modalFooter\n );\n};\n\nconst createModalBody = (\n props: ISearchResultModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element | null => {\n if (sortByDropDown) {\n return React.cloneElement(props.modalBody, {}, renderSort(sortByDropDown, isRecoSearchPage), renderRefiner(refineMenu));\n }\n return null;\n};\n\nconst renderRefiner = (props: IRefineMenuViewProps): JSX.Element | null => {\n const { refiners, RefineMenuContainer, RefinerSectionContainer } = props;\n if (refiners) {\n return (\n \n \n {refiners.map((submenu, index) => (\n {submenu}\n ))}\n \n \n );\n }\n return null;\n};\n\nconst renderSort = (props: ISortByViewProps, isRecoSearchPage?: string): JSX.Element | null => {\n const { SortingContainer, sortByDropDown } = props;\n if (sortByDropDown && !isRecoSearchPage) {\n return {sortByDropDown};\n }\n return null;\n};\n\nconst renderCategoryHierarchy = (props: ICategoryHierarchyViewProps): JSX.Element | null => {\n const { CategoryHierarchyContainer, categoryHierarchyList, categoryHierarchySeparator } = props;\n if (categoryHierarchyList) {\n return (\n \n {categoryHierarchyList.map((category, index) => (\n \n {category}\n {categoryHierarchyList && categoryHierarchyList[index + 1] && categoryHierarchySeparator}\n \n ))}\n \n );\n }\n\n return null;\n};\n\nconst renderTitle = (props: ITitleViewProps): JSX.Element | null => {\n const { title, TitleContainer } = props;\n if (title) {\n return (\n \n

\n {title.titlePrefix}\n {title.titleText}({title.titleCount})\n

\n
\n );\n }\n return null;\n};\n\nexport default SearchResultContainerView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport SignIn from './sign-in';\nimport SignInView from './sign-in.view';\n\nexport * from './components';\nexport * from './sign-in';\nexport * from './sign-in.props.autogenerated';\nexport * from './sign-in.view';\n\nexport { SignIn, SignInView };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport AccountLoyaltyTile from './account-loyalty-tile';\nimport AccountLoyaltyTileView from './account-loyalty-tile.view';\n\nexport * from './account-loyalty-tile';\nexport * from './account-loyalty-tile.data';\nexport {\n IAccountLoyaltyTileConfig,\n IAccountLoyaltyTileProps,\n IAccountLoyaltyTileResources\n} from './account-loyalty-tile.props.autogenerated';\nexport * from './account-loyalty-tile.view';\nexport * from './components';\n\nexport { AccountLoyaltyTile, AccountLoyaltyTileView };\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, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createTabStateInput, getContentID, TabItemType } from '../..';\nimport { ITabData } from './tab.data';\nimport { ITabProps } from './tab.props.autogenerated';\n\n/**\n *\n * Tab component.\n * @extends {React.PureComponent>}\n */\n\nexport interface ICallToActionProps {\n link: INodeProps[];\n}\n\nexport interface ITabViewProps extends ITabProps<{}> {\n heading?: React.ReactNode;\n TabContainer: IModuleProps;\n headerSection: INodeProps;\n tabHeaderSection: INodeProps;\n tabsSection: INodeProps;\n tabItemContainer: INodeProps;\n tabHeaders: React.ReactNode;\n tabContents: React.ReactNode;\n}\n\nexport interface ITabViewStates {\n currentTabIndex: number;\n}\n\n/**\n *\n * Tab component.\n * @extends {React.Component>}\n */\n@observer\nclass Tab extends React.Component, ITabViewStates> {\n public readonly tabIndexQuery: string = 'activeTab';\n\n private activeLink: HTMLLIElement | null;\n\n constructor(props: ITabProps) {\n super(props);\n const { defaultTabIndex } = this.props.config;\n const { slots } = this.props;\n const slotLength = (slots && slots.tabItems && slots.tabItems.length) || 0;\n let initialIndex = defaultTabIndex && defaultTabIndex <= slotLength && defaultTabIndex > 0 ? defaultTabIndex - 1 : 0;\n const queryString: string =\n (this.props.context &&\n this.props.context.request &&\n this.props.context.request.query &&\n this.props.context.request.query.activeTab) ||\n '';\n let queryTabIndex: number = 0;\n if (queryString.indexOf(':') > 0) {\n const arr = queryString.split(':');\n const moduleId = arr[0];\n if (moduleId === this.props.id) {\n queryTabIndex = Number.parseInt(arr[1], 10);\n }\n }\n initialIndex = queryTabIndex > 0 && queryTabIndex <= slotLength ? queryTabIndex - 1 : initialIndex;\n this.state = { currentTabIndex: initialIndex };\n\n this._getTabHeader = this._getTabHeader.bind(this);\n this._getTabContent = this._getTabContent.bind(this);\n this._onClick = this._onClick.bind(this);\n this._onKeyDown = this._onKeyDown.bind(this);\n this._setGetParameter = this._setGetParameter.bind(this);\n this.activeLink = null;\n }\n\n public shouldComponentUpdate(nextProps: ITabProps, nextState: ITabViewStates): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { slots } = this.props;\n const { heading, className } = this.props.config;\n\n const headingComponent = heading && (\n \n );\n const slotLength = (slots && slots.tabItems && slots.tabItems.length) || 0;\n\n // Const queryTabIndex = this.props.context && this.props.context.request && this.props.context.request.query && +this.props.context.request.query.activeTabIndex || 0;\n // let activeIndex = defaultTabIndex && defaultTabIndex <= slotLength && defaultTabIndex > 0 ? defaultTabIndex - 1 : 0;\n // activeIndex = queryTabIndex > 0 && queryTabIndex <= slotLength ? queryTabIndex - 1 : activeIndex;\n\n const tabViewProps = {\n ...this.props,\n TabContainer: {\n moduleProps: this.props,\n className: classnames('ms-tab', className)\n },\n headerSection: { className: 'ms-tab-header-section' },\n tabsSection: { className: 'ms-tab-tabs-section', tag: 'ul' as NodeTag, role: 'tablist' },\n heading: headingComponent,\n config: this.props && this.props.config,\n tabItemContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-tab-content-section'\n },\n tabContents: slotLength > 0 && slots.tabItems.map((item: React.ReactNode, index: number) => this._getTabContent(item, index)),\n tabHeaders: slotLength > 0 && slots.tabItems.map((item: React.ReactNode, index: number) => this._getTabHeader(item, index))\n };\n return this.props.renderView(tabViewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: MsDyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public componentDidUpdate(): void {\n const { data } = this.props;\n if (!this.props.context.request.params.isEditor) {\n const dataActionTabId = data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.tabId;\n if (dataActionTabId) {\n if (this.props.id === dataActionTabId) {\n this.activeLink && this.activeLink.focus();\n }\n } else {\n const queryString: string =\n (this.props.context &&\n this.props.context.request &&\n this.props.context.request.query &&\n this.props.context.request.query.activeTab) ||\n '';\n if (queryString.indexOf(':') > 0) {\n const arr = queryString.split(':');\n const moduleId = arr[0];\n if (moduleId === this.props.id) {\n this.activeLink && this.activeLink.focus();\n }\n }\n }\n }\n }\n\n /**\n *Set the activate link value on tab click.\n * @param link -Ref link value.\n */\n private readonly _refHandler = (link: HTMLLIElement | null) => {\n this.activeLink = link;\n };\n\n private _getTabHeader(item: React.ReactNode, index: number): React.ReactNode {\n const { data } = this.props;\n const activeContentIndex =\n data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.activeContentIndex;\n const dataActionTabId = data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.tabId;\n const selected =\n activeContentIndex !== undefined && dataActionTabId === this.props.id\n ? activeContentIndex === index\n : this.state.currentTabIndex === index;\n const contentID = getContentID(index, this.props.id);\n\n return (\n \n \n {React.cloneElement(item as React.ReactElement, {\n tabItemType: TabItemType.TabHeader,\n isSelected: index === this.state.currentTabIndex,\n itemIndex: index,\n tabId: this.props.id\n })}\n \n \n );\n }\n\n private readonly _onClick = (index: number, id: string) => (e: React.MouseEvent) => {\n const activeTabState = { activeContentIndex: index, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 1)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n };\n\n private readonly _onKeyDown = (index: number, id: string) => (e: React.KeyboardEvent) => {\n if (e.keyCode === 13) {\n const activeTabState = { activeContentIndex: index, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 1)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n }\n\n if (e.keyCode === 39 || e.keyCode === 37) {\n const { slots } = this.props;\n const slotLength = (slots && slots.tabItems && slots.tabItems.length) || 0;\n\n if (e.keyCode === 39) {\n // If we're at the end, go to the start\n if (index + 1 === slotLength) {\n index = -1;\n }\n const activeTabState = { activeContentIndex: index + 1, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index + 1 });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 2)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n\n // Move left\n } else if (e.keyCode === 37) {\n // If we're at the start, move to the end\n if (index === 0) {\n index = slotLength;\n }\n const activeTabState = { activeContentIndex: index - 1, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index - 1 });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n }\n }\n };\n\n private _getTabContent(item: React.ReactNode, index: number): React.ReactNode {\n return (\n \n {React.cloneElement(item as React.ReactElement, {\n tabItemType: TabItemType.TabContent,\n isSelected: index === this.state.currentTabIndex,\n itemIndex: index,\n tabId: this.props.id\n })}\n \n );\n }\n\n private _setGetParameter(requestContext: MsDyn365.IRequestContext, paramName: string, paramValue: string): string {\n let url;\n\n if (MsDyn365.msdyn365Commerce.isBrowser) {\n url = new URL(window.location.href);\n } else {\n url = new URL(requestContext.url.requestUrl.href);\n }\n\n const params = new window.URLSearchParams(url.search);\n params.set(paramName, paramValue);\n url.search = decodeURIComponent(params.toString());\n return url.toString();\n }\n}\n\nexport default Tab;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListViewProps, IFormViewProps, InputID } from './business-organization-list';\nimport { IBusinessFormItem } from './components/small-components';\n\nconst BusinessFormItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst BusinessUserForm: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\n\n const modalBody = (\n <>\n {modalDescription}\n \n {inputs &&\n inputs.map((item: IBusinessFormItem) => {\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n \n );\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst BusinessUserDetails: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, selectedUser, buttons, errorMessage, resources, toggle } = props;\n let modalBody = null;\n\n if (!selectedUser) {\n modalBody = errorMessage;\n } else {\n const { FirstName, LastName } = selectedUser;\n const userFullName = `${FirstName} ${LastName}`;\n\n modalBody = (\n <>\n {modalDescription}\n \n \n {userFullName}\n \n {Object.keys(selectedUser).map((data, index) => {\n if (data === InputID.FirstName || data === InputID.LastName) {\n return null;\n }\n const label = resources[`table${data}HeadingText`] || data;\n return (\n \n {label}\n {': '}\n {selectedUser[data]}\n \n );\n })}\n \n \n );\n }\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst _getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\n switch (type) {\n case 'ADD':\n case 'EDIT':\n return ;\n case 'VIEW':\n case 'REMOVE':\n return ;\n default:\n return null;\n }\n};\n\nconst _renderModal = (\n className: string,\n isModalOpen: boolean,\n headingSection: React.ReactNode,\n bodySection: React.ReactNode,\n footerSection: React.ReactNode,\n toggleModal?: () => void\n) => {\n return (\n \n {headingSection}\n {bodySection}\n {footerSection}\n \n );\n};\n\nconst BusinessOrganizationList: React.FC = props => {\n const {\n OrganizationUserList,\n moduleContainer,\n heading,\n noUsersText,\n addUserButton,\n organizationListTable,\n form,\n formType,\n toggleModal,\n requestAccountStatementButton,\n requestStatementModal\n } = props;\n\n const ButtonList: React.ReactNode = (\n \n {addUserButton}\n {requestAccountStatementButton}\n \n );\n\n if (noUsersText) {\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {noUsersText}\n \n \n );\n }\n\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {organizationListTable}\n \n {form && _getForm(formType, form, toggleModal)}\n \n );\n};\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { InputType } from '../business-organization-list';\n\nexport interface IBusinessForm {\n FormWrapper: INodeProps;\n message?: React.ReactNode;\n items: IBusinessFormItem[];\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n}\n\nexport interface IBusinessFormItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IBusinessFormInput {\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IUserFormItem {\n id: string;\n type: InputType;\n label: string;\n value: string;\n maxChars?: string;\n isRequired: boolean;\n pattern?: string;\n isDisabled?: boolean;\n customClass?: string;\n fieldReference?: React.RefObject;\n}\n\nexport interface IBusinessFormInputProps {\n id?: string;\n type: string;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n isRequired: boolean;\n isDisabled?: boolean;\n placeholder?: string;\n fieldReference?: React.RefObject;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport const FormInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n isRequired,\n isDisabled,\n onChange,\n fieldReference,\n placeholder\n}) => (\n \n);\n\nexport interface IBusinessFormLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n asteriskText: string;\n}\n\nexport const FormLabel: React.FC = ({ id, forId, className, text, asteriskText }) => (\n \n);\n\nexport interface IBusinessFormButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nexport const FormButton: React.FC = ({ id, className, text, ariaLabel, telemetryContent, disabled, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport interface IBusinessFormErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nexport const FormFieldError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IRequestContext } from '@msdyn365-commerce/core';\nimport {\n AccountStatementRequest,\n BusinessPartnerOperationDeliveryType,\n BusinessPartnerUser,\n BusinessPartnerUsersDataActions\n} from '@msdyn365-commerce/retail-proxy';\nimport { AdminRequestStatementButton, RequestStatementModal } from '@msdyn365-commerce-modules/account-management';\nimport {\n addOrganizationUser,\n AddOrganizationUserInput,\n ArrayExtensions,\n deleteOrganizationUser,\n DeleteOrganizationUserInput,\n editOrganizationUser,\n EditOrganizationUserInput,\n EmailRegex,\n Random,\n StringExtensions\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n Heading,\n IDataTableProps,\n IHeadingsProperty,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITableItemProps,\n ITableRowProps,\n ITelemetryContent,\n Table,\n TableDataType,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListData } from './business-organization-list.data';\nimport { IBusinessOrganizationListProps, IBusinessOrganizationListResources } from './business-organization-list.props.autogenerated';\nimport { FormButton, FormFieldError, FormInput, FormLabel, IBusinessFormItem, IUserFormItem } from './components';\n\nexport interface IBusinessOrganizationListViewProps extends IBusinessOrganizationListProps {\n OrganizationUserList: IModuleProps;\n moduleContainer: INodeProps;\n heading: React.ReactNode;\n noUsersText?: string;\n addUserButton?: React.ReactNode;\n search?: React.ReactNode;\n organizationListTable: React.ReactNode;\n form?: IFormViewProps;\n formItems?: IUserFormItem[];\n formType: FormType;\n deleteUserForm?: React.ReactNode;\n viewUserDetails?: React.ReactNode;\n modalHeading?: React.ReactNode;\n modalState?: boolean;\n requestAccountStatementButton: React.ReactNode;\n requestStatementModal: React.ReactNode;\n toggleModal?(): void;\n}\n\nexport interface IBusinessOrganizationListState {\n isReady: boolean;\n formItems: IUserFormItem[];\n isFormActive: boolean;\n formType: FormType;\n selectedUserData?: BusinessPartnerUser;\n referenceBack?: HTMLButtonElement | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n displayedUserData?: any;\n refresh: boolean;\n isModalOpen: boolean;\n hasFormError: boolean;\n hasActionError: boolean;\n isStatementRequestModalOpen: boolean;\n statementRequestFromDateString: string;\n statementRequestToDateString: string;\n isStatementRequestAdminDropdownOpen: boolean;\n statementRequestFullOrg: boolean;\n statementRequestMaxDateString?: string;\n businessUserActionRetailErrorMsg: string;\n}\n\ntype GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport enum FormType {\n None = 'NONE',\n Edit = 'EDIT',\n Remove = 'REMOVE',\n View = 'VIEW',\n Add = 'ADD'\n}\n\nexport enum InputType {\n Text = 'text',\n Email = 'email'\n}\n\nexport enum InputID {\n FirstName = 'FirstName',\n LastName = 'LastName',\n B2BUserId = 'B2BUserId',\n Email = 'Email',\n SpendingLimit = 'SpendingLimit',\n Status = 'Status',\n FullName = 'Name'\n}\n\nexport interface IFormViewProps {\n modalClassName: string;\n FormWrapper: INodeProps;\n modalHeading?: string;\n modalDescription?: React.ReactNode;\n inputs?: IBusinessFormItem[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n selectedUser?: any;\n buttons?: React.ReactNode[];\n errorMessage?: React.ReactNode[];\n resources: IBusinessOrganizationListResources;\n toggle?(): void;\n}\n\nexport const renderInputSection = (\n inputs: IUserFormItem[],\n className: string,\n asteriskAfterLabel: string,\n onInputChange: (event: React.ChangeEvent) => void\n): IBusinessFormItem[] => {\n return inputs.map(element => {\n const { customClass, id, type, label, maxChars, isRequired, pattern, value, isDisabled, fieldReference } = element;\n return {\n wrapper: {\n className: classnames(className, id, customClass)\n },\n key: id,\n label: ,\n errorMessage: ,\n input: (\n \n )\n };\n });\n};\n\ninterface IUserTableItemProps extends ITableItemProps {\n user: BusinessPartnerUser;\n}\n\n/**\n *\n * BusinessOrganizationList component.\n * @extends {React.PureComponent>}\n */\n@observer\nclass BusinessOrganizationList extends React.Component<\n IBusinessOrganizationListProps,\n IBusinessOrganizationListState\n> {\n public BusinessFormDefaultInputs: IUserFormItem[] = [\n {\n id: InputID.FirstName,\n type: InputType.Text,\n label: this.props.resources.businessUserFirstNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.LastName,\n type: InputType.Text,\n label: this.props.resources.businessUserLastNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.Email,\n type: InputType.Email,\n label: this.props.resources.businessUserEmailAddressLabelText,\n value: '',\n isRequired: true,\n pattern: EmailRegex.defaultRegex.source,\n customClass: 'width-100'\n },\n {\n id: InputID.SpendingLimit,\n type: InputType.Text,\n label: this.props.resources.businessUserSpendingLimitLabelText,\n value: '',\n isRequired: false,\n customClass: 'width-50',\n maxChars: this.props.config?.maxLength\n }\n ];\n\n @observable\n private _viewport: GridSize;\n\n private readonly delayFocus: number = 110;\n\n private formChildReference: React.RefObject[] = [];\n\n private userFormEditReference: React.RefObject[] = [];\n\n private userFormDeleteReference: React.RefObject[] = [];\n\n private readonly submitButtonReference: React.RefObject;\n\n private readonly addUserButtonReference: React.RefObject;\n\n private readonly statementRequestButtonReference: React.RefObject;\n\n private readonly moduleClassName: string = 'ms-business-organization-list';\n\n private readonly mobileExcludedColumns: string[];\n\n @computed get isMobile(): boolean {\n return this._viewport === 'xs' || this._viewport === 'sm';\n }\n\n @computed get canSubmitStatementRequest(): boolean {\n return (\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestFromDateString) &&\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestToDateString)\n );\n }\n\n @computed get selectedUserName(): string {\n const { businessUserSelectedUserDisplayName } = this.props.resources;\n return this.state.selectedUserData\n ? businessUserSelectedUserDisplayName\n .replace('{firstName}', this.state.selectedUserData.FirstName || '')\n .replace('{lastName}', this.state.selectedUserData.LastName || '')\n : '';\n }\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: IBusinessOrganizationListProps) {\n super(props);\n this._toggleModal = this._toggleModal.bind(this);\n this._onInputChange = this._onInputChange.bind(this);\n this._handleRemoveUserButton = this._handleRemoveUserButton.bind(this);\n\n this.mobileExcludedColumns = [InputID.Email, InputID.Status, InputID.SpendingLimit];\n this._viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._updateViewport = this._updateViewport.bind(this);\n this.submitButtonReference = React.createRef();\n this.addUserButtonReference = React.createRef();\n this.statementRequestButtonReference = React.createRef();\n this.state = {\n isReady: false,\n formItems: this.addedReference(),\n isFormActive: false,\n formType: FormType.None,\n refresh: true,\n isModalOpen: false,\n hasFormError: false,\n hasActionError: false,\n isStatementRequestModalOpen: false,\n statementRequestFromDateString: '',\n statementRequestToDateString: '',\n isStatementRequestAdminDropdownOpen: false,\n statementRequestFullOrg: false,\n statementRequestMaxDateString: new Date().toISOString().split('T')[0],\n businessUserActionRetailErrorMsg: ''\n };\n\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 }\n\n public addedReference(): IUserFormItem[] {\n const newFormFields = this.BusinessFormDefaultInputs;\n return newFormFields.map((input, index) => {\n this.formChildReference[Number(index)] = React.createRef();\n input.fieldReference = this.formChildReference[Number(index)];\n return input;\n });\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser && window.addEventListener) {\n window.addEventListener('resize', this._updateViewport);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser && window.removeEventListener) {\n window.removeEventListener('resize', this._updateViewport);\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IBusinessOrganizationListProps,\n nextState: IBusinessOrganizationListState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n\n if (!this.state.isModalOpen && this.state.isModalOpen !== nextState.isModalOpen) {\n setTimeout(() => {\n this.formChildReference[0].current?.focus();\n this.submitButtonReference.current?.focus();\n }, this.delayFocus);\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config,\n resources,\n data: { users }\n } = this.props;\n const { className, heading } = config;\n const {\n businessUserAddUserButtonText,\n businessUserLoadingMessage,\n businessUserEmptyListMessage,\n businessUserErrorGettingUsersMessage,\n userAccountStatementLabel,\n fullOrganizationLabel,\n requestStatementButtonLabel,\n statementRequestModalHeaderLabel,\n cancelLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n sendToEmailLabel,\n selectedUserLabel\n } = resources;\n const {\n formItems,\n isFormActive,\n formType,\n isModalOpen,\n statementRequestFromDateString,\n statementRequestToDateString,\n isStatementRequestModalOpen,\n statementRequestMaxDateString\n } = this.state;\n\n const hasUsers = users && users.result && users.result.length > 0;\n this.payLoad.contentAction.etext = TelemetryConstant.AddUser;\n const addUserAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n const customer = this.props.data.customerInformation?.result;\n\n if (!hasUsers) {\n let errorMessage = '';\n if (users.status === 'LOADING') {\n errorMessage = businessUserLoadingMessage;\n } else if (users.status === 'FAILED') {\n errorMessage = businessUserErrorGettingUsersMessage;\n } else if (users.result && users.result.length === 0) {\n errorMessage = businessUserEmptyListMessage;\n }\n\n const errorProps = {\n ...this.props,\n className,\n OrganizationUserList: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n moduleContainer: {\n className: `${this.moduleClassName}__container`\n },\n heading: heading && ,\n addUserButton: (\n \n {businessUserAddUserButtonText}\n \n ),\n noUsersText:

{errorMessage}

\n };\n\n return this.props.renderView(errorProps) as React.ReactElement;\n }\n\n const viewProps = {\n ...this.props,\n className,\n OrganizationUserList: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n moduleContainer: {\n className: `${this.moduleClassName}__container`\n },\n heading: heading && ,\n modalState: isModalOpen,\n addUserButton: (\n \n {businessUserAddUserButtonText}\n \n ),\n organizationListTable: ,\n toggleModal: this._toggleModal,\n formType,\n form:\n isFormActive && isModalOpen && (formType === FormType.Add || formType === FormType.Edit)\n ? this._renderUserForm()\n : this._renderUserDetails(),\n formItems,\n requestAccountStatementButton: (\n \n ),\n requestStatementModal: (\n \n )\n } as IBusinessOrganizationListViewProps;\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n // _createTableProps: creates the props for the organization list table\n private _createTableProps(): IDataTableProps {\n const { config, resources, context } = this.props;\n const { tableSort, showPagination, paginationItemPerPage } = config;\n const {\n businessUserPaginationNextButtonText,\n businessUserPaginationPreviousButtonText,\n businessUserEditButtonText,\n businessUserViewUserButtonText,\n businessUserDeleteButtonText,\n businessUserActionButtonText,\n businessUserPaginationAriaLabel,\n columnSortAriaLabel\n } = resources;\n\n const tableData = this._createTableItems();\n const tableHeading =\n (ArrayExtensions.hasElements(tableData) &&\n tableData[0].row.map(item => {\n if (this.isMobile && this.mobileExcludedColumns.includes(item.id)) {\n return undefined;\n }\n return {\n name: item.id,\n sortable: (tableSort && tableSort) || false,\n ariaLabel: columnSortAriaLabel\n } as IHeadingsProperty;\n })) ||\n [];\n\n return {\n resources,\n headings: tableHeading,\n rows: tableData,\n className: `${this.moduleClassName}__table`,\n editLinkText: this.isMobile ? businessUserEditButtonText : '', // '' === showing just icon\n deleteLinkText: this.isMobile ? businessUserDeleteButtonText : '', // '' === showing just icon\n viewLinkText: businessUserViewUserButtonText,\n editLinkTooltip: businessUserEditButtonText,\n deleteLinkTooltip: businessUserDeleteButtonText,\n viewLinkTooltip: businessUserViewUserButtonText,\n enableToModify: true,\n actionLinkText: businessUserActionButtonText,\n showCheckBoxes: true,\n isSortable: tableSort,\n resourcePrefix: 'businessUser',\n showPagination,\n minifyActions: this.isMobile,\n excludedColumns: this.isMobile ? this.mobileExcludedColumns : [],\n paginationProperty: {\n skipCount:\n context &&\n context.request &&\n context.request.query &&\n context.request.query.skip &&\n !isNaN(Number.parseInt(context.request.query.skip, 10))\n ? Number.parseInt(context.request.query.skip, 10)\n : 0,\n itemPerPage: paginationItemPerPage || 10,\n prevText: businessUserPaginationPreviousButtonText,\n nextText: businessUserPaginationNextButtonText,\n paginationText: businessUserPaginationAriaLabel,\n url: (context && this._getCurrentUrl(context.request).href) || ''\n },\n isSingleSelectOnly: true,\n tableAriaLabel: resources.tableAriaLabel,\n tableTabIndex: 0,\n businessUserSelectCheckBoxAriaLabelText: resources.businessUserSelectCheckBoxAriaLabelText,\n sortByAscending: resources.sortByAscending,\n sortByDescending: resources.sortByDescending,\n actions: {\n onDelete: this._handleDeleteIcon,\n onEdit: this._handleEditIcon,\n onView: (this.isMobile && this._handleViewDetails) || undefined\n },\n formatPrice: this._formatPrice,\n checkBoxCallback: this._onSelectRow\n };\n }\n\n // _createTableItems: converts users recieved from the data-action(IBusinessParterUser[]) to tableRows(ITableItemProps[])\n private _createTableItems(): ITableRowProps[] {\n const {\n resources,\n data: { users }\n } = this.props;\n const { businessUserActiveStatusText, businessUserPendingStatusText, businessUserRemovedStatusText } = resources;\n const usersList = users && users.result;\n\n if (!ArrayExtensions.hasElements(usersList)) {\n return [];\n }\n\n return usersList.map((user, index) => {\n let statusString = '';\n this.userFormEditReference[index] = React.createRef();\n this.userFormDeleteReference[index] = React.createRef();\n\n switch (user.StatusValue) {\n case 0:\n statusString = businessUserPendingStatusText;\n break;\n case 1:\n statusString = businessUserActiveStatusText;\n break;\n case 2:\n default:\n statusString = businessUserRemovedStatusText;\n }\n\n return {\n row: [\n {\n id: InputID.FullName,\n type: TableDataType.Text,\n value: `${user.FirstName} ${user.LastName}`,\n user\n } as IUserTableItemProps,\n {\n id: InputID.Email,\n type: TableDataType.Text,\n value: user.Email || '',\n className: `${this.moduleClassName}__padRight`\n } as IUserTableItemProps,\n {\n id: InputID.Status,\n type: TableDataType.Text,\n value: statusString\n } as IUserTableItemProps,\n {\n id: InputID.SpendingLimit,\n type: TableDataType.Price,\n value: user.SpendingLimit || 0\n } as IUserTableItemProps\n ],\n isSelected: false,\n buttonReferences: {\n edit: this.userFormEditReference[index],\n delete: this.userFormDeleteReference[index]\n }\n };\n });\n }\n\n // _toggleModal: closes the modal and resets the form states\n private _toggleModal(): void {\n this.state.referenceBack?.focus();\n this.setState({\n isModalOpen: false,\n isFormActive: false,\n referenceBack: undefined,\n formType: FormType.None\n });\n }\n\n // _handleAddUserButtonClicked: resets input fields, opens the modal, and sets the form states\n private readonly _handleAddUserButtonClicked = () => {\n // Reset form\n const newForm = this.state.formItems;\n newForm.forEach(input => {\n if (input.id === InputID.Email) {\n // Make sure email input is re enabled (it gets disabled when admin is editing user)\n input.isDisabled = false;\n }\n\n input.value = '';\n });\n\n const newUser = { B2BUserId: Random.Guid.generateGuid() } as BusinessPartnerUser;\n\n this.setState({\n formItems: newForm,\n isFormActive: true,\n formType: FormType.Add,\n referenceBack: this.addUserButtonReference.current,\n isModalOpen: true,\n hasFormError: false,\n hasActionError: false,\n selectedUserData: newUser\n });\n };\n\n // _handleAddEditFormSaveButton: triggered on the save button for both add/edit forms. Calls the appropriate data-action and reloads the page when successful\n private readonly _handleAddEditFormSaveButton = async () => {\n const { context } = this.props;\n const { formType, formItems } = this.state;\n\n const updatedUser = this._createBusinessPartner(formItems);\n\n if (formType === FormType.Edit) {\n editOrganizationUser(new EditOrganizationUserInput(updatedUser), context.actionContext)\n .then(() => {\n window.location.reload(false);\n })\n .catch(error => {\n context.telemetry.trace(error);\n this.setState({\n hasActionError: true\n });\n });\n } else {\n addOrganizationUser(new AddOrganizationUserInput(updatedUser), context.actionContext)\n .then(() => {\n window.location.reload(false);\n })\n .catch(error => {\n context.telemetry.trace(error);\n this.setState({\n hasActionError: true,\n businessUserActionRetailErrorMsg: error.message\n });\n });\n }\n };\n\n // _createBusinessPartner: attempts to convert input values(IUserFormItem) to a new user(BusinessPartnerUser)\n private readonly _createBusinessPartner = (inputs: IUserFormItem[]): BusinessPartnerUser => {\n const newUser: BusinessPartnerUser = { ...this.state.selectedUserData! };\n\n inputs.forEach(input => {\n // Deals with input values need need to be converted into numbers\n if (input.id === InputID.SpendingLimit) {\n newUser[input.id] = Number.parseFloat(input.value) || 0;\n } else {\n newUser[input.id] = input.value;\n }\n });\n\n return newUser;\n };\n\n // _handleEditIcon: converts the table row data(ITableItemProps[]) to input fields(IUserFormItem) and opens the edit form\n private readonly _handleEditIcon = (userData: ITableItemProps[], referenceBack?: HTMLButtonElement | null) => {\n // Split full name into first and last\n const possibleName = userData.find(cell => {\n return cell.id === 'Name';\n });\n const fullName = (possibleName && (possibleName.value as string)) || '';\n const lastSpaceIndex = fullName.lastIndexOf(' ');\n const firstName = fullName.substring(0, lastSpaceIndex);\n\n const lastName = fullName.substring(lastSpaceIndex + 1);\n\n // Create clone of formItems, map users information, update state\n const { formItems } = this.state;\n const newForm = formItems;\n\n newForm.forEach(input => {\n switch (input.id) {\n case InputID.FirstName:\n input.value = firstName;\n break;\n case InputID.LastName:\n input.value = lastName;\n break;\n case InputID.Email: // Email can never be null/undefined as it is a required field\n input.isDisabled = true;\n const possibleCell = userData.find(cell => {\n return input.id === cell.id;\n });\n input.value = (possibleCell && (possibleCell.value as string)) || '';\n break;\n default:\n const dataCell = userData.find(cell => {\n return input.id === cell.id;\n });\n input.value = (dataCell && (dataCell.value as string)) || '';\n }\n });\n\n this.setState({\n formItems: newForm,\n isFormActive: true,\n referenceBack,\n formType: FormType.Edit,\n isModalOpen: true,\n hasFormError: false,\n hasActionError: false,\n selectedUserData: (userData[0] as IUserTableItemProps).user\n });\n };\n\n // _handleDeleteIcon: opens removeUser confirmation window\n private readonly _handleDeleteIcon = (userData: ITableItemProps[], referenceBack?: HTMLButtonElement | null) => {\n const newUser: BusinessPartnerUser = { ...(userData[0] as IUserTableItemProps).user };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const displayedUserData: any = {};\n\n userData.forEach((cell: ITableItemProps) => {\n if (cell.id === 'Name') {\n // Split full name into first and last\n const fullName = cell.value as string;\n const lastSpaceIndex = fullName.lastIndexOf(' ');\n displayedUserData.FirstName = fullName.substring(0, lastSpaceIndex);\n\n displayedUserData.LastName = fullName.substring(lastSpaceIndex + 1);\n } else if (cell.type === TableDataType.Price) {\n displayedUserData[cell.id] = this.props.context.cultureFormatter.formatCurrency(cell.value as string);\n } else {\n displayedUserData[cell.id] = cell.value;\n }\n });\n\n this.setState({\n displayedUserData,\n referenceBack,\n selectedUserData: newUser,\n formType: FormType.Remove,\n isModalOpen: true,\n isFormActive: false\n });\n };\n\n // _handleViewDetails: opens user details window\n private readonly _handleViewDetails = (userData: ITableItemProps[]) => {\n const newUser: BusinessPartnerUser = { ...(userData[0] as IUserTableItemProps).user };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const displayedUserData: any = {};\n\n userData.forEach((cell: ITableItemProps) => {\n if (cell.id === 'Name') {\n // Split full name into first and last\n const fullName = cell.value as string;\n const lastSpaceIndex = fullName.lastIndexOf(' ');\n displayedUserData.FirstName = fullName.substring(0, lastSpaceIndex);\n\n displayedUserData.LastName = fullName.substring(lastSpaceIndex + 1);\n } else if (cell.type === TableDataType.Price) {\n displayedUserData[cell.id] = this.props.context.cultureFormatter.formatCurrency(cell.value as string);\n } else {\n displayedUserData[cell.id] = cell.value;\n }\n });\n\n this.setState({\n displayedUserData,\n selectedUserData: newUser,\n formType: FormType.View,\n isModalOpen: true,\n isFormActive: false\n });\n };\n\n // _handleRemoveUserButton: triggered on confirmation of removing a user.\n private readonly _handleRemoveUserButton = () => {\n // TODO\n const { context } = this.props;\n const { selectedUserData: deleteUserData } = this.state;\n\n if (deleteUserData) {\n deleteOrganizationUser(new DeleteOrganizationUserInput(deleteUserData), context.actionContext)\n .then(() => {\n window.location.reload(false);\n })\n .catch(error => {\n context.telemetry.trace(error);\n });\n }\n this.setState({\n formType: FormType.None,\n isModalOpen: false\n });\n };\n\n private readonly callbackRemoveButton = () => {\n this._handleRemoveUserButton();\n };\n\n // _renderUserDetails: creates the remove/view form props\n private _renderUserDetails(): IFormViewProps {\n const { resources } = this.props;\n const { formType, displayedUserData } = this.state;\n const {\n businessUserRemoveModalHeaderText,\n businessUserRemoveModalDescription,\n businessUserViewModalHeaderText,\n businessUserCancelButtonText,\n businessUserCancelRemoveUserButtonText,\n businessUserRemoveUserButtonText,\n businessUserErrorUpdatingUsersMessage\n } = resources;\n\n const formClassName = `${this.moduleClassName}__form`;\n const typeClassName = formType === FormType.Remove ? 'type-remove' : 'type-view';\n const handleRemoveButton = this.callbackRemoveButton;\n\n return {\n modalClassName: classnames(`${this.moduleClassName}__modal`, typeClassName),\n FormWrapper: {\n className: formClassName\n },\n modalHeading: formType === FormType.Remove ? businessUserRemoveModalHeaderText : businessUserViewModalHeaderText,\n modalDescription: formType === FormType.Remove && (\n

{businessUserRemoveModalDescription}

\n ),\n selectedUser: displayedUserData,\n buttons: [\n formType === FormType.Remove && (\n \n {businessUserRemoveUserButtonText}\n \n ),\n \n ],\n errorMessage: [\n \n ],\n resources\n };\n }\n\n // _renderUserForm: creates the add/edit form props\n private _renderUserForm(): IFormViewProps {\n const { resources } = this.props;\n const { formType, formItems, hasFormError, hasActionError, isReady, businessUserActionRetailErrorMsg } = this.state;\n const {\n businessUserEditUserFormHeadingText,\n businessUserAddUserFormHeadingText,\n businessUserSaveButtonArialabel,\n businessUserSaveButtonText,\n businessUserCancelButtonArialabel,\n businessUserCancelButtonText,\n businessUserFieldIncorrectErrorText,\n businessUserActionErrorText,\n businessUserAllFieldsRequiredMessage,\n asteriskAfterLabel\n } = resources;\n\n const formClassName = `${this.moduleClassName}__form`;\n const typeClassName = formType === FormType.Add ? 'type-add' : 'type-edit';\n\n return {\n modalClassName: classnames(`${this.moduleClassName}__modal`, typeClassName),\n FormWrapper: {\n className: formClassName\n },\n modalHeading: formType === FormType.Add ? businessUserAddUserFormHeadingText : businessUserEditUserFormHeadingText,\n modalDescription: formType === FormType.Add && (\n

{businessUserAllFieldsRequiredMessage}

\n ),\n inputs: renderInputSection(formItems, `${formClassName}-item`, asteriskAfterLabel, this._onInputChange),\n buttons: [\n ,\n \n ],\n errorMessage: [\n hasFormError && (\n \n ),\n hasActionError && (\n \n )\n ],\n resources\n };\n }\n\n // _onInputChange: updates the fomrItems state on every input change\n private readonly _onInputChange = (event: React.ChangeEvent): void => {\n const newForm = this.state.formItems;\n\n newForm.forEach(item => {\n if (item.id === event.target.id) {\n item.value = event.target.value;\n }\n });\n\n // Update state object with latest values and check if form is ready\n // TODO: remove !refresh\n this.setState(prev => ({\n refresh: !prev.refresh,\n isReady: this._isFormReady(),\n formItems: newForm,\n hasFormError: false,\n hasActionError: false\n }));\n };\n\n // _isFormReady: checks whether the current values in the input fields are valid for submission, this will also disable/enable the submit button.\n private readonly _isFormReady = (): boolean => {\n const { formItems } = this.state;\n\n for (const formItem of formItems) {\n // Will return TRUE if:\n // - input field is required and EMPTY\n // OR\n // - pattern provided and value does not match pattern\n // OR\n // - if spendingLimit input --> make sure value can be parsed into an NUMBER\n if (formItem.isRequired && formItem.value.length === 0) {\n return false;\n } else if (formItem.pattern !== undefined && formItem.value.match(formItem.pattern) === null) {\n return false;\n } else if (formItem.id === InputID.SpendingLimit && formItem.value !== '' && isNaN(Number.parseFloat(formItem.value))) {\n this.setState({\n hasFormError: true\n });\n return false;\n }\n }\n\n return true;\n };\n\n private readonly _formatPrice = (price: number): string => {\n return this.props.context.cultureFormatter ? this.props.context.cultureFormatter.formatCurrency(price) : price.toString();\n };\n\n private readonly _getCurrentUrl = (reqContext: IRequestContext): URL => {\n if (MsDyn365.isBrowser) {\n return new URL(window.location.href);\n }\n\n // NOTE: Typing on requestURL is incorrect\n if (reqContext.url.requestUrl.href) {\n return new URL(reqContext.url.requestUrl.href);\n }\n return new URL(reqContext.url.requestUrl.href);\n };\n\n private _updateViewport(): void {\n this._viewport = this._getViewport();\n }\n\n private readonly _getViewport = (): GridSize => {\n const { context } = this.props;\n\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 (MsDyn365.isBrowser && 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\n private readonly _toggleStatementRequestDropdown = (): void => {\n this.setState({\n isStatementRequestAdminDropdownOpen: !this.state.isStatementRequestAdminDropdownOpen\n });\n };\n\n private readonly _updateFromDate = (newFromDate: string) => {\n this.setState({\n statementRequestFromDateString: newFromDate\n });\n };\n\n private readonly _updateToDate = (newToDate: string) => {\n this.setState({\n statementRequestToDateString: newToDate\n });\n };\n\n private readonly _showRequestStatementModal = (isFullOrg: boolean) => {\n this.setState({\n statementRequestFullOrg: isFullOrg,\n isStatementRequestModalOpen: true\n });\n };\n\n private readonly _requestStatement = () => {\n const customer = this.props.data.customerInformation.result!;\n const businessPartnerUsers = this.props.data.users.result!;\n\n const currentUser = businessPartnerUsers.find(element => element.Email === customer.Email);\n const B2BUserId = this._getB2BUserId(currentUser);\n\n const statementRequest: AccountStatementRequest = {\n FromDate: new Date(this.state.statementRequestFromDateString),\n ToDate: new Date(this.state.statementRequestToDateString),\n IsForFullOrganization: this.state.statementRequestFullOrg,\n RequestedUserId: B2BUserId,\n RequestingUserEmail: customer.Email,\n DeliveryTypeValue: BusinessPartnerOperationDeliveryType?.Email || 1\n };\n\n const context = { callerContext: this.props.context.actionContext };\n\n BusinessPartnerUsersDataActions.requestAccountStatementAsync(context, B2BUserId, statementRequest);\n\n this._closeStatementRequestModal();\n };\n\n private readonly _getB2BUserId = (currentUser: BusinessPartnerUser | undefined) => {\n if (this.state.statementRequestFullOrg || !this.state.selectedUserData) {\n return currentUser ? currentUser.B2BUserId : '';\n }\n return this.state.selectedUserData.B2BUserId;\n };\n\n private readonly _closeStatementRequestModal = () => {\n this.setState({\n isStatementRequestModalOpen: false\n });\n this.statementRequestButtonReference.current?.focus();\n };\n\n private readonly _onSelectRow = (records: ITableRowProps[]) => {\n const selectedRow = records.find(rowProps => rowProps.isSelected);\n\n this.setState({\n selectedUserData: selectedRow ? (selectedRow.row[0] as IUserTableItemProps).user : undefined\n });\n };\n}\n\nexport default BusinessOrganizationList;\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\ninterface ILinksData {\n linkText?: string;\n linkUrl: Msdyn365.ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n}\n\nexport interface IAccountCustomerBalanceTileLinks {\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 AccountCustomerBalanceTileLinks: 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};\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\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-customer-balance-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 AccountCustomerBalanceTileLinks;\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 { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountGenericTileConfig, IAccountGenericTileProps } from './account-generic-tile.props.autogenerated';\nimport LinksComponent from './components/account-generic-tile-links';\n\nexport interface IAccountGenericTileViewProps extends IAccountGenericTileProps {\n AccountGenericTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n}\n\n/**\n *\n * AccountGeneric component.\n * @extends {React.PureComponent>}\n */\nclass AccountGenericTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountGenericTileProps) {\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 { config } = this.props;\n const { className, heading, links } = config;\n\n const viewProps = {\n ...this.props,\n className,\n AccountGenericTile: {\n moduleProps: this.props,\n className: classnames('ms-account-generic-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountGenericTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport SignInButtonComponent from './components/sign-in-button';\nimport SignInDescriptionComponent from './components/sign-in-description';\nimport SignInErrorComponent from './components/sign-in-error';\nimport SignInInputComponent from './components/sign-in-input';\nimport SignInLabelComponent from './components/sign-in-label';\nimport SignInLinkComponent from './components/sign-in-link';\nimport SignInLoadingIconComponent from './components/sign-in-loading-icon';\nimport SignInLoadingMessageComponent from './components/sign-in-loading-message';\nimport SignInTextComponent from './components/sign-in-text';\nimport { ISignInConfig, ISignInProps, ISignInResources } from './sign-in.props.autogenerated';\n\nexport interface ISignInViewState {\n isShowLoading: boolean;\n}\n\nexport interface ISignInItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n error: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface ISignInSocialItem {\n key: string;\n button: INodeProps;\n image: React.ReactNode;\n text: React.ReactNode;\n}\n\nexport interface ISignInB2BItem {\n key: string;\n button: INodeProps;\n text: React.ReactNode;\n}\n\nexport interface ISignInSocialAccount {\n socialAccounts: INodeProps;\n items: ISignInSocialItem[];\n}\n\nexport interface ISignInB2BAccount {\n socialAccounts: INodeProps;\n items: ISignInB2BItem[];\n}\nexport interface ISignInLocalAccount {\n localAccount: INodeProps;\n items: ISignInItem[];\n forgetPassword: React.ReactNode;\n disclaimer: React.ReactNode;\n error: React.ReactNode;\n signInButton: React.ReactNode;\n}\n\nexport interface ISignInLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface ISignInViewProps {\n className: string;\n viewState: ISignInViewState;\n signIn: IModuleProps;\n loading: ISignInLoading;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n signInSection: INodeProps;\n signInSectionHeading: React.ReactNode;\n signInLocalAccount: ISignInLocalAccount;\n signInSocialAccount: ISignInSocialAccount;\n signInB2BAccount: ISignInB2BAccount;\n signUpSection: INodeProps;\n signUpSectionHeading: React.ReactNode;\n signUpDescription: React.ReactNode;\n signUpLink: React.ReactNode;\n}\n\n/**\n * SignIn component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass SignIn extends React.Component> {\n private readonly moduleClassName: string = 'ms-sign-in';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n @observable private emailId: string;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: ISignInProps) {\n super(props);\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.emailId = 'logonIdentifier';\n }\n\n public componentDidMount(): void {\n this._prePopulateData();\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: ISignInProps, nextState: ISignInViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const config: ISignInConfig = this.props.config || {};\n const resources: ISignInResources = this.props.resources || {};\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n signIn: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n signInSection: {\n className: `${this.moduleClassName}__sign-in-section`\n },\n signInSectionHeading: (\n \n ),\n signInLocalAccount: {\n localAccount: {\n className: `${this.moduleClassName}__account-items localAccount`\n },\n items: [\n this._renderInput(\n this.emailId,\n 'email',\n resources.emailAddressLabelText,\n resources.emailAddressAriaLabel,\n this.emailRegex\n ),\n this._renderInput('password', 'password', resources.passwordLabelText)\n ],\n forgetPassword: (\n \n ),\n disclaimer: config.signInDisclaimer && (\n \n ),\n error: ,\n signInButton: (\n \n )\n },\n signInSocialAccount: {\n socialAccounts: {\n className: `${this.moduleClassName}__social-accounts`\n },\n items: [\n this._renderSocialAccount(\n 'FacebookExchange',\n resources.facebookButtonText,\n resources.facebookButtonAriaLabel,\n config.facebookIcon\n ),\n this._renderSocialAccount(\n 'MicrosoftAccountExchange',\n resources.microsoftButtonText,\n resources.microsoftButtonAriaLabel,\n config.microsoftIcon\n )\n ]\n },\n signInB2BAccount: {\n socialAccounts: {\n className: `${this.moduleClassName}__b2b-social-accounts`\n },\n items: [\n this._renderB2BSocialAccount(\n 'StoreManagerB2BSignin',\n resources.b2bButtonText,\n resources.b2bButtonAriaLabel,\n config.displayB2bAccountManagerSignin\n )\n ]\n },\n signUpSection: {\n className: `${this.moduleClassName}__sign-up-section`\n },\n signUpSectionHeading: (\n \n ),\n signUpDescription: (\n \n ),\n signUpLink: (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.signInDisclaimer = event.target.value);\n\n public handleSignInHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.signInHeading.text = event.target.value);\n\n public handleSignUpHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.signUpHeading.text = event.target.value);\n\n private readonly _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['CONTENT'] && window['CONTENT']['email_pattern']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n this.emailRegex = window['CONTENT']['email_pattern'];\n }\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // @ts-expect-error\n this.emailId = (window.SA_FIELDS.AttributeFields || [])[0].ID || this.emailId;\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const resources: ISignInResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const errorMessages = {\n requiredField_email: resources.requriedEmailError,\n requiredField_password: resources.requriedPasswordError,\n invalid_email: resources.invalidEmailError,\n invalid_password: resources.invalidPasswordError,\n unknown_error: resources.unknownError\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], errorMessages);\n }\n };\n\n private _renderInput(id: string, type: string, labelText: string, ariaLabel?: string, pattern?: string): ISignInItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n error: (\n \n ),\n input: (\n \n )\n };\n }\n\n private _renderSocialAccount(id: string, text: string, ariaLabel: string, iconImage?: Msdyn365.IImageData): ISignInSocialItem {\n return {\n key: id,\n button: {\n id,\n tag: 'button',\n className: classnames(\n `${this.moduleClassName}__social-account`,\n `${this.moduleClassName}__social-account-${id}`,\n 'accountButton',\n 'msc-btn'\n ),\n 'aria-label': ariaLabel\n },\n image: this._createImageMarkup(iconImage),\n text: \n };\n }\n\n private _renderB2BSocialAccount(\n id: string,\n text: string,\n ariaLabel: string,\n _displayB2bAccountManagerSignin: boolean | undefined\n ): ISignInB2BItem | null {\n if (_displayB2bAccountManagerSignin) {\n return {\n key: id,\n button: {\n id,\n tag: 'button',\n className: classnames(\n `${this.moduleClassName}__social-account`,\n `${this.moduleClassName}__social-account-${id}`,\n 'accountButton',\n 'msc-btn'\n ),\n 'aria-label': ariaLabel\n },\n text: \n };\n }\n return null;\n }\n\n private _createImageMarkup(iconImage?: Msdyn365.IImageData): React.ReactNode | null {\n if (iconImage) {\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings || {},\n imageSettings: iconImage && iconImage.imageSettings\n };\n const pictureClassName = `${this.moduleClassName}__social-account-picture`;\n return (\n
\n \n
\n );\n }\n return null;\n }\n}\n\nexport default SignIn;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './modules/account-address-tile';\nexport * from './modules/account-customer-balance';\nexport * from './modules/account-customer-balance-tile';\nexport * from './modules/account-generic-tile';\nexport * from './modules/account-loyalty';\nexport * from './modules/account-loyalty-tile';\nexport * from './modules/account-order-templates-tile';\nexport * from './modules/account-profile';\nexport * from './modules/account-profile-edit';\nexport * from './modules/account-welcome-tile';\nexport * from './modules/account-wishlist-tile';\nexport * from './modules/b2b-requests-status';\nexport * from './modules/b2b-requests-tile';\nexport * from './modules/loyalty-sign-up';\nexport * from './modules/loyalty-terms';\nexport * from './modules/password-reset';\nexport * from './modules/password-reset-verification';\nexport * from './modules/sign-in';\nexport * from './modules/sign-up';\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 { IBusinessPartnersViewProps } from './business-partners';\n\n/**\n * View layout of business partner module.\n * @param props - React props of the component.\n * @returns Functional component.\n */\nconst businessPartnersView: React.FC = props => {\n if (props.selectedBusinessPartnerUser) {\n return (\n \n {props.businessPartnersHeading}\n {props.catalogLoadingIndicator}\n {props.catalogLoadingErrorMessage}\n \n );\n }\n\n if (props.cookieConsentNotGivenErrorMessage) {\n return (\n \n {props.businessPartnersHeading}\n {props.cookieConsentNotGivenErrorMessage}\n \n );\n }\n\n return (\n \n {props.backToBusinessPartnersLink}\n {props.businessPartnersHeading}\n {props.businessPartnersTable}\n {props.businessPartnerUsersTable}\n \n );\n};\n\nexport default businessPartnersView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetVerificationLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetVerificationLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { CustomerBalances } from '@msdyn365-commerce/retail-proxy';\nimport { getTelemetryObject, Heading, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { computed, reaction } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileData } from './account-customer-balance-tile.data';\nimport { IAccountCustomerBalanceTileProps } from './account-customer-balance-tile.props.autogenerated';\nimport { CreditComponent, ErrorComponent } from './components/account-customer-balance-tile-info';\nimport LinksComponent from './components/account-customer-balance-tile-links';\n\nexport interface IAccountCustomerBalanceTileViewProps extends IAccountCustomerBalanceTileProps {\n AccountCustomerBalanceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n content: React.ReactNode;\n links: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceTileViewState {\n isDetailsLinkDisplayed: boolean;\n content: React.ReactNode;\n}\n\n/**\n *\n * AccountCustomerBalanceTile component.\n * @extends {React.Component>}\n */\nclass AccountCustomerBalanceTile extends React.Component<\n IAccountCustomerBalanceTileProps,\n IAccountCustomerBalanceTileViewState\n> {\n @computed get hasError(): boolean {\n return get(this.props, 'data.balance.status') !== 'SUCCESS';\n }\n\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountCustomerBalanceTileProps) {\n super(props);\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n this.state = { ...this._initState() };\n\n reaction(\n () => this.hasError,\n () => {\n this.props.context.telemetry.error('Error retrieving customer account balance');\n this.setState({\n content: \n });\n }\n );\n }\n\n @computed get isCustomerAccountPaymentEnabled(): boolean {\n const customerResult = get(this.props, 'data.customerInformation.result');\n\n const allowOnAccountPayment = customerResult ? customerResult.AllowOnAccountPayment : false;\n const isB2BSite = isChannelTypeB2B(this.props.context.request);\n const enableCustomerAccountPayment = get(this.props, 'context.request.app.platform.enableCustomerAccountPayment');\n\n return (\n allowOnAccountPayment &&\n (enableCustomerAccountPayment === 'all' ||\n (enableCustomerAccountPayment === 'b2b' && isB2BSite) ||\n (enableCustomerAccountPayment === 'b2c' && !isB2BSite))\n );\n }\n\n public shouldComponentUpdate(\n nextProps: IAccountCustomerBalanceTileProps,\n nextState: IAccountCustomerBalanceTileViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n if (!this.isCustomerAccountPaymentEnabled) {\n return <>;\n }\n\n const { className, heading, links } = this.props.config;\n const viewProps = {\n ...this.props,\n AccountCustomerBalanceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-customer-balance-tile', className)\n },\n heading: heading && (\n \n ),\n content: this.state.content,\n links: this.state.isDetailsLinkDisplayed && (\n (event: Msdyn365.ContentEditableEvent) => void 0,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n }}\n />\n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _initState(): IAccountCustomerBalanceTileViewState {\n const account: CustomerBalances = get(this.props, 'data.balance.result');\n\n let content: React.ReactNode;\n let isDetailsLinkDisplayed = false;\n\n if (this.hasError) {\n this.props.telemetry.error('Error retrieving customer account balance');\n content = ;\n } else if (\n account.Balance === 0 &&\n account.CreditLimit === 0 &&\n account.InvoiceAccountBalance === 0 &&\n account.InvoiceAccountCreditLimit === 0\n ) {\n // Non-established credit\n content = ;\n } else {\n // Successfully retrieved balance\n const { accountCreditVerbagePrefix, accountCreditVerbagePostfix } = this.props.resources;\n const currencyCode = get(this.props, 'context.request.channel.Currency');\n const formatCurrency = get(this.props, 'context.cultureFormatter.formatCurrency');\n let customerCredit = 0;\n\n if (account.InvoiceAccountCreditLimit === 0) {\n customerCredit = account.CreditLimit - account.Balance;\n } else {\n customerCredit = account.InvoiceAccountCreditLimit - account.InvoiceAccountBalance;\n }\n\n const customerCreditFormatted = `${formatCurrency(customerCredit.toFixed(2), currencyCode)}`;\n\n isDetailsLinkDisplayed = true;\n content = (\n \n );\n }\n\n return { content, isDetailsLinkDisplayed };\n }\n}\n\nexport default AccountCustomerBalanceTile;\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 { ILoyaltySignUpViewProps } from './loyalty-sign-up';\n\nconst LoyaltySignUpView: React.FC = props => {\n const {\n LoyaltySignUp,\n heading,\n memberHeading,\n signInLink,\n signUpText,\n signUpButton,\n detailsLink,\n termsLink,\n loading,\n infoMessageBar\n } = props;\n\n if (loading) {\n props.context.telemetry.error('LoyaltySignUp data is empty, module wont render');\n return null;\n }\n\n return (\n \n {infoMessageBar}\n {memberHeading}\n {heading}\n {detailsLink}\n {signUpText}\n {termsLink}\n {signUpButton}\n {signInLink}\n \n );\n};\n\nexport default LoyaltySignUpView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISubscribeConfig, ISubscribeProps } from './subscribe.props.autogenerated';\n\n/**\n * Subscribe view props.\n */\nexport interface ISubscribeViewProps extends ISubscribeProps {\n subscribe: IModuleProps;\n subscribeContainer: INodeProps;\n heading: React.ReactNode;\n text: React.ReactNode;\n submitButton?: INodeProps;\n submitButtonLabelText?: string;\n subscribeForm?: INodeProps;\n emailInput?: INodeProps;\n handleText(): void;\n}\n\n/**\n * Subscribe component.\n * @extends {React.PureComponent>}\n */\nexport class Subscribe extends React.PureComponent> {\n private readonly _emailAddressInputRef: React.RefObject;\n\n public constructor(props: ISubscribeViewProps) {\n super(props);\n this._emailAddressInputRef = React.createRef();\n }\n\n public render(): JSX.Element | null {\n const { heading, paragraph } = this.props.config;\n\n const moduleClassName = 'ms-subscribe';\n\n const subscribeParagraph = paragraph && (\n \n );\n\n const subscribeHeading = heading && (\n \n );\n const viewProps = {\n ...this.props,\n handleText: this.handleTextChange,\n subscribe: {\n moduleProps: this.props,\n className: moduleClassName\n },\n subscribeContainer: {\n className: 'ms-subscribe__details'\n },\n heading: subscribeHeading,\n text: subscribeParagraph,\n subscribeForm: {\n className: 'ms-subscribe__details__form',\n tag: 'form',\n 'aria-label': this.props.resources.subscribeFormAriaLabel,\n name: 'subscribeForm',\n role: 'form',\n autoComplete: 'off'\n },\n emailInput: {\n className: 'ms-subscribe__details__form__email',\n tag: 'input',\n ref: this._emailAddressInputRef,\n type: 'email',\n 'aria-label': this.props.resources.subscribeFormEmailAriaLabel,\n placeholder: this.props.resources.subscribeEmailPlaceholderText\n },\n submitButton: {\n className: 'ms-subscribe__details__form__submit',\n tag: Button,\n 'aria-label': this.props.resources.subscribeFormSubmitAriaLabel,\n type: 'submit',\n title: this.props.resources.subscribeButtonLabel\n },\n submitButtonLabelText: this.props.resources.subscribeButtonLabel\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n}\n\nexport default Subscribe;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountGenericTileViewProps } from './account-generic-tile';\n\nconst AccountGenericTileView: React.FC = props => {\n const { AccountGenericTile, heading, links } = props;\n\n return (\n \n {heading}\n {links}\n \n );\n};\n\nexport default AccountGenericTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './sign-up-button';\nexport * from './sign-up-error';\nexport * from './sign-up-input';\nexport * from './sign-up-label';\nexport * from './sign-up-loading-icon';\nexport * from './sign-up-loading-message';\nexport * from './sign-up-success';\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IModuleProps, INodeProps, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { ITabItemData } from './tab-item.data';\nimport { ITabItemProps } from './tab-item.props.autogenerated';\n\nexport interface ITabItemViewProps {\n TabContentContainer: IModuleProps;\n TabHeaderContainer: IModuleProps;\n tabSlots: INodeProps;\n TabItemContent: INodeProps;\n tabItemType?: TabItemType;\n tabHeader: React.ReactNode;\n}\n\nexport interface ITabItemExtentedProps extends ITabItemProps {\n tabItemType?: TabItemType;\n isSelected?: boolean;\n itemIndex?: number;\n tabId?: string;\n}\n\nexport enum TabItemType {\n TabHeader,\n TabContent\n}\n\n/**\n *\n * TabItem component.\n * @extends {React.Component}\n */\n@observer\nclass TabItem extends React.PureComponent {\n private readonly moduleContentClassName: string = 'ms-tab-item-content';\n\n private readonly moduleHeaderClassName: string = 'ms-tab-item-header';\n\n constructor(props: ITabItemProps) {\n super(props);\n this._renderTabHeader = this._renderTabHeader.bind(this);\n }\n\n public render(): JSX.Element {\n const { slots, renderView, config, data, isSelected, itemIndex } = this.props;\n const index = itemIndex || 0;\n const contentID = getContentID(index, this.props.tabId || '');\n const activeContentIDResult = data && data.activeTabState && data.activeTabState.result;\n const shown =\n activeContentIDResult &&\n activeContentIDResult.tabId === this.props.tabId &&\n activeContentIDResult.activeContentIndex !== undefined\n ? activeContentIDResult.activeContentIndex === index\n : isSelected || false;\n const viewProps = {\n ...this.props,\n TabContentContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleContentClassName, config.className)\n },\n TabHeaderContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleHeaderClassName, config.className)\n },\n TabItemContent: {\n className: 'ms-tab-item-content__content',\n tag: 'section' as NodeTag,\n 'aria-hidden': !shown,\n role: 'tabpanel',\n tabIndex: shown ? 0 : -1,\n id: contentID\n },\n tabHeader: this._renderTabHeader(),\n tabSlots: slots\n };\n return renderView(viewProps) as React.ReactElement;\n }\n\n private _renderTabHeader(): React.ReactNode {\n return <>{this.props.config.tabItemTitle};\n }\n}\n\nexport const getContentID = (index: number, id: string) => {\n return `tab-item-content-${id}-${index}`;\n};\n\nexport default TabItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLoadingIcon {\n className: string;\n}\n\nconst PasswordResetVerificationLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default PasswordResetVerificationLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AsyncResult } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header';\nimport { Collapse, Drawer, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nconst headerView: React.FC = props => {\n const { HeaderTag, HeaderContainer, HeaderTopBarContainer, Divider } = props;\n return (\n \n \n \n {props.navIcon}\n {props.logo}\n {_renderReactFragment(props.search)}\n {props.preferredStore}\n {_renderAccountBlock(props, false)}\n {props.wishListIconDesktop}\n \n {props.cartIcon}\n {_renderReactFragment(props.siteOptions)}\n \n {_renderCollapseMenu(props)}\n {_renderReactFragment(props.menuBar)}\n \n \n );\n};\n\nfunction _renderCollapseMenu(props: IHeaderViewProps): JSX.Element | null {\n const { Divider, MobileMenuLinksContainer, mobileMenuCollapsed } = props;\n return (\n \n \n {_renderReactFragment(props.search)}\n {_renderMobileAccountBlock(props, true)}\n {props.wishListIconMobile}\n {props.siteOptions}\n \n \n {_renderReactFragment(props.menuBar)}\n \n );\n}\n\nconst renderCustomerName = (accountInformation: AsyncResult): React.ReactChild => {\n const customer = accountInformation && accountInformation.result;\n return <>{customer ? customer.FirstName || customer.Name : ''};\n};\n\nfunction _renderMobileAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\n const { AccountInfoDropdownParentContainer, signOutLink, signInLink, data, accountLinks } = props;\n\n if (AccountInfoDropdownParentContainer) {\n const accountClassName = classnames(\n 'ms-header__drawer',\n AccountInfoDropdownParentContainer.className,\n renderForMobile ? 'account-mobile' : 'account-desktop'\n );\n\n if (accountLinks) {\n return (\n \n
\n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\n {signOutLink}\n
\n \n );\n } else if (signInLink) {\n return (\n \n {signInLink}\n \n );\n }\n }\n return null;\n}\n\nfunction _renderAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\n const {\n AccountInfoDropdownParentContainer,\n AccountInfoDropdownPopoverConentContainer,\n accountInfoDropdownButton,\n signOutLink,\n signInLink,\n accountLinks\n } = props;\n\n if (AccountInfoDropdownParentContainer) {\n const accountClassName = classnames(\n AccountInfoDropdownParentContainer.className,\n renderForMobile ? 'account-mobile' : 'account-desktop'\n );\n if (AccountInfoDropdownPopoverConentContainer) {\n return (\n \n {accountInfoDropdownButton}\n \n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\n {signOutLink}\n \n \n );\n } else if (signInLink) {\n return (\n \n {signInLink}\n \n );\n }\n }\n\n return null;\n}\n\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\n return (\n <>\n {items && items.length > 0\n ? items.map((slot: React.ReactNode, index: number) => {\n return {slot};\n })\n : null}\n \n );\n}\n\nexport default headerView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport B2bRequestsStatus from './b2b-requests-status';\nimport B2bRequestsStatusView from './b2b-requests-status.view';\n\nexport * from './b2b-requests-status';\nexport * from './b2b-requests-status.data';\nexport { IB2bRequestsStatusConfig, IB2bRequestsStatusProps } from './b2b-requests-status.props.autogenerated';\nexport * from './b2b-requests-status.view';\n\nexport { B2bRequestsStatus, B2bRequestsStatusView };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport PasswordResetVerificationButtonComponent from './components/password-reset-verification-button';\nimport PasswordResetVerificationErrorComponent from './components/password-reset-verification-error';\nimport PasswordResetVerificationInputComponent from './components/password-reset-verification-input';\nimport PasswordResetVerificationLabelComponent from './components/password-reset-verification-label';\nimport PasswordResetVerificationLoadingIconComponent from './components/password-reset-verification-loading-icon';\nimport PasswordResetVerificationLoadingMessageComponent from './components/password-reset-verification-loading-message';\nimport PasswordResetVerificationSuccessComponent from './components/password-reset-verification-success';\nimport { IPasswordResetVerificationConfig, IPasswordResetVerificationProps } from './password-reset-verification.props.autogenerated';\n\nexport interface IPasswordResetVerificationViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetVerificationItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationLocalAccount {\n localAccount: INodeProps;\n verificationControlWrapper: INodeProps;\n items: IPasswordResetVerificationItem[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationButtonsWrapper: INodeProps;\n verificationButtons: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetVerificationLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationViewProps {\n className: string;\n viewState: IPasswordResetVerificationViewState;\n loading: IPasswordResetVerificationLoading;\n passwordResetVerification: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetVerificationLocalAccount: IPasswordResetVerificationLocalAccount;\n}\n\n/**\n *\n * PasswordResetVerification component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordResetVerification extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset-verification';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n @observable private templateVersion: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IPasswordResetVerificationProps) {\n super(props);\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.templateVersion = '';\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IPasswordResetVerificationProps,\n nextState: IPasswordResetVerificationViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n passwordResetVerification: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: (\n \n )\n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && (\n \n ),\n passwordResetVerificationLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private _prePopulateData(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map((obj: { ID: string; PAT: string }) => {\n if (obj.ID.toLowerCase() === 'email') {\n this.emailRegex = obj.PAT;\n } else if (obj.ID.toLowerCase() === 'emailverificationcontrol') {\n this.templateVersion = 'v2';\n }\n });\n if (!this.templateVersion) {\n this.templateVersion = 'v1';\n }\n }\n }\n\n private _updateErrorMessage(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n verifying_blurb: this.props.resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n }\n\n private _renderLocalAccount(): IPasswordResetVerificationLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n items: [\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n )\n ],\n successMessage: [\n ,\n\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n \n ],\n verificationButtonsWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n verificationButtons: [\n ,\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n }\n\n private _renderInput(\n id: string,\n type: string,\n labelText: string,\n maxLength?: string,\n pattern?: string,\n cssClassName?: string\n ): IPasswordResetVerificationItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n\n private readonly getValue = (v1Value: string, v2Value: string): string => {\n if (this.templateVersion) {\n return this.templateVersion === 'v1' ? v1Value : v2Value;\n }\n return '';\n };\n}\n\nexport default PasswordResetVerification;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountWishlistTileViewProps } from './account-wishlist-tile';\n\nconst AccountWishlistTileView: React.FC = props => {\n const { AccountWishlistTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountWishlistTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport AccountWelcomeTile from './account-welcome-tile';\nimport AccountWelcomeTileView from './account-welcome-tile.view';\n\nexport * from './account-welcome-tile';\nexport * from './account-welcome-tile.data';\nexport { IAccountWelcomeTileConfig, IAccountWelcomeTileProps } from './account-welcome-tile.props.autogenerated';\nexport * from './account-welcome-tile.view';\n\nexport { AccountWelcomeTile, AccountWelcomeTileView };\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 { ITabViewProps } from './tab';\n\nconst tabView: React.FC = props => {\n const { heading, TabContainer, tabHeaders, tabContents } = props;\n if (!props.heading && !props.tabHeaders && !props.tabContents) {\n props.context.telemetry.error('Tab content is empty, module wont render');\n return null;\n }\n return (\n \n {heading}\n {tabHeaders}\n {tabContents}\n \n );\n};\n\nexport default tabView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport AccountLoyalty from './account-loyalty';\nimport AccountLoyaltyView from './account-loyalty.view';\n\nexport * from './account-loyalty';\nexport * from './account-loyalty.data';\nexport { IAccountLoyaltyConfig, IAccountLoyaltyProps, IAccountLoyaltyResources } from './account-loyalty.props.autogenerated';\nexport * from './account-loyalty.view';\nexport * from './components';\n\nexport { AccountLoyalty, AccountLoyaltyView };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport SignUp from './sign-up';\nimport SignUpView from './sign-up.view';\n\nexport * from './components';\nexport * from './sign-up';\nexport * from './sign-up.props.autogenerated';\nexport * from './sign-up.view';\n\nexport { SignUp, SignUpView };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nexport interface ILoyaltyTermsModalProps {\n resources: ILoyaltyTermsModalResources;\n returnRef: React.RefObject | undefined;\n checked: boolean;\n isOpen: boolean;\n terms: React.ReactNode;\n telemetryContent?: ITelemetryContent;\n onToggle(): void;\n onSubmit(): void;\n onCheck(): void;\n}\n\nexport interface ILoyaltyTermsModalResources {\n loyaltyTermsHeading: string;\n loyaltyAgreeToTerms: string;\n joinLoyaltyTermsText: string;\n cancelLoyaltyTermsText: string;\n}\n\nexport interface ILoyaltyTermsModalViewProps {\n modal: INodeProps;\n modalHeader: INodeProps;\n modalFooter: INodeProps;\n modalBody: INodeProps;\n heading: React.ReactElement;\n cancelButton: React.ReactElement;\n submitButton: React.ReactElement;\n terms: React.ReactNode;\n checkbox: React.ReactElement;\n agreeText: React.ReactElement;\n agreeSection: INodeProps;\n}\n\nexport const LoyaltyTermsModal = (props: ILoyaltyTermsModalProps): ILoyaltyTermsModalViewProps => {\n const payLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.LoyaltyTermsCancel);\n const loyaltyTermCancelAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsSubmit;\n const loyaltyTermSubmitAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsAgree;\n const loyaltyTermCheckboxAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n return {\n modal: {\n tag: Modal,\n className: 'ms-loyalty-terms__modal',\n toggle: props.onToggle,\n applicationNode: 'renderPage',\n isOpen: props.isOpen,\n returnFocusRef: props.returnRef\n },\n modalHeader: { tag: ModalHeader, className: 'ms-loyalty-terms__modal-header', toggle: props.onToggle },\n modalFooter: { tag: ModalFooter, className: 'ms-loyalty-terms__modal-footer' },\n modalBody: { tag: ModalBody, className: 'ms-loyalty-terms__modal-body' },\n cancelButton: (\n \n ),\n submitButton: (\n \n {props.resources.joinLoyaltyTermsText}\n \n ),\n heading:

{props.resources.loyaltyTermsHeading}

,\n terms: props.terms,\n agreeSection: { className: 'ms-loyalty-terms__agree-section' },\n checkbox: (\n \n ),\n agreeText:

{props.resources.loyaltyAgreeToTerms}

\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './account-customer-balance-tile-info';\nexport * from './account-customer-balance-tile-links';\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 { getLoyaltyCardAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport { GetLoyaltyCardInput, issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsModalViewProps, LoyaltyTermsModal } from './components/loyalty-terms-modal';\nimport { ILoyaltyTermsData } from './loyalty-terms.data';\nimport { ILoyaltyTermsProps } from './loyalty-terms.props.autogenerated';\n\nexport interface ILoyaltyTermsState {\n checked: boolean;\n clicked: boolean;\n isModalOpen: boolean;\n}\nexport interface ILoyaltyTermsViewProps extends ILoyaltyTermsProps {\n LoyaltyTerms: IModuleProps;\n modalToggle: React.ReactElement;\n modal: ILoyaltyTermsModalViewProps;\n loading: boolean;\n}\n\n/**\n *\n * LoyaltyTerms component.\n * @extends {React.Component>}\n */\nclass LoyaltyTerms extends React.Component, ILoyaltyTermsState> {\n private readonly toggleRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n public constructor(props: ILoyaltyTermsProps) {\n super(props);\n this._toggle = this._toggle.bind(this);\n this._submit = this._submit.bind(this);\n this._checkboxChecked = this._checkboxChecked.bind(this);\n this.toggleRef = React.createRef();\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n let search = this.props.context.request.url.requestUrl.search;\n let isJoining = false;\n if (search) {\n search = search.substring(1);\n const qsps = search.split('&');\n for (const qsp of qsps) {\n const splitQsp = qsp.split('=');\n isJoining = splitQsp[0] === 'joiningLoyalty' && splitQsp[1] === 'true';\n if (isJoining) {\n break;\n }\n }\n }\n\n this.state = {\n isModalOpen: isJoining,\n checked: false,\n clicked: false\n };\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltyTermsProps, nextState: ILoyaltyTermsState): 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, hideToggle },\n resources,\n slots: { serviceTerms },\n data: { loyaltyCard },\n context: {\n request: {\n user: { isAuthenticated }\n }\n }\n } = this.props;\n const completeClass = classname('ms-loyalty-terms', className);\n\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltyTerms: {\n moduleProps: this.props,\n className: completeClass\n },\n loading: loyaltyCard.status === 'LOADING',\n modalToggle: hideToggle !== true && (\n \n ),\n modal:\n isAuthenticated &&\n loyaltyCard.result &&\n loyaltyCard.result.CardNumber === undefined &&\n LoyaltyTermsModal({\n resources: { ...resources },\n returnRef: this.toggleRef,\n checked: this.state.checked,\n isOpen: this.state.isModalOpen,\n terms: serviceTerms,\n telemetryContent: this.telemetryContent,\n onToggle: this._toggle,\n onSubmit: this._submit,\n onCheck: this._checkboxChecked\n })\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _toggle(): void {\n this.setState({ isModalOpen: !this.state.isModalOpen, checked: false });\n }\n\n private _submit(): void {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(card => {\n if (this.props.config.redirectToLoyalty) {\n window.location.assign(getUrlSync('loyalty', this.props.context.actionContext) || '');\n } else {\n getLoyaltyCardAsync({ callerContext: this.props.context.actionContext }, card.CardNumber || '')\n .then(fullCard => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n fullCard\n );\n })\n .catch((error: Error) => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n card\n );\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to fetch loyalty card');\n });\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n }\n\n private _checkboxChecked(): void {\n this.setState({ checked: !this.state.checked });\n }\n}\n\nexport default LoyaltyTerms;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignInInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n ariaLabel?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface ISignInInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst SignInInput: React.FC = ({ id, type, value, pattern, className, maxLength, ariaLabel, onChange }) => (\n \n);\n\nexport default SignInInput;\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 } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountWelcomeTileData } from './account-welcome-tile.data';\nimport { IAccountWelcomeTileProps } from './account-welcome-tile.props.autogenerated';\n\nexport interface IAccountWelcomeTileViewProps extends IAccountWelcomeTileProps {\n AccountWelcomeTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n}\n\n/**\n *\n * AccountWelcome component.\n * @extends {React.PureComponent>}\n */\nclass AccountWelcomeTile extends React.PureComponent> {\n public render(): JSX.Element {\n const { config, data } = this.props;\n const { className } = config;\n\n const accountInfo = data.accountInformation.result;\n const heading = {\n ...config.heading,\n ...{\n text: `${config.heading.text ? config.heading.text : ''} ${\n accountInfo && accountInfo.FirstName ? accountInfo.FirstName : ''\n }`\n }\n };\n\n const viewProps = {\n ...this.props,\n className,\n AccountWelcomeTile: {\n moduleProps: this.props,\n className: classnames('ms-account-welcome-tile', config.className)\n },\n heading: heading && heading.text && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n}\n\nexport default AccountWelcomeTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport AccountWishlistTile from './account-wishlist-tile';\nimport AccountWishlistTileView from './account-wishlist-tile.view';\n\nexport * from './account-wishlist-tile';\nexport * from './account-wishlist-tile.data';\nexport {\n IAccountWishlistTileConfig,\n IAccountWishlistTileProps,\n IAccountWishlistTileResources\n} from './account-wishlist-tile.props.autogenerated';\nexport * from './account-wishlist-tile.view';\n\nexport { AccountWishlistTile, AccountWishlistTileView };\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-generic-tile.props.autogenerated';\n\nexport interface IAccountGenericTileLinks {\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 AccountGenericTileLinks: 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-generic-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 AccountGenericTileLinks;\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 { ITileListItemViewProps } from './tile-list-item';\n\n/**\n *\n * ITileListItemViewProps component.\n * @param props - Component props.\n * @returns TileListView.\n */\nconst renderTileListItemContent = (props: ITileListItemViewProps): JSX.Element => {\n const {\n heading,\n paragraph,\n backgroundImage,\n links,\n thumbnailImage,\n tileListContainer,\n tileListImageContainer,\n tileListThumbnailImageContainer,\n tileListHeadingContainer\n } = props;\n\n return (\n \n {backgroundImage}\n \n {heading}\n {paragraph}\n {links}\n \n {thumbnailImage}\n \n );\n};\n\n/**\n *\n * TileListItemViewProps component.\n * @param props - Component props.\n * @returns TileListView.\n */\nexport const TileListItemViewComponent: React.FC = props => {\n const { tileListItem } = props;\n return {renderTileListItemContent(props)};\n};\n\nexport default TileListItemViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './account-profile-description';\nexport { IAccountProfileLinks } from './account-profile-links';\nexport * from './account-profile-text';\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 { LoyaltyCard, LoyaltyRewardPoint, LoyaltyRewardPointActivity } from '@msdyn365-commerce/retail-proxy';\nimport {\n getLoyaltyRewardPointActivityTimelineAsync,\n getLoyaltyRewardPointsExpiringSoonAsync\n} from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyData } from './account-loyalty.data';\nimport { IAccountLoyaltyProps } from './account-loyalty.props.autogenerated';\nimport { AccountLoyaltyLabel, AccountLoyaltyModalLabel } from './components';\n\nexport interface IAccountLoyaltyViewProps extends IAccountLoyaltyProps<{}> {\n AccountLoyalty: IModuleProps;\n className: string;\n totalPoints: number;\n heading?: React.ReactNode;\n Info: INodeProps;\n infoLabel: React.ReactNode;\n cardNumber: React.ReactNode;\n joinDate: React.ReactNode;\n Points: INodeProps;\n pointsLabel: React.ReactNode;\n points: React.ReactNode;\n Breakdown: INodeProps;\n RewardPoints: INodeProps;\n PointsBreakdown: INodeProps;\n rewardPoints?: IAccountLoyaltyRewardPointProps[];\n Button: INodeProps;\n homeButton: React.ReactNode;\n pointsModal: IAccountLoyaltyModalProps;\n}\n\nexport interface IAccountLoyaltyState {\n isModalOpen: boolean;\n currentModalData?: LoyaltyRewardPoint;\n isModalExpiring: boolean;\n modalID: string;\n currentFocus?: React.RefObject;\n pointsActivity: LoyaltyRewardPointActivity[] | undefined;\n}\n\nexport interface IAccountLoyaltyRewardPointProps {\n label: React.ReactNode;\n availableModalLabel: React.ReactNode;\n availableModalTrigger: React.ReactNode;\n expiringModalLabel: React.ReactNode;\n expiringModalTrigger: React.ReactNode;\n}\n\nexport type horizontalModalPosition = 'left' | 'center' | 'right';\nexport type verticalModalPosition = 'top' | 'center' | 'bottom';\n\nexport interface IAccountLoyaltyModalProps {\n isOpen: boolean;\n horizontalPosition?: horizontalModalPosition;\n verticalPosition?: verticalModalPosition;\n modalClassName?: string;\n modalHeaderClassName?: string;\n modalHeader?: string;\n modalBodyClassName?: string;\n ModalBodyTop: INodeProps;\n pointsDescription?: React.ReactNode;\n totalPoints?: React.ReactNode;\n ModalBodyHeaders: INodeProps;\n date?: React.ReactNode;\n balanceLabel?: React.ReactNode;\n rewardPointsActivity?: IAccountLoyaltyActivityProps[];\n returnFocusRef?: React.RefObject;\n onClose(): void;\n onOpened?(): void;\n}\n\nexport interface IAccountLoyaltyActivityProps {\n Activity: INodeProps;\n activityType: React.ReactNode;\n activityDate: React.ReactNode;\n activityPoints: React.ReactNode;\n}\n\nexport interface IProps extends IAccountLoyaltyProps {}\n\n/**\n *\n * AccountLoyalty component.\n * @extends {React.Component>}\n */\n@observer\nclass AccountLoyalty extends React.PureComponent {\n private readonly _buttonAvailableRef: React.RefObject;\n\n private readonly _buttonExpireRef: React.RefObject;\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private readonly decimalPrecision = 2;\n\n constructor(props: IAccountLoyaltyProps) {\n super(props);\n this._buttonAvailableRef = React.createRef();\n this._buttonExpireRef = React.createRef();\n this.state = {\n isModalOpen: false,\n currentModalData: undefined,\n isModalExpiring: false,\n modalID: '',\n pointsActivity: undefined\n };\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, TelemetryConstant.BackToShopping);\n }\n\n public render(): JSX.Element | null {\n const { className, heading } = this.props.config;\n const { loyaltyCard } = this.props.data;\n const { loyaltyCardLabel, totalAvailablePointsLabel, backToShoppingText } = this.props.resources;\n const { actionContext } = this.props.context;\n const { isModalOpen } = this.state;\n const backToShopAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n if (!loyaltyCard || !loyaltyCard.result || !loyaltyCard.result.CardNumber) {\n this.props.context.telemetry.error('Loyalty card content is empty, module wont render');\n return null;\n }\n\n const loyaltyCardData = loyaltyCard.result;\n const rewardPoints = loyaltyCard && loyaltyCardData.RewardPoints;\n const homeLink = Msdyn365.getUrlSync('home', actionContext) ?? '';\n\n const viewProps = {\n ...this.props,\n AccountLoyalty: {\n moduleProps: this.props,\n className: classnames('ms-account-loyalty', className),\n modalTransition: {\n /**\n * On Entered in Modal function.\n * @param node - The current node element.\n * @param isAppearing - The Boolean value.\n */\n onEntered: (node: HTMLElement, isAppearing: boolean) => {\n const childNode = node.firstChild as HTMLElement;\n if (isAppearing) {\n childNode.focus();\n }\n }\n }\n },\n totalPoints: rewardPoints && this._getTotalPoints(),\n className: classnames('msc-account-loyalty', className),\n rewardPoints:\n loyaltyCardData.RewardPoints && loyaltyCardData.RewardPoints.length > 0 && this._renderRewardPoints(loyaltyCardData),\n pointsModal: (isModalOpen && this._renderModal()) || {\n isOpen: false,\n returnFocusRef: this.state.currentFocus,\n onOpened: this._onOpenModal\n },\n Info: { className: 'ms-account-loyalty__info' },\n Points: { className: 'ms-account-loyalty__points' },\n Breakdown: { className: 'ms-account-loyalty__breakdown' },\n RewardPoints: { className: 'ms-account-loyalty__reward-points' },\n PointsBreakdown: { className: 'ms-account-loyalty__point-breakdown' },\n Button: { className: 'ms-account-loyalty__link' },\n heading: heading && (\n \n ),\n\n // Account info\n infoLabel: ,\n cardNumber: ,\n joinDate: (\n \n ),\n\n // Points\n pointsLabel: ,\n points: rewardPoints && (\n \n ),\n\n homeButton: rewardPoints && (\n \n {backToShoppingText}\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n private _formatJoinDate(date: Date): string {\n return format(\n this.props.resources.joinDateFormatted,\n new Intl.DateTimeFormat(this.props.context.actionContext.requestContext.locale, {\n month: 'long',\n day: 'numeric',\n year: 'numeric'\n }).format(new Date(date))\n );\n }\n\n private _renderRewardPoints(loyaltyCard: LoyaltyCard): IAccountLoyaltyRewardPointProps[] {\n return loyaltyCard.RewardPoints!.map((loyaltyPoints, index) => {\n const availableId = (loyaltyPoints.RewardPointId && `${loyaltyPoints.RewardPointId}-available-${index}`) || 'available-points';\n const expiringId = (loyaltyPoints.RewardPointId && `${loyaltyPoints.RewardPointId}-expiring-${index}`) || 'expiring-points';\n const {\n availablePointsLabel,\n availablePointsAriaLabel,\n expiringPointsFormatLabel,\n expiringPointsFormatAriaLabel\n } = this.props.resources;\n this.payLoad.contentAction.etext = TelemetryConstant.AvailablePoints;\n const availablePointsAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = TelemetryConstant.ExpiringPoints;\n const expiringPointsAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n const expireDaysDefaultValue = 30;\n\n return {\n label: ,\n availableModalLabel: loyaltyPoints.ActivePoints !== undefined && (\n \n ),\n availableModalTrigger: loyaltyPoints.ActivePoints !== undefined && (\n \n {loyaltyPoints.ActivePoints.toFixed(this.decimalPrecision)}\n \n ),\n expiringModalLabel: loyaltyPoints.PointsExpiringSoon !== undefined && (\n \n ),\n expiringModalTrigger: loyaltyPoints.PointsExpiringSoon !== undefined && (\n \n {loyaltyPoints.PointsExpiringSoon.toFixed(this.decimalPrecision)}\n \n )\n };\n });\n }\n\n private _renderModal(): IAccountLoyaltyModalProps | null {\n const { totalAvailablePointsLabel, loyaltyActivityDateLabel, loyaltyActivityBalanceLabel } = this.props.resources;\n const { isModalOpen, currentModalData } = this.state;\n\n if (!isModalOpen || !currentModalData) {\n // Return empty modal\n this.props.context.telemetry.error('Account loyalty modal content is empty, module wont render');\n return null;\n }\n\n return {\n isOpen: isModalOpen,\n returnFocusRef: this.state.currentFocus,\n horizontalPosition: 'center',\n verticalPosition: 'center',\n modalClassName: 'ms-account-loyalty__points-modal',\n modalHeaderClassName: 'ms-account-loyalty__points-modal-header',\n modalHeader: currentModalData.Description ?? '',\n modalBodyClassName: 'ms-account-loyalty__points-modal-body',\n ModalBodyTop: { className: 'ms-account-loyalty__points-modal-body-top' },\n ModalBodyHeaders: { className: 'ms-account-loyalty__points-modal-body-header' },\n rewardPointsActivity: this._renderPointsActivity(),\n pointsDescription: ,\n totalPoints: ,\n date: ,\n balanceLabel: ,\n onClose: this._closeModal,\n onOpened: this._onOpenModal\n };\n }\n\n private _getTotalPoints(): number {\n const rewardPoints = this.props.data.loyaltyCard.result && this.props.data.loyaltyCard.result.RewardPoints;\n\n let total = 0;\n rewardPoints &&\n rewardPoints.forEach(loyaltyPoints => {\n total += loyaltyPoints.ActivePoints ?? 0;\n });\n\n return total;\n }\n\n private _getPoints(): string {\n const { currentModalData, isModalExpiring } = this.state;\n const rewardPoints: number = (isModalExpiring ? currentModalData!.PointsExpiringSoon : currentModalData!.ActivePoints) ?? 0;\n\n return `${rewardPoints.toFixed(this.decimalPrecision)}`;\n }\n\n private _renderPointsActivity(): IAccountLoyaltyActivityProps[] | undefined {\n const { pointsActivity } = this.state;\n\n if (!pointsActivity) {\n this.props.context.telemetry.error('Points activity content is empty, module wont render');\n return undefined;\n }\n\n return pointsActivity.map(activity => {\n return {\n Activity: { className: 'ms-account-loyalty__points-modal-activity' },\n activityType: (\n \n ),\n activityDate: (\n \n ),\n activityPoints: (\n \n )\n };\n });\n }\n\n private _parseDate(date: Date | string): Date {\n /* Dates for loyalty are coming as formatted strings yyyy-mm-ddT:00:00.000z\n Javascript was interpreting this as an iso format, thus causing the wrong date to be rendered */\n if (typeof date === 'string') {\n let dateString = date.toString();\n dateString = dateString.replace(/-/g, '/');\n dateString = dateString.substring(0, 10);\n return new Date(dateString);\n }\n return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n }\n\n private _getTimelineType(pointActivity: LoyaltyRewardPointActivity): string {\n if (pointActivity.LoyaltyRewardPointTimelineEntryType) {\n return pointActivity.LoyaltyRewardPointTimelineEntryType;\n }\n\n const { earnedPointsLabel, redeemedPointsLabel, adjustedPointsLabel, refundedPointsLabel } = this.props.resources;\n switch (pointActivity.ExtensibleLoyaltyRewardPointActivityEntryTypeValue) {\n case 1:\n return earnedPointsLabel;\n case 2:\n return refundedPointsLabel;\n case 3:\n return redeemedPointsLabel;\n case 5:\n return adjustedPointsLabel;\n default:\n return '';\n }\n }\n\n private readonly _populateModalData = (\n focusRef: React.RefObject,\n loyaltyCard: LoyaltyCard,\n currentLoyaltyPoints: LoyaltyRewardPoint,\n expiring: boolean\n ) => () => {\n if (!loyaltyCard || !loyaltyCard.CardNumber || !currentLoyaltyPoints.RewardPointId) {\n this.props.context.telemetry.error('Modal data is empty, module wont render');\n return null;\n }\n\n const { actionContext } = this.props.context;\n\n // Open modal\n this.setState({\n isModalOpen: true,\n currentModalData: currentLoyaltyPoints,\n isModalExpiring: expiring,\n modalID: '',\n currentFocus: focusRef\n });\n\n if (expiring) {\n getLoyaltyRewardPointsExpiringSoonAsync(\n { callerContext: actionContext, queryResultSettings: {} },\n loyaltyCard.CardNumber,\n currentLoyaltyPoints.RewardPointId,\n 30\n )\n .then((points: LoyaltyRewardPointActivity[]) => {\n this.setState({ pointsActivity: points });\n })\n .catch((error: Error) => {\n this.props.telemetry.exception(error);\n this.props.telemetry.debug('Failed to get reward point activity');\n });\n } else {\n getLoyaltyRewardPointActivityTimelineAsync(\n { callerContext: actionContext, queryResultSettings: {} },\n loyaltyCard.CardNumber,\n currentLoyaltyPoints.RewardPointId\n )\n .then((points: LoyaltyRewardPointActivity[]) => {\n this.setState({ pointsActivity: points });\n })\n .catch((error: Error) => {\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Failed to get reward point activity');\n });\n }\n // eslint-disable-next-line no-useless-return, consistent-return -- Auto-suppressed.\n return;\n };\n\n private readonly _closeModal = () => {\n this.setState({\n isModalOpen: false,\n currentModalData: undefined,\n pointsActivity: undefined\n });\n };\n\n /**\n * On open modal function.\n */\n private readonly _onOpenModal = () => {\n if (this.state.currentFocus?.current) {\n this.state.currentFocus.current.focus();\n }\n };\n}\n\nexport default AccountLoyalty;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IB2bRequestsTileViewProps } from './b2b-requests-tile';\n\nconst B2bRequestsTileView: React.FC = props => {\n const { b2bRequestsTile, heading, links } = props;\n\n return (\n \n {heading}\n {links}\n \n );\n};\n\nexport default B2bRequestsTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignInLink {\n id?: string;\n className: string;\n href: string;\n ariaLabel: string;\n text: string;\n telemetryContent?: ITelemetryContent;\n}\n\nconst SignInLink: React.FC = ({ id, className, href, telemetryContent, ariaLabel, text }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n {text}\n \n );\n};\n\nexport default SignInLink;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React from 'react';\nimport { KeyCodes } from '@msdyn365-commerce-modules/utilities';\n\nexport interface ISearchBarProps {\n className: string;\n searchPlaceholderLabel: string;\n onSearch(searchText: string): void;\n}\n\nexport interface ISearchBarState {\n searchText: string;\n}\n\nexport class SearchBar extends React.Component {\n constructor(props: ISearchBarProps) {\n super(props);\n this.state = {\n searchText: ''\n };\n }\n\n public render(): JSX.Element {\n const { className, searchPlaceholderLabel } = this.props;\n return (\n
\n \n
\n );\n }\n\n private readonly onSearchTextChange = (ev: React.ChangeEvent): void => {\n this.setState({\n searchText: ev.target.value\n });\n };\n\n private readonly onSearch = (): void => {\n this.props.onSearch(this.state.searchText);\n };\n\n private readonly handleKeyUp = (event: React.KeyboardEvent): void => {\n if (event.keyCode === KeyCodes.Enter) {\n this.onSearch();\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 { IComponentProps } from '@msdyn365-commerce/core';\nimport { CommerceException } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Alert, Button } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { moduleClassName } from '../business-partners';\nimport { IBusinessPartnersResources } from '../business-partners.props.autogenerated';\nimport { SearchBar } from './search-bar';\n\n/**\n * Props of DataGrid component.\n */\nexport interface IDataGridProps extends IComponentProps {\n className: string;\n pageSize?: number;\n searchPlaceholderLabel: string;\n defaultSorting?: ISortingInfo;\n resources: IBusinessPartnersResources;\n columns: IDataGridColumn[];\n loadData(): Promise;\n}\n\n/**\n * State of DataGrid component.\n */\nexport interface IDataGridState {\n data: Tdata[];\n paging: IPagingInfo;\n filter: IFilterInfo;\n sorting?: ISortingInfo;\n isLoading: boolean;\n errorMessage: string;\n}\n\nexport interface IPagingInfo {\n index: number;\n}\n\nexport interface IFilterInfo {\n searchText: string;\n}\n\nexport interface ISortingInfo {\n fieldName: string;\n ascending: boolean;\n}\n\n/**\n * Column definition of DataGrid component.\n */\nexport interface IDataGridColumn {\n /**\n * A unique key for identifying the column.\n */\n reactKey: string;\n\n /**\n * Name to render on the column header.\n */\n name: string;\n\n /**\n * Class name added to table cell.\n */\n className?: string;\n\n /**\n * The field to pull the text value from for the column.Can be unset if a custom `onRender` method is provided.\n */\n fieldName?: string;\n\n /**\n * Whether the user can search this column by text.\n */\n isSearchable?: boolean;\n\n /**\n * Custom renderer for cell content, instead of the default text rendering.\n */\n onRender?(item: Tdata): JSX.Element;\n\n /**\n * Event when the table cell is clicked.\n */\n onClick?(item: Tdata): void;\n}\n\nconst defaultPageSize = 10;\n\n/**\n * DataGrid component encapsulates common table functionalities.\n */\nexport class DataGrid extends React.Component, IDataGridState> {\n constructor(props: IDataGridProps) {\n super(props);\n this.state = {\n data: [],\n sorting: props.defaultSorting,\n paging: { index: 0 },\n filter: { searchText: '' },\n isLoading: true,\n errorMessage: ''\n };\n }\n\n public componentDidMount(): void {\n this.loadDataInternal();\n }\n\n public shouldComponentUpdate(nextProps: Readonly>, nextState: Readonly>): boolean {\n return (\n this.props.id !== nextProps.id ||\n this.props.columns !== nextProps.columns ||\n this.state.data !== nextState.data ||\n this.state.paging !== nextState.paging ||\n this.state.filter !== nextState.filter ||\n this.state.isLoading !== nextState.isLoading ||\n this.state.errorMessage !== nextState.errorMessage\n );\n }\n\n public render(): JSX.Element | null {\n const data = this.getDataToDisplay();\n const hasMore = this.hasMore();\n if (this.state.errorMessage) {\n return {this.state.errorMessage};\n }\n if (this.state.isLoading) {\n return {this.props.resources.loadingLabel};\n }\n if (!ArrayExtensions.hasElements(data)) {\n return (\n <>\n \n

{this.props.resources.noDataMessage}

\n \n );\n }\n return (\n <>\n \n
\n {this.renderGridHeader()}\n {data.map((item, index) => this.renderGridRow(item, index))}\n
\n {hasMore && (\n
\n \n
\n )}\n \n );\n }\n\n /**\n * Renders the TH header in the table.\n * @returns - Header react node.\n */\n private readonly renderGridHeader = () => {\n const className = `${this.props.className}__header`;\n const rowClassName = `${className}__row`;\n return (\n \n \n {this.props.columns.map(column => (\n \n {column.name}\n \n ))}\n \n \n );\n };\n\n /**\n * Renders table row.\n * @param item - Data item for this row.\n * @param index - Index of the row.\n * @returns - Row react node.\n */\n private readonly renderGridRow = (item: Tdata, index: number) => {\n const rowClassName = `${this.props.className}__row`;\n return (\n \n {this.props.columns.map(column => {\n return (\n column.onClick?.(item)}>\n {column.fieldName ? (\n {((item as unknown) as { [key: string]: string })[column.fieldName]}\n ) : (\n column.onRender?.(item)\n )}\n \n );\n })}\n \n );\n };\n\n /**\n * Load data for the table.\n * @returns Promise.\n */\n private readonly loadDataInternal = async () => {\n if (!this.props.context.actionContext.requestContext.user.isAuthenticated) {\n this.setState({\n isLoading: false\n });\n return;\n }\n try {\n const result = await this.props.loadData();\n this.setState({\n isLoading: false,\n data: result\n });\n } catch (e) {\n this.setState({\n isLoading: false,\n errorMessage: (e as { data: CommerceException })?.data?.LocalizedMessage || this.props.resources.genericErrorMessage\n });\n }\n };\n\n private readonly onSearch = (searchText: string): void => {\n this.setState({\n paging: { index: 0 },\n filter: { searchText }\n });\n };\n\n private readonly loadMore = (): void => {\n this.setState({\n paging: { index: this.state.paging.index + 1 }\n });\n };\n\n private readonly sortData = (): Tdata[] => {\n const sorting = this.state.sorting;\n if (!sorting) {\n return this.state.data;\n }\n const { fieldName, ascending } = sorting;\n return this.state.data.sort((item1: Tdata, item2: Tdata) => {\n let value1 = ((item1 as unknown) as { [key: string]: string })[fieldName];\n let value2 = ((item2 as unknown) as { [key: string]: string })[fieldName];\n if (typeof value1 === 'string' && typeof value2 === 'string') {\n value1 = value1.toLowerCase();\n value2 = value2.toLowerCase();\n }\n const compareResult = value1 > value2 ? 1 : value1 < value2 ? -1 : 0;\n return ascending ? compareResult : compareResult * -1;\n });\n };\n\n private readonly filterData = (): Tdata[] => {\n const column = this.props.columns.find(c => c.isSearchable);\n const searchText = this.state.filter.searchText;\n return this.sortData().filter(item => {\n if (!column?.fieldName || !searchText) {\n return true;\n }\n const columnValue = ((item as unknown) as { [key: string]: string })[column.fieldName];\n return columnValue && columnValue.toLowerCase().indexOf(searchText.trim().toLowerCase()) >= 0;\n });\n };\n\n private readonly getDataToDisplay = (): Tdata[] => {\n const itemsCount = (this.props.pageSize || defaultPageSize) * (this.state.paging.index + 1);\n const filteredItems = this.filterData();\n return filteredItems.slice(0, itemsCount);\n };\n\n private readonly hasMore = (): boolean => {\n const itemsCount = (this.props.pageSize || defaultPageSize) * (this.state.paging.index + 1);\n const filteredItems = this.filterData();\n return filteredItems.length > itemsCount;\n };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps } from '@msdyn365-commerce/core';\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport React, { ReactNode } from 'react';\nimport { isMobile, Node, VariantType } from '@msdyn365-commerce-modules/utilities';\n\nimport { BusinessPartner, BusinessPartnerUser, BusinessPartnersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { IBusinessPartnersResources } from '../business-partners.props.autogenerated';\nimport { DataGrid, IDataGridColumn } from './data-grid';\n\n/**\n * View model of business partner user, used to display.\n */\nexport interface IBusinessPartnerUserViewModel extends BusinessPartnerUser {\n name: string;\n spendingLimit: ReactNode;\n}\n\n/**\n * Props of BusinessPartnerUsersTable.\n */\nexport interface IBusinessPartnerUsersTableProps extends IComponentProps {\n className: string;\n pageSize?: number;\n businessPartner: BusinessPartner;\n resources: IBusinessPartnersResources;\n onSelect(businessPartnerUser: BusinessPartnerUser): void;\n}\n\n/**\n * BusinessPartnerUsersTable component.\n */\nexport class BusinessPartnerUsersTable extends React.Component {\n public shouldComponentUpdate(nextProps: Readonly): boolean {\n return this.props.id !== nextProps.id;\n }\n\n public render(): JSX.Element {\n return (\n \n );\n }\n\n /**\n * Get column definition of the table.\n * @returns - Columns.\n */\n private readonly getColumns = (): IDataGridColumn[] => {\n const isMobileDevice = isMobile({ variant: VariantType.Viewport, context: this.props.context.request }) === 'xs';\n\n return [\n {\n reactKey: 'name',\n name: this.props.resources.businessUserTableNameHeadingText,\n isSearchable: true,\n onClick: this.props.onSelect,\n onRender: (data: IBusinessPartnerUserViewModel) => {data.name}\n },\n {\n reactKey: 'email',\n name: this.props.resources.businessUserTableEmailHeadingText,\n fieldName: 'Email',\n onClick: this.props.onSelect\n },\n {\n reactKey: 'spendingLimit',\n name: this.props.resources.businessUserTableSpendingLimitHeadingText,\n className: `${this.props.className}__row__column-with-number`,\n fieldName: 'spendingLimit',\n onClick: !isMobileDevice ? this.props.onSelect : undefined\n }\n ];\n };\n\n /**\n * Call retail proxy to get business partner users.\n * @returns - Business partner users view model.\n */\n private readonly getBusinessPartnerUsers = async (): Promise => {\n const businessPartners = await BusinessPartnersDataActions.getUsersAsync(\n {\n callerContext: this.props.context.actionContext,\n bypassCache: 'get',\n queryResultSettings: {}\n },\n this.props.businessPartner.BusinessPartnerId\n );\n return businessPartners\n .filter(user => user.StatusValue === 1)\n .map(user => {\n return {\n ...user,\n name: `${user.FirstName} ${user.LastName}`,\n spendingLimit: (\n \n {!ObjectExtensions.isNullOrUndefined(user.SpendingLimit)\n ? this.props.context.cultureFormatter.formatCurrency(user.SpendingLimit.toString())\n : ''}\n {!ObjectExtensions.isNullOrUndefined(user.SpendingLimit) && user.SpendingLimit === 0 ? (\n \n