{"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/themes/gardner-theme-b2c/views/account-profile.view.tsx?2237","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/modules/account-customer-balance-tile/components/account-customer-balance-tile-info.tsx?a91f","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/account-address-tile/account-address-tile.view.tsx?0b73","webpack:///src/modules/account-address-tile/index.ts?effb","webpack:///src/modules/interactive-feature-item/interactive-feature-item.view.tsx?d4e3","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/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/modules/loyalty-sign-up/components/loyalty-sign-up-small-components.tsx?d781","webpack:///src/modules/loyalty-sign-up/loyalty-sign-up.tsx?f29d","webpack:///src/modules/aad-generic/aad-generic.view.tsx?ecad","webpack:///src/modules/password-reset-verification/components/password-reset-verification-error.tsx?5cfd","webpack:///src/modules/password-reset-verification/components/password-reset-verification-success.tsx?8c35","webpack:///src/modules/account-customer-balance-tile/account-customer-balance-tile.view.tsx?955a","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/aad-generic/aad-generic.tsx?d537","webpack:///src/modules/business-organization-list/business-organization-list.tsx?b6f5","webpack:///./src/themes/gardner-theme/views/components/invoice-details-products.component.tsx?1184","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/account-customer-balance-tile/components/account-customer-balance-tile-links.tsx?5f47","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/account-customer-balance-tile/account-customer-balance-tile.tsx?9383","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/loyalty-sign-up/loyalty-sign-up.view.tsx?ed3f","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-order-templates-tile/account-order-templates-tile.view.tsx?90af","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/payment-container/context/payment-context.tsx?efaa","webpack:///./src/themes/gardner-theme/views/checkout-payment-instrument.view.tsx?6b89","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/interactive-feature-item/components/links.tsx?8ab2","webpack:///src/modules/interactive-feature-item/interactive-feature-item.tsx?340f","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/themes/gardner-theme/views/checkout-customer-account-payment.view.tsx?a50a","webpack:///src/modules/sign-up/index.ts?7cfc","webpack:///src/modules/loyalty-terms/components/loyalty-terms-modal.tsx?c84d","webpack:///src/modules/account-customer-balance-tile/components/index.ts?1499","webpack:///src/modules/loyalty-terms/loyalty-terms.tsx?0629","webpack:///./src/themes/gardner-theme/views/invoice-details.view.tsx?aa0d","webpack:///./src/themes/gardner-theme/views/account-profile.view.tsx?fc1f","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-order-templates-tile/components/account-order-templates-tile-description.tsx?7b53","webpack:///src/modules/account-order-templates-tile/components/account-order-templates-tile-links.tsx?5371","webpack:///src/modules/account-order-templates-tile/account-order-templates-tile.tsx?db71","webpack:///src/modules/account-profile/components/index.ts?41ea","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-profile-edit/components/account-profile-edit-loading-message.tsx?2c6f","webpack:///src/modules/loyalty-terms/loyalty-terms.view.tsx?5155","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/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","webpack:///src/modules/adventureworks/views/order-template-list.view.tsx?86a3"],"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","AccountPreferencesSection","accountPreferences","personalization","extraPreferences","Node","AccountPreferenceSection","preferenceSecton","index","_ref2","accountPreference","description","buttonWrapper","buttonYesText","button","buttonNoText","AccountProfileSection","_ref3","AccountProfileItem","links","AccountProfileView","AccountProfile","accountProfileWrapper","emailSection","nameSection","preferenceSection","customerAttributesWrapper","customerAttributesSection","Module","GetMaxLength","maxLength","parsedMaxLength","Number","parseInt","isNaN","SignUpInput","onChange","undefined","AccountProfileEditLoadingIcon","ErrorComponent","error","CreditComponent","verbagePrefix","verbagePostfix","PasswordResetItem","PasswordResetLoading","PasswordResetView","item","LocalAccount","renderAdditionalContent","additionalContent","_additionalContent$ad","additionalContentNode","additionalContentItems","additionalContentItemContainer","additionalContentItemLinks","contentBlockView","contentBlockContainer","imageContainer","detailsContainer","title","image","contentBlockAnchorTag","imageLink","imageAriaLabel","imageClass","src","href","AccountAddressTileView","AccountAddressTile","MagicNumber","FeatureItemViewComponent","isMosaic","featureItem","indexItem","itemCounter","renderMosaic","thisProps","paragraph","interactiveFeatureCollectionMosaicContainer","interactiveFeatureCollectionMosaicImage","interactiveFeatureCollectionMosaicDetails","indexAux","caseNumberOne","itemCounterAux","caseNumberZero","modularAux","modularDivisor","firstRow","caseNumberTwo","lastRow","onCornerRight","onCornerLeft","containerClasses","interactiveFeatureCollectionCarouselContainer","interactiveFeatureCollectionCarouselImage","interactiveFeatureCollectionCarouselContent","renderCarousel","BusinessFormItemComponent","renderModal","isModalOpen","headingSection","bodySection","footerSection","toggleModal","wrapClassName","autoFocus","fade","applicationNode","toggle","ModalHeader","ModalFooter","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","onClick","Button","_renderAccordionItemContent","length","AccordionItemView","drawer","accordionSlots","AccordionItemContainer","AccordionItemContent","accordionItemContent","renderProductDescription","product","_props$data$product$r","primaryImageSource","PrimaryImageUrl","imageUrl","generateImageUrl","apiSettings","Image","fallBackSrc","loadFailureBehavior","gridSettings","imageSettings","viewports","xs","q","w","h","sm","md","lg","xl","lazyload","cropFocalRegion","renderProductImage","Name","ItemId","WriteReviewView","signInMessage","signInButton","modalToggle","isAuthenticated","user","RichTextComponent","reviewModal","modalHeader","inputRow","selectRatingLabel","rating","reviewTitleLabel","titleInput","reviewTextLabel","textInput","privacyPolicyUrl","submitButton","cancelButton","createReviewModal","AccountProfileEditButton","AccordionItem","accordionItemTitle","_onToggle","bind","slots","accordionExpandedStateResult","accordionExpandedState","expanded","isAllExpanded","isExpandedOnInitialLoad","ControlledDrawer","toggleButtonText","collapseProps","onToggle","interactionStyle","accordionState","update","createAccordionStateInput","SignUpText","createElement","LoyaltySignUp","handleMemberHeadingChange","memberHeading","_issueLoyalty","clicked","setState","IssueLoyaltyInput","issueLoyalty","then","MsDyn365","isBrowser","location","catch","debug","TelemetryConstant","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","_data$customerInforma","_this$props$context$a","signInUrl","termsUrl","loyaltyJoinUrl","origin","signInurl","completeClass","classname","loyaltyCard","hasLoyaltyAccount","CardTenderTypeValue","customerInformation","invalidAsyncCustomerState","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","infoMessageBar","accountProcessingPendingInfoMessage","params","isEditor","status","signInLink","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","detailsLink","viewLoyaltyPageText","termsLink","loyaltyTermsLinkText","aadGeneric","aadAPIConainer","PasswordResetVerificationError","PasswordResetVerificationSuccess","AccountCustomerBalanceTileView","AccountCustomerBalanceTile","content","_orderHydration$resul","_orderHydration$resul2","_salesOrder$SalesLine","SalesLines","so","Description","Price","Quantity","TotalAmount","accordionView","AccordionContainer","accordionItems","accordionButtons","HeaderSection","HeadingWrapper","accordianButtonsContainer","accordionItemContainer","SignUpItem","SignUpEmailVerification","email","successMessage","SignUpGivenNameVerificationComponent","givenName","SignUpSurnameVerificationComponent","surname","SignUpLoading","SignUpView","signUp","signUpLocalAccount","emailVerification","givenNameVerification","surnameVerification","disclaimer","isRequired","verificationControlWrapper","IAccountWishlistTileDescription","forEach","editableLink","push","AccountWishlistTileLinks","AccountWishlistTile","accountWishlistTileDescription","wishlists","wishlistsCount","CommerceListLines","format","LinksComponent","DescriptionComponent","B2bRequestsStatusView","b2bRequestsStatus","table","SignUpError","PasswordResetLoadingMessage","AccountProfileEditLabel","htmlFor","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","AadGeneric","$i2e","$element","insertServiceContent","getElementContent","initialize","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","isFormActive","Add","referenceBack","addUserButtonReference","current","hasFormError","hasActionError","selectedUserData","_handleAddEditFormSaveButton","async","updatedUser","_createBusinessPartner","Edit","editOrganizationUser","EditOrganizationUserInput","reload","trace","addOrganizationUser","AddOrganizationUserInput","businessUserActionRetailErrorMsg","parseFloat","_handleEditIcon","userData","possibleName","find","cell","fullName","lastSpaceIndex","lastIndexOf","firstName","substring","lastName","possibleCell","dataCell","_handleDeleteIcon","displayedUserData","TableDataType","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","None","callbackRemoveButton","_onInputChange","prev","refresh","isReady","_isFormReady","formItem","match","_formatPrice","price","_getCurrentUrl","reqContext","URL","url","requestUrl","_getViewport","device","Type","innerWidth","_toggleStatementRequestDropdown","isStatementRequestAdminDropdownOpen","_updateFromDate","newFromDate","statementRequestFromDateString","_updateToDate","newToDate","statementRequestToDateString","_showRequestStatementModal","isFullOrg","statementRequestFullOrg","isStatementRequestModalOpen","_requestStatement","customer","currentUser","users","_getB2BUserId","statementRequest","FromDate","Date","ToDate","IsForFullOrganization","RequestedUserId","RequestingUserEmail","DeliveryTypeValue","BusinessPartnerOperationDeliveryType","callerContext","BusinessPartnerUsersDataActions","requestAccountStatementAsync","_closeStatementRequestModal","_this$statementReques","statementRequestButtonReference","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","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","isMobile","includes","name","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","edit","delete","_this$state$reference","businessUserRemoveModalHeaderText","businessUserRemoveModalDescription","businessUserViewModalHeaderText","businessUserCancelButtonText","businessUserCancelRemoveUserButtonText","businessUserRemoveUserButtonText","businessUserErrorUpdatingUsersMessage","formClassName","typeClassName","handleRemoveButton","businessUserEditUserFormHeadingText","businessUserAddUserFormHeadingText","businessUserSaveButtonArialabel","businessUserSaveButtonText","businessUserCancelButtonArialabel","businessUserFieldIncorrectErrorText","businessUserActionErrorText","businessUserAllFieldsRequiredMessage","FormButton","computed","InvoiceDetailsModel","invoice","invoiceDetails","products","Id","invoiceDate","InvoiceDate","customerName","CustomerName","dueDate","InvoiceDueDate","amountDue","AmountBalance","InvoicePaidStatusValue","lines","SalesInvoiceLine","line","_products$find","primaryImageUrl","RecordId","totalDiscount","TotalDiscount","InvoiceSubtotal","totalCharges","TotalCharges","totalTax","TotalTaxAmount","currencyCode","CurrencyCode","InvoicePaidStatus","Paid","formatAmount","amount","InvoiceDetailsProductsComponent","msdyn365Commerce","createComponent","component","productLineClass","productLineInfoContainerClass","productLineDetailsClass","productLineSmallDetailsClass","quantity","productUrl","ObjectExtensions","isNullOrUndefined","ProductName","getProductPageUrlSync","_renderProductImage","fallbackImage","getFallbackImageUrl","altText","_renderProductDimensions","ColorName","invoiceProductColor","SizeName","invoiceProductSize","StyleName","invoiceProductStyle","invoiceQuantity","NetAmount","ActionBar","onSelectCustomerAccount","onSelectFullOrg","popoverReference","requestStatementDropdownString","Popover","placement","onChangeFromDateEvent","onChangeToDateEvent","onBlurFromDate","isFunction","onBlurToDate","horizontalPosition","verticalPosition","onBlur","max","min","AccountLabels","accountNumber","customerSincePrefix","createdOn","AccountValues","availableCredit","availableCreditLabel","AvailableCreditComponent","BalanceOwedComponent","balanceOwedLabel","balanceOwed","CreditExcessComponent","creditExcessLabel","creditExcess","BackButton","BackToShopping","AccountCustomerBalanceTileLinks","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","_initState","reaction","hasError","apiGenericErrorMessage","get","customerResult","allowOnAccountPayment","AllowOnAccountPayment","isB2BSite","enableCustomerAccountPayment","isCustomerAccountPaymentEnabled","isDetailsLinkDisplayed","account","Balance","CreditLimit","InvoiceAccountBalance","InvoiceAccountCreditLimit","noCreditErrorMessage","accountCreditVerbagePrefix","accountCreditVerbagePostfix","customerCredit","customerCreditFormatted","toFixed","SignUpLoadingIcon","LoyaltySignUpView","AccountGenericTileView","signUpDescription","signUpLink","signUpSection","signUpSectionHeading","AccountOrderTemplatesTileView","AccountOrderTemplatesTile","AccountProfileEditItem","AccountProfileEditLoading","AccountProfileEditView","accountProfileEdit","accountProfileEditLocalAccount","PasswordResetVerificationLoadingIcon","_errorMsg","PaymentContext","createContext","paymentModules","selectedPayment","registerPaymentMethod","elementId","tenderTypeList","Error","setSelectedPaymentState","paymentTenderType","Consumer","PaymentConsumer","Provider","PaymentProvider","OverlayModal","CheckoutPaymentInstrumentView","checkoutPaymentInstrument","waiting","paymentInformation","addPaymentForm","overlayModal","tenderType","_objectWithoutProperties","_excluded","paymentContext","paymentTenderTypes","tt","tenderTypeId","tenderId","tenderName","PasswordResetVerification","passwordResetVerification","PasswordResetVerificationLoadingIconComponent","PasswordResetVerificationLoadingMessageComponent","passwordResetVerificationLocalAccount","PasswordResetVerificationSuccessComponent","PasswordResetVerificationErrorComponent","verificationButtonsWrapper","verificationButtons","PasswordResetVerificationButtonComponent","continueButtonAriaLabel","continueButtonText","cancelButtonAriaLabel","PasswordResetVerificationLabelComponent","PasswordResetVerificationInputComponent","AccountWishlistTileView","InteractiveFeatureCollectionLinks","onTelemetryClick","InteractiveFeatureItem","_telemetryContent","_this$props$config$li","featureItemLinks","_createHeading","_createParagraph","_renderImage","tabindex","_heading$tag","isAriaHiddenAttribute","_item$imageSettings","_this$props$config$im","verifiedImageSettings","moduleType","typeName","imagePropertyName","InteractiveFeatureCollection","handleTextChange","itemsCounter","_this$props$config$cl","_title$tag","interactiveItems","interactiveFeatureItems","itemsFeatureCounter","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","vertical","createHeading","_getFeatureItem","SummaryForm","paymentAmount","addPaymentButton","appliedLine","bottomBorder","EditForm","inputLabel","inputAmount","customerAccountNumber","customerSince","accountCredit","accountDetails","getInputLabel","customInputLabel","CheckoutCustomerAccountView","checkoutCustomerAccount","summaryView","editView","moduleState","_document$querySelect","sessionStorage","removeItem","processedOnAccountText","document","querySelector","getItem","setItem","checkoutState","checkout","cartTotal","checkoutCart","cart","updateCustomerAccountAmount","newAmount","information","addPayment","LoyaltyTermsModal","LoyaltyTermsCancel","loyaltyTermCancelAttributes","LoyaltyTermsSubmit","loyaltyTermSubmitAttributes","LoyaltyTermsAgree","loyaltyTermCheckboxAttributes","returnFocusRef","returnRef","cancelLoyaltyTermsText","onSubmit","checked","joinLoyaltyTermsText","loyaltyTermsHeading","terms","agreeSection","checkbox","onCheck","agreeText","loyaltyAgreeToTerms","LoyaltyTerms","_toggle","_submit","_checkboxChecked","toggleRef","search","isJoining","qsps","qsp","splitQsp","hideToggle","serviceTerms","joinLoyaltytermsToggleText","CardNumber","card","redirectToLoyalty","getUrlSync","getLoyaltyCardAsync","fullCard","GetLoyaltyCardInput","InvoiceDetailsView","header","paymentDetails","payInvoiceError","setInvoiceDetails","setProducts","getProducts","productInputs","invDetails","invoiceDetailsModel","getInvoiceDetails","filter","ProductInput","channelId","simpleProductsRes","getSimpleProductsAction","renderProducts","AccountCustomerBalance","_toggleDropdown","_adminShowRequestStatementModal","_this$props$data$b2bU","b2bUserInformation","_get","creditSummarySectionHeading","accountSectionHeading","backToShoppingText","myAccountStatementLabel","AccountNumber","_formatJoinDate","CreatedDateTime","customerAccountBalance","excess","_formatCurrency","backLink","emailAddress","actionBar","IsB2bAdmin","accountLabels","accountValues","homeButton","currency","date","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","store","OrgUnitAvailability","unitStoreInfo","entries","_unitStoreInfo$OrgUni","storeLocation","OrgUnitLocation","Latitude","Longitude","isSelectedLocation","OrgUnitNumber","options","_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","_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","show","Header","headerProps","MapProps","IAccountAddressTileDescription","AccountGenericTileLinks","AccountOrderTemplatesTileDescription","AccountOrderTemplatesTileLinks","accountOrderTemplatesTileDescription","orderTemplates","orderTemplatesCount","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","LoyaltyTermsView","AccountAddressTileLinks","PasswordResetLabel","MapHeader","MapView","SignUpLoadingMessage","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","e","innerHTML","childNodes","nodeValue","AccountProfileEditErrorComponent","AccountProfileEditButtonComponent","showEmail","AccountProfileEditLabelComponent","AccountProfileEditInputComponent","OrderTemplateListViewComponent","OrderTemplateList","OrderTemplates","OrderTemplate","statusMessage","createOrderTemplateButton","templateHeaderStatusMessage","headingForEmptyOrderTemplateList","textForEmptyOrderTemplateList","orderTemplate","renderOrderTemplate","orderTemplateNodeProps","addToCartButton","orderTemplateImage","orderTemplateStatusMessage","removeButton","orderTemplateName","orderTemplateImageElement","currentImageListLength","children"],"mappings":"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","file":"static/js/8.db4a475c3fd7926a06ed.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","/*--------------------------------------------------------------\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 IAccountPreference, IAccountPreferences, IAccountProfileItem, IAccountProfileViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/account-profile/./account-profile';\r\n\r\nconst AccountPreferencesSection: React.FC = ({\r\n accountPreferences,\r\n heading,\r\n personalization,\r\n extraPreferences\r\n}) => {\r\n return (\r\n \r\n {heading}\r\n \r\n {\r\n extraPreferences && extraPreferences.map((preferenceSecton, index) => {\r\n return ;\r\n })\r\n }\r\n \r\n );\r\n};\r\n\r\nconst AccountPreferenceSection: React.FC = ({\r\n accountPreference,\r\n heading,\r\n description,\r\n buttonWrapper,\r\n buttonYesText,\r\n button,\r\n buttonNoText\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {description}\r\n \r\n {buttonNoText}\r\n {button}\r\n {buttonYesText}\r\n \r\n \r\n );\r\n};\r\n\r\nconst AccountProfileSection: React.FC = ({\r\n AccountProfileItem,\r\n heading,\r\n links,\r\n description\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {description}\r\n {/*{links}*/}\r\n \r\n );\r\n};\r\n\r\nconst AccountProfileView: React.FC = props => {\r\n const { AccountProfile, accountProfileWrapper, heading, emailSection, nameSection, preferenceSection, customerAttributesWrapper, customerAttributesSection } = props;\r\n\r\n return (\r\n \r\n {accountProfileWrapper && (\r\n {heading}\r\n \r\n \r\n \r\n \r\n )}\r\n {customerAttributesWrapper && (\r\n {customerAttributesSection}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default AccountProfileView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountCustomerBalanceTileInfo {\n label?: string;\n value?: string;\n verbagePrefix?: string;\n verbagePostfix?: string;\n className?: string;\n error?: string;\n}\n\nexport const ErrorComponent: React.FC = ({ error }) => (\n {error}\n);\n\nexport const CreditComponent: React.FC = ({ verbagePrefix, verbagePostfix, value, className }) => {\n return (\n
\n {verbagePrefix}\n {value}\n {verbagePostfix}\n
\n );\n};\n\nexport const InfoComponent: React.FC = ({ label, value, className }) => (\n
\n {label}\n {value}\n
\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { 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 } 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\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureItemViewProps } from './interactive-feature-item';\n\n/**\n * Enumerator used to make some calculations to set the proper classnames\n * using modular calculations to see if they are in a right or left column or on first or last row.\n */\nenum MagicNumber {\n modularDivisor = 4,\n caseNumberZero = 0,\n caseNumberOne = 1,\n caseNumberTwo = 2\n}\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @param indexItem - Feature Item view props.\n * @param itemCounter - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nconst renderMosaic = (thisProps: IInteractiveFeatureItemViewProps, indexItem?: number, itemCounter?: number): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionMosaicContainer,\n interactiveFeatureCollectionMosaicImage,\n interactiveFeatureCollectionMosaicDetails\n } = thisProps;\n const indexAux = indexItem ? indexItem + MagicNumber.caseNumberOne : MagicNumber.caseNumberOne;\n const itemCounterAux = itemCounter ? itemCounter : MagicNumber.caseNumberZero;\n const modularAux = indexAux % MagicNumber.modularDivisor;\n const firstRow = indexAux <= MagicNumber.caseNumberTwo ? 'firstRow' : '';\n const lastRow =\n itemCounterAux && (indexAux === itemCounterAux || indexAux === itemCounterAux - MagicNumber.caseNumberOne) ? 'lastRow' : '';\n const onCornerRight = modularAux === MagicNumber.caseNumberZero ? 'item-corner-right' : '';\n const onCornerLeft = modularAux === MagicNumber.caseNumberOne ? 'item-corner-left' : '';\n const containerClasses = classnames('ms-interactive-feature-collection-mosaic', onCornerLeft, onCornerRight, firstRow, lastRow);\n\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */ const renderCarousel = (thisProps: IInteractiveFeatureItemViewProps): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionCarouselContainer,\n interactiveFeatureCollectionCarouselImage,\n interactiveFeatureCollectionCarouselContent\n } = thisProps;\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param props - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nexport const FeatureItemViewComponent: React.FC = props => {\n const { isMosaic, featureItem, indexItem, itemCounter } = props;\n if (isMosaic) {\n return <>{renderMosaic(props, indexItem, itemCounter)};\n }\n return {renderCarousel(props)};\n};\n\nexport default FeatureItemViewComponent;\n","/*!\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 { 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","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React from 'react';\n\nexport const SignUpText: React.FC<{ text: string }> = (props: { text: string }) => {\n return

{props.text}

;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, * as Msdyn365 from '@msdyn365-commerce/core';\nimport { issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { SignUpText } from './components/loyalty-sign-up-small-components';\nimport { ILoyaltySignUpData } from './loyalty-sign-up.data';\nimport { ILoyaltySignUpProps } from './loyalty-sign-up.props.autogenerated';\n\nexport interface IAccountLoyaltyJoinState {\n clicked: boolean;\n}\nexport interface ILoyaltySignUpViewProps extends ILoyaltySignUpProps {\n LoyaltySignUp: IModuleProps;\n heading: React.ReactNode;\n memberHeading: React.ReactNode;\n signInLink: React.ReactElement;\n signUpText: React.ReactElement;\n signUpButton: React.ReactElement;\n detailsLink: React.ReactElement;\n termsLink: React.ReactElement;\n loading: boolean;\n infoMessageBar?: React.ReactNode;\n}\n\n/**\n *\n * LoyaltySignUp component.\n * @extends {React.Component>}\n */\n@observer\nclass LoyaltySignUp extends React.Component, IAccountLoyaltyJoinState> {\n private readonly telemetryContent?: ITelemetryContent;\n private readonly loyaltySignInAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltySignUpAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyDetailsLinkAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyTermsLinkAttributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: ILoyaltySignUpProps) {\n super(props);\n this.state = { clicked: false };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.SignIn);\n this.loyaltySignInAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.SignUp;\n this.loyaltySignUpAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyDetailLink;\n this.loyaltyDetailsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsLink;\n this.loyaltyTermsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltySignUpProps, nextState: IAccountLoyaltyJoinState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className, heading, memberHeading },\n resources,\n context: {\n actionContext,\n request: {\n user: { signInUrl, isAuthenticated }\n }\n },\n data\n } = this.props;\n\n const termsUrl = Msdyn365.getUrlSync('loyaltyTerms', actionContext);\n let loyaltyJoinUrl = `${Msdyn365.getUrlSync('loyaltyJoin', actionContext)}?joiningLoyalty=true`;\n if (MsDyn365.isBrowser) {\n loyaltyJoinUrl = `${window.location.origin}${loyaltyJoinUrl}`;\n }\n const signInurl = `${signInUrl}?ru=${loyaltyJoinUrl}`;\n const completeClass = classname('ms-loyalty-signup', className);\n const loyaltyCard = data.loyaltyCard;\n const hasLoyaltyAccount = loyaltyCard.result && loyaltyCard.result.CardTenderTypeValue !== undefined;\n const customerInformation = data.customerInformation?.result;\n\n const invalidAsyncCustomerState: boolean =\n (this.props.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false);\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltySignUp: {\n moduleProps: this.props,\n className: completeClass\n },\n infoMessageBar: invalidAsyncCustomerState && (\n \n ),\n loading: !this.props.context.request.params.isEditor && loyaltyCard?.status === 'LOADING',\n heading: !hasLoyaltyAccount && heading && heading.text && (\n \n ),\n memberHeading: hasLoyaltyAccount && memberHeading && memberHeading.text && (\n \n ),\n signInLink: !isAuthenticated && (\n \n ),\n signUpText: !hasLoyaltyAccount && ,\n signUpButton: !hasLoyaltyAccount && isAuthenticated && (\n \n {this.props.resources.joinLoyaltyButtonText}\n \n ),\n detailsLink: hasLoyaltyAccount && (\n \n {this.props.resources.viewLoyaltyPageText}\n \n ),\n termsLink: !hasLoyaltyAccount && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleMemberHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.memberHeading!.text = event.target.value);\n\n private readonly _issueLoyalty = () => {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(() => {\n if (MsDyn365.isBrowser) {\n window.location.assign(Msdyn365.getUrlSync('loyalty', this.props.context.actionContext) || '');\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n };\n}\n\nexport default LoyaltySignUp;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAadGenericViewProps } from './aad-generic';\n\nexport default (props: IAadGenericViewProps) => {\n const { aadGeneric, aadConainer, aadAPIConainer, heading } = props;\n\n return (\n \n \n {heading}\n {aadAPIConainer}\n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationSuccess;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileViewProps } from './account-customer-balance-tile';\n\nconst AccountCustomerBalanceTileView: React.FC = props => {\n const { AccountCustomerBalanceTile, heading, content, links } = props;\n\n return (\n \n {heading}\n {content}\n {links}\n \n );\n};\n\nexport default AccountCustomerBalanceTileView;\n","/*--------------------------------------------------------------\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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAadGenericData } from './aad-generic.data';\nimport { IAadGenericProps } from './aad-generic.props.autogenerated';\n\nexport interface IAadGenericViewProps extends IAadGenericProps {\n aadGeneric: IModuleProps;\n aadConainer: INodeProps;\n aadAPIConainer: React.ReactNode;\n heading?: React.ReactNode;\n}\n\n/**\n *\n * AadGeneric component.\n * @extends {React.Component>}\n */\nclass AadGeneric extends React.Component> {\n private readonly moduleClassName: string = 'ms-aad-generic';\n\n public componentDidMount(): void {\n // @ts-expect-error\n const { $i2e, $element } = window || {};\n\n if ($i2e && $element) {\n $i2e.insertServiceContent($element.getElementContent());\n $element.initialize();\n }\n }\n\n public shouldComponentUpdate(nextProps: IAadGenericViewProps): boolean {\n if (nextProps.config.heading !== this.props.config.heading) {\n return true;\n }\n return false;\n }\n\n public render(): JSX.Element | null {\n const { className, heading } = this.props.config;\n\n const viewProps = {\n ...this.props,\n aadGeneric: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n aadConainer: {\n className: `${this.moduleClassName}__container`\n },\n aadAPIConainer:
,\n heading: heading && (\n \n )\n };\n\n return this.props.renderView(viewProps);\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.heading) {\n this.props.config.heading.text = event.target.value;\n }\n };\n}\n\nexport default AadGeneric;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport 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","/*--------------------------------------------------------------\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 { IComponent, IComponentProps, ICoreContext, IImageSettings, Image, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { getFallbackImageUrl, getProductPageUrlSync, ObjectExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport React from 'react';\r\n\r\nimport { InvoicePaidStatus, OrderInvoice, SalesInvoice, SalesInvoiceLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\nimport { IPayableInvoice } from '@msdyn365-commerce-modules/invoice';\r\n\r\n// import { IInvoiceProductLine, InvoiceDetailsModel } from '../helpers/invoice-data';\r\n\r\nexport interface IInvoicePaymentDetails {\r\n totalDiscount?: number;\r\n subtotal?: number;\r\n totalCharges?: number;\r\n totalTax?: number;\r\n totalAmount?: number;\r\n currencyCode?: string;\r\n}\r\n\r\nexport interface IInvoiceProductLine extends SalesInvoiceLine {\r\n primaryImageUrl?: string;\r\n}\r\n\r\n/**\r\n * Represents invoice details data model.\r\n */\r\nexport class InvoiceDetailsModel implements IPayableInvoice, IInvoicePaymentDetails {\r\n public id: string;\r\n\r\n public invoiceDate?: Date;\r\n\r\n public customerAccountNumber?: string;\r\n\r\n public customerName?: string;\r\n\r\n public dueDate?: Date;\r\n\r\n public amountDue?: number;\r\n\r\n public status?: InvoicePaidStatus;\r\n\r\n public lines: IInvoiceProductLine[];\r\n\r\n public totalDiscount?: number;\r\n\r\n public subtotal?: number;\r\n\r\n public totalCharges?: number;\r\n\r\n public totalTax?: number;\r\n\r\n public totalAmount?: number;\r\n\r\n public currencyCode?: string;\r\n\r\n public constructor(invoice: OrderInvoice, invoiceDetails: SalesInvoice, products: SimpleProduct[]) {\r\n this.id = invoice.Id || '';\r\n this.invoiceDate = invoice.InvoiceDate ? new Date(invoice.InvoiceDate) : undefined;\r\n this.customerName = invoice.CustomerName;\r\n this.dueDate = invoice.InvoiceDueDate ? new Date(invoice.InvoiceDueDate) : undefined;\r\n this.amountDue = invoice.AmountBalance;\r\n this.status = invoice.InvoicePaidStatusValue;\r\n this.lines = (invoiceDetails.SalesInvoiceLine || []).map(line => {\r\n const productLine: IInvoiceProductLine = {\r\n ...line,\r\n primaryImageUrl: products.find(product => product.RecordId === line.RecordId)?.PrimaryImageUrl\r\n };\r\n return productLine;\r\n });\r\n\r\n this.totalDiscount = invoiceDetails.TotalDiscount;\r\n this.subtotal = invoiceDetails.InvoiceSubtotal;\r\n this.totalCharges = invoiceDetails.TotalCharges;\r\n this.totalTax = invoiceDetails.TotalTaxAmount;\r\n this.totalAmount = invoice.TotalAmount;\r\n this.currencyCode = invoice.CurrencyCode;\r\n }\r\n\r\n public get canBePaid(): boolean {\r\n return this.status !== InvoicePaidStatus.Paid;\r\n }\r\n}\r\n\r\n\r\nexport interface IInvoiceDetailsProductsData {\r\n invoiceDetails: InvoiceDetailsModel;\r\n}\r\n\r\nexport interface IInvoiceDetailsProductsResources {\r\n invoiceProductColor: string;\r\n invoiceProductSize: string;\r\n invoiceProductStyle: string;\r\n invoiceQuantity: string;\r\n}\r\n\r\nexport interface IInvoiceDetailsProductsProps extends IComponentProps {\r\n context: ICoreContext;\r\n className: string;\r\n imageSettings?: IImageSettings;\r\n resources: IInvoiceDetailsProductsResources;\r\n}\r\n\r\nexport interface IInvoiceDetailsProductsComponent extends IComponent {\r\n}\r\n\r\nconst _renderProductDimensions = (className: string, resources: IInvoiceDetailsProductsResources, product: SalesInvoiceLine): JSX.Element => {\r\n return (\r\n
\r\n {StringExtensions.isNullOrWhitespace(product.ColorName) ? null :
\r\n {resources.invoiceProductColor.replace('{0}', product.ColorName!)}\r\n
}\r\n {StringExtensions.isNullOrWhitespace(product.SizeName) ? null :
\r\n {resources.invoiceProductSize.replace('{0}', product.SizeName!)}\r\n
}\r\n {StringExtensions.isNullOrWhitespace(product.StyleName) ? null :
\r\n {resources.invoiceProductStyle.replace('{0}', product.StyleName!)}\r\n
}\r\n
\r\n );\r\n};\r\n\r\nconst _renderProductImage = (className: string, context: ICoreContext, product: IInvoiceProductLine, imageSettings?: IImageSettings): JSX.Element | null => {\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=315&h=315&m=6', w: 0, h: 0 },\r\n lg: { q: 'w=315&h=315&m=6', w: 0, h: 0 },\r\n xl: { q: 'w=315&h=315&m=6', w: 0, h: 0 }\r\n },\r\n lazyload: true,\r\n cropFocalRegion: true\r\n };\r\n\r\n if (imageSettings) {\r\n imageSettings.cropFocalRegion = true;\r\n }\r\n\r\n const fallbackImage = getFallbackImageUrl(product.ItemId, context.actionContext.requestContext.apiSettings);\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst formatAmount = (context: ICoreContext, amount: number | undefined, currencyCode: string | undefined) => {\r\n if (amount === undefined) {\r\n return '';\r\n }\r\n return context.cultureFormatter.formatCurrency(amount, currencyCode);\r\n};\r\n\r\nconst InvoiceDetailsProducts: React.FC = (props: IInvoiceDetailsProductsProps): JSX.Element => {\r\n const { className, data: { invoiceDetails }, resources } = props;\r\n\r\n const productLineClass = `${className}__product-line`;\r\n const productLineInfoContainerClass = `${productLineClass}__product-info-container`;\r\n const productLineDetailsClass = `${productLineInfoContainerClass}__product-details`;\r\n const productLineSmallDetailsClass = `${productLineDetailsClass}__small-details`;\r\n\r\n return (\r\n
\r\n {\r\n invoiceDetails.lines.map(product => {\r\n const quantity = product.Quantity || 1;\r\n\r\n let productUrl = '';\r\n if (!ObjectExtensions.isNullOrUndefined(product.ProductName) &&\r\n !ObjectExtensions.isNullOrUndefined(product.RecordId)) {\r\n productUrl = getProductPageUrlSync(product.ProductName, product.RecordId, props.context.actionContext);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {_renderProductImage(`${productLineInfoContainerClass}__product-image`, props.context, product)}\r\n
\r\n \r\n {`${product.ItemId} - ${product.ProductName}`}\r\n \r\n
\r\n {_renderProductDimensions(`${productLineSmallDetailsClass}__dimensions`, resources, product)}\r\n
\r\n {formatAmount(props.context, product.Price, invoiceDetails.currencyCode)}\r\n
\r\n
\r\n {resources.invoiceQuantity.replace('{0}', quantity.toString())}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {formatAmount(props.context, product.NetAmount, invoiceDetails.currencyCode)}\r\n
\r\n
\r\n );\r\n })\r\n }\r\n
\r\n );\r\n};\r\n\r\n// @ts-expect-error\r\nexport const InvoiceDetailsProductsComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\r\n 'InvoiceDetailsProductsComponent',\r\n { component: InvoiceDetailsProducts }\r\n);\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILinksData {\n linkText?: string;\n linkUrl: Msdyn365.ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n}\n\nexport interface IAccountCustomerBalanceTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountCustomerBalanceTileLinks: React.FC = ({\n links,\n telemetryContent,\n onTextChange,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-customer-balance-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountCustomerBalanceTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { CustomerBalances } from '@msdyn365-commerce/retail-proxy';\nimport { getTelemetryObject, Heading, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { computed, reaction } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileData } from './account-customer-balance-tile.data';\nimport { IAccountCustomerBalanceTileProps } from './account-customer-balance-tile.props.autogenerated';\nimport { CreditComponent, ErrorComponent } from './components/account-customer-balance-tile-info';\nimport LinksComponent from './components/account-customer-balance-tile-links';\n\nexport interface IAccountCustomerBalanceTileViewProps extends IAccountCustomerBalanceTileProps {\n AccountCustomerBalanceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n content: React.ReactNode;\n links: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceTileViewState {\n isDetailsLinkDisplayed: boolean;\n content: React.ReactNode;\n}\n\n/**\n *\n * AccountCustomerBalanceTile component.\n * @extends {React.Component>}\n */\nclass AccountCustomerBalanceTile extends React.Component<\n IAccountCustomerBalanceTileProps,\n IAccountCustomerBalanceTileViewState\n> {\n @computed get hasError(): boolean {\n return get(this.props, 'data.balance.status') !== 'SUCCESS';\n }\n\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountCustomerBalanceTileProps) {\n super(props);\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n this.state = { ...this._initState() };\n\n reaction(\n () => this.hasError,\n () => {\n this.props.context.telemetry.error('Error retrieving customer account balance');\n this.setState({\n content: \n });\n }\n );\n }\n\n @computed get isCustomerAccountPaymentEnabled(): boolean {\n const customerResult = get(this.props, 'data.customerInformation.result');\n\n const allowOnAccountPayment = customerResult ? customerResult.AllowOnAccountPayment : false;\n const isB2BSite = isChannelTypeB2B(this.props.context.request);\n const enableCustomerAccountPayment = get(this.props, 'context.request.app.platform.enableCustomerAccountPayment');\n\n return (\n allowOnAccountPayment &&\n (enableCustomerAccountPayment === 'all' ||\n (enableCustomerAccountPayment === 'b2b' && isB2BSite) ||\n (enableCustomerAccountPayment === 'b2c' && !isB2BSite))\n );\n }\n\n public shouldComponentUpdate(\n nextProps: IAccountCustomerBalanceTileProps,\n nextState: IAccountCustomerBalanceTileViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n if (!this.isCustomerAccountPaymentEnabled) {\n return <>;\n }\n\n const { className, heading, links } = this.props.config;\n const viewProps = {\n ...this.props,\n AccountCustomerBalanceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-customer-balance-tile', className)\n },\n heading: heading && (\n \n ),\n content: this.state.content,\n links: this.state.isDetailsLinkDisplayed && (\n (event: Msdyn365.ContentEditableEvent) => void 0,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n }}\n />\n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _initState(): IAccountCustomerBalanceTileViewState {\n const account: CustomerBalances = get(this.props, 'data.balance.result');\n\n let content: React.ReactNode;\n let isDetailsLinkDisplayed = false;\n\n if (this.hasError) {\n this.props.telemetry.error('Error retrieving customer account balance');\n content = ;\n } else if (\n account.Balance === 0 &&\n account.CreditLimit === 0 &&\n account.InvoiceAccountBalance === 0 &&\n account.InvoiceAccountCreditLimit === 0\n ) {\n // Non-established credit\n content = ;\n } else {\n // Successfully retrieved balance\n const { accountCreditVerbagePrefix, accountCreditVerbagePostfix } = this.props.resources;\n const currencyCode = get(this.props, 'context.request.channel.Currency');\n const formatCurrency = get(this.props, 'context.cultureFormatter.formatCurrency');\n let customerCredit = 0;\n\n if (account.InvoiceAccountCreditLimit === 0) {\n customerCredit = account.CreditLimit - account.Balance;\n } else {\n customerCredit = account.InvoiceAccountCreditLimit - account.InvoiceAccountBalance;\n }\n\n const customerCreditFormatted = `${formatCurrency(customerCredit.toFixed(2), currencyCode)}`;\n\n isDetailsLinkDisplayed = true;\n content = (\n \n );\n }\n\n return { content, isDetailsLinkDisplayed };\n }\n}\n\nexport default AccountCustomerBalanceTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\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 { ILoyaltySignUpViewProps } from './loyalty-sign-up';\n\nconst LoyaltySignUpView: React.FC = props => {\n const {\n LoyaltySignUp,\n heading,\n memberHeading,\n signInLink,\n signUpText,\n signUpButton,\n detailsLink,\n termsLink,\n loading,\n infoMessageBar\n } = props;\n\n if (loading) {\n props.context.telemetry.error('LoyaltySignUp data is empty, module wont render');\n return null;\n }\n\n return (\n \n {infoMessageBar}\n {memberHeading}\n {heading}\n {detailsLink}\n {signUpText}\n {termsLink}\n {signUpButton}\n {signInLink}\n \n );\n};\n\nexport default LoyaltySignUpView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountOrderTemplatesTileViewProps } from './account-order-templates-tile';\n\nconst AccountOrderTemplatesTileView: React.FC = props => {\n const { AccountOrderTemplatesTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountOrderTemplatesTileView;\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","import { createContext } from 'react';\r\n\r\n// each payment type will have an ID and a name, both will be strings\r\nexport interface IPaymentTenderType {\r\n tenderName: string;\r\n tenderTypeId: string;\r\n}\r\n\r\n// stores the payment modules element ID as a key and an array of Payment Tender Types for each tender type ID and name the module is associated with\r\ninterface IPaymentContextState {\r\n paymentModules: Record;\r\n selectedPayment: IPaymentTenderType;\r\n}\r\n\r\ninterface IPaymentContext extends IPaymentContextState {\r\n registerPaymentMethod: (elementId: string, tenderTypeList: IPaymentTenderType[]) => void;\r\n setSelectedPaymentState: (paymentTenderType: IPaymentTenderType) => void;\r\n}\r\n\r\nconst _errorMsg = 'Must be used within a provider';\r\n\r\nconst paymentModules: Record = {};\r\nconst selectedPayment: IPaymentTenderType = {} as IPaymentTenderType;\r\nconst registerPaymentMethod = (elementId: string, tenderTypeList: IPaymentTenderType[]) => {\r\n throw Error(_errorMsg);\r\n};\r\nconst setSelectedPaymentState = (paymentTenderType: IPaymentTenderType) => {\r\n throw Error(_errorMsg);\r\n};\r\n\r\nexport const PaymentContext = createContext({\r\n paymentModules,\r\n selectedPayment,\r\n registerPaymentMethod,\r\n setSelectedPaymentState\r\n});\r\n\r\nconst { Consumer: PaymentConsumer, Provider: PaymentProvider } = PaymentContext;\r\nexport { PaymentConsumer, PaymentProvider };\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ICheckoutPaymentInstrumentViewProps, ICheckoutPaymentOverlayModal } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-payment-instrument/./checkout-payment-instrument';\r\nimport { ICheckoutPaymentInstrumentProps as ICheckoutPaymentInstrumentExtensionProps } from '../definition-extensions/checkout-payment-instrument.ext.props.autogenerated';\r\n\r\nimport { PaymentContext, IPaymentTenderType } from '../../../modules/payment-container/context/payment-context';\r\n\r\nconst OverlayModal: React.FC = ({\r\n modal\r\n}) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst CheckoutPaymentInstrumentView: React.FC> = ({\r\n checkoutPaymentInstrument,\r\n className,\r\n id,\r\n waiting,\r\n alert,\r\n paymentInformation,\r\n addPaymentForm,\r\n overlayModal,\r\n config: { tenderType },\r\n ...restProps\r\n}) => {\r\n\r\n const paymentContext = React.useContext(PaymentContext);\r\n const paymentTenderTypes: IPaymentTenderType[] = [];\r\n\r\n React.useEffect(() => {\r\n tenderType?.map(tt => {\r\n paymentTenderTypes.push({ tenderTypeId: tt.tenderId, tenderName: tt.tenderName });\r\n });\r\n paymentContext.registerPaymentMethod(id, paymentTenderTypes);\r\n }, []);\r\n\r\n return (\r\n \r\n {waiting}\r\n {alert}\r\n {paymentInformation}\r\n {addPaymentForm}\r\n {overlayModal && }\r\n \r\n );\r\n}\r\n\r\nexport default CheckoutPaymentInstrumentView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature links.\n */\nexport interface IInteractiveFeatureLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * IInteractiveFeatureLinks component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureCollectionLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n
\n {editableLinks && ArrayExtensions.hasElements(editableLinks) ? (\n \n ) : null}\n
\n );\n }\n\n /**\n * IInteractiveFeatureLinks component.\n * @param linkdata - Link data.\n * @returns Editable links.\n */\n private readonly _mapEditableLinks = (linkdata?: ILinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || !ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n for (const link of linkdata) {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-interactive-feature-collection__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'button',\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n }\n\n return editableLinks;\n };\n}\nexport default InteractiveFeatureCollectionLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { InteractiveFeatureCollectionLinks } from './components';\nimport { IHeadingData, IInteractiveFeatureItemProps } from './interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature Item view props.\n */\nexport interface IInteractiveFeatureItemViewProps extends IInteractiveFeatureItemProps<{}> {\n title: React.ReactNode;\n paragraph: React.ReactNode;\n image: React.ReactNode;\n links: React.ReactNode;\n featureItem: IModuleProps;\n isMosaic: boolean;\n indexItem?: number;\n itemCounter?: number;\n\n interactiveFeatureCollectionCarouselContainer: INodeProps;\n interactiveFeatureCollectionCarouselImage: INodeProps;\n interactiveFeatureCollectionCarouselContent: INodeProps;\n\n interactiveFeatureCollectionMosaicContainer: INodeProps;\n interactiveFeatureCollectionMosaicImage: INodeProps;\n interactiveFeatureCollectionMosaicDetails: INodeProps;\n}\n\n/**\n * Interactive Feature Item Extented props.\n */\nexport interface IInteractiveFeatureItemExtentedProps extends IInteractiveFeatureItemProps<{}> {\n isMosaic?: boolean;\n indexItem?: number;\n itemCounter?: number;\n}\n\n/**\n *\n * InteractiveFeatureItem component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureItem extends React.PureComponent {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public constructor(props: IInteractiveFeatureItemProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { indexItem, itemCounter, isMosaic } = this.props;\n const { heading, paragraph, image, links } = this.props.config;\n const featureItemLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n\n const viewProps = {\n ...this.props,\n indexItem,\n itemCounter,\n isMosaic: isMosaic ? isMosaic : false,\n title: this._createHeading(heading),\n paragraph: this._createParagraph(paragraph),\n image: this._renderImage(image),\n links: featureItemLinks,\n featureItem: {\n moduleProps: this.props,\n className: ''\n },\n interactiveFeatureCollectionCarouselContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__container'\n },\n interactiveFeatureCollectionCarouselImage: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__image'\n },\n interactiveFeatureCollectionCarouselContent: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__heading'\n },\n interactiveFeatureCollectionMosaicContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mosaic',\n 'aria-label': heading?.text,\n tabindex: '0',\n role: 'group'\n },\n interactiveFeatureCollectionMosaicImage: {\n className: 'ms-interactive-feature-collection-mosaic__image'\n },\n interactiveFeatureCollectionMosaicDetails: {\n className: 'ms-interactive-feature-collection-mosaic__details'\n }\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles heading content change event.\n * @param event - Content editable event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param linkIndex - Index of link in linkarray.\n * @returns Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.links?.[Number(linkIndex)]) {\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\n }\n };\n\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createHeading(heading?: IHeadingData): React.ReactNode | null {\n if (!heading) {\n return null;\n }\n if (StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _renderImage(item?: Msdyn365.IImageData, isAriaHiddenAttribute?: boolean): React.ReactNode | null {\n // Even if image.src is null, we render the Image component to render the fallback SVG\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=328&h=459&m=6', w: 328, h: 459 },\n sm: { q: 'w=348&h=487&m=6', w: 348, h: 487 },\n md: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n lg: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n xl: { q: 'w=650&h=366&m=6', w: 650, h: 366 }\n },\n lazyload: true\n };\n const verifiedImageSettings = item?.imageSettings?.viewports ? item.imageSettings : defaultImageSettings;\n return (\n \n );\n }\n}\n\nexport default InteractiveFeatureItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport 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","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ICheckoutCustomerAccountPaymentViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/./checkout-customer-account-payment';\r\nimport { IAccountPaymentEditViewForm } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/./components/get-account-payment-form-edit-mode';\r\nimport { IAccountPaymentSummaryViewForm } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/./components/get-account-payment-form-summary-mode';\r\nimport { ICheckoutCustomerAccountPaymentProps as ICheckoutCustomerAccountPaymentExtensionProps } from '../definition-extensions/checkout-customer-account-payment.ext.props.autogenerated';\r\n\r\nimport { PaymentContext, IPaymentTenderType } from '../../../modules/payment-container/context/payment-context';\r\n// import { CustomerBalances } from '@msdyn365-commerce/retail-proxy';\r\nimport MsDyn365 from \"@msdyn365-commerce/core\";\r\n\r\nexport const SummaryForm: React.FC = ({ formProps, label, paymentAmount, addPaymentButton, appliedLine, bottomBorder }) => (\r\n \r\n <>\r\n {label}\r\n {appliedLine}\r\n {bottomBorder}\r\n \r\n \r\n);\r\n\r\nexport const EditForm: React.FC = ({ formProps, inputLabel, inputAmount, customerName, customerAccountNumber, addPaymentButton, customerSince, accountCredit, alert, accountDetails, appliedLine, bottomBorder }, props) => {\r\n return (\r\n \r\n <>\r\n\r\n {customerName}\r\n {customerAccountNumber}\r\n {customerSince}\r\n {/* {accountCredit} */}\r\n {/* {accountDetails} */}\r\n {/* {inputLabel} */}\r\n {getInputLabel()}\r\n {/* {alert} */}\r\n {appliedLine}\r\n {bottomBorder}\r\n \r\n \r\n)};\r\n\r\nlet customInputLabel = '';\r\n\r\nconst getInputLabel = () => {\r\n return (\r\n \r\n {customInputLabel}\r\n \r\n );\r\n}\r\n\r\n// const getAvailableCredit = (creditBalances: CustomerBalances | undefined) => {\r\n// let availableCredit = 0;\r\n\r\n// if (!creditBalances) {\r\n// return 0;\r\n// }\r\n\r\n// if (creditBalances.InvoiceAccountCreditLimit === 0) {\r\n// availableCredit = creditBalances.CreditLimit - creditBalances.Balance - creditBalances.PendingBalance;\r\n// } else {\r\n// availableCredit = creditBalances.InvoiceAccountCreditLimit - creditBalances.InvoiceAccountBalance - creditBalances.InvoiceAccountPendingBalance;\r\n// }\r\n\r\n// return availableCredit;\r\n// };\r\n\r\nconst addPayment = async (props: ICheckoutCustomerAccountPaymentViewProps): Promise => {\r\n const checkoutState = props.data.checkout.result;\r\n\r\n if (!checkoutState) {\r\n props.context.telemetry.error('checkout state not found');\r\n return;\r\n }\r\n\r\n // const availableCredit = getAvailableCredit(props.data.creditBalances?.result);\r\n const cartTotal = (await props.data.checkout).checkoutCart.cart.TotalAmount;\r\n\r\n // console.log(availableCredit);\r\n // console.log(cartTotal);\r\n // if (cartTotal && availableCredit >= cartTotal) {\r\n if (cartTotal) {\r\n await checkoutState.updateCustomerAccountAmount({ newAmount: cartTotal });\r\n props.context.telemetry.information('customer account payment amount updated');\r\n }\r\n};\r\n\r\nconst CheckoutCustomerAccountView: React.FC> = props => {\r\n const { checkoutCustomerAccount, summaryView, editView, moduleState, id, config: { tenderType } } = props;\r\n \r\n const paymentContext = React.useContext(PaymentContext);\r\n const paymentTenderTypes: IPaymentTenderType[] = [];\r\n // console.log(props);\r\n\r\n React.useEffect(() => {\r\n tenderType?.map(tt => {\r\n paymentTenderTypes.push({ tenderTypeId: tt.tenderId, tenderName: tt.tenderName });\r\n });\r\n paymentContext.registerPaymentMethod(id, paymentTenderTypes);\r\n sessionStorage.removeItem('ON_ACCOUNT_APPLIED');\r\n customInputLabel = props.config.processedOnAccountText || '';\r\n }, []);\r\n\r\n if (MsDyn365.isBrowser) {\r\n document.querySelector('.payment-selector__button-container--on-account')?.addEventListener('click', () => {\r\n if (sessionStorage.getItem('ON_ACCOUNT_APPLIED') === '1') {\r\n return;\r\n }\r\n sessionStorage.setItem('ON_ACCOUNT_APPLIED', '1');\r\n addPayment(props);\r\n });\r\n }\r\n\r\n return (\r\n \r\n {moduleState.isReady && summaryView && }\r\n {!moduleState.isReady && editView && }\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutCustomerAccountView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport SignUp from './sign-up';\nimport SignUpView from './sign-up.view';\n\nexport * from './components';\nexport * from './sign-up';\nexport * from './sign-up.props.autogenerated';\nexport * from './sign-up.view';\n\nexport { SignUp, SignUpView };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nexport interface ILoyaltyTermsModalProps {\n resources: ILoyaltyTermsModalResources;\n returnRef: React.RefObject | undefined;\n checked: boolean;\n isOpen: boolean;\n terms: React.ReactNode;\n telemetryContent?: ITelemetryContent;\n onToggle(): void;\n onSubmit(): void;\n onCheck(): void;\n}\n\nexport interface ILoyaltyTermsModalResources {\n loyaltyTermsHeading: string;\n loyaltyAgreeToTerms: string;\n joinLoyaltyTermsText: string;\n cancelLoyaltyTermsText: string;\n}\n\nexport interface ILoyaltyTermsModalViewProps {\n modal: INodeProps;\n modalHeader: INodeProps;\n modalFooter: INodeProps;\n modalBody: INodeProps;\n heading: React.ReactElement;\n cancelButton: React.ReactElement;\n submitButton: React.ReactElement;\n terms: React.ReactNode;\n checkbox: React.ReactElement;\n agreeText: React.ReactElement;\n agreeSection: INodeProps;\n}\n\nexport const LoyaltyTermsModal = (props: ILoyaltyTermsModalProps): ILoyaltyTermsModalViewProps => {\n const payLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.LoyaltyTermsCancel);\n const loyaltyTermCancelAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsSubmit;\n const loyaltyTermSubmitAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsAgree;\n const loyaltyTermCheckboxAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n return {\n modal: {\n tag: Modal,\n className: 'ms-loyalty-terms__modal',\n toggle: props.onToggle,\n applicationNode: 'renderPage',\n isOpen: props.isOpen,\n returnFocusRef: props.returnRef\n },\n modalHeader: { tag: ModalHeader, className: 'ms-loyalty-terms__modal-header', toggle: props.onToggle },\n modalFooter: { tag: ModalFooter, className: 'ms-loyalty-terms__modal-footer' },\n modalBody: { tag: ModalBody, className: 'ms-loyalty-terms__modal-body' },\n cancelButton: (\n \n ),\n submitButton: (\n \n {props.resources.joinLoyaltyTermsText}\n \n ),\n heading:

