{"version":3,"sources":["webpack:///src/modules/password-reset/password-reset.tsx?2fc7","webpack:///src/modules/password-reset-verification/components/password-reset-verification-loading-message.tsx?97ae","webpack:///src/modules/password-reset/components/password-reset-error.tsx?5bd3","webpack:///src/modules/sign-up/components/sign-up-success.tsx?be19","webpack:///src/modules/sign-up/components/sign-up-input.tsx?49f8","webpack:///src/modules/account-profile-edit/components/account-profile-edit-loading-icon.tsx?e178","webpack:///src/modules/account-customer-balance-tile/index.ts?038c","webpack:///src/modules/account-address-tile/components/index.ts?24f7","webpack:///./src/themes/gardner-theme/views/order-template.view.tsx?a850","webpack:///src/modules/password-reset/password-reset.view.tsx?f872","webpack:///./src/themes/gardner-theme-b2c/views/content-block.view.tsx?3e51","webpack:///src/modules/site-picker/site-picker.view.tsx?dcff","webpack:///src/modules/account-address-tile/account-address-tile.view.tsx?0b73","webpack:///src/modules/account-address-tile/index.ts?effb","webpack:///src/modules/loyalty-terms/components/index.ts?508b","webpack:///./src/themes/gardner-theme/views/business-organization-list.view.tsx?ad18","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/themes/gardner-theme-b2c/views/order-confirmation.view.tsx?ff4b","webpack:///./src/themes/gardner-theme-b2c/views/business-organization-list.view.tsx?ec68","webpack:///src/modules/password-reset-verification/components/password-reset-verification-button.tsx?d3bb","webpack:///src/modules/account-invoice-tile/components/account-invoice-tile-description.tsx?0029","webpack:///src/modules/account-invoice-tile/components/account-invoice-tile-links.tsx?d307","webpack:///src/modules/account-invoice-tile/account-invoice-tile.tsx?9a78","webpack:///src/modules/adventureworks/views/reviews-list.view.tsx?ebec","webpack:///src/modules/accordion-item/accordion-item.view.tsx?b04f","webpack:///./src/themes/gardner-theme/views/write-review.view.tsx?9fd7","webpack:///src/modules/account-loyalty-tile/components/index.ts?c444","webpack:///src/modules/account-profile-edit/components/account-profile-edit-button.tsx?8f71","webpack:///src/modules/accordion-item/accordion-item.tsx?fc54","webpack:///./src/themes/gardner-theme-b2c/views/order-template.view.tsx?56b4","webpack:///src/modules/password-reset-verification/components/password-reset-verification-error.tsx?5cfd","webpack:///src/modules/password-reset-verification/components/password-reset-verification-success.tsx?8c35","webpack:///./src/themes/gardner-theme/views/order-confirmation.view.tsx?fd9b","webpack:///src/modules/accordion/accordion.view.tsx?8c70","webpack:///./src/themes/gardner-theme/views/sign-up.view.tsx?ffcc","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/sign-up/components/sign-up-error.tsx?9100","webpack:///src/modules/password-reset/components/password-reset-loading-message.tsx?a735","webpack:///src/modules/sign-in/index.ts?5400","webpack:///src/modules/account-profile-edit/components/account-profile-edit-label.tsx?505c","webpack:///./src/themes/gardner-theme/views/content-block.view.tsx?2e10","webpack:///src/modules/account-loyalty-tile/index.ts?b609","webpack:///src/modules/sign-up/sign-up.tsx?f918","webpack:///src/modules/business-organization-list/business-organization-list.view.tsx?8701","webpack:///src/modules/business-organization-list/business-organization-list.tsx?b6f5","webpack:///src/modules/account-customer-balance/components/account-actions.tsx?bbe9","webpack:///src/modules/account-customer-balance/components/account-statement-request-modal.tsx?cf6e","webpack:///src/modules/account-customer-balance/components/index.tsx?9c6a","webpack:///src/modules/sign-up/components/sign-up-button.tsx?4a5f","webpack:///src/modules/account-generic-tile/account-generic-tile.tsx?4504","webpack:///src/index.ts?c6ae","webpack:///src/modules/account-address-tile/account-address-tile.tsx?4565","webpack:///src/modules/password-reset-verification/components/password-reset-verification-label.tsx?70a3","webpack:///src/modules/account-profile-edit/components/account-profile-edit-error.tsx?a0b2","webpack:///./src/themes/gardner-theme/views/sign-in.view.tsx?1369","webpack:///src/modules/interactive-feature-collection/interactive-feature-collection.view.tsx?5927","webpack:///src/modules/adventureworks/views/business-organization-list.view.tsx?dcc4","webpack:///src/modules/sign-up/components/sign-up-loading-icon.tsx?9dc7","webpack:///src/modules/account-generic-tile/account-generic-tile.view.tsx?bca1","webpack:///./src/themes/gardner-theme-b2c/views/sign-in.view.tsx?1764","webpack:///src/modules/sign-up/sign-up.view.tsx?e4b6","webpack:///src/modules/account-profile-edit/account-profile-edit.view.tsx?72b7","webpack:///src/modules/sign-up/components/index.ts?0666","webpack:///src/modules/password-reset-verification/components/password-reset-verification-loading-icon.tsx?7944","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/themes/gardner-theme-b2c/views/write-review.view.tsx?e706","webpack:///src/modules/account-welcome-tile/index.ts?2bd4","webpack:///src/modules/account-loyalty/index.ts?6823","webpack:///./src/themes/gardner-theme-b2c/views/sign-up.view.tsx?1185","webpack:///src/modules/interactive-feature-collection/interactive-feature-collection.tsx?2538","webpack:///src/modules/sign-up/index.ts?7cfc","webpack:///src/modules/account-customer-balance-tile/components/index.ts?1499","webpack:///src/modules/account-customer-balance/account-customer-balance.tsx?da17","webpack:///src/modules/business-organization-list/components/small-components.tsx?104e","webpack:///src/modules/password-reset/components/password-reset-input.tsx?7f32","webpack:///src/modules/account-welcome-tile/account-welcome-tile.tsx?abcf","webpack:///src/modules/account-wishlist-tile/index.ts?b510","webpack:///src/modules/map/map.tsx?e2df","webpack:///src/modules/account-address-tile/components/account-address-tile-description.tsx?88b9","webpack:///src/modules/account-generic-tile/components/account-generic-tile-links.tsx?e4df","webpack:///src/modules/account-profile/components/index.ts?41ea","webpack:///src/modules/footer-item/footer-item.tsx?f8b4","webpack:///src/modules/site-picker/site-picker.tsx?35ca","webpack:///src/modules/b2b-requests-tile/b2b-requests-tile.view.tsx?949e","webpack:///src/modules/password-reset/components/password-reset-button.tsx?7c39","webpack:///src/modules/accordion/accordion.tsx?45c1","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/account-invoice-tile/account-invoice-tile.view.tsx?4620","webpack:///src/modules/account-profile-edit/components/account-profile-edit-loading-message.tsx?2c6f","webpack:///src/modules/account-address-tile/components/account-address-tile-links.tsx?7e3f","webpack:///src/modules/password-reset/components/password-reset-label.tsx?2eed","webpack:///src/modules/map/map.view.tsx?cd35","webpack:///src/modules/sign-up/components/sign-up-loading-message.tsx?1a3b","webpack:///src/modules/footer-item/footer-item.view.tsx?235e","webpack:///src/modules/account-customer-balance/index.tsx?fe9b","webpack:///src/modules/account-profile-edit/components/account-profile-edit-input.tsx?3bba","webpack:///src/modules/password-reset/components/password-reset-loading-icon.tsx?29cc","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/account-customer-balance/account-customer-balance.view.tsx?35d2","webpack:///src/modules/loyalty-terms/index.ts?01e8","webpack:///src/modules/sign-up/components/sign-up-label.tsx?a805","webpack:///src/modules/b2b-requests-tile/index.ts?ef19","webpack:///src/modules/account-profile-edit/account-profile-edit.tsx?a9d6"],"names":["PasswordReset","React","constructor","props","super","moduleClassName","handleHeadingChange","event","this","config","heading","text","target","value","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","setTimeout","clearInterval","window","isInitialized","map","obj","ID","toLowerCase","newPasswordRegex","PAT","reenterPasswordRegex","resources","message","verifying_blurb","loadingMessage","Object","assign","PasswordRegex","defaultRegex","source","telemetryContent","getTelemetryObject","context","request","telemetryPageName","friendlyName","telemetry","componentDidMount","componentDidUpdate","shouldComponentUpdate","nextProps","nextState","state","data","render","viewProps","_objectSpread","viewState","isShowLoading","passwordReset","moduleProps","className","classnames","loading","modal","tag","Modal","isOpen","modalBody","ModalBody","icon","PasswordResetLoadingIconComponent","PasswordResetLoadingMessageComponent","defaultAADConainer","id","style","display","aadConainer","Msdyn365","editProps","onEdit","requestContext","passwordResetLocalAccount","_renderLocalAccount","renderView","localAccount","items","_renderInput","newPasswordLabelText","confirmPasswordLabelText","errorMessage","PasswordResetErrorComponent","key","passwordEntryMismatchError","requiredFieldMissingError","fieldIncorrectError","buttonsWrapper","buttons","PasswordResetButtonComponent","ariaLabel","saveButtonAriaLabel","saveButtonText","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","type","labelText","pattern","wrapper","label","PasswordResetLabelComponent","forId","input","PasswordResetInputComponent","__decorate","observable","observer","PasswordResetVerificationLoadingMessage","_ref","PasswordResetError","errorClassName","role","SignUpSuccess","successClassName","GetMaxLength","maxLength","parsedMaxLength","Number","parseInt","isNaN","SignUpInput","onChange","undefined","AccountProfileEditLoadingIcon","_renderItem","product","quantityLabel","ProductsTableRow","selectLine","productImage","productPrice","productNumber","addToBagButton","removeButton","productInfo","productUnitOfMeasure","productQuantityView","productQuantity","popUp","isMobile","Node","OrderTemplateLinesView","OrderTemplateLines","status","statusMessage","ProductsTable","ProductsTableHeading","orderLines","productsStatusMessage","OrderTemplateActions","orderActions","pagination","itemAddedToCartDialog","bulkOrderLineActions","isDetailsDisplayed","detailedProductView","toggleDetailsDisplayed","cancelBtnLabel","productNumberText","productText","productUnitPriceText","productUOMText","productQuantityText","toggleDetails","Module","addTemplateToBag","renameTemplate","removeTemplate","wrapClassName","autoFocus","fade","applicationNode","toggle","ModalHeader","ModalFooter","Button","onClick","PasswordResetItem","PasswordResetLoading","_ref3","PasswordResetView","_ref2","item","error","index","button","LocalAccount","renderAdditionalContent","additionalContent","_additionalContent$ad","additionalContentNode","additionalContentItems","additionalContentItemContainer","additionalContentItemLinks","links","contentBlockView","contentBlockContainer","imageContainer","detailsContainer","title","image","contentBlockAnchorTag","imageLink","imageAriaLabel","imageClass","src","href","_renderSitePicker","_renderSiteOptionsList","SitePickerMenuList","SitePickerMenuListItem","SitePickerMenuListItemArray","options","onMouseLeave","resetSiteOptionsState","isMobileView","SitePicker","_props$SitePickerMenu","SitePickerMobileContainer","renderSiteOptions","_renderMobileView","_props$config$heading","SitePickerMenu","SitePickerMenuSpan","siteOptionsState","_renderDesktopView","AccountAddressTileView","AccountAddressTile","description","BusinessFormItemComponent","renderModal","isModalOpen","headingSection","bodySection","footerSection","toggleModal","BusinessUserFormComponent","modalClassName","FormWrapper","modalHeading","modalDescription","inputs","toString","modalFooter","BusinessUserDetailsComponent","selectedUser","FirstName","LastName","userFullName","keys","InputID","BusinessOrganizationListComponent","OrganizationUserList","moduleContainer","noUsersText","addUserButton","organizationListTable","form","formType","requestAccountStatementButton","requestStatementModal","buttonList","headingForEmptyUserOrganizationList","textForEmptyUserOrganizationList","getForm","formProps","B2bRequestsTileLinks","onTextChange","ArrayExtensions","hasElements","editableLinks","_mapEditableLinks","linkdata","payLoad","getPayloadObject","link","contentAction","etext","linkText","attributes","getTelemetryAttributes","linkUrl","destinationUrl","openInNewTab","additionalProperties","B2bRequestsTile","handleLinkTextChange","linkIndex","isChannelTypeB2B","actionContext","b2bRequestsTile","OrderConfirmationOrderInfomation","orderInformationProps","receiptEmail","createdDate","OrderConfirmationSalesLine","salesLineProps","salesLine","buyAgainButton","OrderConfirmationGroupDelivery","deliveryProps","count","processing","address","trackingInfo","pickupDateTimeslot","OrderConfirmationGroup","_ref4","groupProps","delivery","salesLinesProps","salesLines","shippingItemsToYou","LineId","OrderConfirmationGroups","_ref5","groupsProps","groups","group","OrderConfirmationOrderSummary","_ref6","orderSummaryProps","subtotal","shipping","tax","totalAmount","earnedPoints","OrderConfirmationPayment","_ref7","paymentMethodsProps","methods","totalOnAccount","OrderConfirmationHelp","_ref8","helpProps","needHelpLabel","helpLineNumberLabel","contactNumber","OrderConfirmationView","_props$data$orderHydr","backToShoppingLink","alert","orderInfomation","orderSummary","payment","help","cultureFormatter","formatCurrency","tenderLines","orderHydration","result","salesOrder","TenderLines","tl","AmountInCompanyCurrency","reduce","num","total","console","log","PasswordResetVerificationButton","disabled","AccountInvoiceTileDescription","length","forEach","editableLink","push","AccountInvoiceTileLinks","AccountInvoiceTile","_data$customerBalance","currencyCode","accountInvoiceTileDescription","invoiceTotalAmount","customerBalance","OpenInvoiceBalance","toFixed","format","LinksComponent","buildReviewCard","isUserReview","cardProps","headerProps","rating","date","name","cardBodyProps","reviewProps","reviewTitle","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","wasReviewHelpfulText","like","dislike","edit","renderProductDescription","_props$data$product$r","primaryImageSource","PrimaryImageUrl","imageUrl","generateImageUrl","apiSettings","Image","gridSettings","imageSettings","viewports","xs","q","w","h","sm","md","lg","xl","lazyload","cropFocalRegion","renderProductImage","Name","ItemId","ReviewsListview","filterByDropdown","noReviewsMessage","noReviewsWithFilterMessage","pageControls","refineReviewsProps","reportReviewModal","reviewsListProps","reviewCards","sortByDropdown","userReview","isFilterApplied","review","reviewModal","modalHeader","inputRow","selectRatingLabel","reviewTitleLabel","titleInput","reviewTextLabel","textInput","privacyPolicyUrl","submitButton","cancelButton","createReviewModal","createReportModal","reported","headerSubmitted","header","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton","_renderAccordionItemContent","AccordionItemView","drawer","accordionSlots","AccordionItemContainer","AccordionItemContent","accordionItemContent","fallBackSrc","loadFailureBehavior","WriteReviewView","signInMessage","signInButton","modalToggle","paragraph","isAuthenticated","user","RichTextComponent","AccountProfileEditButton","AccordionItem","accordionItemTitle","_onToggle","bind","slots","accordionExpandedStateResult","accordionExpandedState","expanded","isAllExpanded","isExpandedOnInitialLoad","ControlledDrawer","toggleButtonText","collapseProps","onToggle","interactionStyle","accordionState","update","createAccordionStateInput","PasswordResetVerificationError","PasswordResetVerificationSuccess","_orderHydration$resul","_orderHydration$resul2","_salesOrder$SalesLine","SalesLines","so","Description","Price","Quantity","TotalAmount","accordionView","AccordionContainer","accordionItems","accordionButtons","HeaderSection","HeadingWrapper","accordianButtonsContainer","accordionItemContainer","SignUpItem","SignUpEmailVerification","email","buttonWrapper","successMessage","SignUpGivenNameVerificationComponent","givenName","SignUpSurnameVerificationComponent","surname","SignUpLoading","SignUpView","signUp","signUpLocalAccount","emailVerification","givenNameVerification","surnameVerification","disclaimer","isRequired","verificationControlWrapper","IAccountWishlistTileDescription","AccountWishlistTileLinks","AccountWishlistTile","accountWishlistTileDescription","wishlists","wishlistsCount","CommerceListLines","DescriptionComponent","B2bRequestsStatusView","b2bRequestsStatus","table","createElement","SignUpError","PasswordResetLoadingMessage","AccountProfileEditLabel","htmlFor","SignUp","handleParagraphChange","isEmailVerificationRequried","templateVersion","emailRegex","VERIFY","isGivenNameVerificationRequried","isSurnameVerificationRequried","UX_INPUT_TYPE","PAT_DESC","invalidPasswordError","invalidEmailAddressError","errorMessages","required_field","getValue","v1Value","v2Value","EmailRegex","SignUpLoadingIconComponent","SignUpLoadingMessageComponent","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","emailAddressLabelText","passwordLabelText","verificationCodeLabelText","SignUpButtonComponent","sendCodeButtonAriaLabel","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","SignUpSuccessComponent","verificationCodeSendSuccess","emailAddressVerifiedSuccess","SignUpErrorComponent","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","invalidEmailError","requiredFieldMissingSummaryError","signUpButtonArialabel","signUpButtonText","cancelButtonArialabel","cssClassName","SignUpLabelComponent","SignUpInputComponent","BusinessFormItem","BusinessUserForm","_renderModal","BusinessUserDetails","BusinessOrganizationList","ButtonList","_getForm","FormType","InputType","renderInputSection","asteriskAfterLabel","onInputChange","element","customClass","maxChars","isDisabled","fieldReference","FormLabel","asteriskText","FormFieldError","FormInput","placeholder","_this$props$config","BusinessFormDefaultInputs","Text","businessUserFirstNameLabelText","businessUserLastNameLabelText","Email","businessUserEmailAddressLabelText","SpendingLimit","businessUserSpendingLimitLabelText","delayFocus","formChildReference","userFormEditReference","userFormDeleteReference","_handleAddUserButtonClicked","newForm","formItems","newUser","B2BUserId","Random","Guid","generateGuid","setState","isFormActive","Add","referenceBack","addUserButtonReference","current","hasFormError","hasActionError","selectedUserData","_handleAddEditFormSaveButton","async","updatedUser","_createBusinessPartner","Edit","editOrganizationUser","EditOrganizationUserInput","then","location","reload","catch","trace","addOrganizationUser","AddOrganizationUserInput","businessUserActionRetailErrorMsg","parseFloat","_handleEditIcon","userData","possibleName","find","cell","fullName","lastSpaceIndex","lastIndexOf","firstName","substring","lastName","possibleCell","dataCell","_handleDeleteIcon","displayedUserData","TableDataType","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","None","callbackRemoveButton","_onInputChange","prev","refresh","isReady","_isFormReady","formItem","match","_formatPrice","price","_getCurrentUrl","reqContext","MsDyn365","isBrowser","URL","url","requestUrl","_getViewport","device","Type","innerWidth","_toggleStatementRequestDropdown","isStatementRequestAdminDropdownOpen","_updateFromDate","newFromDate","statementRequestFromDateString","_updateToDate","newToDate","statementRequestToDateString","_showRequestStatementModal","isFullOrg","statementRequestFullOrg","isStatementRequestModalOpen","_requestStatement","customer","customerInformation","currentUser","users","_getB2BUserId","statementRequest","FromDate","Date","ToDate","IsForFullOrganization","RequestedUserId","RequestingUserEmail","DeliveryTypeValue","BusinessPartnerOperationDeliveryType","callerContext","BusinessPartnerUsersDataActions","requestAccountStatementAsync","_closeStatementRequestModal","_this$statementReques","statementRequestButtonReference","focus","_onSelectRow","records","selectedRow","rowProps","isSelected","row","_toggleModal","mobileExcludedColumns","Status","_viewport","_updateViewport","submitButtonReference","addedReference","statementRequestMaxDateString","toISOString","split","StringExtensions","isNullOrWhitespace","businessUserSelectedUserDisplayName","replace","addEventListener","componentWillUnmount","removeEventListener","_this$formChildRefere","_this$submitButtonRef","_this$props$data$cust","businessUserAddUserButtonText","businessUserLoadingMessage","businessUserEmptyListMessage","businessUserErrorGettingUsersMessage","userAccountStatementLabel","fullOrganizationLabel","requestStatementButtonLabel","statementRequestModalHeaderLabel","cancelLabel","fromDateLabel","toDateLabel","submitRequestLabel","sendToEmailLabel","selectedUserLabel","hasUsers","TelemetryConstant","AddUser","addUserAttributes","errorProps","Heading","headingTag","innerRef","modalState","Table","_createTableProps","_renderUserForm","_renderUserDetails","AdminRequestStatementButton","buttonReference","onRequestStatement","onToggleDropdown","myUserAccountLabel","isDropdownShowing","RequestStatementModal","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","sortable","rows","editLinkText","deleteLinkText","viewLinkText","editLinkTooltip","deleteLinkTooltip","viewLinkTooltip","enableToModify","actionLinkText","showCheckBoxes","isSortable","resourcePrefix","minifyActions","excludedColumns","paginationProperty","skipCount","query","skip","itemPerPage","prevText","nextText","paginationText","isSingleSelectOnly","tableAriaLabel","tableTabIndex","businessUserSelectCheckBoxAriaLabelText","sortByAscending","sortByDescending","actions","onDelete","onView","formatPrice","checkBoxCallback","businessUserActiveStatusText","businessUserPendingStatusText","businessUserRemovedStatusText","usersList","statusString","StatusValue","FullName","buttonReferences","delete","_this$state$reference","businessUserRemoveModalHeaderText","businessUserRemoveModalDescription","businessUserViewModalHeaderText","businessUserCancelButtonText","businessUserCancelRemoveUserButtonText","businessUserRemoveUserButtonText","businessUserErrorUpdatingUsersMessage","formClassName","typeClassName","handleRemoveButton","businessUserEditUserFormHeadingText","businessUserAddUserFormHeadingText","businessUserSaveButtonArialabel","businessUserSaveButtonText","businessUserCancelButtonArialabel","businessUserFieldIncorrectErrorText","businessUserActionErrorText","businessUserAllFieldsRequiredMessage","FormButton","computed","ActionBar","onSelectCustomerAccount","onSelectFullOrg","popoverReference","requestStatementDropdownString","Popover","placement","onChangeFromDateEvent","onChangeToDateEvent","onBlurFromDate","ObjectExtensions","isFunction","onBlurToDate","horizontalPosition","verticalPosition","onBlur","max","min","AccountLabels","accountNumber","customerSincePrefix","createdOn","AccountValues","availableCredit","availableCreditLabel","AvailableCreditComponent","BalanceOwedComponent","balanceOwedLabel","balanceOwed","CreditExcessComponent","creditExcessLabel","creditExcess","BackButton","BackToShopping","SignUpButton","AccountGenericTile","accountAddressTileDescriptionForSingleAddress","accountAddressTileDescriptionForMultipleAddresses","addressCount","accountAddressTileDescription","PasswordResetVerificationLabel","AccountProfileEditError","SignInLoading","SignInView","signIn","signInSection","signInSectionHeading","signInLocalAccount","signInB2BAccount","forgetPassword","socialAccounts","B2BAccount","interactiveFeatureCollectionView","interactiveFeatureCollectionHeading","interactiveFeatureCollectionContainer","interactiveFeatureCollectionDesktopContainer","interactiveFeatureCollectionDesktopItems","interactiveFeatureCollectionMobileItems","interactiveFeatureCollectionMobileContainer","singleSlideCarouselComponentProps","singleSlideCarouselItemContainer","tileItem","keyIndex","SignUpLoadingIcon","AccountGenericTileView","signUpDescription","signUpLink","signUpSection","signUpSectionHeading","AccountProfileEditItem","AccountProfileEditLoading","AccountProfileEditView","accountProfileEdit","accountProfileEditLocalAccount","PasswordResetVerificationLoadingIcon","PasswordResetVerification","passwordResetVerification","PasswordResetVerificationLoadingIconComponent","PasswordResetVerificationLoadingMessageComponent","passwordResetVerificationLocalAccount","PasswordResetVerificationSuccessComponent","PasswordResetVerificationErrorComponent","verificationButtonsWrapper","verificationButtons","PasswordResetVerificationButtonComponent","continueButtonAriaLabel","continueButtonText","cancelButtonAriaLabel","PasswordResetVerificationLabelComponent","PasswordResetVerificationInputComponent","AccountWishlistTileView","InteractiveFeatureCollection","_telemetryContent","handleTextChange","itemsCounter","indexItem","itemCounter","isMosaic","_this$props$config$cl","_title$tag","interactiveItems","interactiveFeatureItems","itemsFeatureCounter","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","vertical","createHeading","_getFeatureItem","AccountCustomerBalance","_toggleDropdown","_adminShowRequestStatementModal","_this$props$data$b2bU","b2bUserInformation","_get","account","creditSummarySectionHeading","accountSectionHeading","backToShoppingText","myAccountStatementLabel","AccountNumber","_formatJoinDate","CreatedDateTime","customerCredit","customerAccountBalance","excess","InvoiceAccountCreditLimit","CreditLimit","Balance","InvoiceAccountBalance","_formatCurrency","backLink","emailAddress","isB2BSite","actionBar","IsB2bAdmin","accountLabels","accountValues","homeButton","currency","Intl","DateTimeFormat","locale","month","day","year","ref","PasswordResetInput","AccountWelcomeTile","accountInfo","accountInformation","Map","mapRef","_initMap","channel","storeSelectorStateManager","isMapApiLoaded","Microsoft","Maps","credentials","BingMapsApiKey","pushpinAccessible","Events","addHandler","setSelectedStoreLocationId","_updateMap","_this$props$data$stor","_storeSelectorStateMa","pushpinOptions","orgUnitStoreInformation","selectedStoreLocationId","mapLocation","entities","clear","pushpins","storeLocationList","filter","store","OrgUnitAvailability","unitStoreInfo","entries","_unitStoreInfo$OrgUni","storeLocation","OrgUnitLocation","Latitude","Longitude","isSelectedLocation","OrgUnitNumber","_getPushpinOptions","pushpin","Pushpin","Location","handleClickEvent","unshift","currentLocation","setView","center","bounds","LocationRect","fromShapes","setOptions","orgUnitNumber","showIndex","size","color","selectionColor","_getSvgIcon","_this$props$data$stor2","BingMapsEnabled","when","_this$props$data$stor3","setMapModuleLoaded","_this$props$data$stor4","reaction","_this$props$data$stor5","loadMapApi","_this$props$data$stor6","_this$props$context","lang","market","ChannelCountryRegionISOCode","_this$props$data$stor7","_this$props$data$stor8","_this$props$data$stor9","shouldDisplayMap","listMapViewState","displayMap","ModuleProps","classname","show","Header","MapProps","IAccountAddressTileDescription","AccountGenericTileLinks","FooterItem","footerItemClassName","_createHeading","_createImageMarkup","_createText","_createLinkText","EditableLink","_createLink","HeadingContainer","ItemContainer","Link","onTelemetryClick","ariaHiddenAttr","shouldSkipToMainImage","PureComponent","_cookieName","_cookieExpirationInSeconds","_escFunction","keyCode","expandSiteOptions","KeyCodes","Escape","_this$_sitePickerMenu","_this$_sitePickerMenu2","nextFocus","document","activeElement","_this$_sitePickerMenu3","_sitePickerMenuButton","contains","_sitePickerMenuNode","_resetSiteOptionsState","Tab","_this$_sitePickerMenu4","_this$_sitePickerMenu5","_handleOutsideClick","_this$_sitePickerMenu6","_this$_sitePickerMenu7","_handleChange","createRef","_renderSiteOptions","viewport","_document","_document2","body","resizeThrottledEventHandler","addThrottledEvent","_document3","_document4","_this$props$config$he","_this$props$config$he2","Drawer","openGlyph","closeGlyph","glyphPlacement","_renderSitePickerImage","expandSiteOptionsState","e","preventDefault","currentTarget","cookies","isConsentGiven","cookieConfig","maxAge","set","defaultImageSettings","siteOptions","_image$imageSettings","_item$siteRedirectUrl","siteImage","imageProps","tabIndex","siteRedirectUrl","siteName","altText","B2bRequestsTileView","PasswordResetButton","Accordion","expandAllButtonRef","collapseAllButtonRef","_onExpandAll","_onCollapseAll","headingComponent","accordionViewProps","_renderAccordionButton","_getAccordionItem","ExpandAll","attributeExpandAll","CollapseAll","attributeCollapseAll","showToggleAll","expandAllText","toggleAllSeparator","collapseAllText","_this$collapseAllButt","_this$expandAllButton","PasswordResetVerificationInput","AccountWelcomeTileView","AccountProfileEditLoadingMessage","AccountAddressTileLinks","PasswordResetLabel","MapHeader","MapView","SignUpLoadingMessage","FooterItemView","_renderElement","AccountProfileEditInput","PasswordResetLoadingIcon","RequestsTableColumnHeader","getUserName","isNullOrEmpty","UserFirstName","UserLastName","b2bRequestsNameDisplay","formatDate","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","b2bRequestsDescriptionColumn","b2bRequestsUserColumn","b2bRequestsStatusColumn","createTableItems","b2bRequestsPreviousText","b2bRequestsNextText","B2bRequestsTable","B2bRequestsStatus","renderHeader","headingData","_this$props$data$oper","_this$props$data$oper2","itemCount","getItemNumberDisplayString","_retrieveExcludedColumns","renderTable","b2bRequestsNumberOfItemsSingular","b2bRequestsNumberOfItems","variant","VariantType","Viewport","PasswordResetVerificationItem","PasswordResetVerificationLoading","PasswordResetVerificationView","creditSummaryLabels","creditSummaryValues","SignUpLabel","AccountProfileEdit","onTextBoxChange","PRE","_htmlDecode","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","str","innerHTML","childNodes","nodeValue","AccountProfileEditErrorComponent","AccountProfileEditButtonComponent","showEmail","AccountProfileEditLabelComponent","AccountProfileEditInputComponent"],"mappings":"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","file":"static/js/10.afcfbd579ae9657573f6.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 Msdyn365 from '@msdyn365-commerce/core';\nimport { PasswordRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport PasswordResetButtonComponent from './components/password-reset-button';\nimport PasswordResetErrorComponent from './components/password-reset-error';\nimport PasswordResetInputComponent from './components/password-reset-input';\nimport PasswordResetLabelComponent from './components/password-reset-label';\nimport PasswordResetLoadingIconComponent from './components/password-reset-loading-icon';\nimport PasswordResetLoadingMessageComponent from './components/password-reset-loading-message';\nimport { IPasswordResetConfig, IPasswordResetProps } from './password-reset.props.autogenerated';\n\nexport interface IPasswordResetViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetLocalAccount {\n localAccount: INodeProps;\n items: IPasswordResetItem[];\n errorMessage: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetViewProps {\n className: string;\n viewState: IPasswordResetViewState;\n loading: IPasswordResetLoading;\n passwordReset: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetLocalAccount: IPasswordResetLocalAccount;\n}\n\n/**\n *\n * PasswordReset component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordReset extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n @observable private newPasswordRegex: string;\n\n @observable private reenterPasswordRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IPasswordResetProps) {\n super(props);\n\n this.newPasswordRegex = PasswordRegex.defaultRegex.source;\n this.reenterPasswordRegex = PasswordRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: IPasswordResetProps, nextState: IPasswordResetViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n passwordReset: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && (\n \n ),\n passwordResetLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map((obj: { ID: string; PAT: string }) => {\n switch (obj.ID.toLowerCase()) {\n case 'newpassword': {\n this.newPasswordRegex = obj.PAT;\n break;\n }\n case 'reenterpassword': {\n this.reenterPasswordRegex = obj.PAT;\n break;\n }\n default:\n }\n });\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const { resources } = this.props;\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n verifying_blurb: resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n };\n\n private _renderLocalAccount(): IPasswordResetLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('newPassword', 'password', resources.newPasswordLabelText, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, this.reenterPasswordRegex)\n ],\n errorMessage: [\n ,\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n }\n\n private _renderInput(id: string, type: string, labelText: string, pattern?: string): IPasswordResetItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default PasswordReset;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * 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 classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignUpSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignUpSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default SignUpSuccess;\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 ISignUpInputProps {\n id?: string;\n hasFocus?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface ISignUpInput {\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 SignUpInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default SignUpInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLoadingIcon {\n className: string;\n}\n\nconst AccountProfileEditLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default AccountProfileEditLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport 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","/*!\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","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Button, INodeProps, Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IOrderTemplateLineViewProps } from '@msdyn365-commerce-modules/order-template/src/modules/order-template/./components';\r\nimport { IOrderTemplateViewProps } from '@msdyn365-commerce-modules/order-template/src/modules/order-template/./order-template';\r\n\r\nconst OrderTemplateLinesView: React.FC = (props: IOrderTemplateViewProps) => {\r\n const {\r\n OrderTemplateLines,\r\n status,\r\n statusMessage,\r\n heading,\r\n ProductsTable,\r\n ProductsTableHeading,\r\n orderLines,\r\n ProductsTableRow,\r\n productsStatusMessage,\r\n OrderTemplateActions,\r\n orderActions,\r\n pagination,\r\n itemAddedToCartDialog,\r\n bulkOrderLineActions,\r\n isDetailsDisplayed,\r\n detailedProductView,\r\n toggleDetailsDisplayed,\r\n resources: {\r\n cancelBtnLabel,\r\n productNumberText,\r\n productText,\r\n productUnitPriceText,\r\n productUOMText,\r\n productQuantityText\r\n }\r\n } = props;\r\n\r\n const toggleDetails = React.useCallback(() => {\r\n toggleDetailsDisplayed && toggleDetailsDisplayed(undefined);\r\n }, [toggleDetailsDisplayed]);\r\n return (\r\n \r\n {heading}\r\n {OrderTemplateActions && (\r\n \r\n {orderActions?.addTemplateToBag}\r\n {orderActions?.renameTemplate}\r\n {orderActions?.removeTemplate}\r\n {!isDetailsDisplayed && productsStatusMessage}\r\n \r\n )}\r\n {bulkOrderLineActions}\r\n {status !== 'SUCCESS' && statusMessage}\r\n {ProductsTable && (\r\n \r\n \r\n {ProductsTableHeading}\r\n \r\n {orderLines &&\r\n orderLines.map(product => {\r\n return _renderItem(product, productQuantityText, ProductsTableRow);\r\n })}\r\n \r\n \r\n {pagination}\r\n \r\n )}\r\n {itemAddedToCartDialog}\r\n \r\n \r\n Product Details\r\n \r\n \r\n
    \r\n
  • \r\n {detailedProductView?.productImage}\r\n
  • \r\n
  • \r\n \r\n {productText}\r\n :\r\n \r\n {detailedProductView?.productInfo}\r\n
  • \r\n
  • \r\n \r\n {productNumberText}\r\n :\r\n \r\n {detailedProductView?.productNumber}\r\n
  • \r\n
  • \r\n \r\n {productUnitPriceText}\r\n :\r\n \r\n {' '}\r\n {detailedProductView?.productPrice}\r\n
  • \r\n
  • \r\n \r\n {productUOMText}\r\n :\r\n \r\n {' '}\r\n {detailedProductView?.productUnitOfMeasure}\r\n
  • \r\n
  • \r\n \r\n {productQuantityText}\r\n :\r\n \r\n {detailedProductView?.productQuantityView}\r\n
  • \r\n {productsStatusMessage &&
  • \r\n {productsStatusMessage}\r\n
  • }\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nconst _renderItem = (\r\n product: IOrderTemplateLineViewProps,\r\n quantityLabel: string,\r\n ProductsTableRow?: INodeProps\r\n): JSX.Element | null => {\r\n if (!product) {\r\n return null;\r\n }\r\n\r\n const {\r\n key,\r\n selectLine,\r\n productImage,\r\n productPrice,\r\n productNumber,\r\n addToBagButton,\r\n removeButton,\r\n productInfo,\r\n productUnitOfMeasure,\r\n productQuantityView,\r\n productQuantity,\r\n popUp,\r\n isMobile\r\n } = product;\r\n\r\n return (\r\n \r\n \r\n {selectLine}\r\n \r\n \r\n {productImage}\r\n \r\n {isMobile ? \r\n
\r\n {productNumber}\r\n
\r\n
\r\n {quantityLabel}\r\n :\r\n {' '}\r\n {productQuantity}\r\n
\r\n : \r\n {productNumber}\r\n }\r\n {!isMobile && \r\n {productInfo}\r\n }\r\n {!isMobile && \r\n {productPrice}\r\n }\r\n {!isMobile && \r\n {productUnitOfMeasure}\r\n }\r\n {!isMobile && \r\n {productQuantityView}\r\n }\r\n {isMobile && \r\n {popUp}\r\n }\r\n {!isMobile &&\r\n \r\n {addToBagButton}\r\n {removeButton}\r\n }\r\n
\r\n );\r\n};\r\n\r\nexport default OrderTemplateLinesView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IPasswordResetItem, IPasswordResetLoading, IPasswordResetLocalAccount, IPasswordResetViewProps } from './password-reset';\n\nconst PasswordResetItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n {items &&\n items.map((item: IPasswordResetItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n );\n};\n\nconst PasswordResetLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetView: React.FC = props => {\n const { passwordReset, viewState, loading, defaultAADConainer, aadConainer, heading, passwordResetLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetView;\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IContentBlockAdditionalContentItemViewProps,\r\n IContentBlockAdditionalContentViewProps, IContentBlockViewProps\r\n} from '@msdyn365-commerce-modules/content-block';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Render Additional Content.\r\n * @param additionalContent - Additional content view props.\r\n * @returns JSX Element.\r\n */\r\nconst renderAdditionalContent = (additionalContent: IContentBlockAdditionalContentViewProps) => {\r\n return (\r\n \r\n {additionalContent.additionalContentItems?.map((item: IContentBlockAdditionalContentItemViewProps) => {\r\n return (\r\n <>\r\n {item.heading}\r\n \r\n {item.text}\r\n \r\n {item.links}\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render View.\r\n * @param props - The view props.\r\n * @returns -The JSX Element.\r\n */\r\nconst contentBlockView: React.FC = (props) => {\r\n const {\r\n contentBlockContainer,\r\n imageContainer,\r\n detailsContainer,\r\n title,\r\n text,\r\n links,\r\n image,\r\n contentBlockAnchorTag,\r\n imageLink,\r\n imageAriaLabel,\r\n additionalContent\r\n } = props;\r\n\r\n // @ts-expect-error HTML element need to be clear on run time.\r\n const hasImage: boolean = image.props.src;\r\n const imageClass: string = hasImage ? `${detailsContainer.className} withImage` : `${detailsContainer.className} withoutImage`;\r\n\r\n if (imageLink) {\r\n return (\r\n \r\n \r\n \r\n {image}\r\n \r\n \r\n \r\n {title}\r\n {text}\r\n {links}\r\n {additionalContent && renderAdditionalContent(additionalContent)}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n \r\n {image}\r\n \r\n \r\n {title}\r\n {text}\r\n {links}\r\n {additionalContent && renderAdditionalContent(additionalContent)}\r\n \r\n \r\n );\r\n\r\n};\r\n\r\nexport default contentBlockView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISitePickerViewProps } from './site-picker';\n\nexport default (props: ISitePickerViewProps) => {\n return <>{_renderSitePicker(props)};\n};\n\nconst _renderDesktopView = (props: ISitePickerViewProps) => {\n const { SitePickerMenu, SitePickerMenuSpan } = props;\n return (\n <>\n \n {props.config.heading?.text}\n \n \n {props.siteOptionsState ? _renderSiteOptionsList(props) : null}\n \n );\n};\n\nconst _renderSiteOptionsList = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMenuList, SitePickerMenuListItem, SitePickerMenuListItemArray } = props;\n const options = SitePickerMenuListItemArray!.map((item, index) => {\n return (\n \n {item}\n \n );\n });\n return (\n \n {options}\n \n );\n};\n\nconst _renderMobileView = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMobileContainer } = props;\n return (\n \n
\n {props.SitePickerMenuListItemArray?.map((item, index) => {\n return
{item}
;\n })}\n
\n
\n );\n};\n\nconst _renderSitePicker = (props: ISitePickerViewProps): React.ReactNode => {\n const { isMobileView, SitePicker } = props;\n return {isMobileView ? _renderMobileView(props) : _renderDesktopView(props)};\n};\n","/*!\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 { IAccountAddressTileViewProps } from './account-address-tile';\n\nconst AccountAddressTileView: React.FC = props => {\n const { AccountAddressTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountAddressTileView;\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","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IBusinessFormItem, IBusinessOrganizationListViewProps, IFormViewProps, InputID } from '@msdyn365-commerce-modules/business-organization-list';\r\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IBusinessOrganizationListProps, IBusinessOrganizationListResources }\r\n from '../definition-extensions/business-organization-list.ext.props.autogenerated';\r\n\r\n/**\r\n * Business Form Item component.\r\n * @param props - View props.\r\n * @returns The JSX Element.\r\n */\r\nconst BusinessFormItemComponent: React.FC = (props: IBusinessFormItem) => {\r\n const {\r\n wrapper,\r\n label,\r\n errorMessage,\r\n input\r\n } = props;\r\n return (\r\n \r\n {label}\r\n {errorMessage}\r\n {input}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * To render modal.\r\n * @param className - The modal classname.\r\n * @param isModalOpen - The boolean for modal open status.\r\n * @param headingSection - The heading section of modal.\r\n * @param bodySection - The body section of modal.\r\n * @param footerSection - The footer section of modal.\r\n * @param toggleModal - The toggle modal callback function.\r\n * @returns The JSX Element.\r\n */\r\nconst renderModal = (className: string, isModalOpen: boolean, headingSection: React.ReactNode, bodySection: React.ReactNode, footerSection: React.ReactNode,\r\n toggleModal?: () => void) => {\r\n return (\r\n \r\n \r\n {headingSection}\r\n \r\n \r\n {bodySection}\r\n \r\n \r\n {footerSection}\r\n \r\n \r\n );\r\n};\r\n\r\n/**\r\n * Business User Form component.\r\n * @param props - View props.\r\n * @returns The JSX Element.\r\n */\r\nconst BusinessUserFormComponent: React.FC = (props: IFormViewProps) => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\r\n\r\n const modalBody = (\r\n <>\r\n {modalDescription}\r\n \r\n {inputs && inputs.map((item: IBusinessFormItem) => {\r\n return (\r\n\r\n \r\n );\r\n })}\r\n {errorMessage?.map((error: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {error}\r\n \r\n );\r\n })}\r\n \r\n \r\n\r\n );\r\n\r\n const modalFooter = buttons && buttons.map((button: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {button}\r\n \r\n );\r\n });\r\n\r\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\r\n};\r\n\r\n/**\r\n * Selected user interface.\r\n */\r\ninterface ISelectedUser {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n FirstName?: string;\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n LastName?: string;\r\n}\r\n\r\n/**\r\n * Business User Details component.\r\n * @param props - View props.\r\n * @returns The JSX Element.\r\n */\r\nconst BusinessUserDetailsComponent: React.FC = (props: IFormViewProps) => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n const { modalClassName, FormWrapper, modalHeading, modalDescription, buttons, errorMessage, resources, toggle } = props;\r\n let modalBody = null;\r\n const selectedUser = props.selectedUser as ISelectedUser | string;\r\n\r\n if (!selectedUser) {\r\n modalBody = errorMessage;\r\n } else {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n const { FirstName, LastName } = selectedUser as ISelectedUser;\r\n const userFullName = `${FirstName as string} ${LastName as string}`;\r\n\r\n modalBody = (\r\n <>\r\n { modalDescription }\r\n \r\n \r\n {userFullName}\r\n \r\n { Object.keys(selectedUser).map((data, index) => {\r\n if (data === InputID.FirstName || data === InputID.LastName) {\r\n return null;\r\n }\r\n const label = resources[`table${data}HeadingText`] as string || data;\r\n return (\r\n {label}\r\n {': '}\r\n {selectedUser[data]}\r\n );\r\n\r\n })}\r\n \r\n \r\n );\r\n }\r\n\r\n const modalFooter = buttons && buttons.map((button: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {button}\r\n \r\n );\r\n });\r\n\r\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\r\n};\r\n\r\n/**\r\n * To get form.\r\n * @param type - The type of form.\r\n * @param formProps - The form props.\r\n * @param toggleModal - The toggle modal callback function.\r\n * @returns The JSX Element.\r\n */\r\nconst getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\r\n switch (type) {\r\n case 'ADD':\r\n case 'EDIT':\r\n return ;\r\n case 'VIEW':\r\n case 'REMOVE':\r\n return ;\r\n default:\r\n return null;\r\n }\r\n};\r\n\r\n/**\r\n * Business Organization List component.\r\n * @param props - View props.\r\n * @returns The JSX Element.\r\n */\r\nconst BusinessOrganizationListComponent: React.FC> = props => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n const { OrganizationUserList, moduleContainer, heading, noUsersText, addUserButton, organizationListTable, form, formType,\r\n toggleModal, requestAccountStatementButton, requestStatementModal } = props;\r\n\r\n const buttonList: React.ReactNode =\r\n (\r\n \r\n {addUserButton}\r\n {requestAccountStatementButton}\r\n \r\n );\r\n\r\n if (noUsersText) {\r\n return (\r\n \r\n \r\n {heading}\r\n \r\n \r\n {props.resources.headingForEmptyUserOrganizationList}\r\n \r\n \r\n {props.resources.textForEmptyUserOrganizationList}\r\n \r\n {buttonList}\r\n \r\n {requestStatementModal}\r\n {noUsersText}\r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n {buttonList}\r\n {requestStatementModal}\r\n {organizationListTable}\r\n \r\n { form && getForm(formType, form, toggleModal) }\r\n \r\n );\r\n};\r\n\r\nexport default BusinessOrganizationListComponent;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { 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","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IHelp, IOrderSummary, IPaymentMethods } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common';\r\nimport { IGroup, IGroupDelivery, IGroups } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-groups';\r\nimport { IOrderInformation } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-order-information';\r\nimport { ISalesLine } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-sales-line';\r\nimport { IOrderConfirmationViewProps } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/./order-confirmation';\r\n\r\ninterface IPaymentMethodsExt extends IPaymentMethods {\r\n totalOnAccount?: string;\r\n}\r\n\r\n\r\nexport const OrderConfirmationOrderInfomation: React.FC = ({\r\n orderInformationProps,\r\n receiptEmail,\r\n createdDate\r\n // channelReferenceId\r\n}) => (\r\n \r\n {createdDate}\r\n {/* {channelReferenceId} */}\r\n {receiptEmail}\r\n \r\n);\r\n\r\nexport const OrderConfirmationSalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton }) => (\r\n \r\n {salesLine}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroupDelivery: React.FC = ({ deliveryProps, heading, count, processing, address, trackingInfo, pickupDateTimeslot }) => (\r\n \r\n {heading}\r\n {address}\r\n {pickupDateTimeslot}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\r\n \r\n {delivery && }\r\n {delivery && delivery.shippingItemsToYou}\r\n {salesLines && (\r\n \r\n {salesLines.map((salesLine: ISalesLine) => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroups: React.FC = ({ groupsProps, groups }) => (\r\n \r\n {groups.map((group: IGroup, index: number) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport const OrderConfirmationOrderSummary: React.FC = ({ orderSummaryProps, heading, subtotal, shipping, tax, totalAmount, earnedPoints }) => (\r\n \r\n {heading}\r\n {subtotal}\r\n {shipping}\r\n {tax}\r\n {totalAmount}\r\n {earnedPoints}\r\n \r\n);\r\n\r\nexport const OrderConfirmationPayment: React.FC = ({ paymentMethodsProps, title, methods, totalOnAccount }) => \r\n {title}\r\n {totalOnAccount ?

On Account: {totalOnAccount}

: null}\r\n {methods}\r\n
;\r\n\r\nexport const OrderConfirmationHelp: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\r\n \r\n {needHelpLabel}\r\n {helpLineNumberLabel}\r\n {contactNumber}\r\n \r\n);\r\n\r\n\r\nconst OrderConfirmationView: React.FC = (props) => {\r\n const {\r\n moduleProps,\r\n heading,\r\n backToShoppingLink,\r\n alert,\r\n loading,\r\n orderInfomation,\r\n orderSummary,\r\n payment,\r\n help,\r\n groups,\r\n context: { cultureFormatter: { formatCurrency }}\r\n } = props;\r\n const tenderLines = props.data.orderHydration.result?.salesOrder.TenderLines;\r\n let totalOnAccount = 0;\r\n if (tenderLines) {\r\n totalOnAccount = tenderLines.map(tl => tl.AmountInCompanyCurrency || 0).reduce((num, total) => num + total, 0);\r\n }\r\n console.log(totalOnAccount);\r\n return (\r\n \r\n {heading}\r\n {alert}\r\n {loading}\r\n {orderInfomation && }\r\n {backToShoppingLink}\r\n {groups && }\r\n {payment && 0 ? formatCurrency(totalOnAccount) : undefined}\r\n />}\r\n {orderSummary && }\r\n {help && }\r\n \r\n );\r\n};\r\n\r\nexport default OrderConfirmationView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IBusinessFormItem, IBusinessOrganizationListViewProps, IFormViewProps, InputID } from '@msdyn365-commerce-modules/business-organization-list';\r\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IBusinessOrganizationListProps, IBusinessOrganizationListResources }\r\n from '../definition-extensions/business-organization-list.ext.props.autogenerated';\r\n\r\n/**\r\n * Business Form Item component.\r\n * @param props - View props.\r\n * @returns The JSX Element.\r\n */\r\nconst BusinessFormItemComponent: React.FC = (props: IBusinessFormItem) => {\r\n const {\r\n wrapper,\r\n label,\r\n errorMessage,\r\n input\r\n } = props;\r\n return (\r\n \r\n {label}\r\n {errorMessage}\r\n {input}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * To render modal.\r\n * @param className - The modal classname.\r\n * @param isModalOpen - The boolean for modal open status.\r\n * @param headingSection - The heading section of modal.\r\n * @param bodySection - The body section of modal.\r\n * @param footerSection - The footer section of modal.\r\n * @param toggleModal - The toggle modal callback function.\r\n * @returns The JSX Element.\r\n */\r\nconst renderModal = (className: string, isModalOpen: boolean, headingSection: React.ReactNode, bodySection: React.ReactNode, footerSection: React.ReactNode,\r\n toggleModal?: () => void) => {\r\n return (\r\n \r\n \r\n {headingSection}\r\n \r\n \r\n {bodySection}\r\n \r\n \r\n {footerSection}\r\n \r\n \r\n );\r\n};\r\n\r\n/**\r\n * Business User Form component.\r\n * @param props - View props.\r\n * @returns The JSX Element.\r\n */\r\nconst BusinessUserFormComponent: React.FC = (props: IFormViewProps) => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\r\n\r\n const modalBody = (\r\n <>\r\n {modalDescription}\r\n \r\n {inputs && inputs.map((item: IBusinessFormItem) => {\r\n return (\r\n\r\n \r\n );\r\n })}\r\n {errorMessage?.map((error: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {error}\r\n \r\n );\r\n })}\r\n \r\n \r\n\r\n );\r\n\r\n const modalFooter = buttons && buttons.map((button: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {button}\r\n \r\n );\r\n });\r\n\r\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\r\n};\r\n\r\n/**\r\n * Selected user interface.\r\n */\r\ninterface ISelectedUser {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n FirstName?: string;\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n LastName?: string;\r\n}\r\n\r\n/**\r\n * Business User Details component.\r\n * @param props - View props.\r\n * @returns The JSX Element.\r\n */\r\nconst BusinessUserDetailsComponent: React.FC = (props: IFormViewProps) => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n const { modalClassName, FormWrapper, modalHeading, modalDescription, buttons, errorMessage, resources, toggle } = props;\r\n let modalBody = null;\r\n const selectedUser = props.selectedUser as ISelectedUser | string;\r\n\r\n if (!selectedUser) {\r\n modalBody = errorMessage;\r\n } else {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n const { FirstName, LastName } = selectedUser as ISelectedUser;\r\n const userFullName = `${FirstName as string} ${LastName as string}`;\r\n\r\n modalBody = (\r\n <>\r\n { modalDescription }\r\n \r\n \r\n {userFullName}\r\n \r\n { Object.keys(selectedUser).map((data, index) => {\r\n if (data === InputID.FirstName || data === InputID.LastName) {\r\n return null;\r\n }\r\n const label = resources[`table${data}HeadingText`] as string || data;\r\n return (\r\n {label}\r\n {': '}\r\n {selectedUser[data]}\r\n );\r\n\r\n })}\r\n \r\n \r\n );\r\n }\r\n\r\n const modalFooter = buttons && buttons.map((button: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {button}\r\n \r\n );\r\n });\r\n\r\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\r\n};\r\n\r\n/**\r\n * To get form.\r\n * @param type - The type of form.\r\n * @param formProps - The form props.\r\n * @param toggleModal - The toggle modal callback function.\r\n * @returns The JSX Element.\r\n */\r\nconst getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\r\n switch (type) {\r\n case 'ADD':\r\n case 'EDIT':\r\n return ;\r\n case 'VIEW':\r\n case 'REMOVE':\r\n return ;\r\n default:\r\n return null;\r\n }\r\n};\r\n\r\n/**\r\n * Business Organization List component.\r\n * @param props - View props.\r\n * @returns The JSX Element.\r\n */\r\nconst BusinessOrganizationListComponent: React.FC> = props => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n const { OrganizationUserList, moduleContainer, heading, noUsersText, addUserButton, organizationListTable, form, formType,\r\n toggleModal, requestAccountStatementButton, requestStatementModal } = props;\r\n\r\n const buttonList: React.ReactNode =\r\n (\r\n \r\n {addUserButton}\r\n {requestAccountStatementButton}\r\n \r\n );\r\n\r\n if (noUsersText) {\r\n return (\r\n \r\n \r\n {heading}\r\n \r\n \r\n {props.resources.headingForEmptyUserOrganizationList}\r\n \r\n \r\n {props.resources.textForEmptyUserOrganizationList}\r\n \r\n {buttonList}\r\n \r\n {requestStatementModal}\r\n {noUsersText}\r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n {buttonList}\r\n {requestStatementModal}\r\n {organizationListTable}\r\n \r\n { form && getForm(formType, form, toggleModal) }\r\n \r\n );\r\n};\r\n\r\nexport default BusinessOrganizationListComponent;\r\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 * as React from 'react';\n\nexport interface IAccountInvoiceTileDescription {\n description: string;\n}\n\nexport const AccountInvoiceTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-invoice-tile.props.autogenerated';\n\nexport interface IAccountInvoiceTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountInvoiceTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-invoice-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountInvoiceTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountInvoiceTileData } from './account-invoice-tile.data';\nimport { IAccountInvoiceTileProps } from './account-invoice-tile.props.autogenerated';\nimport { AccountInvoiceTileDescription } from './components';\nimport LinksComponent from './components/account-invoice-tile-links';\n\nexport interface IAccountInvoiceTileViewProps extends IAccountInvoiceTileProps {\n AccountInvoiceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountInvoiceTile component.\n * @extends {React.PureComponent>}\n */\nclass AccountInvoiceTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountInvoiceTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const {\n config,\n data,\n resources,\n context: {\n cultureFormatter: {\n formatCurrency,\n\n // @ts-expect-error\n currencyCode\n }\n }\n } = this.props;\n const { className, heading, links } = config;\n const { accountInvoiceTileDescription } = resources;\n\n const openinvoiceAmount = data.customerBalance.result?.OpenInvoiceBalance || 0;\n const invoiceTotalAmount: string | undefined = formatCurrency(openinvoiceAmount.toFixed(2), currencyCode);\n\n const description = invoiceTotalAmount && format(accountInvoiceTileDescription, invoiceTotalAmount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountInvoiceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-invoice-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: description && \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountInvoiceTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport {\n IReportReviewModalViewProps,\n IReviewCardViewProps,\n IReviewsListData,\n IReviewsListResources,\n IReviewsListState,\n IReviewsListViewProps\n} from '@msdyn365-commerce-modules/ratings-reviews';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IReviewsListProps } from '../definition-extensions/reviews-list.ext.props.autogenerated';\n\n/**\n * Build Review Card.\n * @param props - Review Card ViewProps.\n * @param resources - Resource Strings.\n * @param isUserReview - User review flag.\n * @returns JSX Element.\n */\nconst buildReviewCard = (props: IReviewCardViewProps, resources: IReviewsListResources, isUserReview: boolean) => {\n return (\n \n \n
\n {props.rating}\n {props.date}\n
\n {props.name}\n
\n \n \n {props.reviewTitle}\n {props.reviewText}\n \n \n {props.responseName}\n {props.responseDate}\n {props.responseText}\n \n \n {isUserReview ? undefined :

{resources.wasReviewHelpfulText}

}\n {props.like}\n {props.dislike}\n {props.edit}\n
\n
\n
\n );\n};\n\n/**\n * Render Product Image.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductImage = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const primaryImageSource = props.data.product.result?.PrimaryImageUrl;\n const imageUrl = generateImageUrl(primaryImageSource, props.context.request.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=111&h=111&m=6', w: 111, h: 111 },\n sm: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n md: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n lg: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n xl: { q: 'w=130&h=130&m=6', w: 130, h: 130 }\n },\n lazyload: true,\n cropFocalRegion: true\n };\n\n return (\n \n );\n};\n\n/**\n * Render Product Description.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductDescription = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const product = props.data.product.result;\n return (\n \n
{renderProductImage(props)}
\n
\n
{product?.Name}
\n
{product?.Name}
\n
{product?.ItemId}
\n
\n
\n );\n};\n\n/**\n * Build Review modal.\n * @param props - Review list ViewProps.\n * @returns JSX Element.\n */\nconst createReviewModal = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const { resources, moduleProps, reviewModal } = props;\n return (\n \n {reviewModal.modalHeader}\n \n \n \n {renderProductDescription(props)}\n \n
{resources.selectRatingLabel}
\n {reviewModal.rating}\n
\n
\n \n {resources.reviewTitleLabel}\n {reviewModal.titleInput}\n \n \n {resources.reviewTextLabel}\n {reviewModal.textInput}\n \n {reviewModal.privacyPolicyUrl}\n {reviewModal.error}\n
\n
\n \n {reviewModal.submitButton}\n {reviewModal.cancelButton}\n \n
\n );\n};\n\n/**\n * Build Review modal.\n * @param props - Review modal ViewProps.\n * @param state - Review List State.\n * @returns JSX Element.\n */\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\n return (\n \n {state.reported ? props.headerSubmitted : props.header}\n \n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\n \n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\n \n );\n};\n\n/**\n * ReviewsList view.\n * @param props - Ratings ReviewsList ViewProps.\n * @returns ReviewsList view module.\n */\nconst ReviewsListview: React.FC> = props => {\n const {\n filterByDropdown,\n heading,\n moduleProps,\n noReviewsMessage,\n noReviewsWithFilterMessage,\n pageControls,\n refineReviewsProps,\n reportReviewModal,\n reviewsListProps,\n reviewCards,\n sortByDropdown,\n state,\n userReview,\n resources\n } = props;\n\n if (!userReview && !ArrayExtensions.hasElements(reviewCards) && !state.isFilterApplied) {\n return {noReviewsMessage};\n }\n\n return (\n \n {heading}\n \n {sortByDropdown}\n {filterByDropdown}\n \n \n {userReview && buildReviewCard(userReview, resources, true)}\n {reviewCards.map(review => {\n return buildReviewCard(review, resources, false);\n })}\n \n {!ArrayExtensions.hasElements(reviewCards) && state.isFilterApplied && noReviewsWithFilterMessage}\n {pageControls}\n {createReviewModal(props)}\n {createReportModal(reportReviewModal, state)}\n \n );\n};\n\nexport default ReviewsListview;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccordionItemViewProps } from './accordion-item';\n\nconst AccordionItemView: React.FC = props => {\n const { drawer, accordionSlots, AccordionItemContainer, AccordionItemContent } = props;\n return (\n \n \n \n {accordionSlots &&\n accordionSlots.accordionItemContent &&\n accordionSlots.accordionItemContent.length &&\n _renderAccordionItemContent(accordionSlots.accordionItemContent)}\n \n \n \n );\n};\n\nconst _renderAccordionItemContent = (items: React.ReactNode[]): JSX.Element | null => {\n return (\n <>\n {items && items.length > 0\n ? items.map((item: React.ReactNode, index: number) => {\n return {item};\n })\n : null}\n \n );\n};\nexport default AccordionItemView;\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IImageSettings, Image, RichTextComponent } from '@msdyn365-commerce/core';\r\nimport { IWriteReviewData, IWriteReviewViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\r\nimport { generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IWriteReviewProps } from '../definition-extensions/write-review.ext.props.autogenerated';\r\n\r\n/**\r\n * Render Product Image.\r\n * @param props - WriteReview ViewProps.\r\n * @returns JSX Element.\r\n */\r\nconst renderProductImage = (props: IWriteReviewViewProps & IWriteReviewProps): JSX.Element => {\r\n const primaryImageSource = props.data.product.result?.PrimaryImageUrl;\r\n const imageUrl = generateImageUrl(primaryImageSource, props.context.request.apiSettings);\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=111&h=111&m=6', w: 111, h: 111 },\r\n sm: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\r\n md: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\r\n lg: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\r\n xl: { q: 'w=130&h=130&m=6', w: 130, h: 130 }\r\n },\r\n lazyload: true,\r\n cropFocalRegion: true\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render Product Description.\r\n * @param props - WriteReview ViewProps.\r\n * @returns JSX Element.\r\n */\r\nconst renderProductDescription = (props: IWriteReviewViewProps & IWriteReviewProps): JSX.Element => {\r\n const product = props.data.product.result;\r\n return (\r\n \r\n
\r\n {renderProductImage(props)}\r\n
\r\n
\r\n
\r\n {product?.Name}\r\n
\r\n
\r\n {product?.Name}\r\n
\r\n
\r\n {product?.ItemId}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\n/**\r\n * Create Write Review Modal.\r\n * @param props - WriteReview ViewProps.\r\n * @returns JSX Element.\r\n */\r\nconst createReviewModal = (props: IWriteReviewViewProps & IWriteReviewProps): JSX.Element => {\r\n const { resources, moduleProps, reviewModal } = props;\r\n\r\n return (\r\n \r\n {reviewModal.modalHeader}\r\n \r\n \r\n \r\n {renderProductDescription(props)}\r\n \r\n
\r\n {resources.selectRatingLabel}\r\n
\r\n {reviewModal.rating}\r\n
\r\n
\r\n \r\n {resources.reviewTitleLabel}\r\n {reviewModal.titleInput}\r\n \r\n \r\n {resources.reviewTextLabel}\r\n {reviewModal.textInput}\r\n \r\n {reviewModal.privacyPolicyUrl}\r\n {reviewModal.error}\r\n
\r\n
\r\n \r\n {reviewModal.submitButton}\r\n {reviewModal.cancelButton}\r\n \r\n
\r\n );\r\n};\r\n\r\n/**\r\n * WriteReview view.\r\n * @param props - WriteReview ViewProps.\r\n * @returns WriteReview view module.\r\n */\r\nconst WriteReviewView: React.FC> = props => {\r\n const { config, heading, signInMessage, signInButton, modalToggle, moduleProps } = props;\r\n const { paragraph } = config;\r\n const isAuthenticated = props.context.request.user.isAuthenticated;\r\n const text = paragraph && ();\r\n\r\n return (\r\n \r\n {heading}\r\n {!isAuthenticated ? <>\r\n {signInMessage}\r\n {signInButton}\r\n : <>\r\n {text}\r\n {modalToggle}\r\n {createReviewModal(props)}\r\n }\r\n \r\n );\r\n};\r\n\r\nexport default WriteReviewView;\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-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 { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst AccountProfileEditButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n disabled,\n telemetryContent,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n );\n};\n\nexport default AccountProfileEditButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ControlledDrawer, getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { IDrawerState } from '@msdyn365-commerce-modules/utilities/dist/types/drawer/Drawer';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createAccordionStateInput, interactionStyle } from '../..';\nimport { IAccordionItemData } from './accordion-item.data';\nimport { IAccordionItemProps } from './accordion-item.props.autogenerated';\n\nexport interface IAccordionItemViewProps {\n AccordionItemContainer: IModuleProps;\n drawer: INodeProps;\n accordionSlots: INodeProps;\n AccordionItemContent: INodeProps;\n className: string;\n}\n\nexport interface IAccordionItemExtentedProps extends IAccordionItemProps {\n interactionStyle?: interactionStyle;\n}\n\n/**\n *\n * AccordionItem component.\n * @extends {React.Component}\n */\n@observer\nclass AccordionItem extends React.Component {\n private readonly moduleClassName: string = 'ms-accordion-item';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IAccordionItemProps) {\n super(props);\n this._onToggle = this._onToggle.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public shouldComponentUpdate(nextProps: IAccordionItemProps): boolean {\n if (this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { slots, renderView, config, data } = this.props;\n const accordionExpandedStateResult = data && data.accordionExpandedState && data.accordionExpandedState.result;\n const expanded =\n accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded === undefined\n ? data && config.isExpandedOnInitialLoad\n : accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded;\n const viewProps = {\n ...this.props,\n AccordionItemContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n AccordionItemContent: {\n className: 'ms-accordion-item-content'\n },\n drawer: {\n tag: ControlledDrawer,\n className: `${this.moduleClassName}__drawer`,\n toggleButtonText: (config.accordionItemTitle && config.accordionItemTitle) || '',\n collapseProps: { isOpen: expanded },\n onToggle: this._onToggle,\n onTextChange: this.handleHeadingChange,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n },\n accordionSlots: slots\n };\n return renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.accordionItemTitle = event.target.value);\n\n private _onToggle(state: IDrawerState): void {\n if (!state.isOpen && this.props.interactionStyle === interactionStyle.ExpandOneItemOnly) {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n }\n }\n}\nexport default AccordionItem;\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Button, INodeProps, Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IOrderTemplateLineViewProps } from '@msdyn365-commerce-modules/order-template/src/modules/order-template/./components';\r\nimport { IOrderTemplateViewProps } from '@msdyn365-commerce-modules/order-template/src/modules/order-template/./order-template';\r\n\r\nconst OrderTemplateLinesView: React.FC = (props: IOrderTemplateViewProps) => {\r\n const {\r\n OrderTemplateLines,\r\n status,\r\n statusMessage,\r\n heading,\r\n ProductsTable,\r\n ProductsTableHeading,\r\n orderLines,\r\n ProductsTableRow,\r\n productsStatusMessage,\r\n OrderTemplateActions,\r\n orderActions,\r\n pagination,\r\n itemAddedToCartDialog,\r\n bulkOrderLineActions,\r\n isDetailsDisplayed,\r\n detailedProductView,\r\n toggleDetailsDisplayed,\r\n resources: {\r\n cancelBtnLabel,\r\n productNumberText,\r\n productText,\r\n productUnitPriceText,\r\n productUOMText,\r\n productQuantityText\r\n }\r\n } = props;\r\n\r\n const toggleDetails = React.useCallback(() => {\r\n toggleDetailsDisplayed && toggleDetailsDisplayed(undefined);\r\n }, [toggleDetailsDisplayed]);\r\n return (\r\n \r\n {heading}\r\n {OrderTemplateActions && (\r\n \r\n {orderActions?.addTemplateToBag}\r\n {orderActions?.renameTemplate}\r\n {orderActions?.removeTemplate}\r\n {!isDetailsDisplayed && productsStatusMessage}\r\n \r\n )}\r\n {bulkOrderLineActions}\r\n {status !== 'SUCCESS' && statusMessage}\r\n {ProductsTable && (\r\n \r\n \r\n {ProductsTableHeading}\r\n \r\n {orderLines &&\r\n orderLines.map(product => {\r\n return _renderItem(product, productQuantityText, ProductsTableRow);\r\n })}\r\n \r\n \r\n {pagination}\r\n \r\n )}\r\n {itemAddedToCartDialog}\r\n \r\n \r\n Product Details\r\n \r\n \r\n
    \r\n
  • \r\n {detailedProductView?.productImage}\r\n
  • \r\n
  • \r\n \r\n {productText}\r\n :\r\n \r\n {detailedProductView?.productInfo}\r\n
  • \r\n
  • \r\n \r\n {productNumberText}\r\n :\r\n \r\n {detailedProductView?.productNumber}\r\n
  • \r\n
  • \r\n \r\n {productUnitPriceText}\r\n :\r\n \r\n {' '}\r\n {detailedProductView?.productPrice}\r\n
  • \r\n
  • \r\n \r\n {productUOMText}\r\n :\r\n \r\n {' '}\r\n {detailedProductView?.productUnitOfMeasure}\r\n
  • \r\n
  • \r\n \r\n {productQuantityText}\r\n :\r\n \r\n {detailedProductView?.productQuantityView}\r\n
  • \r\n {productsStatusMessage &&
  • \r\n {productsStatusMessage}\r\n
  • }\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nconst _renderItem = (\r\n product: IOrderTemplateLineViewProps,\r\n quantityLabel: string,\r\n ProductsTableRow?: INodeProps\r\n): JSX.Element | null => {\r\n if (!product) {\r\n return null;\r\n }\r\n\r\n const {\r\n key,\r\n selectLine,\r\n productImage,\r\n productPrice,\r\n productNumber,\r\n addToBagButton,\r\n removeButton,\r\n productInfo,\r\n productUnitOfMeasure,\r\n productQuantityView,\r\n productQuantity,\r\n popUp,\r\n isMobile\r\n } = product;\r\n\r\n return (\r\n \r\n \r\n {selectLine}\r\n \r\n \r\n {productImage}\r\n \r\n {isMobile ? \r\n
\r\n {productNumber}\r\n
\r\n
\r\n {quantityLabel}\r\n :\r\n {' '}\r\n {productQuantity}\r\n
\r\n : \r\n {productNumber}\r\n }\r\n {!isMobile && \r\n {productInfo}\r\n }\r\n {!isMobile && \r\n {productPrice}\r\n }\r\n {!isMobile && \r\n {productUnitOfMeasure}\r\n }\r\n {!isMobile && \r\n {productQuantityView}\r\n }\r\n {isMobile && \r\n {popUp}\r\n }\r\n {!isMobile &&\r\n \r\n {addToBagButton}\r\n {removeButton}\r\n }\r\n
\r\n );\r\n};\r\n\r\nexport default OrderTemplateLinesView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationSuccess;\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IHelp, IOrderSummary, IPaymentMethods } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common';\r\nimport { IGroup, IGroupDelivery, IGroups } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-groups';\r\nimport { IOrderInformation } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-order-information';\r\nimport { ISalesLine } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-sales-line';\r\nimport { IOrderConfirmationViewProps } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/./order-confirmation';\r\nimport { SalesOrder } from \"@msdyn365-commerce/retail-proxy\";\r\n\r\ninterface IPaymentMethodsExt extends IPaymentMethods {\r\n totalOnAccount?: string;\r\n}\r\n\r\n\r\nexport const OrderConfirmationOrderInfomation: React.FC = ({\r\n orderInformationProps\r\n // receiptEmail,\r\n // createdDate\r\n // channelReferenceId\r\n}) => (\r\n \r\n {/* {createdDate} */}\r\n {/* {channelReferenceId} */}\r\n {/* {receiptEmail} */}\r\n \r\n);\r\n\r\nexport const OrderConfirmationSalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton }) => (\r\n \r\n {salesLine}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroupDelivery: React.FC = ({ deliveryProps, heading, count, processing, address, trackingInfo, pickupDateTimeslot }) => (\r\n \r\n {heading}\r\n {address}\r\n {pickupDateTimeslot}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\r\n \r\n {delivery && }\r\n {delivery && delivery.shippingItemsToYou}\r\n {salesLines && (\r\n \r\n {salesLines.map((salesLine: ISalesLine) => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroups: React.FC = ({ groupsProps, groups }) => (\r\n \r\n {groups.map((group: IGroup, index: number) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport const OrderConfirmationOrderSummary: React.FC = ({ orderSummaryProps, heading, subtotal, shipping, tax, totalAmount, earnedPoints }) => (\r\n \r\n {heading}\r\n {subtotal}\r\n {shipping}\r\n {tax}\r\n {totalAmount}\r\n {earnedPoints}\r\n \r\n);\r\n\r\nexport const OrderConfirmationPayment: React.FC = ({ paymentMethodsProps, title, methods, totalOnAccount }) => \r\n {title}\r\n {totalOnAccount ?

On Account: {totalOnAccount}

: null}\r\n {methods}\r\n
;\r\n\r\nexport const OrderConfirmationHelp: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\r\n \r\n {needHelpLabel}\r\n {helpLineNumberLabel}\r\n {contactNumber}\r\n \r\n);\r\n\r\nconst _renderOrderTable = (salesOrder: SalesOrder) => {\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {salesOrder.SalesLines?.map(so => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
Item IdDescriptionPriceQuantityTotal
{so.ItemId}{so.Description}{so.Price}{so.Quantity}{so.TotalAmount}
\r\n )\r\n}\r\n\r\n\r\nconst OrderConfirmationView: React.FC = (props) => {\r\n const {\r\n moduleProps,\r\n heading,\r\n backToShoppingLink,\r\n alert,\r\n loading,\r\n orderInfomation,\r\n orderSummary,\r\n payment,\r\n help,\r\n groups,\r\n data: { orderHydration },\r\n context: { cultureFormatter: { formatCurrency }}\r\n } = props;\r\n const tenderLines = props.data.orderHydration.result?.salesOrder.TenderLines;\r\n let totalOnAccount = 0;\r\n if (tenderLines) {\r\n totalOnAccount = tenderLines.map(tl => tl.AmountInCompanyCurrency || 0).reduce((num, total) => num + total, 0);\r\n }\r\n\r\n\r\n return (\r\n \r\n {heading}\r\n {alert}\r\n {loading}\r\n {orderInfomation && }\r\n {orderHydration?.result?.salesOrder && _renderOrderTable(orderHydration?.result?.salesOrder)}\r\n {backToShoppingLink}\r\n {groups && }\r\n {payment && 0 ? formatCurrency(totalOnAccount) : undefined}\r\n />}\r\n {orderSummary && }\r\n {help && }\r\n \r\n );\r\n};\r\n\r\nexport default OrderConfirmationView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccordionViewProps } from './accordion';\n\nconst accordionView: React.FC = props => {\n const { heading, AccordionContainer, accordionItems } = props;\n if (!props.heading && !props.accordionButtons && !props.accordionItems) {\n props.context.telemetry.error('Accordion content is empty, module wont render');\n return null;\n }\n return (\n \n \n {heading}\n {props.accordionButtons && {props.accordionButtons}}\n \n {accordionItems}\n \n );\n};\n\nexport default accordionView;\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n ISignUpEmailVerification,\r\n ISignUpGivenNameVerification,\r\n ISignUpItem,\r\n ISignUpLoading,\r\n ISignUpLocalAccount,\r\n ISignUpSurnameVerification,\r\n ISignUpViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-up/./sign-up';\r\n\r\nconst SignUpItem: React.FC = ({\r\n wrapper,\r\n label,\r\n errorMessage,\r\n input\r\n}) => {\r\n\r\n return (\r\n \r\n {label}\r\n {errorMessage}\r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst SignUpEmailVerification: React.FC = ({\r\n email,\r\n buttonWrapper,\r\n buttons,\r\n successMessage,\r\n errorMessage\r\n}) => {\r\n\r\n return (\r\n <>\r\n \r\n {successMessage && successMessage.map((message: React.ReactNode) => {\r\n return (\r\n <>\r\n {message}\r\n \r\n );\r\n })}\r\n {errorMessage && errorMessage.map((message: React.ReactNode) => {\r\n return (\r\n <>\r\n {message}\r\n \r\n );\r\n })}\r\n \r\n {buttons && buttons.map((button: React.ReactNode) => {\r\n return (\r\n <>\r\n {button}\r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n};\r\n\r\n/**\r\n * Handles validation of sign-up givenName.\r\n * @param event - Content editable event.\r\n * @param event.givenName - Event Given Name.\r\n * @param event.errorMessage - Event Error Message.\r\n * @returns - Error Message for Given Name.\r\n */\r\nconst SignUpGivenNameVerificationComponent: React.FC = ({\r\n givenName,\r\n errorMessage\r\n}) => {\r\n return (\r\n <>\r\n \r\n {errorMessage.map((message: React.ReactNode) => {\r\n return (\r\n <>\r\n {message}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Handles validation of signUp surname.\r\n * @param event - Content editable event.\r\n * @param event.surname - Event surname.\r\n * @param event.errorMessage - Event Error Message.\r\n * @returns - Error Message for surname.\r\n */\r\nconst SignUpSurnameVerificationComponent: React.FC = ({\r\n surname,\r\n errorMessage\r\n}) => {\r\n return (\r\n <>\r\n \r\n {errorMessage.map((message: React.ReactNode) => {\r\n return (\r\n <>\r\n {message}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n emailVerification,\r\n givenNameVerification,\r\n surnameVerification,\r\n buttons,\r\n errorMessage,\r\n disclaimer\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignUpItem) => {\r\n if (item.key === 'email' && emailVerification.isRequired) {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n if (item.key === 'givenName' && givenNameVerification.isRequired) {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n if (item.key === 'surname' && surnameVerification.isRequired) {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n return (\r\n\r\n \r\n );\r\n })}\r\n {errorMessage && errorMessage.map((error: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {error}\r\n \r\n );\r\n })}\r\n {buttons && buttons.map((button: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {button}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n \r\n );\r\n};\r\n\r\nconst SignUpLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignUpView: React.FC = props => {\r\n\r\n const {\r\n signUp,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n heading,\r\n signUpLocalAccount\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n {heading}\r\n {LocalAccount(signUpLocalAccount)}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default SignUpView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\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 classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignUpErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignUpError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default SignUpError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default PasswordResetLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport 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 * as React from 'react';\n\nexport interface IAccountProfileEditLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst AccountProfileEditLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default AccountProfileEditLabel;\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IContentBlockAdditionalContentItemViewProps,\r\n IContentBlockAdditionalContentViewProps, IContentBlockViewProps\r\n} from '@msdyn365-commerce-modules/content-block';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Render Additional Content.\r\n * @param additionalContent - Additional content view props.\r\n * @returns JSX Element.\r\n */\r\nconst renderAdditionalContent = (additionalContent: IContentBlockAdditionalContentViewProps) => {\r\n return (\r\n \r\n {additionalContent.additionalContentItems?.map((item: IContentBlockAdditionalContentItemViewProps) => {\r\n return (\r\n <>\r\n {item.heading}\r\n \r\n {item.text}\r\n \r\n {item.links}\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render View.\r\n * @param props - The view props.\r\n * @returns -The JSX Element.\r\n */\r\nconst contentBlockView: React.FC = (props) => {\r\n const {\r\n contentBlockContainer,\r\n imageContainer,\r\n detailsContainer,\r\n title,\r\n text,\r\n links,\r\n image,\r\n contentBlockAnchorTag,\r\n imageLink,\r\n imageAriaLabel,\r\n additionalContent\r\n } = props;\r\n\r\n // @ts-expect-error HTML element need to be clear on run time.\r\n const hasImage: boolean = image.props.src;\r\n const imageClass: string = hasImage ? `${detailsContainer.className} withImage` : `${detailsContainer.className} withoutImage`;\r\n\r\n if (imageLink) {\r\n return (\r\n \r\n \r\n \r\n {image}\r\n \r\n
\r\n \r\n {title}\r\n {text}\r\n {links}\r\n {additionalContent && renderAdditionalContent(additionalContent)}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n \r\n {image}\r\n \r\n \r\n {title}\r\n {text}\r\n {links}\r\n {additionalContent && renderAdditionalContent(additionalContent)}\r\n \r\n \r\n );\r\n\r\n};\r\n\r\nexport default contentBlockView;\r\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 { EmailRegex, PasswordRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps, 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 SignUpButtonComponent from './components/sign-up-button';\nimport SignUpErrorComponent from './components/sign-up-error';\nimport SignUpInputComponent from './components/sign-up-input';\nimport SignUpLabelComponent from './components/sign-up-label';\nimport SignUpLoadingIconComponent from './components/sign-up-loading-icon';\nimport SignUpLoadingMessageComponent from './components/sign-up-loading-message';\nimport SignUpSuccessComponent from './components/sign-up-success';\nimport { ISignUpConfig, ISignUpProps, ISignUpResources } from './sign-up.props.autogenerated';\n\nexport interface ISignUpViewState {\n isShowLoading: boolean;\n}\n\nexport interface ISignUpItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface ISignUpEmailVerification {\n isRequired: boolean;\n email: ISignUpItem;\n buttonWrapper: INodeProps;\n buttons: React.ReactNode[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\n/**\n * SignUp Given Name Verification Interface.\n */\nexport interface ISignUpGivenNameVerification {\n isRequired: boolean;\n givenName: ISignUpItem;\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\n/**\n * SignUp Surname Verification Interface.\n */\nexport interface ISignUpSurnameVerification {\n isRequired: boolean;\n surname: ISignUpItem;\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\nexport interface ISignUpLocalAccount {\n localAccount: INodeProps;\n items: ISignUpItem[];\n emailVerification: ISignUpEmailVerification;\n givenNameVerification: ISignUpGivenNameVerification;\n surnameVerification: ISignUpSurnameVerification;\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n disclaimer: React.ReactNode;\n}\n\nexport interface ISignUpLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface ISignUpViewProps {\n className: string;\n viewState: ISignUpViewState;\n loading: ISignUpLoading;\n signUp: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n signUpLocalAccount: ISignUpLocalAccount;\n}\n\n/**\n *\n * SignUp 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 SignUp extends React.Component> {\n @observable private isGivenNameVerificationRequried: boolean;\n\n @observable private isSurnameVerificationRequried: boolean;\n\n private readonly moduleClassName: string = 'ms-sign-up';\n\n @observable private emailRegex: string;\n\n @observable private newPasswordRegex: string;\n\n @observable private reenterPasswordRegex: string;\n\n @observable private isEmailVerificationRequried: boolean;\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: ISignUpProps) {\n super(props);\n\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.newPasswordRegex = PasswordRegex.defaultRegex.source;\n this.reenterPasswordRegex = PasswordRegex.defaultRegex.source;\n this.isEmailVerificationRequried = false;\n this.isGivenNameVerificationRequried = false;\n this.isSurnameVerificationRequried = false;\n this.isInitialized = false;\n this.templateVersion = '';\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: ISignUpProps, nextState: ISignUpViewState): 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 signUp: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: (\n \n ),\n signUpLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles heading content change event.\n * @param event - Content editable event.\n * @returns - Heading Text.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n * @returns - Paragraph Text.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.disclaimer = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n const resources: ISignUpResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map(\n (obj: { ID: string; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string; VERIFY: boolean }) => {\n switch (obj.ID.toLowerCase()) {\n case 'emailverificationcontrol': {\n this.isEmailVerificationRequried = true;\n this.templateVersion = 'v2';\n break;\n }\n case 'email': {\n this.emailRegex = obj.PAT;\n this.isEmailVerificationRequried = obj.VERIFY;\n this.templateVersion = 'v1';\n break;\n }\n case 'givennameverificationcontrol': {\n this.isGivenNameVerificationRequried = true;\n break;\n }\n case 'givenname': {\n this.isGivenNameVerificationRequried = obj.VERIFY;\n break;\n }\n case 'surnameverificationcontrol': {\n this.isEmailVerificationRequried = true;\n break;\n }\n case 'surname': {\n this.isSurnameVerificationRequried = obj.VERIFY;\n break;\n }\n case 'newpassword': {\n this.newPasswordRegex = obj.PAT;\n break;\n }\n case 'reenterpassword': {\n this.reenterPasswordRegex = obj.PAT;\n break;\n }\n default:\n }\n\n switch (obj.UX_INPUT_TYPE.toLowerCase()) {\n case 'password': {\n obj.PAT_DESC = resources.invalidPasswordError;\n break;\n }\n case 'emailbox': {\n obj.PAT_DESC = resources.invalidEmailAddressError;\n break;\n }\n default:\n }\n }\n );\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const resources: ISignUpResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const errorMessages = {\n required_field: resources.requiredFieldMissingError\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], errorMessages);\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 private _renderLocalAccount(): ISignUpLocalAccount {\n const { config, resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('givenName', 'text', resources.firstNameLabelText, resources.firstNameMaxLength),\n this._renderInput('surname', 'text', resources.lastNameLabelText, resources.lastNameMaxLength),\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput('newPassword', 'password', resources.passwordLabelText, undefined, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, undefined, this.reenterPasswordRegex)\n ],\n emailVerification: {\n isRequired: this.isEmailVerificationRequried,\n email: this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n buttonWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n buttons: [\n ,\n ,\n ,\n \n ],\n successMessage: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n \n ]\n },\n givenNameVerification: {\n isRequired: this.isGivenNameVerificationRequried,\n givenName: this._renderInput(\n this.getValue('givenName_ver_input', 'givenNameVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'givenNameVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n errorMessage: [\n \n ]\n },\n surnameVerification: {\n isRequired: this.isSurnameVerificationRequried,\n surname: this._renderInput(\n this.getValue('surname_ver_input', 'surnameVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'surnameVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n errorMessage: [\n \n ]\n },\n buttons: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n \n ],\n disclaimer: config.disclaimer && (\n \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 ): ISignUpItem {\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\nexport default SignUp;\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 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 { Random } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, Popover } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface IAccountCustomerBalanceActions {\n className?: string;\n requestStatementButtonLabel: string;\n onRequestStatement(): void;\n}\n\ninterface IAdminRequestStatementProps {\n className?: string;\n requestStatementButtonLabel: string;\n myUserAccountLabel: string;\n fullOrganizationLabel: string;\n isDropdownShowing: boolean;\n buttonReference?: React.RefObject;\n onToggleDropdown(): void;\n onRequestStatement(isFullOrg: boolean): void;\n}\n\nexport const ActionBar: React.FC = ({ className, onRequestStatement, requestStatementButtonLabel }) => {\n return (\n
\n \n
\n );\n};\n\nexport const AdminRequestStatementButton: React.FC = ({\n className,\n onRequestStatement,\n requestStatementButtonLabel,\n onToggleDropdown,\n myUserAccountLabel,\n fullOrganizationLabel,\n isDropdownShowing,\n buttonReference\n}) => {\n const onSelectCustomerAccount = React.useCallback(() => {\n onRequestStatement(false);\n }, [onRequestStatement]);\n\n const onSelectFullOrg = React.useCallback(() => {\n onRequestStatement(true);\n }, [onRequestStatement]);\n\n const popoverReference = buttonReference !== undefined ? buttonReference : React.createRef();\n const requestStatementDropdownString = `request-statement-dropdown-id-${Random.Guid.generateGuid()}`;\n return (\n
\n \n {requestStatementButtonLabel}\n \n \n \n {myUserAccountLabel}\n \n \n \n
\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * The interface for the props for the account statement request modal.\n */\ninterface IAccountStatementRequestModalProps {\n email: string;\n isModalOpen: boolean;\n fromDateString: string;\n toDateString: string;\n canSubmitRequest: boolean;\n modalHeaderLabel: string;\n sendToEmailLabel: string;\n fromDateLabel: string;\n toDateLabel: string;\n submitRequestLabel: string;\n cancelLabel: string;\n className: string;\n selectedUser: string;\n selectedUserLabel: string;\n toggle(): void;\n onChangeFromDate(newFromDate: string): void;\n onChangeToDate(newToDate: string): void;\n onSubmitRequest(): void;\n modalAriaLabel?: string;\n maxDateString?: string;\n}\n\nexport const RequestStatementModal: React.FC = ({\n className,\n email,\n isModalOpen,\n toggle,\n fromDateString,\n toDateString,\n onChangeFromDate,\n onChangeToDate,\n canSubmitRequest,\n modalHeaderLabel,\n sendToEmailLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n cancelLabel,\n onSubmitRequest,\n selectedUser,\n selectedUserLabel,\n modalAriaLabel,\n maxDateString\n}) => {\n const onChangeFromDateEvent = React.useCallback(\n (event: React.ChangeEvent) => {\n const value = event.target.value;\n\n onChangeFromDate(value);\n },\n [onChangeFromDate]\n );\n\n const onChangeToDateEvent = React.useCallback(\n (event: React.ChangeEvent) => {\n const value = event.target.value;\n\n onChangeToDate(value);\n },\n [onChangeToDate]\n );\n\n /**\n * If the onBlur is called on the fromDate and the date has been changed, reset focus on it.\n * @param event - The event that is triggering onBlur.\n */\n const onBlurFromDate = React.useCallback(\n (event: React.ChangeEvent) => {\n if (ObjectExtensions.isFunction(event.target.focus) && event.target.value !== fromDateString) {\n event.target.focus();\n }\n },\n [fromDateString]\n );\n\n /**\n * If the onBlur is called on the toDate and the date has been changed, reset focus on it.\n * @param event - The event that is triggering onBlur.\n */\n const onBlurToDate = React.useCallback(\n (event: React.ChangeEvent) => {\n if (ObjectExtensions.isFunction(event.target.focus) && event.target.value !== toDateString) {\n event.target.focus();\n }\n },\n [toDateString]\n );\n\n return (\n \n {modalHeaderLabel}\n \n {selectedUser && (\n
\n \n
\n
{selectedUser}
\n
\n )}\n \n
\n {email}\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n {submitRequestLabel}\n \n {` `}\n \n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { AdminRequestStatementButton } from './account-actions';\nimport { RequestStatementModal } from './account-statement-request-modal';\n\nexport * from './account-actions';\nexport * from './account-statement-request-modal';\n\ninterface IAccountLabel {\n name: string;\n accountNumber: string;\n createdOn: string;\n customerSincePrefix: string;\n}\n\ninterface IAccountValues {\n availableCredit: string;\n availableCreditLabel: string;\n}\n\n/**\n * Prop for Available credit component.\n */\ninterface ICreditSummaryAvailableCredit {\n availableCreditLabel: string;\n availableCredit: string;\n}\n\n/**\n * Prop for Balanced owed component.\n */\ninterface ICreditSummaryBalanceOwed {\n balanceOwedLabel: string;\n balanceOwed: string;\n}\n\n/**\n * Prop for credit excess component.\n */\ninterface ICreditSummaryCreditExcess {\n creditExcessLabel: string | null;\n creditExcess: string | null;\n}\n\ninterface ICreditSummaryLabel {\n availableCredit: string;\n balanceOwed: string;\n creditExcess: string | null;\n}\n\ninterface ICreditSummaryValues {\n availableCredit: string;\n balanceOwed: string;\n creditExcess: string | null;\n}\n\ninterface IBackButton {\n link: string;\n label: string;\n telemetryContent?: ITelemetryContent;\n}\n\nexport const AccountLabels: React.FC = ({ name, accountNumber, customerSincePrefix, createdOn }) => (\n
\n

{name}

\n
#{accountNumber}
\n
\n {customerSincePrefix} {createdOn}\n
\n
\n);\n\nexport const AccountValues: React.FC = ({ availableCredit, availableCreditLabel }) => (\n
\n
{availableCreditLabel}
\n
{availableCredit}
\n
\n);\n\nexport const CreditSummaryLabels: React.FC = ({ availableCredit, balanceOwed, creditExcess }) => (\n
\n
{availableCredit}
\n
{balanceOwed}
\n
{creditExcess}
\n
\n);\n\nexport const CreditSummaryValues: React.FC = ({ availableCredit, balanceOwed, creditExcess }) => (\n
\n
{availableCredit}
\n
{balanceOwed}
\n {creditExcess &&
{creditExcess}
}\n
\n);\n\n/**\n * Available credit component.\n * @param props - ICreditSummaryAvailableCredit.\n * @param props.availableCreditLabel - Available credit label.\n * @param props.availableCredit - Available credit value.\n * @returns - React Node for available credit component.\n */\nexport const AvailableCreditComponent: React.FC = ({ availableCreditLabel, availableCredit }) => (\n
\n
\n
{availableCreditLabel}
\n
\n
\n
{availableCredit}
\n
\n
\n);\n\n/**\n * Balance Owed Component.\n * @param props - ICreditSummaryBalanceOwed.\n * @param props.balanceOwedLabel - Balance Owed label.\n * @param props.balanceOwed - Balance Owed value.\n * @returns - React Node for balance owed component.\n */\nexport const BalanceOwedComponent: React.FC = ({ balanceOwedLabel, balanceOwed }) => (\n
\n
\n
{balanceOwedLabel}
\n
\n
\n
{balanceOwed}
\n
\n
\n);\n\n/**\n * Credit Excess Component.\n * @param props - ICreditSummaryCreditExcess.\n * @param props.creditExcessLabel - Credit excess label.\n * @param props.creditExcess - Credit excess value.\n * @returns - React Node for credit excess component.\n */\nexport const CreditExcessComponent: React.FC = ({ creditExcessLabel, creditExcess }) => (\n
\n {creditExcess && (\n
\n
{creditExcessLabel}
\n
\n )}\n
\n {creditExcess &&
{creditExcess}
}\n
\n
\n);\nexport const BackButton: React.FC = ({ link, label, telemetryContent }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.BackToShopping);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n {label}\n \n );\n};\n\nexport { AdminRequestStatementButton, RequestStatementModal };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignUpButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst SignUpButton: React.FC = ({ id, className, text, ariaLabel, disabled, onClick }) => (\n \n);\n\nexport default SignUpButton;\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 { IAccordionExpandedState } from './data-actions/accordion-state';\nimport { createAccordionStateInput } from './data-actions/accordion-state-data-action';\nimport accordion from './modules/accordion/accordion';\nimport { interactionStyle } from './modules/accordion/accordion.props.autogenerated';\nimport accordionView from './modules/accordion/accordion.view';\n\nexport * from './modules/accordion/accordion';\nexport * from './modules/accordion/accordion.view';\n\nexport { accordion, accordionView, createAccordionStateInput, IAccordionExpandedState, interactionStyle };\n","/*!\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 { IAccountAddressTileData } from './account-address-tile.data';\nimport { IAccountAddressTileProps } from './account-address-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-address-tile-description';\nimport LinksComponent from './components/account-address-tile-links';\n\nexport interface IAccountAddressTileViewProps extends IAccountAddressTileProps {\n AccountAddressTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountAddress component.\n * @extends {React.PureComponent>}\n */\nclass AccountAddressTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountAddressTileProps) {\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 { accountAddressTileDescriptionForSingleAddress, accountAddressTileDescriptionForMultipleAddresses } = resources;\n const { address } = data;\n const addressCount = (address && address.result && address.result.length) || 0;\n const accountAddressTileDescription =\n addressCount === 1 ? accountAddressTileDescriptionForSingleAddress : accountAddressTileDescriptionForMultipleAddresses;\n const description = format(accountAddressTileDescription, addressCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountAddressTile: {\n moduleProps: this.props,\n className: classnames('ms-account-address-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 AccountAddressTile;\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 classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst AccountProfileEditError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default AccountProfileEditError;\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n ISignInItem,\r\n ISignInLoading,\r\n ISignInLocalAccount,\r\n // ISignInSocialAccount,\r\n // ISignInSocialItem,\r\n ISignInB2BAccount,\r\n ISignInB2BItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management';\r\n\r\nconst LocalAccount: React.FC = ({ localAccount, items, forgetPassword, disclaimer, error, signInButton }) => {\r\n return (\r\n \r\n {items &&\r\n items.map((item: ISignInItem) => {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {forgetPassword}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n \r\n );\r\n};\r\n\r\n// const SocialAccount: React.FC = ({ socialAccounts, items }) => {\r\n// return (\r\n// \r\n// {items &&\r\n// items.map((item: ISignInSocialItem) => {\r\n// return (\r\n// \r\n// {item.image}\r\n// {item.text}\r\n// \r\n// );\r\n// })}\r\n// \r\n// );\r\n// };\r\n\r\nconst B2BAccount: React.FC = ({ socialAccounts, items }) => {\r\n return (\r\n \r\n {items &&\r\n items.map((item: ISignInB2BItem) => {\r\n return (\r\n item && (\r\n \r\n {item.text}\r\n \r\n )\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: 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\nconst SignInView: React.FC = props => {\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n // signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n // signInSocialAccount,\r\n // signUpSectionHeading,\r\n signInB2BAccount,\r\n // signUpDescription,\r\n // signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {/*{SocialAccount(signInSocialAccount)}*/}\r\n {B2BAccount(signInB2BAccount)}\r\n \r\n {/**/}\r\n {/* {signUpSectionHeading}*/}\r\n {/* {signUpDescription}*/}\r\n {/* {signUpLink}*/}\r\n {/**/}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default SignInView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { IInteractiveFeatureCollectionViewProps } from './interactive-feature-collection';\n\n/**\n * Feature Collection View.\n * @param props - Feature Collection view props.\n * @returns Feature Collection View.\n */\nexport const interactiveFeatureCollectionView: React.FC = props => {\n const {\n title,\n interactiveFeatureCollectionHeading,\n interactiveFeatureCollectionContainer,\n interactiveFeatureCollectionDesktopContainer,\n interactiveFeatureCollectionDesktopItems,\n interactiveFeatureCollectionMobileItems,\n interactiveFeatureCollectionMobileContainer,\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer\n } = props;\n return (\n \n {title}\n {interactiveFeatureCollectionDesktopItems}\n \n \n {interactiveFeatureCollectionMobileItems &&\n interactiveFeatureCollectionMobileItems.map((tileItem: ReactNode, index: number) => {\n const keyIndex = `interactive-feature-carousel-item__${index}`;\n return (\n \n {tileItem}\n \n );\n })}\n \n \n \n );\n};\n\nexport default interactiveFeatureCollectionView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IBusinessFormItem,\n IBusinessOrganizationListViewProps,\n IFormViewProps,\n InputID\n} from '@msdyn365-commerce-modules/business-organization-list';\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBusinessOrganizationListProps,\n IBusinessOrganizationListResources\n} from '../definition-extensions/business-organization-list.ext.props.autogenerated';\n\n/**\n * Business Form Item component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessFormItemComponent: React.FC = (props: IBusinessFormItem) => {\n const { wrapper, label, errorMessage, input } = props;\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\n/**\n * To render modal.\n * @param className - The modal classname.\n * @param isModalOpen - The boolean for modal open status.\n * @param headingSection - The heading section of modal.\n * @param bodySection - The body section of modal.\n * @param footerSection - The footer section of modal.\n * @param toggleModal - The toggle modal callback function.\n * @returns The JSX Element.\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\n/**\n * Business User Form component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessUserFormComponent: React.FC = (props: IFormViewProps) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\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?.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\n/**\n * Selected user interface.\n */\ninterface ISelectedUser {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n FirstName?: string;\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n LastName?: string;\n}\n\n/**\n * Business User Details component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessUserDetailsComponent: React.FC = (props: IFormViewProps) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { modalClassName, FormWrapper, modalHeading, modalDescription, buttons, errorMessage, resources, toggle } = props;\n let modalBody = null;\n const selectedUser = props.selectedUser as ISelectedUser | string;\n\n if (!selectedUser) {\n modalBody = errorMessage;\n } else {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { FirstName, LastName } = selectedUser as ISelectedUser;\n const userFullName = `${FirstName as string} ${LastName as string}`;\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`] as string) || 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\n/**\n * To get form.\n * @param type - The type of form.\n * @param formProps - The form props.\n * @param toggleModal - The toggle modal callback function.\n * @returns The JSX Element.\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\n/**\n * Business Organization List component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessOrganizationListComponent: React.FC> = props => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\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 \n \n {props.resources.headingForEmptyUserOrganizationList}\n \n \n {props.resources.textForEmptyUserOrganizationList}\n \n {buttonList}\n \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 BusinessOrganizationListComponent;\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 ISignUpLoadingIcon {\n className: string;\n}\n\nconst SignUpLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default SignUpLoadingIcon;\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","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/./sign-in';\r\n\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {forgetPassword}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n \r\n );\r\n};\r\n//\r\n// const SocialAccount: React.FC = ({\r\n// socialAccounts,\r\n// items\r\n// }) => {\r\n//\r\n// return (\r\n// \r\n// {items && items.map((item: ISignInSocialItem) => {\r\n// return (\r\n// \r\n// {item.image}\r\n// {item.text}\r\n// \r\n// );\r\n// })}\r\n// \r\n// );\r\n// };\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signUpDescription,\r\n signUpLink,\r\n signUpSection,\r\n signUpSectionHeading\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {/*{SocialAccount(signInSocialAccount)}*/}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SignInView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n ISignUpEmailVerification,\n ISignUpGivenNameVerification,\n ISignUpItem,\n ISignUpLoading,\n ISignUpLocalAccount,\n ISignUpSurnameVerification,\n ISignUpViewProps\n} from './sign-up';\n\nconst SignUpItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst SignUpEmailVerification: React.FC = ({ email, buttonWrapper, buttons, successMessage, errorMessage }) => {\n return (\n <>\n {successMessage &&\n successMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {errorMessage &&\n errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode) => {\n return <>{button};\n })}\n \n \n );\n};\n\n/**\n * Handles validation of sign-up givenName.\n * @param event - Content editable event.\n * @param event.givenName - Event Given Name.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for Given Name.\n */\nconst SignUpGivenNameVerificationComponent: React.FC = ({ givenName, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\n/**\n * Handles validation of signUp surname.\n * @param event - Content editable event.\n * @param event.surname - Event surname.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for surname.\n */\nconst SignUpSurnameVerificationComponent: React.FC = ({ surname, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n emailVerification,\n givenNameVerification,\n surnameVerification,\n buttons,\n errorMessage,\n disclaimer\n}) => {\n return (\n \n {items &&\n items.map((item: ISignUpItem) => {\n if (item.key === 'email' && emailVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'givenName' && givenNameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'surname' && surnameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n {disclaimer}\n \n );\n};\n\nconst SignUpLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst SignUpView: React.FC = props => {\n const { signUp, viewState, loading, defaultAADConainer, aadConainer, heading, signUpLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(signUpLocalAccount)}\n \n \n );\n};\n\nexport default SignUpView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IAccountProfileEditItem,\n IAccountProfileEditLoading,\n IAccountProfileEditLocalAccount,\n IAccountProfileEditViewProps\n} from './account-profile-edit';\n\nconst AccountProfileEditItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n {items &&\n items.map((item: IAccountProfileEditItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n );\n};\n\nconst AccountProfileEditLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst AccountProfileEditView: React.FC = props => {\n const { accountProfileEdit, viewState, loading, defaultAADConainer, aadConainer, heading, accountProfileEditLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(accountProfileEditLocalAccount)}\n \n \n );\n};\n\nexport default AccountProfileEditView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\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 * 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 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","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IImageSettings, Image, RichTextComponent } from '@msdyn365-commerce/core';\r\nimport { IWriteReviewData, IWriteReviewViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\r\nimport { generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IWriteReviewProps } from '../definition-extensions/write-review.ext.props.autogenerated';\r\n\r\n/**\r\n * Render Product Image.\r\n * @param props - WriteReview ViewProps.\r\n * @returns JSX Element.\r\n */\r\nconst renderProductImage = (props: IWriteReviewViewProps & IWriteReviewProps): JSX.Element => {\r\n const primaryImageSource = props.data.product.result?.PrimaryImageUrl;\r\n const imageUrl = generateImageUrl(primaryImageSource, props.context.request.apiSettings);\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=111&h=111&m=6', w: 111, h: 111 },\r\n sm: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\r\n md: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\r\n lg: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\r\n xl: { q: 'w=130&h=130&m=6', w: 130, h: 130 }\r\n },\r\n lazyload: true,\r\n cropFocalRegion: true\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render Product Description.\r\n * @param props - WriteReview ViewProps.\r\n * @returns JSX Element.\r\n */\r\nconst renderProductDescription = (props: IWriteReviewViewProps & IWriteReviewProps): JSX.Element => {\r\n const product = props.data.product.result;\r\n return (\r\n \r\n
\r\n {renderProductImage(props)}\r\n
\r\n
\r\n
\r\n {product?.Name}\r\n
\r\n
\r\n {product?.Name}\r\n
\r\n
\r\n {product?.ItemId}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\n/**\r\n * Create Write Review Modal.\r\n * @param props - WriteReview ViewProps.\r\n * @returns JSX Element.\r\n */\r\nconst createReviewModal = (props: IWriteReviewViewProps & IWriteReviewProps): JSX.Element => {\r\n const { resources, moduleProps, reviewModal } = props;\r\n\r\n return (\r\n \r\n {reviewModal.modalHeader}\r\n \r\n \r\n \r\n {renderProductDescription(props)}\r\n \r\n
\r\n {resources.selectRatingLabel}\r\n
\r\n {reviewModal.rating}\r\n
\r\n
\r\n \r\n {resources.reviewTitleLabel}\r\n {reviewModal.titleInput}\r\n \r\n \r\n {resources.reviewTextLabel}\r\n {reviewModal.textInput}\r\n \r\n {reviewModal.privacyPolicyUrl}\r\n {reviewModal.error}\r\n
\r\n
\r\n \r\n {reviewModal.submitButton}\r\n {reviewModal.cancelButton}\r\n \r\n
\r\n );\r\n};\r\n\r\n/**\r\n * WriteReview view.\r\n * @param props - WriteReview ViewProps.\r\n * @returns WriteReview view module.\r\n */\r\nconst WriteReviewView: React.FC> = props => {\r\n const { config, heading, signInMessage, signInButton, modalToggle, moduleProps } = props;\r\n const { paragraph } = config;\r\n const isAuthenticated = props.context.request.user.isAuthenticated;\r\n const text = paragraph && ();\r\n\r\n return (\r\n \r\n {heading}\r\n {!isAuthenticated ? <>\r\n {signInMessage}\r\n {signInButton}\r\n : <>\r\n {text}\r\n {modalToggle}\r\n {createReviewModal(props)}\r\n }\r\n \r\n );\r\n};\r\n\r\nexport default WriteReviewView;\r\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 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","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n ISignUpEmailVerification,\r\n ISignUpGivenNameVerification,\r\n ISignUpItem,\r\n ISignUpLoading,\r\n ISignUpLocalAccount,\r\n ISignUpSurnameVerification,\r\n ISignUpViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-up/./sign-up';\r\n\r\nconst SignUpItem: React.FC = ({\r\n wrapper,\r\n label,\r\n errorMessage,\r\n input\r\n}) => {\r\n\r\n return (\r\n \r\n {label}\r\n {errorMessage}\r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst SignUpEmailVerification: React.FC = ({\r\n email,\r\n buttonWrapper,\r\n buttons,\r\n successMessage,\r\n errorMessage\r\n}) => {\r\n\r\n return (\r\n <>\r\n \r\n {successMessage && successMessage.map((message: React.ReactNode) => {\r\n return (\r\n <>\r\n {message}\r\n \r\n );\r\n })}\r\n {errorMessage && errorMessage.map((message: React.ReactNode) => {\r\n return (\r\n <>\r\n {message}\r\n \r\n );\r\n })}\r\n \r\n {buttons && buttons.map((button: React.ReactNode) => {\r\n return (\r\n <>\r\n {button}\r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n};\r\n\r\n/**\r\n * Handles validation of sign-up givenName.\r\n * @param event - Content editable event.\r\n * @param event.givenName - Event Given Name.\r\n * @param event.errorMessage - Event Error Message.\r\n * @returns - Error Message for Given Name.\r\n */\r\nconst SignUpGivenNameVerificationComponent: React.FC = ({\r\n givenName,\r\n errorMessage\r\n}) => {\r\n return (\r\n <>\r\n \r\n {errorMessage.map((message: React.ReactNode) => {\r\n return (\r\n <>\r\n {message}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Handles validation of signUp surname.\r\n * @param event - Content editable event.\r\n * @param event.surname - Event surname.\r\n * @param event.errorMessage - Event Error Message.\r\n * @returns - Error Message for surname.\r\n */\r\nconst SignUpSurnameVerificationComponent: React.FC = ({\r\n surname,\r\n errorMessage\r\n}) => {\r\n return (\r\n <>\r\n \r\n {errorMessage.map((message: React.ReactNode) => {\r\n return (\r\n <>\r\n {message}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n emailVerification,\r\n givenNameVerification,\r\n surnameVerification,\r\n buttons,\r\n errorMessage,\r\n disclaimer\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignUpItem) => {\r\n if (item.key === 'email' && emailVerification.isRequired) {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n if (item.key === 'givenName' && givenNameVerification.isRequired) {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n if (item.key === 'surname' && surnameVerification.isRequired) {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n return (\r\n\r\n \r\n );\r\n })}\r\n {errorMessage && errorMessage.map((error: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {error}\r\n \r\n );\r\n })}\r\n {buttons && buttons.map((button: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {button}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n \r\n );\r\n};\r\n\r\nconst SignUpLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignUpView: React.FC = props => {\r\n\r\n const {\r\n signUp,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n heading,\r\n signUpLocalAccount\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n {heading}\r\n {LocalAccount(signUpLocalAccount)}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default SignUpView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n getTelemetryObject,\n IComponentNodeProps,\n IModuleProps,\n INodeProps,\n ISingleSlideCarouselProps,\n ITelemetryContent,\n NodeTag,\n SingleSlideCarousel\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureCollectionProps } from './interactive-feature-collection.props.autogenerated';\n\n/**\n * Interactive Feature Collection view props.\n */\nexport interface IInteractiveFeatureCollectionViewProps extends IInteractiveFeatureCollectionProps<{}> {\n title: React.ReactNode;\n interactiveFeatureCollectionHeading: INodeProps;\n interactiveFeatureCollectionContainer: IModuleProps;\n interactiveFeatureCollectionDesktopContainer: INodeProps;\n interactiveFeatureCollectionDesktopItems: React.ReactNode[];\n interactiveFeatureCollectionMobileContainer: INodeProps;\n interactiveFeatureCollectionMobileItems: React.ReactNode[];\n singleSlideCarouselComponentProps: INodeProps;\n singleSlideCarouselItemContainer: INodeProps;\n}\n\n/**\n *\n * InteractiveFeatureCollection component.\n * @extends {React.PureComponent>}\n */\nexport class InteractiveFeatureCollection extends React.PureComponent> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n private static _getFeatureItem(item: React.ReactNode, index: number, itemsCounter: number): React.ReactNode {\n const keyIndex = `interactive-feature-mosaic-item__${index}`;\n return (\n \n {React.cloneElement(item as React.ReactElement, { indexItem: index, itemCounter: itemsCounter, isMosaic: true })}\n \n );\n }\n\n public constructor(props: IInteractiveFeatureCollectionProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { resources } = this.props;\n const { title, className } = this.props.config;\n const interactiveItems = this.props.slots && this.props.slots.interactiveFeatureItems;\n const itemsFeatureCounter = interactiveItems && interactiveItems.length;\n const singleSlideCarouselComponentProps: IComponentNodeProps = {\n tag: SingleSlideCarousel,\n className: this.props.config.className ?? '',\n flipperPrevLabel: resources.flipperPrevious,\n flipperNextLabel: resources.flipperNext,\n parentId: this.props.id,\n telemetryContent: this._telemetryContent,\n vertical: false\n };\n const initItemsFeatureCounter = 0;\n const createHeading = title && (\n \n );\n const viewProps = {\n ...this.props,\n title: createHeading,\n interactiveFeatureCollectionHeading: {\n className: 'ms-interactive-feature-collection__heading'\n },\n interactiveFeatureCollectionContainer: {\n moduleProps: this.props,\n className: classnames('ms-interactive-feature-collection', className)\n },\n interactiveFeatureCollectionDesktopContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-desktop'\n },\n interactiveFeatureCollectionMobileContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mobile'\n },\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer: {\n tag: 'li' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel',\n role: 'listitem'\n },\n interactiveFeatureCollectionMobileItems: this.props.slots.interactiveFeatureItems,\n interactiveFeatureCollectionDesktopItems:\n itemsFeatureCounter > initItemsFeatureCounter &&\n interactiveItems.map((item: React.ReactNode, index: number) =>\n InteractiveFeatureCollection._getFeatureItem(item, index, itemsFeatureCounter)\n )\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * To handle text change.\n * @param event - To handle text change event.\n * @name - HandleTextChange\n * @public\n * @returns - The Text value.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.title!.text = event.target.value);\n}\n\nexport default InteractiveFeatureCollection;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport 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\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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { BusinessPartnerUsersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport {\n AccountStatementRequest,\n BusinessPartnerOperationDeliveryType,\n CustomerBalances\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { getTelemetryObject, Heading, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { get } from 'lodash';\nimport { computed } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceData } from './account-customer-balance.data';\nimport { HeadingTag, IAccountCustomerBalanceProps } from './account-customer-balance.props.autogenerated';\nimport {\n AccountLabels,\n AccountValues,\n ActionBar,\n AdminRequestStatementButton,\n AvailableCreditComponent,\n BackButton,\n BalanceOwedComponent,\n CreditExcessComponent,\n RequestStatementModal\n} from './components';\n\nexport interface IAccountCustomerBalanceViewProps extends IAccountCustomerBalanceProps {\n heading: string;\n homeButton: React.ReactNode;\n accountSectionHeading: React.ReactNode;\n accountLabels: React.ReactNode;\n accountValues: React.ReactNode;\n creditSummarySectionHeading: React.ReactNode;\n creditSummaryLabels?: React.ReactNode;\n creditSummaryValues?: React.ReactNode;\n actions: React.ReactNode;\n requestStatementModal: React.ReactNode;\n availableCredit?: React.ReactNode;\n balanceOwed?: React.ReactNode;\n creditExcess?: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceState {\n isStatementRequestModalOpen: boolean;\n statementRequestFromDateString: string;\n statementRequestToDateString: string;\n isStatementRequestAdminDropdownOpen: boolean;\n statementRequestFullOrg: boolean;\n statementRequestMaxDateString?: string;\n}\n\n/**\n *\n * AccountCustomerBalance component.\n * @extends {React.PureComponent>}\n */\nclass AccountCustomerBalance extends React.PureComponent<\n IAccountCustomerBalanceProps,\n IAccountCustomerBalanceState\n> {\n private readonly telemetryContent?: ITelemetryContent;\n\n @computed get canSubmitStatementRequest(): boolean {\n return this.state.statementRequestFromDateString !== '' && this.state.statementRequestToDateString !== '';\n }\n\n constructor(props: IAccountCustomerBalanceProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.state = {\n isStatementRequestModalOpen: false,\n statementRequestFromDateString: '',\n statementRequestToDateString: '',\n isStatementRequestAdminDropdownOpen: false,\n statementRequestFullOrg: false,\n statementRequestMaxDateString: new Date().toISOString().split('T')[0]\n };\n }\n\n public render(): JSX.Element | null {\n const customer = get(this.props, 'data.customerInformation.result');\n const account: CustomerBalances = get(this.props, 'data.balance.result');\n if ([customer, account].includes(undefined)) {\n this.props.context.telemetry.error('Customer data is unavailable, module will not render');\n return null;\n }\n\n const { config, resources, context } = this.props;\n const { heading } = config;\n const {\n creditSummarySectionHeading,\n accountSectionHeading,\n backToShoppingText,\n customerSincePrefix,\n availableCreditLabel,\n balanceOwedLabel,\n creditExcessLabel,\n requestStatementButtonLabel,\n modalHeaderLabel,\n sendToEmailLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n cancelLabel,\n myAccountStatementLabel,\n fullOrganizationLabel,\n modalAriaLabel\n } = resources;\n\n const {\n isStatementRequestModalOpen,\n statementRequestFromDateString,\n statementRequestToDateString,\n statementRequestMaxDateString\n } = this.state;\n\n const accountNumber = customer.AccountNumber;\n const createdOn = this._formatJoinDate(new Date(customer.CreatedDateTime));\n const name = `${customer.FirstName} ${customer.LastName}`;\n let customerCredit = 0;\n let customerAccountBalance = 0;\n let excess = 0;\n\n if (account.InvoiceAccountCreditLimit === 0) {\n customerCredit = account.CreditLimit - account.Balance;\n customerAccountBalance = account.Balance;\n excess = account.Balance - account.CreditLimit;\n } else {\n customerCredit = account.InvoiceAccountCreditLimit - account.InvoiceAccountBalance;\n customerAccountBalance = account.InvoiceAccountBalance;\n excess = account.InvoiceAccountBalance - account.InvoiceAccountCreditLimit;\n }\n\n const creditExcess = excess > 0 ? this._formatCurrency(excess) : null;\n const availableCredit = this._formatCurrency(customerCredit);\n const balanceOwed = this._formatCurrency(customerAccountBalance);\n const backLink = Msdyn365.getUrlSync('home', context.actionContext) || '';\n const emailAddress = customer.Email;\n const isB2BSite = isChannelTypeB2B(this.props.context.request);\n const isB2BAdmin = isB2BSite && customer.IsB2bAdmin;\n\n const actionBar = isB2BAdmin ? (\n \n ) : (\n isB2BSite && (\n \n )\n );\n\n const viewProps = {\n ...this.props,\n heading: ,\n accountSectionHeading: (\n \n ),\n accountLabels: (\n \n ),\n accountValues: ,\n creditSummarySectionHeading: (\n \n ),\n availableCredit: ,\n balanceOwed: ,\n creditExcess: ,\n homeButton: ,\n actions: actionBar,\n requestStatementModal: isB2BSite && (\n \n )\n };\n\n return this.props.renderView(viewProps);\n }\n\n private _formatCurrency(currency: number): string {\n const currencyCode = get(this.props, 'context.request.channel.Currency');\n const formatCurrency = get(this.props, 'context.cultureFormatter.formatCurrency');\n\n return `${formatCurrency(currency.toFixed(2), currencyCode)}`;\n }\n\n private _formatJoinDate(date: Date): string {\n const i14nDate = new Intl.DateTimeFormat(this.props.context.actionContext.requestContext.locale, {\n month: 'long',\n day: 'numeric',\n year: 'numeric'\n });\n\n return i14nDate.format(date);\n }\n\n private readonly _showRequestStatementModal = (): void => {\n if (!this.state.isStatementRequestModalOpen) {\n this.setState({\n isStatementRequestModalOpen: true\n });\n }\n };\n\n private readonly _toggleModal = (): void => {\n this.setState({\n isStatementRequestModalOpen: false\n });\n };\n\n private readonly _toggleDropdown = (): 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 _adminShowRequestStatementModal = (isFullOrg: boolean) => {\n this.setState({\n statementRequestFullOrg: isFullOrg,\n isStatementRequestAdminDropdownOpen: false\n });\n\n this._showRequestStatementModal();\n };\n\n private readonly _requestStatement = () => {\n const customer = this.props.data.customerInformation.result!;\n const B2BUserId = this.props.data.b2bUserInformation?.result?.B2BUserId || '';\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\n };\n\n const context = { callerContext: this.props.context.actionContext };\n\n BusinessPartnerUsersDataActions.requestAccountStatementAsync(context, B2BUserId, statementRequest);\n\n this.setState({\n isStatementRequestModalOpen: false\n });\n };\n}\n\nexport default AccountCustomerBalance;\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 { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IPasswordResetInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst PasswordResetInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default PasswordResetInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as 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\n/// \n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observable, reaction, when } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IMapData } from './map.data';\nimport { IMapProps, IPushpinOptionsData } from './map.props.autogenerated';\n\n/**\n * Header Interface.\n */\nexport interface IHeader {\n headerProps: INodeProps;\n heading: React.ReactNode;\n}\n\n/**\n * MapViewProps Interface.\n */\nexport interface IMapViewProps extends IMapProps {\n ModuleProps: IModuleProps;\n Header: IHeader;\n MapProps: INodeProps;\n Map: Microsoft.Maps.Map | undefined;\n}\n\n/**\n *\n * Map component.\n * @extends {React.Component>}\n */\n@observer\nclass Map extends React.PureComponent> {\n @observable public map: Microsoft.Maps.Map | undefined;\n\n private readonly mapRef: React.RefObject = React.createRef();\n\n public constructor(props: IMapProps) {\n super(props);\n }\n\n public componentDidMount(): void {\n const {\n context: {\n telemetry,\n actionContext: {\n requestContext: { channel }\n }\n }\n } = this.props;\n\n if (channel && !channel.BingMapsApiKey) {\n telemetry.error('BingMapsApiKey is missing.');\n return;\n }\n\n if (channel && !channel.BingMapsEnabled) {\n telemetry.error('Map is disabled from HQ.');\n return;\n }\n\n if (this.props.data.storeSelectorStateManager.result?.isMapApiLoaded) {\n this._initMap();\n this._updateMap();\n }\n\n when(\n () => !!this.props.data.storeSelectorStateManager.result?.setMapModuleLoaded,\n () => {\n this.props.data.storeSelectorStateManager.result?.setMapModuleLoaded(true);\n }\n );\n\n reaction(\n () => this.props.data.storeSelectorStateManager.result?.loadMapApi,\n () => {\n this.props.data.storeSelectorStateManager.result?.loadMapApi({\n key: channel?.BingMapsApiKey,\n lang: this.props.context.actionContext.requestContext.locale,\n market: this.props.context?.actionContext?.requestContext?.channel?.ChannelCountryRegionISOCode\n });\n }\n );\n\n reaction(\n () => this.props.data.storeSelectorStateManager.result?.isMapApiLoaded,\n () => {\n this._initMap();\n }\n );\n\n reaction(\n () => {\n return [\n this.props.data.storeSelectorStateManager.result?.context?.orgUnitStoreInformation,\n this.props.data.storeSelectorStateManager.result?.selectedStoreLocationId,\n this.map\n ];\n },\n () => {\n this._updateMap();\n }\n );\n }\n\n public render(): JSX.Element | null {\n const {\n config: { heading, className },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n const shouldDisplayMap = storeSelectorStateManager?.listMapViewState.displayMap;\n\n const viewProps: IMapViewProps = {\n ...this.props,\n ModuleProps: {\n tag: 'div',\n moduleProps: this.props,\n className: classname('ms-map', { show: shouldDisplayMap }, className)\n },\n Header: {\n headerProps: { className: 'ms-map__header' },\n heading: heading?.text && (\n \n )\n },\n MapProps: {\n tag: 'div',\n className: 'ms-map__body',\n ref: this.mapRef\n },\n Map: this.map\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Method to be called on heading change.\n * @param event -Content Edit Event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Initialize the map.\n */\n private readonly _initMap = () => {\n const {\n context: {\n actionContext: {\n requestContext: { channel }\n }\n },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n if (storeSelectorStateManager?.isMapApiLoaded) {\n this.map = new Microsoft.Maps.Map(this.mapRef.current as HTMLElement, {\n credentials: channel?.BingMapsApiKey,\n pushpinAccessible: true\n });\n Microsoft.Maps.Events.addHandler(this.map, 'click', async () => {\n await storeSelectorStateManager.setSelectedStoreLocationId(undefined);\n });\n }\n };\n\n /**\n * Update the map.\n */\n private readonly _updateMap = () => {\n const pushpinOptions = this.props.config.pushpinOptions;\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager?.result;\n const orgUnitStoreInformation = storeSelectorStateManager?.context?.orgUnitStoreInformation;\n const selectedStoreLocationId = storeSelectorStateManager?.selectedStoreLocationId;\n\n if (this.map && orgUnitStoreInformation) {\n let mapLocation: OrgUnitLocation | undefined;\n this.map.entities.clear();\n const pushpins: Microsoft.Maps.IPrimitive[] = [];\n\n const storeLocationList = orgUnitStoreInformation.filter(store => store.OrgUnitAvailability !== undefined);\n\n for (const [index, unitStoreInfo] of storeLocationList.entries()) {\n const storeLocation = unitStoreInfo.OrgUnitAvailability?.OrgUnitLocation;\n\n if (storeLocation?.Latitude && storeLocation.Longitude) {\n const isSelectedLocation = selectedStoreLocationId === storeLocation.OrgUnitNumber;\n const options = this._getPushpinOptions(isSelectedLocation, index, pushpinOptions);\n const pushpin = new Microsoft.Maps.Pushpin(\n new Microsoft.Maps.Location(storeLocation.Latitude, storeLocation.Longitude),\n options\n );\n\n Microsoft.Maps.Events.addHandler(pushpin, 'click', () => {\n this.handleClickEvent(storeLocation.OrgUnitNumber);\n });\n isSelectedLocation ? pushpins.unshift(pushpin) : pushpins.push(pushpin);\n\n if (isSelectedLocation) {\n mapLocation = storeLocation;\n }\n }\n }\n\n if (mapLocation) {\n const currentLocation = new Microsoft.Maps.Location(mapLocation.Latitude, mapLocation.Longitude);\n this.map.setView({ center: currentLocation });\n } else {\n // Create a LocationRect from array of pushpins and set the map view.\n this.map.setView({\n bounds: Microsoft.Maps.LocationRect.fromShapes(pushpins)\n });\n }\n\n this.map.setOptions({ pushpinAccessible: true });\n this.map.entities.push(pushpins);\n }\n };\n\n /**\n * Handle click event.\n * @param orgUnitNumber - Organization unit number.\n */\n private readonly handleClickEvent = (orgUnitNumber: string | undefined): void => {\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager.result;\n storeSelectorStateManager?.setSelectedStoreLocationId(undefined);\n if (orgUnitNumber) {\n setTimeout(() => {\n storeSelectorStateManager?.setSelectedStoreLocationId(orgUnitNumber);\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- Time out.\n }, 500);\n }\n };\n\n /**\n * Get the pushpin option.\n * @param isSelectedLocation - Is selected location.\n * @param index - Index.\n * @param pushpinOptions - PushpinOptions.\n * @returns - The pushpin options.\n */\n private readonly _getPushpinOptions = (isSelectedLocation: boolean, index: number, pushpinOptions?: IPushpinOptionsData) => {\n const text = pushpinOptions?.showIndex ? (index + 1).toString() : undefined;\n\n const size = pushpinOptions?.size || 1;\n const color = isSelectedLocation ? pushpinOptions?.selectionColor || pushpinOptions?.color : pushpinOptions?.color;\n const icon = this._getSvgIcon(size, color, text);\n\n return {\n // Fallback if icon doesn't render properly\n color: isSelectedLocation ? pushpinOptions?.selectionColor : pushpinOptions?.color,\n icon\n };\n };\n\n private readonly _getSvgIcon = (size: number, color?: string, text?: string) => {\n const baseValue: number = 32;\n return `\n \n ${text ? `${text}` : ''}\n `;\n };\n}\n\nexport default Map;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountAddressTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountAddressTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n\nexport default IAccountAddressTileDescription;\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\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 {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterItemConfig, IFooterItemProps, IHeadingData, ILinkData } from './footer-item.props.autogenerated';\n\nexport interface IFooterViewProps extends IFooterItemProps {\n heading: React.ReactNode;\n image: React.ReactNode;\n text: React.ReactNode;\n linkText: React.ReactNode;\n className?: string;\n FooterItem: IModuleProps;\n HeadingContainer: INodeProps;\n ItemContainer: INodeProps;\n Link: INodeProps;\n EditableLink: React.ReactNode;\n}\n\n/**\n *\n * FooterItem component.\n * @extends {React.PureComponent>}\n */\nexport class FooterItem extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private attributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: IFooterItemProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n // Construct telemetry attribute to render\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public render(): JSX.Element {\n const { heading, image, link, text } = this.props.config;\n const footerItemClassName = classnames('ms-footer__item', this.props.config.className);\n const linkText = link && link.linkText ? link.linkText : '';\n this.payLoad.contentAction.etext = linkText;\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n const viewProps: IFooterViewProps = {\n ...this.props,\n heading: this._createHeading(heading!),\n image: this._createImageMarkup(image!),\n text: this._createText(text!),\n linkText: this._createLinkText(link!),\n EditableLink: this._createLink(link!),\n\n FooterItem: {\n moduleProps: this.props,\n className: footerItemClassName\n },\n\n HeadingContainer: {\n className: 'ms-footer__heading'\n },\n\n ItemContainer: {\n className: 'ms-footer__link__container'\n },\n\n // @ts-expect-error\n Link: link &&\n link.linkUrl &&\n link.linkUrl.destinationUrl && {\n tag: 'a',\n role: 'link',\n className: 'ms-footer__link',\n href: link.linkUrl.destinationUrl,\n title: linkText,\n 'aria-label': link.ariaLabel,\n target: link.openInNewTab ? '_blank' : undefined,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText),\n ...this.attributes\n },\n className: footerItemClassName\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.text = event.target.value);\n\n public handleLinkTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.link!.linkText = event.target.value);\n\n private _createLink(link: ILinkData): React.ReactNode | null {\n if (link) {\n const linkText = link.linkText ? link.linkText : '';\n\n // TODO: Update the inner tag in the anchor link to span\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-footer__link',\n linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: this.attributes!,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText)\n };\n return (\n \n );\n }\n return null;\n }\n\n private _createLinkText(link: ILinkData): React.ReactNode | null {\n if (!link || !link.linkText) {\n return null;\n }\n\n return {link.linkText};\n }\n\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\n if (!heading || !heading.text || heading.text.length === 0) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _createText(text: string): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createImageMarkup(item: Msdyn365.IImageData, ariaHiddenAttr?: boolean): React.ReactNode | null {\n if (!item || !item.src || item.src.length === 0) {\n return null;\n }\n\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=24&h=24&m=6', w: 0, h: 0 },\n lg: { q: 'w=24&h=24&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n return (\n \n );\n }\n}\n\nexport default FooterItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { addThrottledEvent, Drawer, IModuleProps, INodeProps, KeyCodes, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport React from 'react';\n\nimport { ISitePickerConfig, ISitePickerProps } from './site-picker.props.autogenerated';\n\nexport interface ISitePickerViewProps extends ISitePickerProps {\n SitePicker: IModuleProps;\n SitePickerMenu: INodeProps;\n SitePickerMenuSpan: INodeProps;\n SitePickerMenuList: INodeProps;\n SitePickerMenuListItem: INodeProps;\n SitePickerMenuListItemArray: React.ReactNode[] | undefined;\n siteOptionsState: boolean;\n SitePickerMobileContainer: INodeProps;\n isMobileView: boolean;\n renderSiteOptions(): void;\n resetSiteOptionsState(): void;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\ninterface ISitePickerState {\n expandSiteOptions: boolean;\n isMobile: boolean;\n}\n\n/**\n *\n * SitePicker component.\n * @extends {React.PureComponent>}\n */\nclass SitePicker extends React.PureComponent, ISitePickerState> {\n private readonly _cookieName: string = '_msdyn365___site_';\n\n private readonly _cookieExpirationInSeconds: number = 5_184_000;\n\n private readonly _sitePickerMenuNode: React.RefObject;\n\n private readonly _sitePickerMenuButton: React.RefObject;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\n @observable\n private viewport: GridSize;\n\n public constructor(props: ISitePickerViewProps) {\n super(props);\n this._handleChange = this._handleChange.bind(this);\n this._sitePickerMenuNode = React.createRef();\n this._sitePickerMenuButton = React.createRef();\n this._renderSiteOptions = this._renderSiteOptions.bind(this);\n this._resetSiteOptionsState = this._resetSiteOptionsState.bind(this);\n this._escFunction = this._escFunction.bind(this);\n this._handleOutsideClick = this._handleOutsideClick.bind(this);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this.state = {\n expandSiteOptions: false,\n isMobile: this.isMobile\n };\n }\n\n @computed get isMobile(): boolean {\n return this.viewport === 'xs' || this.viewport === 'sm';\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document?.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.addEventListener('mousedown', this._handleOutsideClick);\n this.resizeThrottledEventHandler = window && addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document?.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.removeEventListener('mousedown', this._handleOutsideClick, false);\n window && window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n\n public render(): JSX.Element | null {\n const viewProps: ISitePickerViewProps = {\n ...(this.props as ISitePickerProps),\n SitePicker: {\n moduleProps: this.props,\n className: classnames('ms-site-picker', this.props.config.className, this.state.isMobile ? 'mobile-view' : 'desktop-view'),\n tag: 'div'\n },\n SitePickerMenu: {\n tag: 'button' as NodeTag,\n className: 'ms-site-picker__button',\n 'aria-label': this.props.config.heading?.text,\n 'aria-expanded': this.state.expandSiteOptions,\n onClick: this.props,\n ref: this._sitePickerMenuButton\n },\n SitePickerMenuSpan: {\n className: 'ms-site-picker__span',\n tag: 'span'\n },\n SitePickerMenuList: {\n className: 'ms-site-picker__list',\n role: 'menu',\n tag: 'ul',\n ref: this._sitePickerMenuNode\n },\n SitePickerMenuListItem: {\n className: 'ms-site-picker__list__item',\n role: 'presentation',\n tag: 'li'\n },\n SitePickerMobileContainer: {\n tag: Drawer,\n className: 'ms-site-picker__drawer',\n toggleButtonText: this.props.config.heading?.text,\n openGlyph: 'ms-site-picker__drawer-open',\n closeGlyph: 'ms-site-picker__drawer-close',\n glyphPlacement: 'end'\n },\n isMobileView: this.state.isMobile,\n SitePickerMenuListItemArray: this._renderSitePickerImage(),\n renderSiteOptions: this._renderSiteOptions,\n resetSiteOptionsState: this._resetSiteOptionsState,\n siteOptionsState: this.state.expandSiteOptions\n };\n return this.props.renderView(viewProps);\n }\n\n private _renderSiteOptions(): void {\n const expandSiteOptionsState = this.state.expandSiteOptions;\n this.setState({\n expandSiteOptions: !expandSiteOptionsState\n });\n }\n\n private _resetSiteOptionsState(): void {\n this.setState({\n expandSiteOptions: false\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _escFunction = (event: any) => {\n const key = event.keyCode;\n if (this.state.expandSiteOptions) {\n switch (key) {\n case KeyCodes.Escape: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n this._sitePickerMenuButton?.current?.contains(nextFocus) ||\n this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n this._sitePickerMenuButton?.current?.focus();\n }\n }, 50);\n break;\n }\n case KeyCodes.Tab: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n !this._sitePickerMenuButton?.current?.contains(nextFocus) &&\n !this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n }\n }, 50);\n break;\n }\n default:\n return;\n }\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _handleOutsideClick = (event: any) => {\n if (\n (this._sitePickerMenuButton.current?.contains(event.target) && this.state.expandSiteOptions) ||\n (this._sitePickerMenuNode.current?.contains(event.target) && this.state.expandSiteOptions)\n ) {\n return;\n }\n this._resetSiteOptionsState();\n };\n\n private _handleChange(e: React.MouseEvent): void {\n e.preventDefault();\n if (e.currentTarget.href && e.currentTarget.href.length > 0 && window) {\n if (this.props.context.request.cookies.isConsentGiven()) {\n const cookieConfig = { maxAge: this._cookieExpirationInSeconds };\n this.props.context.request.cookies.set(this._cookieName, e.currentTarget.href, cookieConfig);\n }\n window.location.assign(e.currentTarget.href);\n }\n }\n\n private _renderSitePickerImage(): React.ReactNode[] | undefined {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n sm: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n md: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n lg: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n xl: { q: 'w=40&h=20&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n const siteOptions = this.props.config.siteOptions && this.props.config.siteOptions;\n return (\n siteOptions &&\n siteOptions.map((item, index) => {\n const image = item?.siteImage;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings?.viewports ? image.imageSettings : defaultImageSettings\n };\n return (\n \n {item?.siteName}\n \n \n );\n })\n );\n }\n\n private _updateViewport(): void {\n this.viewport = this._getViewport();\n this.setState({ isMobile: this.isMobile });\n }\n\n private _getViewport(): GridSize {\n const { context } = this.props;\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (typeof window !== undefined && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n return 'xs';\n }\n}\n\nexport default SitePicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst PasswordResetButton: React.FC = ({ id, className, text, ariaLabel, disabled, telemetryContent, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default PasswordResetButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n NodeTag,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createAccordionStateInput } from '../..';\nimport { IAccordionData } from './accordion.data';\nimport { IAccordionProps } from './accordion.props.autogenerated';\n\n/**\n *\n * Accordion component.\n * @extends {React.PureComponent>}\n */\n\nexport interface ICallToActionProps {\n link: INodeProps[];\n}\n\n/**\n * Added interface for state management.\n */\nexport interface IAccordianState {\n isDisabled: boolean;\n}\n\nexport interface IAccordionViewProps extends IAccordionProps<{}> {\n heading?: React.ReactNode;\n AccordionContainer: IModuleProps;\n HeaderSection: INodeProps;\n HeadingWrapper: INodeProps;\n accordianButtonsContainer: INodeProps;\n accordionButtons: React.ReactNode;\n accordionItemContainer: INodeProps;\n accordionItems: React.ReactNode;\n}\n\n/**\n *\n * Accordion component.\n * @extends {React.Component>}\n */\n@observer\nclass Accordion extends React.PureComponent, IAccordianState> {\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private readonly expandAllButtonRef: React.RefObject = React.createRef();\n\n private readonly collapseAllButtonRef: React.RefObject = React.createRef();\n\n constructor(props: IAccordionProps) {\n super(props);\n this._onExpandAll = this._onExpandAll.bind(this);\n this._onCollapseAll = this._onCollapseAll.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n this.state = { isDisabled: false };\n }\n\n public render(): JSX.Element {\n const { slots } = this.props;\n const { heading, className } = this.props.config;\n const headingComponent = heading && heading.text && (\n \n );\n\n const accordionViewProps = {\n ...this.props,\n AccordionContainer: {\n moduleProps: this.props,\n className: classnames('ms-accordion', className)\n },\n HeaderSection: { className: 'ms-accordion-header-section' },\n HeadingWrapper: { className: 'ms-accordion-header-section-container' },\n heading: headingComponent,\n config: this.props && this.props.config,\n accordianButtonsContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-accordion-header-section-toggle-button-container'\n },\n accordionButtons: this._renderAccordionButton(),\n accordionItemContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-accordion-item-section'\n },\n accordionItems:\n slots &&\n slots.accordionItems &&\n slots.accordionItems.length > 0 &&\n slots.accordionItems.map((item: React.ReactNode, index: number) => this._getAccordionItem(item, index))\n };\n return this.props.renderView(accordionViewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n private _renderAccordionButton(): React.ReactNode | null {\n const { config, resources } = this.props;\n const { heading } = config;\n this.payLoad.contentAction.etext = TelemetryConstant.ExpandAll;\n const attributeExpandAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = TelemetryConstant.CollapseAll;\n const attributeCollapseAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n if (!config.showToggleAll) {\n this.props.context.telemetry.error('Accordion button content is empty, module wont render');\n return null;\n }\n return (\n <>\n \n {resources.expandAllText}\n \n  \n {resources.toggleAllSeparator}\n  \n \n {resources.collapseAllText}\n \n \n );\n }\n\n private _onExpandAll(): void {\n const accordionState = { isAllExpanded: true };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (accordionState.isAllExpanded) {\n this.setState({\n isDisabled: true\n });\n setTimeout(() => {\n this.collapseAllButtonRef.current?.focus();\n }, 50);\n }\n }\n\n private _onCollapseAll(): void {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (!accordionState.isAllExpanded) {\n this.setState({\n isDisabled: false\n });\n setTimeout(() => {\n this.expandAllButtonRef.current?.focus();\n }, 50);\n }\n }\n\n private _getAccordionItem(item: React.ReactNode, index: number): React.ReactNode {\n return (\n \n {React.cloneElement(item as React.ReactElement, { interactionStyle: this.props.config.interactionStyle })}\n \n );\n }\n}\n\nexport default Accordion;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IPasswordResetVerificationInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst PasswordResetVerificationInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n onChange\n}) => (\n \n);\n\nexport default PasswordResetVerificationInput;\n","/*!\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 { IAccountWelcomeTileViewProps } from './account-welcome-tile';\n\nconst AccountWelcomeTileView: React.FC = props => {\n const { AccountWelcomeTile, heading } = props;\n\n return {heading};\n};\n\nexport default AccountWelcomeTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountInvoiceTileViewProps } from './account-invoice-tile';\n\nexport default (props: IAccountInvoiceTileViewProps) => {\n const { AccountInvoiceTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLoadingMessage {\n className: string;\n message: string;\n}\n\nconst AccountProfileEditLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default AccountProfileEditLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * 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-address-tile.props.autogenerated';\n\nexport interface IAccountAddressTileLinks {\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 AccountAddressTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n\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-address-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 AccountAddressTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IHeader, IMapViewProps } from './map';\n\n/**\n * Render the heading.\n * @param param0 -- Heading props.\n * @param param0.headerProps -- Heading Props.\n * @param param0.heading -- Heading Node.\n * @returns -- Returns the node.\n */\nconst MapHeader: React.FC = ({ headerProps, heading }) => {heading};\n\n/**\n * Renders the map view props.\n * @param param0 -- Map view props.\n * @param param0.ModuleProps -- Module props.\n * @param param0.Header -- Header props.\n * @param param0.MapProps -- Map props.\n * @returns -- Returns the map module.\n */\nconst MapView: React.FC = ({ ModuleProps, Header, MapProps }) => (\n \n {Header && }\n \n \n);\n\nexport default MapView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLoadingMessage {\n className: string;\n message: string;\n}\n\nconst SignUpLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default SignUpLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IFooterViewProps } from './footer-item';\n\n/**\n *\n * FooterItemView component.\n * @extends {React.PureComponent}\n */\nexport class FooterItemView extends React.PureComponent {\n public render(): JSX.Element | null {\n const { FooterItem } = this.props;\n return {this._renderElement(this.props)};\n }\n\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\n if (heading) {\n return {heading} ;\n } else if (Link && image) {\n return (\n \n {linkText}\n {image}\n \n );\n } else if (Link) {\n return EditableLink;\n }\n return (\n <>\n {text}\n {image}\n \n );\n }\n}\n\nexport default FooterItemView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AdminRequestStatementButton, RequestStatementModal } from './components';\n\nexport { AdminRequestStatementButton, RequestStatementModal };\n\nexport * from './account-customer-balance';\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IAccountProfileEditInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst AccountProfileEditInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default AccountProfileEditInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLoadingIcon {\n className: string;\n}\n\nconst PasswordResetLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default PasswordResetLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport AccountOrderTemplatesTile from './account-order-templates-tile';\nimport AccountOrderTemplatesTileView from './account-order-templates-tile.view';\n\nexport * from './account-order-templates-tile';\nexport * from './account-order-templates-tile.data';\nexport {\n IAccountOrderTemplatesTileConfig,\n IAccountOrderTemplatesTileProps,\n IAccountOrderTemplatesTileResources\n} from './account-order-templates-tile.props.autogenerated';\nexport * from './account-order-templates-tile.view';\n\nexport { AccountOrderTemplatesTile, AccountOrderTemplatesTileView };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './sign-in-button';\nexport * from './sign-in-description';\nexport * from './sign-in-error';\nexport * from './sign-in-input';\nexport * from './sign-in-label';\nexport * from './sign-in-link';\nexport * from './sign-in-loading-icon';\nexport * from './sign-in-loading-message';\nexport * from './sign-in-text';\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { ICoreContext, IDateFormatOptions, IRequestContext } from '@msdyn365-commerce/core';\nimport { BusinessPartnerOperationRequest, BusinessPartnerOperationRequestDetails } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n IDataTableProps,\n IHeadingsProperty,\n ITableItemProps,\n ITableRowProps,\n Table,\n TableDataType\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IB2bRequestsStatusData } from '../b2b-requests-status.data';\nimport { IB2bRequestsStatusProps } from '../b2b-requests-status.props.autogenerated';\n\nexport interface IB2bRequestsTableProps {\n moduleProps: IB2bRequestsStatusProps;\n isMobile: boolean;\n mobileExcludedColumns: string[];\n}\n\nexport interface IB2bRequestsTableResources {\n b2bRequestsTypeCreateProspect: string;\n b2bRequestsTypeAddUser: string;\n b2bRequestsTypeEditUser: string;\n b2bRequestsTypeDeleteUser: string;\n b2bRequestsTypeRequestAccountStatement: string;\n b2bRequestsTypeRequestInvoiceCopy: string;\n b2bRequestsTypeUnknown: string;\n b2bRequestsStatusRequested: string;\n b2bRequestsStatusProcessed: string;\n b2bRequestsStatusError: string;\n b2bRequestsNumberOfItems: string;\n b2bRequestsNumberOfItemsSingular: string;\n b2bRequestsNameDisplay: string;\n b2bRequestsPreviousText: string;\n b2bRequestsNextText: string;\n b2bRequestsUserColumn: string;\n b2bRequestsStatusColumn: string;\n b2bRequestsRequestDateColumn: string;\n b2bRequestsTypeColumn: string;\n b2bRequestsDescriptionColumn: string;\n b2bRequestsAccountStatementDetails: string;\n b2bRequestsInvoiceCopyDetails: string;\n businessUserSelectCheckBoxAriaLabelText?: string;\n sortByAscending?: string;\n sortByDescending?: string;\n}\n\nexport enum RequestsTableColumnHeader {\n Name = 'User',\n Status = 'Status',\n RequestDate = 'Request date',\n Type = 'Request type',\n Description = 'Request detail'\n}\n\nconst 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\nconst getUserName = (request: BusinessPartnerOperationRequest, resources: IB2bRequestsTableResources) => {\n if (StringExtensions.isNullOrEmpty(request.UserFirstName)) {\n if (StringExtensions.isNullOrEmpty(request.UserLastName)) {\n return '';\n }\n\n return request.UserLastName;\n } else if (StringExtensions.isNullOrEmpty(request.UserLastName)) {\n return request.UserFirstName;\n }\n\n return resources.b2bRequestsNameDisplay.replace('{0}', request.UserFirstName!).replace('{1}', request.UserLastName!);\n};\n\nconst formatDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\n/**\n * Gets the value to display for the request details.\n * @param request - The request to parse for the details.\n * @param resources - The resources.\n * @param context - The context.\n * @returns The string to display.\n */\nconst getDetails = (request: BusinessPartnerOperationRequest, resources: IB2bRequestsTableResources, context: ICoreContext) => {\n if (!request.Details) {\n return '';\n }\n\n const requestDetails: BusinessPartnerOperationRequestDetails = request.Details;\n\n const accountStatementStartDateTime = formatDate(context, requestDetails.AccountStatementStartDateTime) || '';\n const accountStatementEndDateTime = formatDate(context, requestDetails.AccountStatementEndDateTime) || '';\n const invoiceId = requestDetails.InvoiceId ?? '';\n\n switch (request.TypeValue) {\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- workaround for not being able to use enum value\n case 5:\n if (\n !StringExtensions.isNullOrEmpty(accountStatementStartDateTime) &&\n !StringExtensions.isNullOrEmpty(accountStatementEndDateTime)\n ) {\n return resources.b2bRequestsAccountStatementDetails\n .replace('{0}', accountStatementStartDateTime)\n .replace('{1}', accountStatementEndDateTime);\n }\n\n return '';\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- workaround for not being able to use enum value\n case 6:\n if (!StringExtensions.isNullOrEmpty(invoiceId)) {\n return resources.b2bRequestsInvoiceCopyDetails.replace('{0}', invoiceId);\n }\n\n return '';\n default:\n return '';\n }\n};\n\nconst createTableItems = (\n operationRequests: BusinessPartnerOperationRequest[] | undefined,\n props: IB2bRequestsStatusProps\n): ITableRowProps[] => {\n if (!ArrayExtensions.hasElements(operationRequests)) {\n return [];\n }\n\n return operationRequests.map(request => {\n return {\n row: [\n {\n id: props.resources.b2bRequestsTypeColumn,\n type: TableDataType.Text,\n value: getDisplayFriendlyTypeValue(request.TypeValue ?? 0, props.resources)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsRequestDateColumn,\n type: TableDataType.Text,\n value: formatDate(props.context, request.CreatedDateTime)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsDescriptionColumn,\n type: TableDataType.Text,\n value: getDetails(request, props.resources, props.context)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsUserColumn,\n type: TableDataType.Text,\n value: getUserName(request, props.resources)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsStatusColumn,\n type: TableDataType.Text,\n value: getDisplayFriendlyStatusValue(request.StatusValue ?? 0, props.resources)\n } as ITableItemProps\n ],\n isSelected: false,\n className: props.config.className\n };\n });\n};\n\nconst getDisplayFriendlyTypeValue = (typeValue: number, resources: IB2bRequestsTableResources): string => {\n switch (typeValue) {\n case 1:\n return resources.b2bRequestsTypeCreateProspect;\n case 2:\n return resources.b2bRequestsTypeAddUser;\n case 3:\n return resources.b2bRequestsTypeDeleteUser;\n case 4:\n return resources.b2bRequestsTypeEditUser;\n case 5:\n return resources.b2bRequestsTypeRequestAccountStatement;\n case 6:\n return resources.b2bRequestsTypeRequestInvoiceCopy;\n default:\n return resources.b2bRequestsTypeUnknown;\n }\n};\n\nconst getDisplayFriendlyStatusValue = (statusValue: number, resources: IB2bRequestsTableResources): string => {\n switch (statusValue) {\n case 1:\n return resources.b2bRequestsStatusProcessed;\n case 2:\n return resources.b2bRequestsStatusError;\n default:\n return resources.b2bRequestsStatusRequested;\n }\n};\n\nconst createTableProps = (tableProps: IB2bRequestsTableProps) => {\n const { context, data, resources } = tableProps.moduleProps;\n\n const tableData = createTableItems(data.operationRequests.result, tableProps.moduleProps);\n const tableHeading =\n (ArrayExtensions.hasElements(tableData) &&\n tableData[0].row\n .filter(item => {\n // Check that this is either not mobile or the column should be displayed when mobile.\n return !tableProps.isMobile || !tableProps.mobileExcludedColumns.includes(item.id);\n })\n .map(item => {\n return {\n name: item.id,\n sortable: true,\n ariaLabel: resources.columnSortAriaLabel\n } as IHeadingsProperty;\n })) ||\n [];\n\n return {\n resources: {},\n headings: tableHeading,\n rows: tableData,\n className: `${tableProps.moduleProps.config.className}__table`,\n editLinkText: '',\n deleteLinkText: '',\n viewLinkText: '',\n enableToModify: false,\n actionLinkText: '',\n showCheckBoxes: false,\n isSortable: true,\n showPagination: true,\n minifyActions: tableProps.isMobile,\n excludedColumns: tableProps.isMobile ? tableProps.mobileExcludedColumns : [],\n paginationProperty: {\n skipCount:\n context.request.query?.skip && !isNaN(Number.parseInt(context.request.query.skip, 10))\n ? Number.parseInt(context.request.query.skip, 10)\n : 0,\n itemPerPage: 10,\n prevText: resources.b2bRequestsPreviousText,\n nextText: resources.b2bRequestsNextText,\n paginationText: '',\n url: (context && getCurrentUrl(context.request).href) || ''\n },\n isSingleSelectOnly: true,\n actions: {\n onDelete: undefined,\n onEdit: undefined,\n onView: undefined\n },\n businessUserSelectCheckBoxAriaLabelText: tableProps.moduleProps.resources.businessUserSelectCheckBoxAriaLabelText,\n sortByAscending: tableProps.moduleProps.resources.sortByAscending,\n sortByDescending: tableProps.moduleProps.resources.sortByDescending\n } as IDataTableProps;\n};\n\nexport const B2bRequestsTable: React.FC = (tableProps: IB2bRequestsTableProps) => {\n return
;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { format, Heading, IModuleProps, isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport { computed } from 'mobx';\nimport * as React from 'react';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\n\nimport { IB2bRequestsStatusData } from './b2b-requests-status.data';\nimport { IB2bRequestsStatusProps, IHeadingData } from './b2b-requests-status.props.autogenerated';\nimport { B2bRequestsTable } from './components/b2b-requests-table';\n\nexport interface IB2bRequestsStatusViewProps extends IB2bRequestsStatusProps {\n b2bRequestsStatus: IModuleProps;\n heading?: React.ReactNode;\n table: React.ReactNode;\n}\n\n/**\n *\n * B2bRequestsStatus component.\n * @extends {React.PureComponent>}\n */\nclass B2bRequestsStatus extends React.PureComponent> {\n @computed get isMobile(): boolean {\n const size = isMobile({ variant: VariantType.Viewport, context: this.props.context.request });\n return size === 'xs';\n }\n\n public render(): JSX.Element | null {\n const { config } = this.props;\n\n if (!isChannelTypeB2B(this.props.context.actionContext.requestContext)) {\n return null;\n }\n\n const className = config.className || '';\n\n const viewProps = {\n ...this.props,\n b2bRequestsStatus: {\n moduleProps: this.props,\n className\n },\n heading: this.renderHeader(className, config.heading),\n table: this.renderTable()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private readonly renderHeader = (className: string, headingData: IHeadingData): React.ReactNode => {\n const itemCount = this.props.data.operationRequests.result?.length ?? 0;\n\n return (\n
\n \n {this.getItemNumberDisplayString(itemCount)}\n
\n );\n };\n\n /**\n * Returns columns that needs to be excluded for mobile view.\n * @returns Array of column names.\n */\n private readonly _retrieveExcludedColumns = (): string[] => {\n const { resources } = this.props;\n return [resources.b2bRequestsRequestDateColumn, resources.b2bRequestsDescriptionColumn, resources.b2bRequestsUserColumn];\n };\n\n private readonly renderTable = (): React.ReactNode => {\n return (\n \n );\n };\n\n private readonly getItemNumberDisplayString = (itemCount: number): string => {\n switch (itemCount) {\n case 0:\n return '';\n case 1:\n return format(this.props.resources.b2bRequestsNumberOfItemsSingular, itemCount);\n default:\n return format(this.props.resources.b2bRequestsNumberOfItems, itemCount);\n }\n };\n}\n\nexport default B2bRequestsStatus;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IPasswordResetVerificationItem,\n IPasswordResetVerificationLoading,\n IPasswordResetVerificationLocalAccount,\n IPasswordResetVerificationViewProps\n} from './password-reset-verification';\n\nconst PasswordResetVerificationItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n verificationControlWrapper,\n items,\n successMessage,\n errorMessage,\n verificationButtonsWrapper,\n verificationButtons,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n \n {successMessage &&\n successMessage.map((message: React.ReactNode, index: number) => {\n return {message};\n })}\n {items &&\n items.map((item: IPasswordResetVerificationItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {verificationButtons &&\n verificationButtons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n \n );\n};\n\nconst PasswordResetVerificationLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetVerificationView: React.FC = props => {\n const {\n passwordResetVerification,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n heading,\n passwordResetVerificationLocalAccount\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetVerificationLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetVerificationView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceViewProps } from './account-customer-balance';\n\nexport default (props: IAccountCustomerBalanceViewProps) => {\n const {\n heading,\n accountSectionHeading,\n creditSummarySectionHeading,\n accountLabels,\n accountValues,\n creditSummaryLabels,\n creditSummaryValues,\n homeButton,\n actions,\n requestStatementModal,\n availableCredit,\n balanceOwed,\n creditExcess\n } = props;\n\n return (\n \n {heading}\n {requestStatementModal}\n {actions}\n {accountSectionHeading}\n
\n {accountLabels}\n {accountValues}\n
\n {creditSummarySectionHeading}\n
\n {creditSummaryLabels}\n {creditSummaryValues}\n {availableCredit}\n {balanceOwed}\n {creditExcess}\n
\n {homeButton}\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 LoyaltyTerms from './loyalty-terms';\nimport LoyaltyTermsView from './loyalty-terms.view';\n\nexport * from './components';\nexport * from './loyalty-terms';\nexport * from './loyalty-terms.data';\nexport { ILoyaltyTermsConfig, ILoyaltyTermsProps, ILoyaltyTermsResources } from './loyalty-terms.props.autogenerated';\nexport * from './loyalty-terms.view';\n\nexport { LoyaltyTerms, LoyaltyTermsView };\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 ISignUpLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst SignUpLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default SignUpLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport B2bRequestsTile from './b2b-requests-tile';\nimport B2bRequestsTileView from './b2b-requests-tile.view';\n\nexport * from './b2b-requests-tile';\nexport * from './b2b-requests-tile.data';\nexport { IB2bRequestsTileConfig, IB2bRequestsTileProps } from './b2b-requests-tile.props.autogenerated';\nexport * from './b2b-requests-tile.view';\n\nexport { B2bRequestsTile, B2bRequestsTileView };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileEditConfig, IAccountProfileEditProps } from './account-profile-edit.props.autogenerated';\nimport AccountProfileEditButtonComponent from './components/account-profile-edit-button';\nimport AccountProfileEditErrorComponent from './components/account-profile-edit-error';\nimport AccountProfileEditInputComponent from './components/account-profile-edit-input';\nimport AccountProfileEditLabelComponent from './components/account-profile-edit-label';\nimport AccountProfileEditLoadingIconComponent from './components/account-profile-edit-loading-icon';\nimport AccountProfileEditLoadingMessageComponent from './components/account-profile-edit-loading-message';\n\nexport interface IAccountProfileEditViewState {\n isShowLoading: boolean;\n}\n\nexport interface IAccountProfileEditItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IAccountProfileEditLocalAccount {\n localAccount: INodeProps;\n items: IAccountProfileEditItem[];\n errorMessage: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IAccountProfileEditLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IAccountProfileEditViewProps {\n className: string;\n viewState: IAccountProfileEditViewState;\n loading: IAccountProfileEditLoading;\n accountProfileEdit: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n accountProfileEditLocalAccount: IAccountProfileEditLocalAccount;\n}\n\n/**\n *\n * AccountProfileEdit component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass AccountProfileEdit extends React.Component> {\n private readonly moduleClassName: string = 'ms-account-profile-edit';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @observable private givenName: string;\n\n @observable private surname: string;\n\n @observable private email: string;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IAccountProfileEditProps) {\n super(props);\n this.givenName = '';\n this.surname = '';\n this.email = '';\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IAccountProfileEditProps,\n nextState: IAccountProfileEditViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n accountProfileEdit: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && config.heading.text && (\n \n ),\n accountProfileEditLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public onTextBoxChange = (event: React.ChangeEvent) => {\n const id = event.target.id;\n const value = event.target.value;\n\n switch (id.toLowerCase()) {\n case 'givenname': {\n this.givenName = value;\n break;\n }\n case 'surname': {\n this.surname = value;\n break;\n }\n case 'email': {\n this.emailRegex = value;\n break;\n }\n default:\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n const { resources } = this.props;\n const invalidEmailAddressError = resources.invalidEmailAddressError || 'Please enter a valid email address.';\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map(\n (obj: { ID: string; PRE: string; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string }) => {\n const value = obj.PRE ? this._htmlDecode(obj.PRE) : '';\n switch (obj.ID.toLowerCase()) {\n case 'givenname': {\n this.givenName = value;\n break;\n }\n case 'surname': {\n this.surname = value;\n break;\n }\n case 'email': {\n this.email = value;\n this.emailRegex = obj.PAT;\n obj.PAT_DESC = invalidEmailAddressError;\n break;\n }\n default:\n }\n }\n );\n }\n };\n\n private _htmlDecode(str: string): string {\n const e = document.createElement('div');\n\n e.innerHTML = str;\n return e.childNodes.length === 0 ? '' : e.childNodes[0].nodeValue || '';\n }\n\n private readonly _updateErrorMessage = () => {\n const { resources } = this.props;\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n required_field: resources.requiredFieldMissingError,\n verifying_blurb: resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n };\n\n private _renderLocalAccount(): IAccountProfileEditLocalAccount {\n const { config, resources } = this.props;\n const localAccount = {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('givenName', 'text', this.givenName, resources.firstNameLabelText, resources.firstNameMaxLength),\n this._renderInput('surname', 'text', this.surname, resources.lastNameLabelText, resources.lastNameMaxLength)\n ],\n errorMessage: [\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n\n if (config.showEmail && this.email !== '') {\n localAccount.items.push(\n this._renderInput('email', 'email', this.email, resources.emailAddressLabelText, undefined, this.emailRegex)\n );\n }\n\n return localAccount;\n }\n\n private _renderInput(\n id: string,\n type: string,\n value: string,\n labelText: string,\n maxLength?: string,\n pattern?: string\n ): IAccountProfileEditItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default AccountProfileEdit;\n"],"sourceRoot":""}