{props.resources.loyaltyTermsHeading}

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

{props.resources.loyaltyAgreeToTerms}

\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './account-customer-balance-tile-info';\nexport * from './account-customer-balance-tile-links';\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync } from '@msdyn365-commerce/core';\nimport { getLoyaltyCardAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport { GetLoyaltyCardInput, issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsModalViewProps, LoyaltyTermsModal } from './components/loyalty-terms-modal';\nimport { ILoyaltyTermsData } from './loyalty-terms.data';\nimport { ILoyaltyTermsProps } from './loyalty-terms.props.autogenerated';\n\nexport interface ILoyaltyTermsState {\n checked: boolean;\n clicked: boolean;\n isModalOpen: boolean;\n}\nexport interface ILoyaltyTermsViewProps extends ILoyaltyTermsProps {\n LoyaltyTerms: IModuleProps;\n modalToggle: React.ReactElement;\n modal: ILoyaltyTermsModalViewProps;\n loading: boolean;\n}\n\n/**\n *\n * LoyaltyTerms component.\n * @extends {React.Component>}\n */\nclass LoyaltyTerms extends React.Component, ILoyaltyTermsState> {\n private readonly toggleRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n public constructor(props: ILoyaltyTermsProps) {\n super(props);\n this._toggle = this._toggle.bind(this);\n this._submit = this._submit.bind(this);\n this._checkboxChecked = this._checkboxChecked.bind(this);\n this.toggleRef = React.createRef();\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n let search = this.props.context.request.url.requestUrl.search;\n let isJoining = false;\n if (search) {\n search = search.substring(1);\n const qsps = search.split('&');\n for (const qsp of qsps) {\n const splitQsp = qsp.split('=');\n isJoining = splitQsp[0] === 'joiningLoyalty' && splitQsp[1] === 'true';\n if (isJoining) {\n break;\n }\n }\n }\n\n this.state = {\n isModalOpen: isJoining,\n checked: false,\n clicked: false\n };\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltyTermsProps, nextState: ILoyaltyTermsState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className, hideToggle },\n resources,\n slots: { serviceTerms },\n data: { loyaltyCard },\n context: {\n request: {\n user: { isAuthenticated }\n }\n }\n } = this.props;\n const completeClass = classname('ms-loyalty-terms', className);\n\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltyTerms: {\n moduleProps: this.props,\n className: completeClass\n },\n loading: loyaltyCard.status === 'LOADING',\n modalToggle: hideToggle !== true && (\n \n ),\n modal:\n isAuthenticated &&\n loyaltyCard.result &&\n loyaltyCard.result.CardNumber === undefined &&\n LoyaltyTermsModal({\n resources: { ...resources },\n returnRef: this.toggleRef,\n checked: this.state.checked,\n isOpen: this.state.isModalOpen,\n terms: serviceTerms,\n telemetryContent: this.telemetryContent,\n onToggle: this._toggle,\n onSubmit: this._submit,\n onCheck: this._checkboxChecked\n })\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _toggle(): void {\n this.setState({ isModalOpen: !this.state.isModalOpen, checked: false });\n }\n\n private _submit(): void {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(card => {\n if (this.props.config.redirectToLoyalty) {\n window.location.assign(getUrlSync('loyalty', this.props.context.actionContext) || '');\n } else {\n getLoyaltyCardAsync({ callerContext: this.props.context.actionContext }, card.CardNumber || '')\n .then(fullCard => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n fullCard\n );\n })\n .catch((error: Error) => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n card\n );\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to fetch loyalty card');\n });\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n }\n\n private _checkboxChecked(): void {\n this.setState({ checked: !this.state.checked });\n }\n}\n\nexport default LoyaltyTerms;\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport { SalesInvoice, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\nimport { getSimpleProductsAction, ProductInput } from '@msdyn365-commerce-modules/retail-actions';\r\nimport * as React from 'react';\r\n\r\nimport { IInvoiceDetailsViewProps } from '@msdyn365-commerce-modules/invoice-details/src/modules/invoice-details/./invoice-details';\r\nimport { InvoiceDetailsProductsComponent, InvoiceDetailsModel } from './components/invoice-details-products.component';\r\n\r\n\r\n\r\nexport const InvoiceDetailsView: React.FC = props => {\r\n const {\r\n config,\r\n header,\r\n /*products,*/\r\n paymentDetails,\r\n payInvoiceError,\r\n context,\r\n resources,\r\n typeName\r\n } = props;\r\n const baseClassName: string = 'msc-invoice-details';\r\n const [invoiceDetails, setInvoiceDetails] = React.useState();\r\n const [products, setProducts] = React.useState([]);\r\n\r\n const getInvoiceDetails = async (): Promise => {\r\n const invoice = await props.data.invoice;\r\n const invDetails = await props.data.invoiceDetails;\r\n const invoiceDetailsModel = new InvoiceDetailsModel(invoice, invDetails, products);\r\n setInvoiceDetails(invoiceDetailsModel);\r\n return invDetails;\r\n };\r\n\r\n const getProducts = async (channelId?: number): Promise => {\r\n const invDetails = await getInvoiceDetails();\r\n const invoiceLines = invDetails.SalesInvoiceLine || [];\r\n const productInputs = invoiceLines.filter(product => product.RecordId).map(product => new ProductInput(\r\n product.RecordId!, context.request.apiSettings, channelId, undefined, context.actionContext.requestContext));\r\n const simpleProductsRes = await getSimpleProductsAction(productInputs, context.actionContext);\r\n setProducts(simpleProductsRes);\r\n return getSimpleProductsAction(productInputs, context.actionContext);\r\n }\r\n\r\n const renderProducts = (): JSX.Element | null => {\r\n const { imageSettings } = config;\r\n\r\n if (!invoiceDetails) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n React.useEffect(() => {\r\n void getProducts();\r\n }, []);\r\n \r\n return (\r\n \r\n {header}\r\n {/* {products} */}\r\n {renderProducts()}\r\n {paymentDetails}\r\n {payInvoiceError}\r\n \r\n );\r\n};\r\n\r\nexport default InvoiceDetailsView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n IAccountPreference, IAccountPreferences, IAccountProfileItem, IAccountProfileViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/account-profile/./account-profile';\r\n\r\nconst AccountPreferencesSection: React.FC = ({\r\n accountPreferences,\r\n heading,\r\n personalization,\r\n extraPreferences\r\n}) => {\r\n return (\r\n \r\n {heading}\r\n \r\n {\r\n extraPreferences && extraPreferences.map((preferenceSecton, index) => {\r\n return ;\r\n })\r\n }\r\n \r\n );\r\n};\r\n\r\nconst AccountPreferenceSection: React.FC = ({\r\n accountPreference,\r\n heading,\r\n description,\r\n buttonWrapper,\r\n buttonYesText,\r\n button,\r\n buttonNoText\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {description}\r\n \r\n {buttonNoText}\r\n {button}\r\n {buttonYesText}\r\n \r\n \r\n );\r\n};\r\n\r\nconst AccountProfileSection: React.FC = ({\r\n AccountProfileItem,\r\n heading,\r\n links,\r\n description\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {description}\r\n {/*{links}*/}\r\n \r\n );\r\n};\r\n\r\nconst AccountProfileView: React.FC = props => {\r\n const { AccountProfile, accountProfileWrapper, heading, emailSection, nameSection, preferenceSection, customerAttributesWrapper, customerAttributesSection } = props;\r\n\r\n return (\r\n \r\n {accountProfileWrapper && (\r\n {heading}\r\n \r\n \r\n \r\n \r\n )}\r\n {customerAttributesWrapper && (\r\n {customerAttributesSection}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default AccountProfileView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * 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\nimport * as React from 'react';\n\nexport interface IAccountOrderTemplatesTileDescription {\n description: string;\n}\n\nexport const AccountOrderTemplatesTileDescription: 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-order-templates-tile.props.autogenerated';\n\nexport interface IAccountOrderTemplatesTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nexport const AccountOrderTemplatesTileLinks: React.FC = ({\n links,\n onTextChange,\n telemetryContent,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-order-templates-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } 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 { IAccountOrderTemplatesTileData } from './account-order-templates-tile.data';\nimport { IAccountOrderTemplatesTileProps } from './account-order-templates-tile.props.autogenerated';\nimport { AccountOrderTemplatesTileDescription, AccountOrderTemplatesTileLinks } from './components';\n\nexport interface IAccountOrderTemplatesTileViewProps extends IAccountOrderTemplatesTileProps {\n AccountOrderTemplatesTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountOrderTemplatesTile component.\n * @extends {React.PureComponent>}\n */\nexport class AccountOrderTemplatesTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountOrderTemplatesTileProps) {\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\n if (!this.props.context.request.params.isEditor && !isChannelTypeB2B(this.props.context.request)) {\n return <>;\n }\n\n const { className, heading, links } = config;\n const { accountOrderTemplatesTileDescription } = resources;\n const orderTemplates = data.orderTemplates;\n\n const orderTemplatesCount = (orderTemplates?.result || []).length;\n const description = format(accountOrderTemplatesTileDescription, orderTemplatesCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountOrderTemplatesTile: {\n moduleProps: this.props,\n className: classnames('ms-account-order-templates-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) => {\n this.props.config.heading.text = event.target.value;\n };\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountOrderTemplatesTile;\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 { 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 * 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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsViewProps } from './loyalty-terms';\n\nconst LoyaltyTermsView: React.FC = props => {\n const { LoyaltyTerms, modalToggle, modal, loading } = props;\n\n return !loading && modal ? (\n \n {modalToggle}\n \n {modal.heading}\n \n {modal.terms}\n \n {modal.checkbox}\n {modal.agreeText}\n \n \n \n {modal.submitButton}\n {modal.cancelButton}\n \n \n \n ) : null;\n};\n\nexport default LoyaltyTermsView;\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 { 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","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IOrderTemplateListViewProps, ISingleOrderTemplateViewProps } from '@msdyn365-commerce-modules/order-template';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrderTemplateListProps, IOrderTemplateListResources } from '../definition-extensions/order-template-list.ext.props.autogenerated';\n\n/**\n * Interface for OrderTemplateImage.\n */\ninterface IOrderTemplateImage {\n props: {\n children: React.ReactElement[];\n };\n}\n\n/**\n * To render order template.\n * @param orderTemplate - The order template view props.\n * @param orderTemplateNodeProps - The order template node props.\n * @returns The JSX Element.\n */\nconst renderOrderTemplate = (orderTemplate: ISingleOrderTemplateViewProps, orderTemplateNodeProps?: INodeProps): JSX.Element | null => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file\n const { key, addToCartButton, orderTemplateImage, orderTemplateStatusMessage, removeButton, orderTemplateName } = orderTemplate;\n\n const orderTemplateImageElement: IOrderTemplateImage = orderTemplateImage as React.ReactElement;\n const currentImageListLength = orderTemplateImageElement.props.children.length;\n const defaultNumberImagesInTile = 4;\n\n if (currentImageListLength < defaultNumberImagesInTile) {\n for (let index = 0; index < defaultNumberImagesInTile - currentImageListLength; index++) {\n orderTemplateImageElement.props.children.push();\n }\n }\n\n return (\n \n {orderTemplateName}\n {orderTemplateImage}\n {addToCartButton}\n {removeButton}\n {orderTemplateStatusMessage}\n \n );\n};\n\n/**\n * Order Template List View.\n * @param props - The view props.\n * @returns The JSX Element.\n */\nexport const OrderTemplateListViewComponent: React.FC> = props => {\n const {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file\n OrderTemplateList,\n OrderTemplates,\n OrderTemplate,\n status,\n statusMessage,\n heading,\n orderTemplates,\n createOrderTemplateButton,\n templateHeaderStatusMessage\n } = props;\n\n return (\n \n {heading}\n \n {status === 'SUCCESS' && (!OrderTemplates || !orderTemplates || !ArrayExtensions.hasElements(orderTemplates)) ? (\n
\n

{props.resources.headingForEmptyOrderTemplateList}

\n

{props.resources.textForEmptyOrderTemplateList}

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