{"version":3,"sources":["webpack:///src/modules/password-reset/password-reset.tsx?2fc7","webpack:///src/modules/fabrikam/views/reviews-list.view.tsx?39a2","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/order-lookup/order-lookup.view.tsx?d1dd","webpack:///src/modules/account-customer-balance-tile/index.ts?038c","webpack:///src/modules/account-address-tile/components/index.ts?24f7","webpack:///./src/modules/content-block-no-headings/content-block-no-headings.view.tsx?fcf2","webpack:///src/modules/account-customer-balance-tile/components/account-customer-balance-tile-info.tsx?a91f","webpack:///src/modules/sign-in/sign-in.view.tsx?a753","webpack:///src/modules/password-reset/password-reset.view.tsx?f872","webpack:///src/modules/sign-in/components/sign-in-loading-icon.tsx?3d5a","webpack:///./src/modules/content-block-no-headings/components/links.tsx?37bf","webpack:///./src/modules/content-block-no-headings/content-block-no-headings.props.autogenerated.ts?57c6","webpack:///./src/modules/content-block-no-headings/content-block-no-headings.tsx?1a01","webpack:///src/modules/account-address-tile/index.ts?effb","webpack:///src/modules/loyalty-terms/components/index.ts?508b","webpack:///src/modules/b2b-requests-tile/components/account-b2b-requests-tile-links.tsx?4f55","webpack:///src/modules/b2b-requests-tile/b2b-requests-tile.tsx?ce42","webpack:///src/modules/account-profile/index.ts?8c04","webpack:///./src/themes/spring-valley-vineyard/views/account-management-address.view.tsx?bcb9","webpack:///src/modules/password-reset-verification/components/password-reset-verification-button.tsx?d3bb","webpack:///./src/modules/shipping-map/shipping-map.data-states.ts?1152","webpack:///src/modules/account-loyalty-tile/components/index.ts?c444","webpack:///src/modules/account-profile/components/account-profile-description.tsx?6478","webpack:///src/modules/sign-in/components/sign-in-text.tsx?92d7","webpack:///src/modules/loyalty-sign-up/components/loyalty-sign-up-small-components.tsx?d781","webpack:///src/modules/loyalty-sign-up/loyalty-sign-up.tsx?f29d","webpack:///src/modules/password-reset-verification/components/password-reset-verification-error.tsx?5cfd","webpack:///src/modules/password-reset-verification/components/password-reset-verification-success.tsx?8c35","webpack:///src/modules/sign-in/components/sign-in-button.tsx?a9cc","webpack:///src/modules/account-customer-balance-tile/account-customer-balance-tile.view.tsx?955a","webpack:///src/modules/catalog-picker/catalog-picker.view.tsx?d632","webpack:///src/modules/sign-in/components/sign-in-label.tsx?d42c","webpack:///src/modules/b2b-requests-status/b2b-requests-status.view.tsx?afa7","webpack:///src/modules/order-lookup/utilities/order-lookup-utility.tsx?9369","webpack:///src/modules/order-lookup/components/order-lookup-additional-fields.tsx?7c69","webpack:///src/modules/order-lookup/components/order-lookup-fields.tsx?c99c","webpack:///src/modules/order-lookup/order-lookup.tsx?a81e","webpack:///src/modules/loyalty-sign-up/index.ts?408b","webpack:///src/modules/password-reset/components/password-reset-loading-message.tsx?a735","webpack:///src/modules/sign-in/index.ts?5400","webpack:///src/modules/account-loyalty-tile/index.ts?b609","webpack:///./src/themes/generazioni/views/account-management-address.view.tsx?d0bc","webpack:///src/modules/business-organization-list/business-organization-list.view.tsx?8701","webpack:///./src/modules/shipping-popup/shipping-popup.tsx?9b38","webpack:///src/modules/business-organization-list/components/small-components.tsx?104e","webpack:///src/modules/business-organization-list/business-organization-list.tsx?b6f5","webpack:///./src/themes/stemichelle/views/account-management-address.view.tsx?0cd0","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/account-generic-tile/account-generic-tile.tsx?4504","webpack:///./src/themes/north-star/views/account-management-address.view.tsx?67c7","webpack:///./src/themes/columbiacrest/views/account-management-address.view.tsx?3f27","webpack:///src/modules/sign-in/sign-in.tsx?44ed","webpack:///src/index.ts?c6ae","webpack:///./src/modules/smwe-footer-category/smwe-footer-category.view.tsx?e802","webpack:///src/modules/password-reset-verification/components/password-reset-verification-label.tsx?70a3","webpack:///./src/themes/erath/views/account-management-address.view.tsx?4a6a","webpack:///src/modules/catalog-picker/catalog-picker.tsx?dde5","webpack:///./src/themes/intrinsic-wine-co/views/account-management-address.view.tsx?9e63","webpack:///src/modules/account-customer-balance-tile/account-customer-balance-tile.tsx?9383","webpack:///src/modules/loyalty-sign-up/loyalty-sign-up.view.tsx?ed3f","webpack:///src/modules/account-loyalty-tile/components/account-loyalty-tile-links.tsx?0c40","webpack:///src/modules/account-loyalty-tile/account-loyalty-tile.tsx?b50e","webpack:///./src/themes/colsolare/views/account-management-address.view.tsx?a682","webpack:///src/modules/account-generic-tile/account-generic-tile.view.tsx?bca1","webpack:///src/modules/account-order-templates-tile/account-order-templates-tile.view.tsx?90af","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/navigation-menu/navigation-menu.data.ts?a9f0","webpack:///src/modules/navigation-menu/navigation-menu.tsx?390c","webpack:///src/modules/account-profile/components/account-profile-attributes.tsx?dd79","webpack:///src/modules/account-profile/components/account-profile-links.tsx?2955","webpack:///src/modules/account-profile/account-profile.tsx?8999","webpack:///src/modules/b2b-requests-status/index.ts?e772","webpack:///src/modules/password-reset-verification/password-reset-verification.tsx?9795","webpack:///src/modules/account-welcome-tile/index.ts?2bd4","webpack:///src/modules/account-loyalty/index.ts?6823","webpack:///src/modules/sign-up/index.ts?7cfc","webpack:///src/modules/loyalty-terms/components/loyalty-terms-modal.tsx?c84d","webpack:///src/modules/organization-users-tile/organization-users-tile.view.tsx?d92a","webpack:///src/modules/account-customer-balance-tile/components/index.ts?1499","webpack:///src/modules/loyalty-terms/loyalty-terms.tsx?0629","webpack:///src/modules/account-customer-balance/account-customer-balance.tsx?da17","webpack:///src/modules/account-profile/account-profile.view.tsx?b442","webpack:///src/modules/sign-in/components/sign-in-input.tsx?eb41","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/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/shipping-popup/shipping-popup.view.tsx?aa8b","webpack:///src/modules/account-loyalty-tile/account-loyalty-tile.view.tsx?c661","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/account-profile/components/account-profile-text.tsx?c06a","webpack:///src/modules/sign-in/components/sign-in-link.tsx?fc9f","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/navigation-menu/navigation-menu.view.tsx?df40","webpack:///src/modules/sign-in/components/sign-in-error.tsx?2f11","webpack:///src/modules/loyalty-terms/loyalty-terms.view.tsx?5155","webpack:///./src/themes/patzhall/views/account-management-address.view.tsx?0f87","webpack:///src/modules/password-reset/components/password-reset-label.tsx?2eed","webpack:///src/modules/account-loyalty-tile/components/account-loyalty-tile-description.tsx?a49e","webpack:///./src/themes/stagsleap/views/account-management-address.view.tsx?ad59","webpack:///./src/themes/enoteca/views/account-management-address.view.tsx?07d9","webpack:///src/modules/sign-in/components/sign-in-description.tsx?196e","webpack:///src/modules/account-customer-balance/index.tsx?fe9b","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/organization-users-tile/components/account-organization-users-tile-description.tsx?8d2f","webpack:///src/modules/organization-users-tile/components/account-organization-users-tile-links.tsx?2a03","webpack:///src/modules/organization-users-tile/organization-users-tile.tsx?9c60","webpack:///src/modules/loyalty-terms/index.ts?01e8","webpack:///src/modules/b2b-requests-tile/index.ts?ef19","webpack:///src/modules/sign-in/components/sign-in-loading-message.tsx?7f4d","webpack:///./src/modules/smwe-footer-category/smwe-footer-category.tsx?fa90","webpack:///./src/themes/conn-creek/views/account-management-address.view.tsx?9a81"],"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","buildReviewCard","Node","cardProps","headerProps","rating","name","date","cardBodyProps","reviewProps","reviewTitle","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","ratingHelpfulLabel","like","dislike","edit","report","createReviewModal","Module","modalHeader","form","inputRow","ratingLabel","titleLabel","titleInput","textLabel","textInput","privacyPolicyUrl","error","modalFooter","submitButton","cancelButton","createReportModal","reported","headerSubmitted","header","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton","ReviewsListview","averageRating","filterByDropdown","noReviewsMessage","noReviewsWithFilterMessage","pageControls","refineReviewsProps","reportReviewModal","reviewsListProps","reviewCards","reviewCount","reviewModal","sortByDropdown","userReview","length","isFilterApplied","review","PasswordResetVerificationLoadingMessage","_ref","PasswordResetError","errorClassName","role","OrderLookupViewComponent","_orderLookupForm$clas","_submitButton$classNa","orderLookup","orderLookupContainer","orderLookupAdditionalFieldContainer","paragraph","orderLookupForm","renderOrderLookupInputField","orderNumberInput","additionalProperties","registeredUserMessage","fieldErrorMessage","ArrayExtensions","hasElements","item","submitButtonLabelText","ContentBlockView","contentBlockContainer","imageContainer","detailsContainer","title","links","image","contentBlockAnchorTag","imageLink","imageAriaLabel","href","ErrorComponent","CreditComponent","_ref2","verbagePrefix","verbagePostfix","SignInLoading","_ref4","SignInView","signIn","signInSection","signUpSection","signInSectionHeading","signInLocalAccount","signInSocialAccount","signUpSectionHeading","signInB2BAccount","signUpDescription","signUpLink","forgetPassword","disclaimer","signInButton","LocalAccount","socialAccounts","button","SocialAccount","_ref3","B2BAccount","PasswordResetItem","PasswordResetLoading","PasswordResetView","index","SignInLoadingIcon","ContentCardLinks","_mapEditableLinks","linkdata","editableLinks","forEach","link","payLoad","getPayloadObject","linkText","contentAction","etext","attributes","getTelemetryAttributes","btnClass","editableLink","linkUrl","destinationUrl","openInNewTab","onClick","onTelemetryClick","push","onTextChange","actionableRegion","HeadingTag","ContentBlock","handleTextChange","handleParagraphChange","handleLinkTextChange","linkIndex","contentBlockTitle","imageProps","gridSettings","imageSettings","contentBlockLinks","LinksComponent","indexOf","modifyh1","substring","updatedh1","replace","includes","modifyh2","updatedh2","modifyh3","updatedh3","modifyh4","updatedh4","modifyh5","updatedh5","modifyh6","updatedh6","contentBlockText","contentBlockImage","contentBlockviewProps","moduleClass","_getImageLink","region","imageAndLinks","B2bRequestsTileLinks","B2bRequestsTile","isChannelTypeB2B","actionContext","b2bRequestsTile","AddressShow","AddressDetail","description","AddressList","List","isShowList","Item","showItems","isShowPrimaryButton","primaryButton","editButton","Error","isShowError","AddressLists","ListAddress","isShowEmptyListMessage","emptyListMessage","addButton","primaryAddressList","otherAddressList","AddressAddUpdate","AddressForm","hasError","isShowSaveButton","saveButton","isShowCancelButton","AddressItem","alert","AddressError","AccountManagementAddressView","AccountAddressManagement","addUpdateAddress","showAddressList","showAddOrUpdateAddress","addAddressHeading","editAddressHeading","headingText","RecordId","Heading","isShowAddresList","isShowAddOrUpdateAddress","PasswordResetVerificationButton","disabled","Button","dataStates","IAccountProfileDescription","SignInText","SignUpText","createElement","LoyaltySignUp","handleMemberHeadingChange","memberHeading","_issueLoyalty","user","isAuthenticated","clicked","setState","IssueLoyaltyInput","apiSettings","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","result","undefined","CardTenderTypeValue","customerInformation","invalidAsyncCustomerState","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","infoMessageBar","accountProcessingPendingInfoMessage","params","isEditor","status","signInLink","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","detailsLink","viewLoyaltyPageText","termsLink","loyaltyTermsLinkText","PasswordResetVerificationError","PasswordResetVerificationSuccess","successClassName","SignInButton","AccountCustomerBalanceTileView","AccountCustomerBalanceTile","content","CatalogPickerViewFunctionComponent","catalogPicker","catalogs","SignInLabel","htmlFor","B2bRequestsStatusView","b2bRequestsStatus","table","labelGroup","renderErrorLabel","responseErrorMessage","errorMessageClassName","renderRegisteredUserMessage","signInLinkClassName","registeredUserClassName","orderLookupRegisteredUserText","orderLookupViewAccountText","orderLookupSignInLinkText","infoMessage","signInText","renderFieldErrors","orderLookupFieldValidationErrorMessage","RenderOrderLookupAdditionalFieldInput","_getOrderLookupAdditionalFields","additionalFieldLabel","additionalFieldError","additionalFieldInput","additionalFieldLabelClassName","inputType","onChange","isValidAdditionalFieldName","additionalFieldValidationMessage","RenderOrderLookupFormFields","_getOrderLookupFields","orderLookupLabelClassName","orderLookupLabel","ref","inputReference","fieldErrorClassName","isInputTypeError","renderAlert","isValidInputField","OrderLookupSearchValues","OrderLookup","isEmailValue","isOrderNumberValue","orderLookupExtensibleEnum","handleSubmit","orderNumber","email","orderLookupValue","orderStatusLookUpParametersType","orderLookupName","_validateOrderLookupForm","_Msdyn365$getUrlSync","actionContextValue","orderDetailsPath","baseUrl","URL","redirectUrl","searchParameters","searchParams","set","fieldName","StringExtensions","isNullOrWhitespace","toLocaleLowerCase","fieldValue","toString","_this$orderNumberInpu","_this$emailInputRef$c","orderNumberInputRef","current","emailInputRef","additionalPropertyStates","isAdditionalFieldError","isKeyExistInAdditionalFieldArray","labelName","isValidFieldName","additionalfieldErrorMessage","ordernumber","isOrdNumberError","isReqError","isEmailError","isValidEmailError","isValidLookupField","isValidAdditionalLookupField","isDisabled","_renderAlert","orderLookupEmailValidationErrorMessage","orderLookupRequiredTextErrorMessage","requiredErrorMessage","isNullOrEmpty","emailValidationErrorMessage","isRequireError","isEmailValidError","isValidEmailInput","_renderOrderNumberAlert","orderLookupOrderNumberValidationErrorMessage","_renderOrderLookupInput","orderLookupEmailLabel","orderLookupEmailAriaLabel","_additionalFieldValidation","isFieldValid","RegExp","test","isValid","isDisable","trim","EmailRegex","isEmailValid","orderLookupSearchAdditionalFields","_item$labelName","_item$ariaLabel","_item$validationMessa","validationMessage","_heading$tag","_context$request$user","orderLookupDefaultHeadingText","orderLookupButtonLabel","orderLookupFormAriaLabel","orderLookupOrderNumberLabel","orderLookupOrderNumberAriaLabel","orderLookupSubmitAriaLabel","headingTag","orderLookupHeading","_createParagraph","autoComplete","onSubmit","submit","_renderAdditionalFields","_getExtensibleEnumera","_getExtensibleEnumera2","isOrderLookupAdditionalFieldValid","isOrderLookupFieldValid","getExtensibleEnumerations","StoreOperationsDataActions","getExtensibleEnumerationsAsync","callerContext","find","TypeName","ExtensibleEnumerations","orderLookupAdditionalParameter","validateOrderLookupField","orderStatusLookUpParameter","isValidField","Name","validateOrderLookupAdditionalField","orderStatusLookUpAdditionalParameters","isValidAdditionalField","_item$fieldKey","fieldKey","validateAdditionalFieldWithProxy","some","setLookupFieldState","additionalFieldsInput","PasswordResetLoadingMessage","BusinessFormItem","BusinessUserForm","modalClassName","FormWrapper","modalHeading","modalDescription","inputs","toggle","_renderModal","BusinessUserDetails","selectedUser","FirstName","LastName","userFullName","keys","InputID","isModalOpen","headingSection","bodySection","footerSection","toggleModal","wrapClassName","autoFocus","fade","applicationNode","ModalHeader","ModalFooter","BusinessOrganizationList","OrganizationUserList","moduleContainer","noUsersText","addUserButton","organizationListTable","formType","requestAccountStatementButton","requestStatementModal","ButtonList","_getForm","formProps","ShippingPopup","_modalState","_toggleModal","bind","modalState","scrollbarWidth","innerWidth","document","body","clientWidth","top","scrollY","documentElement","setProperty","FormInput","maxLength","isRequired","fieldReference","placeholder","GetMaxLength","FormLabel","asteriskText","format","FormButton","FormFieldError","parsedMaxLength","Number","parseInt","isNaN","FormType","InputType","renderInputSection","asteriskAfterLabel","onInputChange","element","customClass","maxChars","_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","hasFormError","hasActionError","selectedUserData","_handleAddEditFormSaveButton","async","updatedUser","_createBusinessPartner","Edit","editOrganizationUser","EditOrganizationUserInput","reload","trace","addOrganizationUser","AddOrganizationUserInput","businessUserActionRetailErrorMsg","parseFloat","_handleEditIcon","userData","possibleName","cell","fullName","lastSpaceIndex","lastIndexOf","firstName","lastName","possibleCell","dataCell","_handleDeleteIcon","displayedUserData","TableDataType","Price","cultureFormatter","formatCurrency","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","None","callbackRemoveButton","_onInputChange","prev","refresh","isReady","_isFormReady","formItem","match","_formatPrice","price","_getCurrentUrl","reqContext","url","requestUrl","_getViewport","device","Type","xs","w","sm","md","lg","_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","BusinessPartnerUsersDataActions","requestAccountStatementAsync","_closeStatementRequestModal","_this$statementReques","statementRequestButtonReference","focus","_onSelectRow","records","selectedRow","rowProps","isSelected","row","mobileExcludedColumns","Status","_viewport","_updateViewport","submitButtonReference","addedReference","statementRequestMaxDateString","toISOString","split","businessUserSelectedUserDisplayName","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","innerRef","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","sortable","rows","editLinkText","deleteLinkText","viewLinkText","editLinkTooltip","deleteLinkTooltip","viewLinkTooltip","enableToModify","actionLinkText","showCheckBoxes","isSortable","resourcePrefix","minifyActions","excludedColumns","paginationProperty","skipCount","query","skip","itemPerPage","prevText","nextText","paginationText","isSingleSelectOnly","tableAriaLabel","tableTabIndex","businessUserSelectCheckBoxAriaLabelText","sortByAscending","sortByDescending","actions","onDelete","onView","formatPrice","checkBoxCallback","businessUserActiveStatusText","businessUserPendingStatusText","businessUserRemovedStatusText","usersList","statusString","StatusValue","FullName","buttonReferences","delete","_this$state$reference","businessUserRemoveModalHeaderText","businessUserRemoveModalDescription","businessUserViewModalHeaderText","businessUserCancelButtonText","businessUserCancelRemoveUserButtonText","businessUserRemoveUserButtonText","businessUserErrorUpdatingUsersMessage","formClassName","typeClassName","handleRemoveButton","businessUserEditUserFormHeadingText","businessUserAddUserFormHeadingText","businessUserSaveButtonArialabel","businessUserSaveButtonText","businessUserCancelButtonArialabel","businessUserFieldIncorrectErrorText","businessUserActionErrorText","businessUserAllFieldsRequiredMessage","computed","ActionBar","onSelectCustomerAccount","onSelectFullOrg","popoverReference","requestStatementDropdownString","Popover","placement","onChangeFromDateEvent","onChangeToDateEvent","onBlurFromDate","ObjectExtensions","isFunction","onBlurToDate","horizontalPosition","verticalPosition","onBlur","max","min","AccountLabels","accountNumber","customerSincePrefix","createdOn","AccountValues","availableCredit","availableCreditLabel","AvailableCreditComponent","_ref5","BalanceOwedComponent","_ref6","balanceOwedLabel","balanceOwed","CreditExcessComponent","_ref7","creditExcessLabel","creditExcess","BackButton","_ref8","BackToShopping","AccountCustomerBalanceTileLinks","AccountGenericTile","signInDisclaimer","handleSignInHeadingChange","signInHeading","handleSignUpHeadingChange","signUpHeading","emailRegex","emailId","SA_FIELDS","AttributeFields","errorMessages","requiredField_email","requriedEmailError","requiredField_password","requriedPasswordError","invalid_email","invalidEmailError","invalid_password","invalidPasswordError","unknown_error","unknownError","SignInLoadingIconComponent","SignInLoadingMessageComponent","emailAddressLabelText","emailAddressAriaLabel","passwordLabelText","SignInLinkComponent","forgotPasswordButtonAriaLabel","forgotPasswordButtonText","SignInErrorComponent","SignInButtonComponent","loginButtonAriaLabel","loginButtonText","_renderSocialAccount","facebookButtonText","facebookButtonAriaLabel","facebookIcon","microsoftButtonText","microsoftButtonAriaLabel","microsoftIcon","_renderB2BSocialAccount","b2bButtonText","b2bButtonAriaLabel","displayB2bAccountManagerSignin","SignInDescriptionComponent","signUpDescriptionText","signUpButtonAriaLabel","signUpButtonText","SignInLabelComponent","SignInInputComponent","iconImage","_createImageMarkup","SignInTextComponent","_displayB2bAccountManagerSignin","pictureClassName","shouldSkipToMainImage","FooterCategoryView","categories","FooterList","FooterListItem","category","PasswordResetVerificationLabel","CatalogPicker","PureComponent","_this$props$data$cata","catalogPickerHeading","_moduleClassName","isCatalogsAvailable","catalogPickerParagraph","RichTextComponent","catalogValidationText","handleText","_renderCatalogPicker","_renderCatalogPickerButton","catalogId","getCatalogId","currentCatalogText","linkToCatalog","_getUrlSync","catalogUrl","getUrlSync","fullUrl","changeCatalogButtonText","_this$props$data$cata2","reactKey","JSON","stringify","String","firstOrDefault","Images","tabIndex","Image","src","generateImageUrl","Uri","galleryImageSettings","altText","AltText","loadFailureBehavior","_initState","reaction","apiGenericErrorMessage","get","customerResult","allowOnAccountPayment","AllowOnAccountPayment","isB2BSite","enableCustomerAccountPayment","isCustomerAccountPaymentEnabled","isDetailsLinkDisplayed","account","Balance","CreditLimit","InvoiceAccountBalance","InvoiceAccountCreditLimit","noCreditErrorMessage","accountCreditVerbagePrefix","accountCreditVerbagePostfix","currencyCode","customerCredit","customerCreditFormatted","toFixed","LoyaltySignUpView","AccountLoyaltyTileLinks","AccountLoyaltyTile","signUpLinkText","signUpLinkAriaLabel","viewLinkAriaLabel","accountLoyaltySummary","accountLoyaltyMemberSummary","CardNumber","decimalPrecision","points","RewardPoints","rewardPoint","ActivePoints","DescriptionComponent","AccountGenericTileView","AccountOrderTemplatesTileView","AccountOrderTemplatesTile","PasswordResetVerificationLoadingIcon","MenuTypeIndexId","MenuSource","NavigationMenu","isRetail","isCMS","_setNavigationSource","sourceType","viewport","navigationMenuSource","menuItemList","locale","nameTranslations","nameTranslation","Language","resizeThrottledEventHandler","addThrottledEvent","_this$props$config$di","_this$props$config$di2","_mapData","isEmptyOrNullObject","viewports","q","h","xl","lazyload","Navigation","MenuList","ListItem","showCategoryImage","displayCategoryImage","showPromotionalContent","displayPromotionalImage","Link","DivContainer","ImageDivContainer","ImageContainer","Span","MobileDescriptionContainer","MobileBackButton","backButtonAriaLabel","MobileDescriptionLabel","isMobileView","menuItemData","mergedData","_constructMenuItemData","cmsNavItems","idx","_constructTopMenuItemData","_this$props$config$en","_this$props$config$ro","enabletopMenu","mergedRootMenuData","topMenu","rootMenuNavigation","linkURL","imageSource","subMenu","retailItem","cmsItem","addedAllMenu","categoryPromotionalContent","cmsItemText","menuAriaLabel","promotionalData","filter","promoItem","_promoItem$categoryNa","_retailItem$Name","categoryName","_NavigationMenu$getFr","_NavigationMenu$getFr2","RSItemIdInit","getFriendlyName","NameTranslations","Url","_getNestedChildren","promotionalContent","menuSource","Retail","CMSItemIdInit","imageDestinationURL","_getCMSNestedChildren","Cms","shouldOpenNewTab","imageSourceUrl","arguments","nestedChildren","Children","allCategoryMenuText","getCategoryUrl","subMenus","AccountAttributeDataTypeValue","AccountProfileAttributes","isUpdatingAttributes","gotException","attributeClassName","maxIntegerLimit","minIntegerLimit","maxDecimalLimit","minDecimalLimit","maxStringLength","maxVATNumberLength","maxPhoneLength","editAsyncCustomerFeatureName","isEditAsyncCustomerFeatureEnabled","_renderAttributes","_data$featureState","_this$props$accountPr","accountProfileProps","attributeDefinitions","additionalInformationSectionHeading","elements","showAttributes","att","attributeDefinition","attribute","IsHidden","_renderAttribute","editAttributes","attributesEditButtonText","attributesSaveButtonText","saveAttributes","attributesCancelButtonText","cancelAttributes","featureState","feature","IsEnabled","disableBtn","attributesContainerRef","showPhone","_renderPhone","showVatNumber","_renderVatNumber","attributesSaveExceptionMessage","_enableAttributes","editRef","_saveAttributes","_disableAttributes","phoneSectionHeading","_onPhoneChange","phone","_renderError","vatNumberSectionHeading","_onVatNumberChange","vatNumber","customAttribute","ExtDataType","Value","Integer","Decimal","_renderIntegerDecimalInput","_renderTextInputOrSelect","TrueFalse","_renderBoolean","attributeProps","_getAttributeProps","displayName","_onAttributeChange","IsMandatory","isEnumeration","IsEnumeration","EnumerationDetails","hasNoValue","_onAttributeSelect","selected","option","EnumerationValue","toggleState","arialabel","attributeToggleButtonAriaLabel","ariaPressed","toggleValue","TextComponent","toggleDisableText","_onAttributeCheck","toggleEnableText","attributeName","attributeError","attributePayloadData","isMandatory","getElementsByClassName","_setFocus","initialAttributes","initialPhone","initialVatNumber","currentTarget","selectedOptions","selectedIndex","_getAttributes","showAttributesArray","custmerAttributes","Attributes","showAttribute","defaultValue","AttributeValue","DataTypeValue","IntegerValue","DecimalValue","StringValue","BooleanValue","_addOrUpdateAttribute","hasValue","entries","payloadData","dataTypeValue","decimalValue","typeError","attributeInputTypeErrorText","lowerBoundValue","upperBoundValue","rangeError","attributeInputRangeErrorText","attributeInputValueExceedsMaximumErrorText","attributeInputValueExceedsMinimumErrorText","integerValue","trimValue","attributeInputStringMaxLengthErrorText","textValue","booleanValue","attributeInputMandatoryErrorText","findIndex","splice","Attribute","recordId","Units","ExtensionProperties","KeyName","Phone","VATNumber","VatNumber","updateCustomerAttributesInput","AccountNumber","updateCustomerAttributes","initialCustomerAttributes","exception","_buildPayloadData","defaultIntegerValue","DefaultValue","LowerBound","UpperBound","defaultDecimalValue","defaultStringValue","defaultBooleanValue","_getCustomerPhoneAndVatNumber","AccountProfileLinks","AccountProfile","isUpdatingPreference","handleEmailHeadingChange","emailAddressSectionHeading","handleNameHeadingChange","nameSectionHeading","editButtonText","onClickEventHandler","_updateAccountPersonalization","_renderPreference","sectionHeading","enableAriaLabel","isOptOut","onClickHandler","accountPreference","buttonWrapper","buttonYesText","buttonNoText","onUpdateAccountPreference","isOptOutPersonalization","preferenceType","OptOutWebActivityTracking","updateCustomerPersonalizationInput","OptOutPersonalization","updateCustomerPersonalization","_renderCustomerAttributes","editButtonAriaLabel","shouldRenderAttributes","editLink","accountProfileWrapper","emailSection","_renderEmailSection","nameSection","_renderNameSection","getDescription","preferenceSection","_renderPreferenceSection","customerAttributesWrapper","customerAttributesSection","AccountProfileItem","personalizationDescription","personalizationEnableButtonAriaLabel","webTrackingDescription","webTrackingEnableButtonAriaLabel","preferencesSectionHeading","personalizationSectionHeading","webTrackingSectionHeading","enableDataAnalytics","features","extraPreferences","accountPreferences","personalization","PasswordResetVerification","getValue","v1Value","v2Value","templateVersion","passwordResetVerification","PasswordResetVerificationLoadingIconComponent","PasswordResetVerificationLoadingMessageComponent","passwordResetVerificationLocalAccount","verificationControlWrapper","verificationCodeLabelText","successMessage","PasswordResetVerificationSuccessComponent","verificationCodeSendSuccess","emailAddressVerifiedSuccess","PasswordResetVerificationErrorComponent","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","verificationButtonsWrapper","verificationButtons","PasswordResetVerificationButtonComponent","sendCodeButtonAriaLabel","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","continueButtonAriaLabel","continueButtonText","cancelButtonAriaLabel","cssClassName","PasswordResetVerificationLabelComponent","PasswordResetVerificationInputComponent","LoyaltyTermsModal","LoyaltyTermsCancel","loyaltyTermCancelAttributes","LoyaltyTermsSubmit","loyaltyTermSubmitAttributes","LoyaltyTermsAgree","loyaltyTermCheckboxAttributes","onToggle","returnFocusRef","returnRef","cancelLoyaltyTermsText","checked","joinLoyaltyTermsText","loyaltyTermsHeading","terms","agreeSection","checkbox","onCheck","agreeText","loyaltyAgreeToTerms","OrganizationUsersTileView","OrganizationUsersTile","LoyaltyTerms","_toggle","_submit","_checkboxChecked","toggleRef","search","isJoining","qsps","qsp","splitQsp","hideToggle","slots","serviceTerms","modalToggle","joinLoyaltytermsToggleText","card","redirectToLoyalty","getLoyaltyCardAsync","fullCard","update","GetLoyaltyCardInput","AccountCustomerBalance","_toggleDropdown","_adminShowRequestStatementModal","_this$props$data$b2bU","b2bUserInformation","_get","creditSummarySectionHeading","accountSectionHeading","backToShoppingText","myAccountStatementLabel","_formatJoinDate","CreatedDateTime","customerAccountBalance","excess","_formatCurrency","backLink","emailAddress","actionBar","IsB2bAdmin","accountLabels","accountValues","homeButton","currency","Intl","DateTimeFormat","month","day","year","AccountPreferencesSection","AccountPreferenceSection","preferenceSecton","AccountProfileSection","AccountProfileView","SignInInput","PasswordResetInput","AccountWelcomeTile","accountInfo","accountInformation","AccountGenericTileLinks","AccountOrderTemplatesTileDescription","AccountOrderTemplatesTileLinks","accountOrderTemplatesTileDescription","orderTemplates","orderTemplatesCount","shippingPopup__shippingModalTitle","shippingPopup__shippingModalDescription","shippingPopup__shippingModalLegend","states","statesSettings","zIndex","listStyle","shippingButtonText","AccountLoyaltyTileView","B2bRequestsTileView","PasswordResetButton","IAccountProfileText","SignInLink","PasswordResetVerificationInput","AccountWelcomeTileView","NavigationMenuView","currentLevel","_updateCategoryImage","categoryImageSrc","promotionalImage","imageSrc","promotionalItemImageSettings","categoryImage","categoryImageAltText","_handleDropdownToggle","parentId","isBackTrack","activeMenu","mobileViewLabelText","parentMenu","_handleGoBack","_handleClickOutside","menuNode","contains","_handleFocusOutside","relatedTarget","_closeSubmenu","_shouldAddFocusMenuRef","optionLinkText","_getCategoryImage","defaultImageSettings","_categoryImage$imageS","categoryImageSettings","menuItemRef","_this$menuItemRef$cur","children","_renderDisplay","menuItem","menuItemDatum","_getFromSubMenu","_createMenuItemList","i","found","_renderSubMenu","_renderButtonMenuItem","_renderLinkMenuItem","_renderSpanMenuItem","IsSubMenu","enableMultiSupportMenu","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","levelClassName","menuOptions","hasOptions","haveSubmenu","Math","round","_renderMenu","onFocus","hoverEffect","isParent","imagesource","onMouseOver","_renderPromotionalLink","level","currentItem","submenu","categoryImageDisplay","promotionalContentDisplay","DivContainerClass","_item$additionalPrope","SignInError","LoyaltyTermsView","PasswordResetLabel","IAccountLoyaltyTileDescription","SignInDescription","PasswordResetLoadingIcon","RequestsTableColumnHeader","getUserName","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","AccountOrganizationUsersTileDescription","AccountOrganizationUsersTileLinks","accountOrganizationUsersTileDescriptionForSingleUser","accountOrganizationUsersTileDescriptionForMultipleUsers","numUsers","accountOrganizationUsersTileDescription","SignInLoadingMessage","FooterCategory","viewprops"],"mappings":"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","file":"static/js/17.811bfac5d060cf6afbba.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 { IReviewModalViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport {\n IReportReviewModalViewProps,\n IReviewCardViewProps,\n IReviewsListState,\n IReviewsListViewProps\n} from '@msdyn365-commerce-modules/ratings-reviews/src/modules/reviews-list';\nimport { IModuleProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst ReviewsListview: React.FC = props => {\n const {\n averageRating,\n filterByDropdown,\n moduleProps,\n noReviewsMessage,\n noReviewsWithFilterMessage,\n pageControls,\n refineReviewsProps,\n reportReviewModal,\n reviewsListProps,\n reviewCards,\n reviewCount,\n reviewModal,\n sortByDropdown,\n state,\n userReview\n } = props;\n\n if (!userReview && reviewCards.length === 0 && !state.isFilterApplied) {\n return {noReviewsMessage};\n }\n\n return (\n \n {averageRating}\n {reviewCount}\n \n {sortByDropdown}\n {filterByDropdown}\n \n \n {userReview && buildReviewCard(userReview)}\n {reviewCards.map(review => {\n return buildReviewCard(review);\n })}\n \n {reviewCards.length === 0 && state.isFilterApplied && noReviewsWithFilterMessage}\n {pageControls}\n {createReviewModal(reviewModal, moduleProps)}\n {createReportModal(reportReviewModal, state)}\n \n );\n};\n\nconst buildReviewCard = (props: IReviewCardViewProps) => {\n return (\n \n \n {props.rating}\n {props.name}\n {props.date}\n \n \n \n {props.reviewTitle}\n {props.reviewText}\n \n \n {props.responseName}\n {props.responseDate}\n {props.responseText}\n \n \n {props.ratingHelpfulLabel}\n {props.like}\n {props.dislike}\n {props.edit}\n {props.report}\n \n \n \n );\n};\n\nconst createReviewModal = (props: IReviewModalViewProps, moduleProps: IModuleProps): JSX.Element => {\n return (\n \n {props.modalHeader}\n \n \n \n {props.rating}\n {props.ratingLabel}\n \n \n {props.titleLabel}\n {props.titleInput}\n \n \n {props.textLabel}\n {props.textInput}\n \n {props.privacyPolicyUrl}\n {props.error}\n \n \n \n {props.submitButton}\n {props.cancelButton}\n \n \n );\n};\n\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\n return (\n \n {state.reported ? props.headerSubmitted : props.header}\n \n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\n \n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\n \n );\n};\n\nexport default ReviewsListview;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * 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 { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrderLookupViewProps } from './order-lookup';\n\n/**\n * View component.\n * @param props - The view properties.\n * @returns - Returns JSX Element.\n */\nexport const OrderLookupViewComponent: React.FC = props => {\n const {\n orderLookup,\n orderLookupContainer,\n orderLookupAdditionalFieldContainer,\n heading,\n paragraph,\n orderLookupForm,\n renderOrderLookupInputField,\n orderNumberInput,\n errorMessage,\n submitButton,\n additionalProperties,\n registeredUserMessage,\n fieldErrorMessage\n } = props;\n return (\n \n \n {heading}\n {paragraph}\n \n {orderNumberInput}\n {renderOrderLookupInputField}\n {ArrayExtensions.hasElements(additionalProperties) && (\n \n {additionalProperties.map((item: JSX.Element) => (\n {item}\n ))}\n \n )}\n {fieldErrorMessage}\n \n {props.submitButtonLabelText}\n \n {errorMessage}\n \n {registeredUserMessage}\n \n \n );\n};\n\nexport default OrderLookupViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport AccountCustomerBalanceTile from './account-customer-balance-tile';\nimport AccountCustomerBalanceTileView from './account-customer-balance-tile.view';\n\nexport * from './account-customer-balance-tile';\nexport * from './account-customer-balance-tile.data';\nexport {\n IAccountCustomerBalanceTileConfig,\n IAccountCustomerBalanceTileProps,\n IAccountCustomerBalanceTileResources\n} from './account-customer-balance-tile.props.autogenerated';\nexport * from './account-customer-balance-tile.view';\nexport * from './components';\n\nexport { AccountCustomerBalanceTile, AccountCustomerBalanceTileView };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './account-address-tile-description';\nexport * from './account-address-tile-links';\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IContentBlockViewProps } from './content-block-no-headings';\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 } = props;\r\n\r\n if (imageLink) {\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 \r\n \r\n );\r\n } else {\r\n return (\r\n \r\n {image}\r\n \r\n {title}\r\n {text}\r\n {links}\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 * as React from 'react';\n\ninterface IAccountCustomerBalanceTileInfo {\n label?: string;\n value?: string;\n verbagePrefix?: string;\n verbagePostfix?: string;\n className?: string;\n error?: string;\n}\n\nexport const ErrorComponent: React.FC = ({ error }) => (\n {error}\n);\n\nexport const CreditComponent: React.FC = ({ verbagePrefix, verbagePostfix, value, className }) => {\n return (\n
\n {verbagePrefix}\n {value}\n {verbagePostfix}\n
\n );\n};\n\nexport const InfoComponent: React.FC = ({ label, value, className }) => (\n
\n {label}\n {value}\n
\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n ISignInItem,\n ISignInLoading,\n ISignInLocalAccount,\n ISignInSocialAccount,\n ISignInSocialItem,\n ISignInB2BAccount,\n ISignInB2BItem,\n ISignInViewProps\n} from './sign-in';\n\nconst LocalAccount: React.FC = ({ localAccount, items, forgetPassword, disclaimer, error, signInButton }) => {\n return (\n \n {items &&\n items.map((item: ISignInItem) => {\n return (\n \n {item.label}\n {item.error}\n {item.input}\n \n );\n })}\n {forgetPassword}\n {disclaimer}\n {error}\n {signInButton}\n \n );\n};\n\nconst SocialAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInSocialItem) => {\n return (\n \n {item.image}\n {item.text}\n \n );\n })}\n \n );\n};\n\nconst B2BAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInB2BItem) => {\n return (\n item && (\n \n {item.text}\n \n )\n );\n })}\n \n );\n};\n\nconst SignInLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst SignInView: React.FC = props => {\n const {\n signIn,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n signInSection,\n signUpSection,\n signInSectionHeading,\n signInLocalAccount,\n signInSocialAccount,\n signUpSectionHeading,\n signInB2BAccount,\n signUpDescription,\n signUpLink\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n \n {signInSectionHeading}\n {LocalAccount(signInLocalAccount)}\n {SocialAccount(signInSocialAccount)}\n {B2BAccount(signInB2BAccount)}\n \n \n {signUpSectionHeading}\n {signUpDescription}\n {signUpLink}\n \n \n \n );\n};\n\nexport default SignInView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignInLoadingIcon {\n className: string;\n}\n\nconst SignInLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default SignInLoadingIcon;\n","/* eslint-disable no-duplicate-imports */\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\nimport { ILinksData } from '../content-block-no-headings.props.autogenerated';\r\n\r\nexport interface IContentCardLinks {\r\n links: ILinksData[];\r\n requestContext: Msdyn365.IRequestContext;\r\n telemetryContent: ITelemetryContent;\r\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\r\n}\r\n\r\n/**\r\n *\r\n * ContentCardLinks component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class ContentCardLinks extends React.PureComponent {\r\n public render(): JSX.Element {\r\n const editableLinks = this._mapEditableLinks(this.props.links);\r\n return(\r\n
\r\n { editableLinks && editableLinks.length ?\r\n \r\n : null\r\n }\r\n
\r\n );\r\n }\r\n\r\n private _mapEditableLinks = (linkdata: ILinksData[]): Msdyn365.ILinksData[] | null => {\r\n if(!linkdata || linkdata.length === 0) {\r\n return null;\r\n }\r\n const editableLinks: Msdyn365.ILinksData[] = [];\r\n linkdata.forEach((link,index) => {\r\n // Construct telemetry attribute to render\r\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\r\n const linkText = link.linkText ? link.linkText : '';\r\n payLoad.contentAction.etext = linkText;\r\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\r\n const btnClass = index === 0 ? 'msc-cta__primary' : 'msc-cta__secondary';\r\n const editableLink: Msdyn365.ILinksData = {\r\n ariaLabel: link.ariaLabel,\r\n className: btnClass,\r\n linkText: link.linkText,\r\n linkUrl: link.linkUrl.destinationUrl,\r\n openInNewTab: link.openInNewTab,\r\n additionalProperties: attributes,\r\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\r\n };\r\n editableLinks.push(editableLink);\r\n });\r\n\r\n return editableLinks;\r\n };\r\n}\r\nexport default ContentCardLinks;\r\n","/**\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. See License.txt in the project root for license information.\r\n * IContentBlockNoHeadings contentModule Interface Properties\r\n * THIS FILE IS AUTO-GENERATED - MANUAL MODIFICATIONS WILL BE LOST\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport const enum actionableRegion {\r\n imageAndLinks = 'imageAndLinks',\r\n linksOnly = 'linksOnly'\r\n}\r\n\r\nexport interface IContentBlockNoHeadingsConfig extends Msdyn365.IModuleConfig {\r\n heading?: IHeadingData;\r\n paragraph?: Msdyn365.RichText;\r\n image?: Msdyn365.IImageData;\r\n links?: ILinksData[];\r\n actionableRegion?: actionableRegion;\r\n imageLink?: Msdyn365.ILinkData;\r\n imageAriaLabel?: string;\r\n className?: string;\r\n}\r\n\r\nexport const enum HeadingTag {\r\n h1 = 'h1',\r\n h2 = 'h2',\r\n h3 = 'h3',\r\n h4 = 'h4',\r\n h5 = 'h5',\r\n h6 = 'h6'\r\n}\r\n\r\nexport interface IHeadingData {\r\n text: string;\r\n tag?: HeadingTag;\r\n}\r\n\r\nexport interface ILinksData {\r\n linkText?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n openInNewTab?: boolean;\r\n}\r\n\r\nexport interface IContentBlockNoHeadingsProps extends Msdyn365.IModule {\r\n config: IContentBlockNoHeadingsConfig;\r\n}\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable no-duplicate-imports */\r\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport LinksComponent from './components/links';\r\nimport { actionableRegion as region, IContentBlockNoHeadingsProps } from './content-block-no-headings.props.autogenerated';\r\n\r\nexport interface IContentBlockViewProps extends IContentBlockNoHeadingsProps<{}> {\r\n title?: React.ReactNode;\r\n text?: React.ReactNode;\r\n image?: React.ReactNode;\r\n links?: React.ReactNode;\r\n className?: string;\r\n contentBlockContainer: IModuleProps;\r\n imageContainer: INodeProps;\r\n detailsContainer: INodeProps;\r\n contentBlockAnchorTag?: INodeProps;\r\n imageLink?: string;\r\n imageAriaLabel?: string;\r\n}\r\n/**\r\n *\r\n * ContentCard component\r\n * @extends {React.PureComponent}\r\n */\r\n\r\nclass ContentBlock extends React.PureComponent> {\r\n private telemetryContent: ITelemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry);\r\n public render(): JSX.Element | null {\r\n const {\r\n heading,\r\n image,\r\n links,\r\n className,\r\n imageAriaLabel\r\n } = this.props.config;\r\n let { paragraph } = this.props.config;\r\n const contentBlockTitle = heading && (\r\n \r\n );\r\n const imageProps = {\r\n gridSettings: this.props.context.request.gridSettings || {},\r\n imageSettings: image && image.imageSettings,\r\n };\r\n const contentBlockLinks = links && links.length > 0 && (\r\n \r\n );\r\n //Change the paragraph source by replacing all the heading tags to p tags and adding custom styling for font size to them\r\n if (paragraph) {\r\n if (paragraph.indexOf(\"= 0 && paragraph.indexOf(\"\") >= 0) {\r\n const modifyh1 = paragraph.substring(paragraph.indexOf(\"\") + 5);\r\n let updatedh1 = modifyh1.replace(\"\", \"
\").replace('class=\"', 'class=\"h1 ');\r\n if (!updatedh1.includes(\"class\")) {\r\n updatedh1 = updatedh1.replace(\"= 0 && paragraph.indexOf(\"\") >= 0) {\r\n const modifyh2 = paragraph.substring(paragraph.indexOf(\"\") + 5);\r\n let updatedh2 = modifyh2.replace(\"\", \"\").replace('class=\"', 'class=\"h2 ');\r\n if (!updatedh2.includes(\"class\")) {\r\n updatedh2 = updatedh2.replace(\"= 0 && paragraph.indexOf(\"\") >= 0) {\r\n const modifyh3 = paragraph.substring(paragraph.indexOf(\"\") + 5);\r\n let updatedh3 = modifyh3.replace(\"\", \"\").replace('class=\"', 'class=\"h3 ');\r\n if (!updatedh3.includes(\"class\")) {\r\n updatedh3 = updatedh3.replace(\"= 0 && paragraph.indexOf(\"\") >= 0) {\r\n const modifyh4 = paragraph.substring(paragraph.indexOf(\"\") + 5);\r\n let updatedh4 = modifyh4.replace(\"\", \"\").replace('class=\"', 'class=\"h4 ');\r\n if (!updatedh4.includes(\"class\")) {\r\n updatedh4 = updatedh4.replace(\"= 0 && paragraph.indexOf(\"\") >= 0) {\r\n const modifyh5 = paragraph.substring(paragraph.indexOf(\"\") + 5);\r\n let updatedh5 = modifyh5.replace(\"\", \"\").replace('class=\"', 'class=\"h5 ');\r\n if (!updatedh5.includes(\"class\")) {\r\n updatedh5 = updatedh5.replace(\"= 0 && paragraph.indexOf(\"\") >= 0) {\r\n const modifyh6 = paragraph.substring(paragraph.indexOf(\"\") + 5);\r\n let updatedh6 = modifyh6.replace(\"\", \"\").replace('class=\"', 'class=\"h6 ');\r\n if (!updatedh6.includes(\"class\")) {\r\n updatedh6 = updatedh6.replace(\"\r\n );\r\n const contentBlockImage = image && (\r\n \r\n );\r\n\r\n if (\r\n !contentBlockTitle &&\r\n !contentBlockText &&\r\n !contentBlockImage &&\r\n !contentBlockLinks\r\n ) {\r\n this.props.context.telemetry.error(\r\n 'Content block content is empty, module wont render.'\r\n );\r\n return null;\r\n }\r\n\r\n const contentBlockviewProps = {\r\n ...this.props,\r\n title: contentBlockTitle,\r\n text: contentBlockText,\r\n image: contentBlockImage,\r\n links: contentBlockLinks,\r\n moduleClass: this.props.config.className,\r\n contentBlockContainer: {\r\n moduleProps: this.props,\r\n className: classnames('ms-content-block', className),\r\n },\r\n imageContainer: { className: 'ms-content-block__image' },\r\n detailsContainer: { className: 'ms-content-block__details' },\r\n contentBlockAnchorTag: {\r\n tag: 'a',\r\n className: 'ms-content-block__link',\r\n role: 'link',\r\n },\r\n imageLink: this._getImageLink(),\r\n imageAriaLabel\r\n };\r\n\r\n return this.props.renderView(contentBlockviewProps) as React.ReactElement;\r\n }\r\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.heading!.text = event.target.value;\r\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.paragraph = event.target.value;\r\n /* Handle link text change*/\r\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\r\n if (this.props.config.links && this.props.config.links[linkIndex]) {\r\n this.props.config.links[linkIndex].linkText = event.target.value;\r\n }\r\n };\r\n private _getImageLink(): string | null {\r\n const { imageLink, links, actionableRegion } = this.props.config;\r\n if (actionableRegion === region.imageAndLinks) {\r\n if (imageLink && imageLink.destinationUrl) {\r\n return imageLink.destinationUrl;\r\n } else if (links && links.length && links[0].linkUrl) {\r\n return links[0].linkUrl.destinationUrl;\r\n } else {\r\n return null;\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nexport default ContentBlock;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport AccountAddressTile from './account-address-tile';\nimport AccountAddressTileView from './account-address-tile.view';\n\nexport * from './account-address-tile';\nexport * from './account-address-tile.data';\nexport {\n IAccountAddressTileConfig,\n IAccountAddressTileProps,\n IAccountAddressTileResources,\n ILinksData\n} from './account-address-tile.props.autogenerated';\nexport * from './account-address-tile.view';\nexport * from './components';\n\nexport { AccountAddressTile, AccountAddressTileView };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './loyalty-terms-modal';\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../../..';\n\nexport interface IB2bRequestsTileLinksProps {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst defaultClassName = 'ms-account-b2b-requests-tile';\n\nexport const B2bRequestsTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (!ArrayExtensions.hasElements(links)) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {ArrayExtensions.hasElements(editableLinks) ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n\n return linkdata.map(link => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return {\n ariaLabel: link.ariaLabel,\n className: `${defaultClassName}__link`,\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n } as Msdyn365.ILinksData;\n });\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IB2bRequestsTileData } from './b2b-requests-tile.data';\nimport { IB2bRequestsTileProps } from './b2b-requests-tile.props.autogenerated';\nimport { B2bRequestsTileLinks } from './components/account-b2b-requests-tile-links';\n\nexport interface IB2bRequestsTileViewProps extends IB2bRequestsTileProps {\n b2bRequestsTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n}\n\n/**\n *\n * B2bRequestsTile component.\n * @extends {React.PureComponent>}\n */\nclass B2bRequestsTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IB2bRequestsTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n const { config } = this.props;\n const { className, heading, links } = config;\n\n const defaultClassName = 'ms-account-b2b-requests-tile';\n\n if (!isChannelTypeB2B(this.props.context.actionContext.requestContext)) {\n return null;\n }\n\n const viewProps = {\n ...this.props,\n className,\n b2bRequestsTile: {\n moduleProps: this.props,\n className: classnames(defaultClassName, config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: ArrayExtensions.hasElements(links) && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default B2bRequestsTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport AccountProfile from './account-profile';\nimport AccountProfileView from './account-profile.view';\n\nexport * from './account-profile';\nexport * from './account-profile.data';\nexport {\n EmailAddressSectionHeadingTag,\n IAccountProfileConfig,\n IAccountProfileProps,\n IAccountProfileResources,\n IEmailAddressSectionHeadingData,\n INameSectionHeadingData,\n IPersonalizationSectionHeadingData,\n IPreferencesSectionHeadingData,\n NameSectionHeadingTag,\n PersonalizationSectionHeadingTag,\n PreferencesSectionHeadingTag\n} from './account-profile.props.autogenerated';\nexport * from './account-profile.view';\nexport * from './components';\n\nexport { AccountProfile, AccountProfileView };\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Heading, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address';\r\nimport { IAccountManagementAddressConfig } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address.props.autogenerated';\r\n\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n {isShowError && \r\n {title}\r\n {message}\r\n }\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, addUpdateAddress, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n // update heading in props if not provided from module\r\n if (!showAddOrUpdateAddress.heading) {\r\n // create heading component from configured values\r\n const addAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).addAddressHeading;\r\n const editAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).editAddressHeading;\r\n const headingText = addUpdateAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n const heading = headingText && ;\r\n\r\n showAddOrUpdateAddress.heading = heading;\r\n }\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\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","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nexport enum dataStates {\r\n al = 'Alabama',\r\n ak = 'Alaska',\r\n az = 'Arizona',\r\n ar = 'Arkansas',\r\n ca = 'California',\r\n co = 'Colorado',\r\n ct = 'Connecticut',\r\n dc = 'District of Columbia',\r\n de = 'Delaware',\r\n fl = 'Florida',\r\n ga = 'Georgia',\r\n hi = 'Hawaii',\r\n id = 'Idaho',\r\n il = 'Illinois',\r\n in = 'Indiana',\r\n ia = 'Iowa',\r\n ks = 'Kansas',\r\n ky = 'Kentucky',\r\n la = 'Louisiana',\r\n me = 'Maine',\r\n md = 'Maryland',\r\n ma = 'Massachusetts',\r\n mi = 'Michigan',\r\n mn = 'Minnesota',\r\n ms = 'Mississippi',\r\n mo = 'Missouri',\r\n mt = 'Montana',\r\n ne = 'Nebraska',\r\n nv = 'Nevada',\r\n nh = 'New Hampshire',\r\n nj = 'New Jersey',\r\n nm = 'New Mexico',\r\n ny = 'New York',\r\n nc = 'North Carolina',\r\n nd = 'North Dakota',\r\n oh = 'Ohio',\r\n ok = 'Oklahoma',\r\n or = 'Oregon',\r\n pa = 'Pennsylvania',\r\n ri = 'Rhode Island',\r\n sc = 'South Carolina',\r\n sd = 'South Dakota',\r\n tn = 'Tennessee',\r\n tx = 'Texas',\r\n ut = 'Utah',\r\n vt = 'Vermont',\r\n va = 'Virginia',\r\n wa = 'Washington',\r\n wv = 'West Virginia',\r\n wi = 'Wisconsin',\r\n wy = 'Wyoming',\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 * as React from 'react';\n\ninterface IAccountProfileDescription {\n className: string;\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountProfileDescription: React.FC = ({ className, description }) => (\n

{description}

\n);\n\nexport default IAccountProfileDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignInText {\n className: string;\n text: string;\n}\n\nconst SignInText: React.FC = ({ className, text }) => {text};\n\nexport default SignInText;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React from 'react';\n\nexport const SignUpText: React.FC<{ text: string }> = (props: { text: string }) => {\n return

{props.text}

;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, * as Msdyn365 from '@msdyn365-commerce/core';\nimport { issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { SignUpText } from './components/loyalty-sign-up-small-components';\nimport { ILoyaltySignUpData } from './loyalty-sign-up.data';\nimport { ILoyaltySignUpProps } from './loyalty-sign-up.props.autogenerated';\n\nexport interface IAccountLoyaltyJoinState {\n clicked: boolean;\n}\nexport interface ILoyaltySignUpViewProps extends ILoyaltySignUpProps {\n LoyaltySignUp: IModuleProps;\n heading: React.ReactNode;\n memberHeading: React.ReactNode;\n signInLink: React.ReactElement;\n signUpText: React.ReactElement;\n signUpButton: React.ReactElement;\n detailsLink: React.ReactElement;\n termsLink: React.ReactElement;\n loading: boolean;\n infoMessageBar?: React.ReactNode;\n}\n\n/**\n *\n * LoyaltySignUp component.\n * @extends {React.Component>}\n */\n@observer\nclass LoyaltySignUp extends React.Component, IAccountLoyaltyJoinState> {\n private readonly telemetryContent?: ITelemetryContent;\n private readonly loyaltySignInAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltySignUpAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyDetailsLinkAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyTermsLinkAttributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: ILoyaltySignUpProps) {\n super(props);\n this.state = { clicked: false };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.SignIn);\n this.loyaltySignInAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.SignUp;\n this.loyaltySignUpAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyDetailLink;\n this.loyaltyDetailsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsLink;\n this.loyaltyTermsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltySignUpProps, nextState: IAccountLoyaltyJoinState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className, heading, memberHeading },\n resources,\n context: {\n actionContext,\n request: {\n user: { signInUrl, isAuthenticated }\n }\n },\n data\n } = this.props;\n\n const termsUrl = Msdyn365.getUrlSync('loyaltyTerms', actionContext);\n let loyaltyJoinUrl = `${Msdyn365.getUrlSync('loyaltyJoin', actionContext)}?joiningLoyalty=true`;\n if (MsDyn365.isBrowser) {\n loyaltyJoinUrl = `${window.location.origin}${loyaltyJoinUrl}`;\n }\n const signInurl = `${signInUrl}?ru=${loyaltyJoinUrl}`;\n const completeClass = classname('ms-loyalty-signup', className);\n const loyaltyCard = data.loyaltyCard;\n const hasLoyaltyAccount = loyaltyCard.result && loyaltyCard.result.CardTenderTypeValue !== undefined;\n const customerInformation = data.customerInformation?.result;\n\n const invalidAsyncCustomerState: boolean =\n (this.props.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false);\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltySignUp: {\n moduleProps: this.props,\n className: completeClass\n },\n infoMessageBar: invalidAsyncCustomerState && (\n \n ),\n loading: !this.props.context.request.params.isEditor && loyaltyCard?.status === 'LOADING',\n heading: !hasLoyaltyAccount && heading && heading.text && (\n \n ),\n memberHeading: hasLoyaltyAccount && memberHeading && memberHeading.text && (\n \n ),\n signInLink: !isAuthenticated && (\n \n ),\n signUpText: !hasLoyaltyAccount && ,\n signUpButton: !hasLoyaltyAccount && isAuthenticated && (\n \n {this.props.resources.joinLoyaltyButtonText}\n \n ),\n detailsLink: hasLoyaltyAccount && (\n \n {this.props.resources.viewLoyaltyPageText}\n \n ),\n termsLink: !hasLoyaltyAccount && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleMemberHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.memberHeading!.text = event.target.value);\n\n private readonly _issueLoyalty = () => {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(() => {\n if (MsDyn365.isBrowser) {\n window.location.assign(Msdyn365.getUrlSync('loyalty', this.props.context.actionContext) || '');\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n };\n}\n\nexport default LoyaltySignUp;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationSuccess;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignInButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst SignInButton: React.FC = ({ id, className, text, ariaLabel, telemetryContent, disabled, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default SignInButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileViewProps } from './account-customer-balance-tile';\n\nconst AccountCustomerBalanceTileView: React.FC = props => {\n const { AccountCustomerBalanceTile, heading, content, links } = props;\n\n return (\n \n {heading}\n {content}\n {links}\n \n );\n};\n\nexport default AccountCustomerBalanceTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICatalogPickerViewProps } from './catalog-picker';\n\n/**\n * ICatalogPickerViewProps.\n * @param props - ICatalogPickerViewProps.\n * @returns - Render Catalog Picker.\n */\nexport const CatalogPickerViewFunctionComponent: React.FC = props => {\n const { catalogPicker } = props;\n return (\n \n {props.heading}\n {props.paragraph}\n {props.catalogs}\n \n );\n};\n\nexport default CatalogPickerViewFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignInLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst SignInLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default SignInLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 { ExtensibleEnumeration } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\nimport { IOrderLookupResources, IOrderLookupSearchAdditionalFieldsData } from '../order-lookup.props.autogenerated';\n\n/**\n * Render label.\n * @param className - Classname for label.\n * @param value - Text for label.\n * @returns -The JSX Element.\n */\nexport const labelGroup = (className: string, value: string): JSX.Element => {\n return
{value}
;\n};\n\n/**\n * Error label.\n * @param responseErrorMessage - Error message for label.\n * @param errorMessageClassName - Error message for class name.\n * @returns - Error ReactNode.\n */\nexport const renderErrorLabel = (responseErrorMessage: string, errorMessageClassName: string): React.ReactNode => {\n return responseErrorMessage &&
{responseErrorMessage}
;\n};\n\n/**\n * Registered user message.\n * @param resources - Resource values.\n * @param signInUrl - Signin url.\n * @param signInLinkClassName - Signin link classname.\n * @param registeredUserClassName - Registered user message classname.\n * @returns - ReactNode.\n */\nexport const renderRegisteredUserMessage = (\n resources: IOrderLookupResources,\n signInUrl: string,\n signInLinkClassName: string,\n registeredUserClassName: string\n): React.ReactNode => {\n const { orderLookupRegisteredUserText, orderLookupViewAccountText, orderLookupSignInLinkText } = resources;\n const message: string = orderLookupRegisteredUserText;\n const infoMessage: string = orderLookupViewAccountText;\n const signInText: string = orderLookupSignInLinkText;\n return (\n
\n {message}\n \n {signInText}\n \n {infoMessage}\n
\n );\n};\n\n/**\n * EmailValid submit.\n * @param email - Onsubmit of form and button click.\n * @returns - Boolean.\n */\nexport const isEmailValid = (email: string): boolean => {\n return EmailRegex.defaultRegex.test(email);\n};\n\n/**\n * Additional field validation for on submit.\n * @param name - Onsubmit of form and button click.\n * @returns - Boolean.\n */\nexport const isAdditionalFieldValid = (name: string): boolean => {\n const regEx = new RegExp('^(?!\\\\s)[A-Za-z0-9\\\\s]+$', 'u');\n return regEx.test(name);\n};\n\n/**\n * Validate order lookup field against extensible enum.\n * @param orderStatusLookUpParameter - Order lookup parameter.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateOrderLookupField = (\n orderStatusLookUpParameter: string,\n orderLookupExtensibleEnum: ExtensibleEnumeration[]\n): boolean => {\n let isValidField: boolean = false;\n for (const item of orderLookupExtensibleEnum) {\n if (item.Name.toLocaleLowerCase() === orderStatusLookUpParameter.toLocaleLowerCase()) {\n isValidField = true;\n return isValidField;\n }\n }\n return isValidField;\n};\n\n/**\n * Validate order lookup additional fields with proxy values.\n * @param value - Value to be validated.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateAdditionalFieldWithProxy = (value: string, orderLookupExtensibleEnum: ExtensibleEnumeration[]): boolean => {\n return !orderLookupExtensibleEnum.some(item => item.Name.toLocaleLowerCase() === value.toLocaleLowerCase());\n};\n\n/**\n * Validate order lookup additional fields against extensible enum.\n * @param orderStatusLookUpAdditionalParameters - Order lookup parameter.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateOrderLookupAdditionalField = (\n orderStatusLookUpAdditionalParameters: IOrderLookupSearchAdditionalFieldsData[],\n orderLookupExtensibleEnum: ExtensibleEnumeration[]\n): boolean => {\n let isValidAdditionalField: boolean = false;\n if (ArrayExtensions.hasElements(orderStatusLookUpAdditionalParameters)) {\n orderStatusLookUpAdditionalParameters.map(item => {\n const fieldKey: string = item.fieldKey ?? '';\n if (!isValidAdditionalField) {\n isValidAdditionalField = validateAdditionalFieldWithProxy(fieldKey, orderLookupExtensibleEnum);\n }\n return isValidAdditionalField;\n });\n } else {\n isValidAdditionalField = false;\n }\n return isValidAdditionalField;\n};\n\n/**\n * Render validation message if field does not matches with extensible enum.\n * @param orderLookupFieldValidationErrorMessage - Order lookup validation message.\n * @returns - ReactNode.\n */\nexport const renderFieldErrors = (orderLookupFieldValidationErrorMessage: string): React.ReactNode => {\n return
{orderLookupFieldValidationErrorMessage}
;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { labelGroup } from '../utilities/order-lookup-utility';\n\n/**\n * Additional input field props.\n */\nexport interface IOrderLookupAdditionalFieldInfoInput {\n className: string;\n ariaLabel: string;\n inputType: string;\n value: string;\n name: string;\n additionalFieldLabel: string;\n additionalFieldLabelClassName: string;\n isValidAdditionalFieldName: boolean;\n additionalFieldValidationMessage: string;\n onChange(event: React.ChangeEvent): void;\n}\n\n/**\n * Order lookup additional field props.\n */\nexport interface IOrderLookupAdditionalFieldInfo {\n additionalFieldLabel: React.ReactNode;\n additionalFieldInput: React.ReactNode;\n additionalFieldError: React.ReactNode;\n}\n\n/**\n * RenderOrderLookupAdditionalFieldInput component.\n */\n@observer\nexport default class RenderOrderLookupAdditionalFieldInput extends React.Component {\n public constructor(props: IOrderLookupAdditionalFieldInfoInput) {\n super(props);\n }\n\n public shouldComponentUpdate(nextProps: IOrderLookupAdditionalFieldInfoInput): boolean {\n if (this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | undefined {\n return (\n
\n {this._getOrderLookupAdditionalFields().additionalFieldLabel}\n {this._getOrderLookupAdditionalFields().additionalFieldError}\n {this._getOrderLookupAdditionalFields().additionalFieldInput}\n
\n );\n }\n\n /**\n * Function to create the order lookup additional fields.\n * @returns IOrderLookupFieldInfo.\n */\n private _getOrderLookupAdditionalFields(): IOrderLookupAdditionalFieldInfo {\n return {\n additionalFieldLabel: labelGroup(this.props.additionalFieldLabelClassName, this.props.additionalFieldLabel),\n additionalFieldInput: (\n
\n \n
\n ),\n additionalFieldError: (\n
\n {!this.props.isValidAdditionalFieldName ? this.props.additionalFieldValidationMessage : ''}\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 { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { labelGroup } from '../utilities/order-lookup-utility';\n\n/**\n * Input field props.\n */\nexport interface IOrderLookupFieldInfoInput {\n inputReference?: React.RefObject;\n className: string;\n ariaLabel: string;\n inputType: string;\n value: string;\n name: string;\n orderLookupLabel: string;\n orderLookupLabelClassName: string;\n fieldErrorClassName: string;\n isInputTypeError: boolean;\n isValidInputField: boolean;\n renderAlert(className: string): JSX.Element;\n onChange(event: React.ChangeEvent): void;\n}\n\n/**\n * Order lookup field props.\n */\nexport interface IOrderLookupFieldInfo {\n label: React.ReactNode;\n input: React.ReactNode;\n error: React.ReactNode;\n}\n\n/**\n * RenderOrderLookupInputs component.\n */\n@observer\nexport default class RenderOrderLookupFormFields extends React.Component {\n public constructor(props: IOrderLookupFieldInfoInput) {\n super(props);\n }\n\n public shouldComponentUpdate(nextProps: IOrderLookupFieldInfoInput): boolean {\n if (this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | undefined {\n return (\n
\n {this._getOrderLookupFields().label}\n {this._getOrderLookupFields().error}\n {this._getOrderLookupFields().input}\n
\n );\n }\n\n /**\n * Function to create the order lookup fields.\n * @returns IOrderLookupFieldInfo.\n */\n private _getOrderLookupFields(): IOrderLookupFieldInfo {\n return {\n label: labelGroup(this.props.orderLookupLabelClassName, this.props.orderLookupLabel),\n input: (\n
\n \n
\n ),\n error: (\n
\n {this.props.isInputTypeError ? this.props.renderAlert(this.props.name) : ''}\n {this.props.isValidInputField ? this.props.renderAlert(this.props.name) : ''}\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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IActionContext } from '@msdyn365-commerce/core-internal';\nimport { ExtensibleEnumeration, StoreOperationsDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport RenderOrderLookupAdditionalFieldInput from './components/order-lookup-additional-fields';\nimport RenderOrderLookupFormFields from './components/order-lookup-fields';\nimport {\n IOrderLookupProps,\n IOrderLookupSearchAdditionalFieldsData,\n orderStatusLookUpParametersType as orderStatusLookUpParametersTypes\n} from './order-lookup.props.autogenerated';\nimport {\n isAdditionalFieldValid,\n isEmailValid,\n renderErrorLabel,\n renderFieldErrors,\n renderRegisteredUserMessage,\n validateOrderLookupAdditionalField,\n validateOrderLookupField\n} from './utilities/order-lookup-utility';\n\n/**\n * OrderLookup view props.\n */\nexport interface IOrderLookupViewProps extends IOrderLookupProps<{}> {\n additionalProperties: JSX.Element[] | undefined;\n orderLookup: IModuleProps;\n orderLookupContainer: INodeProps;\n orderLookupAdditionalFieldContainer: INodeProps;\n paragraph?: React.ReactNode;\n heading?: React.ReactNode;\n submitButton?: INodeProps;\n submitButtonLabelText?: string;\n orderLookupForm?: INodeProps;\n renderOrderLookupInputField: JSX.Element | undefined;\n orderNumberInput?: JSX.Element | undefined;\n errorMessage?: React.ReactNode;\n fieldErrorMessage?: React.ReactNode;\n registeredUserMessage?: React.ReactNode;\n onChange?(event: React.ChangeEvent): void;\n submit?(): void;\n}\n\n/**\n * OrderLookupSearchValues -- supported values.\n */\nenum OrderLookupSearchValues {\n email = 'email',\n ordernumber = 'ordernumber'\n}\n\n/**\n * To render and handle state for additional order lookup fields.\n */\nexport interface IOrderLookupAdditionalFields {\n labelName: string;\n isValidFieldName: boolean;\n fieldValue: string;\n ariaLabel: string;\n additionalfieldErrorMessage: string;\n}\n\n/**\n * OrderLookup view props.\n */\nexport interface IOrderLookupFormState {\n orderNumber: string;\n email: string;\n isOrdNumberError: boolean;\n isEmailError: boolean;\n isValidEmailError: boolean;\n isReqError: boolean;\n isDisabled: boolean;\n isValidLookupField: boolean;\n isValidAdditionalLookupField: boolean;\n responseErrorMessage: string;\n additionalProperties: IOrderLookupAdditionalFields[];\n}\n\n/**\n *\n * OrderLookup component.\n * @extends {React.PureComponent>}\n */\nclass OrderLookup extends React.PureComponent, IOrderLookupFormState> {\n public orderNumberInputRef: React.RefObject;\n\n public emailInputRef: React.RefObject;\n\n public isEmailValue: boolean = false;\n\n private requiredErrorMessage: string | undefined;\n\n private emailValidationErrorMessage: string | undefined;\n\n private isOrderNumberValue: boolean = false;\n\n private orderLookupExtensibleEnum: ExtensibleEnumeration[] = [];\n\n public constructor(props: IOrderLookupProps<{}>) {\n super(props);\n this.orderNumberInputRef = React.createRef();\n this.emailInputRef = React.createRef();\n const { config } = this.props;\n const { orderLookupSearchAdditionalFields } = config;\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n\n if (orderLookupSearchAdditionalFields) {\n for (const item of orderLookupSearchAdditionalFields) {\n additionalPropertyStates.push({\n labelName: item.labelName ?? '',\n isValidFieldName: true,\n fieldValue: '',\n ariaLabel: item.ariaLabel ?? '',\n additionalfieldErrorMessage: item.validationMessage ?? ''\n });\n }\n }\n\n this.state = {\n orderNumber: '',\n email: '',\n isOrdNumberError: false,\n isEmailError: false,\n isValidEmailError: false,\n isReqError: false,\n isDisabled: true,\n isValidLookupField: true,\n isValidAdditionalLookupField: false,\n responseErrorMessage: '',\n additionalProperties: additionalPropertyStates\n };\n }\n\n public render(): JSX.Element | null {\n const {\n config: { paragraph, heading },\n resources,\n context\n } = this.props;\n\n const {\n orderLookupDefaultHeadingText,\n orderLookupButtonLabel,\n orderLookupFormAriaLabel,\n orderLookupOrderNumberLabel,\n orderLookupOrderNumberAriaLabel,\n orderLookupSubmitAriaLabel,\n orderLookupFieldValidationErrorMessage\n } = resources;\n\n const { responseErrorMessage, isDisabled, orderNumber, isOrdNumberError } = this.state;\n\n const headingText = StringExtensions.isNullOrEmpty(heading?.text) ? orderLookupDefaultHeadingText : heading?.text;\n const headingTag = heading?.tag ?? 'h1';\n\n const moduleClassName = 'ms-order-lookup';\n const orderLookupContainerClassName = `${moduleClassName}__details`;\n const orderLookupHeadingClassName = `${orderLookupContainerClassName}__heading`;\n const orderLookupFormClassName = `${orderLookupContainerClassName}__form`;\n const orderLookupAdditionalFiledContainerClassName = `${orderLookupFormClassName}__additional-fields-container`;\n const orderLookupFormFieldsClassName = `${orderLookupFormClassName}__fields`;\n const orderNumberLabelClassName = `${orderLookupFormFieldsClassName}__order-number-label`;\n const orderNumberInputErrorClassName = `${orderLookupFormFieldsClassName}__order-number-input-error`;\n const submitButtonClassName = `${orderLookupFormClassName}__submit`;\n const labelErrorMessageClassName = `${moduleClassName}__error-message`;\n const registeredUserClassName = `${moduleClassName}__registered-user`;\n const signinLinkClassName = `${registeredUserClassName}__sign-in-link msc-btn`;\n\n const orderLookupHeading = (\n \n );\n\n const viewProps: IOrderLookupViewProps = {\n ...this.props,\n orderLookup: {\n moduleProps: this.props,\n className: moduleClassName\n },\n\n orderLookupContainer: {\n className: orderLookupContainerClassName\n },\n orderLookupAdditionalFieldContainer: {\n className: orderLookupAdditionalFiledContainerClassName\n },\n paragraph: paragraph && this._createParagraph(paragraph),\n heading: orderLookupHeading,\n\n renderOrderLookupInputField: this._renderOrderLookupInput(),\n orderLookupForm: {\n className: orderLookupFormClassName,\n tag: 'form',\n 'aria-label': orderLookupFormAriaLabel,\n name: 'orderLookupForm',\n role: 'form',\n autoComplete: 'off',\n onSubmit: this.handleSubmit\n },\n orderNumberInput: (\n \n ),\n\n submitButton: {\n className: submitButtonClassName,\n tag: Button,\n 'aria-label': orderLookupSubmitAriaLabel,\n type: 'submit',\n role: 'button',\n title: orderLookupButtonLabel,\n onClick: this.handleSubmit,\n disabled: isDisabled\n },\n\n submitButtonLabelText: orderLookupButtonLabel,\n errorMessage: renderErrorLabel(responseErrorMessage, labelErrorMessageClassName),\n fieldErrorMessage:\n (!this.state.isValidLookupField || this.state.isValidAdditionalLookupField) &&\n renderFieldErrors(orderLookupFieldValidationErrorMessage),\n registeredUserMessage: renderRegisteredUserMessage(\n resources,\n context.request.user.signInUrl ?? '',\n signinLinkClassName,\n registeredUserClassName\n ),\n onChange: this.onChange,\n submit: this.handleSubmit,\n additionalProperties: this._renderAdditionalFields()\n };\n return this.props.renderView(viewProps);\n }\n\n public async componentDidMount(): Promise {\n const { config, context } = this.props;\n const { actionContext } = context;\n const { orderStatusLookUpParametersType, orderLookupSearchAdditionalFields } = config;\n let isOrderLookupAdditionalFieldValid: boolean = false;\n let isOrderLookupFieldValid: boolean = false;\n\n const getExtensibleEnumerations = await StoreOperationsDataActions.getExtensibleEnumerationsAsync({ callerContext: actionContext });\n this.orderLookupExtensibleEnum =\n getExtensibleEnumerations.find(item => item.TypeName === 'OrderLookupAdditionalCriteriaType')?.ExtensibleEnumerations ?? [];\n\n const orderLookupParameter: string = orderStatusLookUpParametersType ?? '';\n const orderLookupAdditionalParameter: IOrderLookupSearchAdditionalFieldsData[] = orderLookupSearchAdditionalFields ?? [];\n\n isOrderLookupFieldValid = validateOrderLookupField(orderLookupParameter, this.orderLookupExtensibleEnum);\n isOrderLookupAdditionalFieldValid = validateOrderLookupAdditionalField(\n orderLookupAdditionalParameter,\n this.orderLookupExtensibleEnum\n );\n this.setLookupFieldState(isOrderLookupFieldValid, isOrderLookupAdditionalFieldValid);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n const { config } = this.props;\n config.paragraph = event.target.value;\n };\n\n /**\n * Sets isValidLookupField after validating with extensible emun.\n * @param isValidField - Sets the property.\n * @param isValidAdditionalField - Sets the additional field property.\n */\n public setLookupFieldState(isValidField: boolean, isValidAdditionalField: boolean): void {\n this.setState({ isValidLookupField: isValidField, isValidAdditionalLookupField: isValidAdditionalField });\n }\n\n /**\n * HandleSubmit submit.\n */\n public readonly handleSubmit = (): void => {\n const { config, context } = this.props;\n const { actionContext } = context;\n const { additionalProperties, orderNumber, email } = this.state;\n const orderLookupValue = email;\n const { orderStatusLookUpParametersType } = config;\n const orderLookupName = orderStatusLookUpParametersType !== undefined ? orderStatusLookUpParametersType : '';\n const isValid: boolean = this._validateOrderLookupForm();\n if (isValid) {\n const actionContextValue: IActionContext = actionContext;\n const orderDetailsPath = Msdyn365.getUrlSync('orderDetails', actionContextValue) ?? '';\n if (orderDetailsPath) {\n const baseUrl = new URL(window.location.origin);\n const redirectUrl = new URL(orderDetailsPath, baseUrl);\n const searchParameters = redirectUrl.searchParams;\n\n searchParameters.set('confirmationId', orderNumber);\n searchParameters.set('propertyName', orderLookupName);\n searchParameters.set('propertyValue', orderLookupValue);\n\n if (ArrayExtensions.hasElements(additionalProperties)) {\n additionalProperties.map((item, index) => {\n const fieldName = !StringExtensions.isNullOrWhitespace(item.ariaLabel)\n ? item.ariaLabel.replace(' ', '').toLocaleLowerCase()\n : '';\n const fieldValue = !StringExtensions.isNullOrWhitespace(item.fieldValue) ? item.fieldValue : '';\n searchParameters.set(`field${index + 1}Name`, fieldName);\n searchParameters.set(`field${index + 1}Value`, fieldValue);\n return item;\n });\n }\n\n window.location.assign(redirectUrl.toString());\n }\n }\n };\n\n /**\n * OnChange event.\n * @param event - Value of input field.\n */\n public readonly onChange = (event: React.ChangeEvent): void => {\n const { additionalProperties } = this.state;\n const { config } = this.props;\n const { orderStatusLookUpParametersType } = config;\n const name = event.target.name || '';\n const value = event.target.value || '';\n this.isOrderNumberValue = !StringExtensions.isNullOrWhitespace(this.orderNumberInputRef.current?.value);\n this.isEmailValue = !StringExtensions.isNullOrWhitespace(this.emailInputRef.current?.value);\n\n if (orderStatusLookUpParametersType?.toLocaleLowerCase() === 'none') {\n this.isEmailValue = true;\n }\n\n this.setState({ responseErrorMessage: '' });\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n let isAdditionalFieldError: boolean = true as boolean;\n let isKeyExistInAdditionalFieldArray: boolean = false as boolean;\n\n for (const item of additionalProperties) {\n const fieldName: string = item.ariaLabel.replace(' ', '');\n if (fieldName.toLocaleLowerCase() === name.toLocaleLowerCase()) {\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: true,\n fieldValue: value,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n } else {\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: item.isValidFieldName,\n fieldValue: item.fieldValue,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n }\n if (fieldName.toLocaleLowerCase() === orderStatusLookUpParametersType?.toLocaleLowerCase()) {\n isKeyExistInAdditionalFieldArray = true;\n }\n }\n\n for (const items of additionalPropertyStates) {\n if (StringExtensions.isNullOrWhitespace(items.fieldValue)) {\n isAdditionalFieldError = false;\n }\n }\n\n this.setState({ additionalProperties: additionalPropertyStates });\n\n if (!isKeyExistInAdditionalFieldArray) {\n switch (name.toLocaleLowerCase()) {\n case OrderLookupSearchValues.ordernumber: {\n this.setState({\n orderNumber: value,\n isOrdNumberError: false,\n isReqError: false\n });\n break;\n }\n case OrderLookupSearchValues.email: {\n this.setState({\n email: value,\n isEmailError: false,\n isValidEmailError: false,\n isReqError: false\n });\n break;\n }\n default: {\n this.setState({ isReqError: false });\n }\n }\n }\n\n if (\n this.isOrderNumberValue &&\n this.isEmailValue &&\n isAdditionalFieldError &&\n this.state.isValidLookupField &&\n !this.state.isValidAdditionalLookupField\n ) {\n this.setState({ isDisabled: false });\n } else {\n this.setState({ isDisabled: true });\n }\n };\n\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\n const { context } = this.props;\n const { request } = context;\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n /**\n * Render order lookup validation message.\n * @param className - Class name for error field.\n * @returns - JSX.Element.\n */\n private readonly _renderAlert = (className: string): JSX.Element => {\n const {\n resources: { orderLookupEmailValidationErrorMessage, orderLookupRequiredTextErrorMessage }\n } = this.props;\n\n const { isEmailError, email, isValidEmailError, isReqError } = this.state;\n if (isEmailError) {\n this.requiredErrorMessage = orderLookupRequiredTextErrorMessage;\n }\n\n if (!StringExtensions.isNullOrEmpty(email) && isValidEmailError) {\n this.emailValidationErrorMessage = orderLookupEmailValidationErrorMessage;\n }\n\n const isRequireError = isReqError;\n const isEmailValidError = isValidEmailError;\n const isValidEmailInput = className.toLocaleLowerCase() === OrderLookupSearchValues.email;\n return (\n <>\n {isRequireError && (\n \n {this.requiredErrorMessage}\n \n )}\n {isEmailValidError && isValidEmailInput && (\n \n {this.emailValidationErrorMessage}\n \n )}\n \n );\n };\n\n /**\n * Render order number validation message.\n * @param className - Class name for error field.\n * @returns - JSX.Element.\n */\n private readonly _renderOrderNumberAlert = (className: string): JSX.Element => {\n const {\n resources: { orderLookupOrderNumberValidationErrorMessage, orderLookupRequiredTextErrorMessage }\n } = this.props;\n\n const { isOrdNumberError, isReqError } = this.state;\n return (\n <>\n {isReqError && (\n \n {orderLookupRequiredTextErrorMessage}\n \n )}\n {isOrdNumberError && (\n \n {orderLookupOrderNumberValidationErrorMessage}\n \n )}\n \n );\n };\n\n private _renderAdditionalFields(): JSX.Element[] | undefined {\n const { additionalProperties } = this.state;\n const additionalFieldsInput: JSX.Element[] = [];\n for (const item of additionalProperties) {\n const name: string = item.ariaLabel.replace(' ', '');\n additionalFieldsInput.push(\n \n );\n }\n return additionalFieldsInput;\n }\n\n /**\n * Render Input field for order lookup.\n * @returns - IOrderLookupFieldInfo.\n */\n private readonly _renderOrderLookupInput = (): JSX.Element | undefined => {\n const { email, isEmailError, isValidEmailError } = this.state;\n const {\n config: { orderStatusLookUpParametersType },\n resources: { orderLookupEmailLabel, orderLookupEmailAriaLabel }\n } = this.props;\n\n switch (orderStatusLookUpParametersType) {\n case orderStatusLookUpParametersTypes.none:\n return undefined;\n case orderStatusLookUpParametersTypes.email:\n default:\n return (\n \n );\n }\n };\n\n /**\n * _validation for additional fields.\n * @returns - Returns IOrderLookupAdditionalFields[].\n */\n private readonly _additionalFieldValidation = (): IOrderLookupAdditionalFields[] => {\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n for (const item of this.state.additionalProperties) {\n const isFieldValid: boolean = !StringExtensions.isNullOrWhitespace(item.fieldValue) && isAdditionalFieldValid(item.fieldValue);\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: isFieldValid,\n fieldValue: item.fieldValue,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n }\n return additionalPropertyStates;\n };\n\n /**\n * _validateOrderLookupForm submit.\n * @returns - Returns boolean.\n */\n private readonly _validateOrderLookupForm = (): boolean => {\n const { config } = this.props;\n const { orderNumber, email } = this.state;\n const { orderStatusLookUpParametersType } = config;\n let additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n let isValid = false;\n let isDisable = false;\n\n if (ArrayExtensions.hasElements(this.state.additionalProperties)) {\n additionalPropertyStates = this._additionalFieldValidation();\n for (const item of additionalPropertyStates) {\n if (!item.isValidFieldName) {\n isDisable = true;\n }\n }\n\n if (isDisable) {\n this.setState({\n additionalProperties: additionalPropertyStates,\n isDisabled: true\n });\n }\n }\n\n if (StringExtensions.isNullOrWhitespace(orderNumber)) {\n this.setState({\n isOrdNumberError: true,\n isReqError: true,\n isDisabled: true\n });\n } else if (orderNumber.trim() !== orderNumber) {\n this.setState({\n isOrdNumberError: true,\n isReqError: false,\n isDisabled: true\n });\n } else if (\n orderStatusLookUpParametersType === orderStatusLookUpParametersTypes.email &&\n StringExtensions.isNullOrWhitespace(email)\n ) {\n this.setState({\n isEmailError: true,\n isReqError: true,\n isDisabled: true\n });\n } else if (orderStatusLookUpParametersType === orderStatusLookUpParametersTypes.email && !isEmailValid(email)) {\n this.setState({\n isValidEmailError: true,\n isDisabled: true\n });\n } else if (isDisable || !this.state.isValidLookupField || this.state.isValidAdditionalLookupField) {\n this.setState({\n isDisabled: true\n });\n } else {\n this.setState({\n isDisabled: false\n });\n isValid = true;\n }\n return isValid;\n };\n}\n\nexport default OrderLookup;\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 * 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 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","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Heading, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address';\r\nimport { IAccountManagementAddressConfig } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address.props.autogenerated';\r\n\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n {isShowError && \r\n {title}\r\n {message}\r\n }\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, addUpdateAddress, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n // update heading in props if not provided from module\r\n if (!showAddOrUpdateAddress.heading) {\r\n // create heading component from configured values\r\n const addAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).addAddressHeading;\r\n const editAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).editAddressHeading;\r\n const headingText = addUpdateAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n const heading = headingText && ;\r\n\r\n showAddOrUpdateAddress.heading = heading;\r\n }\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\r\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","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport * as React from 'react';\r\n\r\nimport { IShippingPopupData } from './shipping-popup.data';\r\nimport { IShippingPopupProps } from './shipping-popup.props.autogenerated';\r\n\r\nimport { observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\n\r\nexport interface IShippingPopupViewProps extends IShippingPopupProps {\r\n modalState: boolean;\r\n toggleModal(): void;\r\n}\r\n\r\n/**\r\n *\r\n * ShippingPopup component\r\n * @extends {React.PureComponent>}\r\n */\r\n@observer\r\nclass ShippingPopup extends React.PureComponent> {\r\n\r\n @observable private _modalState: boolean = false;\r\n\r\n constructor(props: IShippingPopupProps) {\r\n super(props);\r\n\r\n this._toggleModal = this._toggleModal.bind(this);\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n return this.props.renderView({\r\n modalState: this._modalState,\r\n toggleModal: this._toggleModal,\r\n ...this.props\r\n });\r\n }\r\n\r\n private _toggleModal(): void {\r\n this._modalState = !this._modalState;\r\n if (typeof window !== 'undefined' && this._modalState === true) {\r\n const scrollbarWidth = window.innerWidth - document.body.clientWidth;\r\n document.body.style.top = `-${window.scrollY}px`;\r\n document.documentElement.style.setProperty('--windowScrollY', `-${window.scrollY}px`);\r\n document.documentElement.style.setProperty('--windowScrollBarWidth', `${scrollbarWidth}px`);\r\n }\r\n }\r\n}\r\n\r\nexport default ShippingPopup;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { InputType } from '../business-organization-list';\n\nexport interface IBusinessForm {\n FormWrapper: INodeProps;\n message?: React.ReactNode;\n items: IBusinessFormItem[];\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n}\n\nexport interface IBusinessFormItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IBusinessFormInput {\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IUserFormItem {\n id: string;\n type: InputType;\n label: string;\n value: string;\n maxChars?: string;\n isRequired: boolean;\n pattern?: string;\n isDisabled?: boolean;\n customClass?: string;\n fieldReference?: React.RefObject;\n}\n\nexport interface IBusinessFormInputProps {\n id?: string;\n type: string;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n isRequired: boolean;\n isDisabled?: boolean;\n placeholder?: string;\n fieldReference?: React.RefObject;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport const FormInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n isRequired,\n isDisabled,\n onChange,\n fieldReference,\n placeholder\n}) => (\n \n);\n\nexport interface IBusinessFormLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n asteriskText: string;\n}\n\nexport const FormLabel: React.FC = ({ id, forId, className, text, asteriskText }) => (\n \n);\n\nexport interface IBusinessFormButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nexport const FormButton: React.FC = ({ id, className, text, ariaLabel, telemetryContent, disabled, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport interface IBusinessFormErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nexport const FormFieldError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IRequestContext } from '@msdyn365-commerce/core';\nimport {\n AccountStatementRequest,\n BusinessPartnerOperationDeliveryType,\n BusinessPartnerUser,\n BusinessPartnerUsersDataActions\n} from '@msdyn365-commerce/retail-proxy';\nimport { AdminRequestStatementButton, RequestStatementModal } from '@msdyn365-commerce-modules/account-management';\nimport {\n addOrganizationUser,\n AddOrganizationUserInput,\n ArrayExtensions,\n deleteOrganizationUser,\n DeleteOrganizationUserInput,\n editOrganizationUser,\n EditOrganizationUserInput,\n EmailRegex,\n Random,\n StringExtensions\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n Heading,\n IDataTableProps,\n IHeadingsProperty,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITableItemProps,\n ITableRowProps,\n ITelemetryContent,\n Table,\n TableDataType,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListData } from './business-organization-list.data';\nimport { IBusinessOrganizationListProps, IBusinessOrganizationListResources } from './business-organization-list.props.autogenerated';\nimport { FormButton, FormFieldError, FormInput, FormLabel, IBusinessFormItem, IUserFormItem } from './components';\n\nexport interface IBusinessOrganizationListViewProps extends IBusinessOrganizationListProps {\n OrganizationUserList: IModuleProps;\n moduleContainer: INodeProps;\n heading: React.ReactNode;\n noUsersText?: string;\n addUserButton?: React.ReactNode;\n search?: React.ReactNode;\n organizationListTable: React.ReactNode;\n form?: IFormViewProps;\n formItems?: IUserFormItem[];\n formType: FormType;\n deleteUserForm?: React.ReactNode;\n viewUserDetails?: React.ReactNode;\n modalHeading?: React.ReactNode;\n modalState?: boolean;\n requestAccountStatementButton: React.ReactNode;\n requestStatementModal: React.ReactNode;\n toggleModal?(): void;\n}\n\nexport interface IBusinessOrganizationListState {\n isReady: boolean;\n formItems: IUserFormItem[];\n isFormActive: boolean;\n formType: FormType;\n selectedUserData?: BusinessPartnerUser;\n referenceBack?: HTMLButtonElement | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n displayedUserData?: any;\n refresh: boolean;\n isModalOpen: boolean;\n hasFormError: boolean;\n hasActionError: boolean;\n isStatementRequestModalOpen: boolean;\n statementRequestFromDateString: string;\n statementRequestToDateString: string;\n isStatementRequestAdminDropdownOpen: boolean;\n statementRequestFullOrg: boolean;\n statementRequestMaxDateString?: string;\n businessUserActionRetailErrorMsg: string;\n}\n\ntype GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport enum FormType {\n None = 'NONE',\n Edit = 'EDIT',\n Remove = 'REMOVE',\n View = 'VIEW',\n Add = 'ADD'\n}\n\nexport enum InputType {\n Text = 'text',\n Email = 'email'\n}\n\nexport enum InputID {\n FirstName = 'FirstName',\n LastName = 'LastName',\n B2BUserId = 'B2BUserId',\n Email = 'Email',\n SpendingLimit = 'SpendingLimit',\n Status = 'Status',\n FullName = 'Name'\n}\n\nexport interface IFormViewProps {\n modalClassName: string;\n FormWrapper: INodeProps;\n modalHeading?: string;\n modalDescription?: React.ReactNode;\n inputs?: IBusinessFormItem[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n selectedUser?: any;\n buttons?: React.ReactNode[];\n errorMessage?: React.ReactNode[];\n resources: IBusinessOrganizationListResources;\n toggle?(): void;\n}\n\nexport const renderInputSection = (\n inputs: IUserFormItem[],\n className: string,\n asteriskAfterLabel: string,\n onInputChange: (event: React.ChangeEvent) => void\n): IBusinessFormItem[] => {\n return inputs.map(element => {\n const { customClass, id, type, label, maxChars, isRequired, pattern, value, isDisabled, fieldReference } = element;\n return {\n wrapper: {\n className: classnames(className, id, customClass)\n },\n key: id,\n label: ,\n errorMessage: ,\n input: (\n \n )\n };\n });\n};\n\ninterface IUserTableItemProps extends ITableItemProps {\n user: BusinessPartnerUser;\n}\n\n/**\n *\n * BusinessOrganizationList component.\n * @extends {React.PureComponent>}\n */\n@observer\nclass BusinessOrganizationList extends React.Component<\n IBusinessOrganizationListProps,\n IBusinessOrganizationListState\n> {\n public BusinessFormDefaultInputs: IUserFormItem[] = [\n {\n id: InputID.FirstName,\n type: InputType.Text,\n label: this.props.resources.businessUserFirstNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.LastName,\n type: InputType.Text,\n label: this.props.resources.businessUserLastNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.Email,\n type: InputType.Email,\n label: this.props.resources.businessUserEmailAddressLabelText,\n value: '',\n isRequired: true,\n pattern: EmailRegex.defaultRegex.source,\n customClass: 'width-100'\n },\n {\n id: InputID.SpendingLimit,\n type: InputType.Text,\n label: this.props.resources.businessUserSpendingLimitLabelText,\n value: '',\n isRequired: false,\n customClass: 'width-50',\n maxChars: this.props.config?.maxLength\n }\n ];\n\n @observable\n private _viewport: GridSize;\n\n private readonly delayFocus: number = 110;\n\n private formChildReference: React.RefObject[] = [];\n\n private userFormEditReference: React.RefObject[] = [];\n\n private userFormDeleteReference: React.RefObject[] = [];\n\n private readonly submitButtonReference: React.RefObject;\n\n private readonly addUserButtonReference: React.RefObject;\n\n private readonly statementRequestButtonReference: React.RefObject;\n\n private readonly moduleClassName: string = 'ms-business-organization-list';\n\n private readonly mobileExcludedColumns: string[];\n\n @computed get isMobile(): boolean {\n return this._viewport === 'xs' || this._viewport === 'sm';\n }\n\n @computed get canSubmitStatementRequest(): boolean {\n return (\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestFromDateString) &&\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestToDateString)\n );\n }\n\n @computed get selectedUserName(): string {\n const { businessUserSelectedUserDisplayName } = this.props.resources;\n return this.state.selectedUserData\n ? businessUserSelectedUserDisplayName\n .replace('{firstName}', this.state.selectedUserData.FirstName || '')\n .replace('{lastName}', this.state.selectedUserData.LastName || '')\n : '';\n }\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: IBusinessOrganizationListProps) {\n super(props);\n this._toggleModal = this._toggleModal.bind(this);\n this._onInputChange = this._onInputChange.bind(this);\n this._handleRemoveUserButton = this._handleRemoveUserButton.bind(this);\n\n this.mobileExcludedColumns = [InputID.Email, InputID.Status, InputID.SpendingLimit];\n this._viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._updateViewport = this._updateViewport.bind(this);\n this.submitButtonReference = React.createRef();\n this.addUserButtonReference = React.createRef();\n this.statementRequestButtonReference = React.createRef();\n this.state = {\n isReady: false,\n formItems: this.addedReference(),\n isFormActive: false,\n formType: FormType.None,\n refresh: true,\n isModalOpen: false,\n hasFormError: false,\n hasActionError: false,\n isStatementRequestModalOpen: false,\n statementRequestFromDateString: '',\n statementRequestToDateString: '',\n isStatementRequestAdminDropdownOpen: false,\n statementRequestFullOrg: false,\n statementRequestMaxDateString: new Date().toISOString().split('T')[0],\n businessUserActionRetailErrorMsg: ''\n };\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n }\n\n public addedReference(): IUserFormItem[] {\n const newFormFields = this.BusinessFormDefaultInputs;\n return newFormFields.map((input, index) => {\n this.formChildReference[Number(index)] = React.createRef();\n input.fieldReference = this.formChildReference[Number(index)];\n return input;\n });\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser && window.addEventListener) {\n window.addEventListener('resize', this._updateViewport);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser && window.removeEventListener) {\n window.removeEventListener('resize', this._updateViewport);\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IBusinessOrganizationListProps,\n nextState: IBusinessOrganizationListState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n\n if (!this.state.isModalOpen && this.state.isModalOpen !== nextState.isModalOpen) {\n setTimeout(() => {\n this.formChildReference[0].current?.focus();\n this.submitButtonReference.current?.focus();\n }, this.delayFocus);\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config,\n resources,\n data: { users }\n } = this.props;\n const { className, heading } = config;\n const {\n businessUserAddUserButtonText,\n businessUserLoadingMessage,\n businessUserEmptyListMessage,\n businessUserErrorGettingUsersMessage,\n userAccountStatementLabel,\n fullOrganizationLabel,\n requestStatementButtonLabel,\n statementRequestModalHeaderLabel,\n cancelLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n sendToEmailLabel,\n selectedUserLabel\n } = resources;\n const {\n formItems,\n isFormActive,\n formType,\n isModalOpen,\n statementRequestFromDateString,\n statementRequestToDateString,\n isStatementRequestModalOpen,\n statementRequestMaxDateString\n } = this.state;\n\n const hasUsers = users && users.result && users.result.length > 0;\n this.payLoad.contentAction.etext = TelemetryConstant.AddUser;\n const addUserAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n const customer = this.props.data.customerInformation?.result;\n\n if (!hasUsers) {\n let errorMessage = '';\n if (users.status === 'LOADING') {\n errorMessage = businessUserLoadingMessage;\n } else if (users.status === 'FAILED') {\n errorMessage = businessUserErrorGettingUsersMessage;\n } else if (users.result && users.result.length === 0) {\n errorMessage = businessUserEmptyListMessage;\n }\n\n const errorProps = {\n ...this.props,\n className,\n OrganizationUserList: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n moduleContainer: {\n className: `${this.moduleClassName}__container`\n },\n heading: heading && ,\n addUserButton: (\n \n {businessUserAddUserButtonText}\n \n ),\n noUsersText:

{errorMessage}

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

{businessUserRemoveModalDescription}

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

{businessUserAllFieldsRequiredMessage}

\n ),\n inputs: renderInputSection(formItems, `${formClassName}-item`, asteriskAfterLabel, this._onInputChange),\n buttons: [\n ,\n \n ],\n errorMessage: [\n hasFormError && (\n \n ),\n hasActionError && (\n \n )\n ],\n resources\n };\n }\n\n // _onInputChange: updates the fomrItems state on every input change\n private readonly _onInputChange = (event: React.ChangeEvent): void => {\n const newForm = this.state.formItems;\n\n newForm.forEach(item => {\n if (item.id === event.target.id) {\n item.value = event.target.value;\n }\n });\n\n // Update state object with latest values and check if form is ready\n // TODO: remove !refresh\n this.setState(prev => ({\n refresh: !prev.refresh,\n isReady: this._isFormReady(),\n formItems: newForm,\n hasFormError: false,\n hasActionError: false\n }));\n };\n\n // _isFormReady: checks whether the current values in the input fields are valid for submission, this will also disable/enable the submit button.\n private readonly _isFormReady = (): boolean => {\n const { formItems } = this.state;\n\n for (const formItem of formItems) {\n // Will return TRUE if:\n // - input field is required and EMPTY\n // OR\n // - pattern provided and value does not match pattern\n // OR\n // - if spendingLimit input --> make sure value can be parsed into an NUMBER\n if (formItem.isRequired && formItem.value.length === 0) {\n return false;\n } else if (formItem.pattern !== undefined && formItem.value.match(formItem.pattern) === null) {\n return false;\n } else if (formItem.id === InputID.SpendingLimit && formItem.value !== '' && isNaN(Number.parseFloat(formItem.value))) {\n this.setState({\n hasFormError: true\n });\n return false;\n }\n }\n\n return true;\n };\n\n private readonly _formatPrice = (price: number): string => {\n return this.props.context.cultureFormatter ? this.props.context.cultureFormatter.formatCurrency(price) : price.toString();\n };\n\n private readonly _getCurrentUrl = (reqContext: IRequestContext): URL => {\n if (MsDyn365.isBrowser) {\n return new URL(window.location.href);\n }\n\n // NOTE: Typing on requestURL is incorrect\n if (reqContext.url.requestUrl.href) {\n return new URL(reqContext.url.requestUrl.href);\n }\n return new URL(reqContext.url.requestUrl.href);\n };\n\n private _updateViewport(): void {\n this._viewport = this._getViewport();\n }\n\n private readonly _getViewport = (): GridSize => {\n const { context } = this.props;\n\n // Always render in mobile viewport on a mobile device\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (MsDyn365.isBrowser && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n\n return 'xs';\n };\n\n private readonly _toggleStatementRequestDropdown = (): void => {\n this.setState({\n isStatementRequestAdminDropdownOpen: !this.state.isStatementRequestAdminDropdownOpen\n });\n };\n\n private readonly _updateFromDate = (newFromDate: string) => {\n this.setState({\n statementRequestFromDateString: newFromDate\n });\n };\n\n private readonly _updateToDate = (newToDate: string) => {\n this.setState({\n statementRequestToDateString: newToDate\n });\n };\n\n private readonly _showRequestStatementModal = (isFullOrg: boolean) => {\n this.setState({\n statementRequestFullOrg: isFullOrg,\n isStatementRequestModalOpen: true\n });\n };\n\n private readonly _requestStatement = () => {\n const customer = this.props.data.customerInformation.result!;\n const businessPartnerUsers = this.props.data.users.result!;\n\n const currentUser = businessPartnerUsers.find(element => element.Email === customer.Email);\n const B2BUserId = this._getB2BUserId(currentUser);\n\n const statementRequest: AccountStatementRequest = {\n FromDate: new Date(this.state.statementRequestFromDateString),\n ToDate: new Date(this.state.statementRequestToDateString),\n IsForFullOrganization: this.state.statementRequestFullOrg,\n RequestedUserId: B2BUserId,\n RequestingUserEmail: customer.Email,\n DeliveryTypeValue: BusinessPartnerOperationDeliveryType?.Email || 1\n };\n\n const context = { callerContext: this.props.context.actionContext };\n\n BusinessPartnerUsersDataActions.requestAccountStatementAsync(context, B2BUserId, statementRequest);\n\n this._closeStatementRequestModal();\n };\n\n private readonly _getB2BUserId = (currentUser: BusinessPartnerUser | undefined) => {\n if (this.state.statementRequestFullOrg || !this.state.selectedUserData) {\n return currentUser ? currentUser.B2BUserId : '';\n }\n return this.state.selectedUserData.B2BUserId;\n };\n\n private readonly _closeStatementRequestModal = () => {\n this.setState({\n isStatementRequestModalOpen: false\n });\n this.statementRequestButtonReference.current?.focus();\n };\n\n private readonly _onSelectRow = (records: ITableRowProps[]) => {\n const selectedRow = records.find(rowProps => rowProps.isSelected);\n\n this.setState({\n selectedUserData: selectedRow ? (selectedRow.row[0] as IUserTableItemProps).user : undefined\n });\n };\n}\n\nexport default BusinessOrganizationList;\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Heading, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address';\r\nimport { IAccountManagementAddressConfig } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address.props.autogenerated';\r\n\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n {isShowError && \r\n {title}\r\n {message}\r\n }\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, addUpdateAddress, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n // update heading in props if not provided from module\r\n if (!showAddOrUpdateAddress.heading) {\r\n // create heading component from configured values\r\n const addAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).addAddressHeading;\r\n const editAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).editAddressHeading;\r\n const headingText = addUpdateAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n const heading = headingText && ;\r\n\r\n showAddOrUpdateAddress.heading = heading;\r\n }\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\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 * 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","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Heading, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address';\r\nimport { IAccountManagementAddressConfig } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address.props.autogenerated';\r\n\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n {isShowError && \r\n {title}\r\n {message}\r\n }\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, addUpdateAddress, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n // update heading in props if not provided from module\r\n if (!showAddOrUpdateAddress.heading) {\r\n // create heading component from configured values\r\n const addAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).addAddressHeading;\r\n const editAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).editAddressHeading;\r\n const headingText = addUpdateAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n const heading = headingText && ;\r\n\r\n showAddOrUpdateAddress.heading = heading;\r\n }\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Heading, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address';\r\nimport { IAccountManagementAddressConfig } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address.props.autogenerated';\r\n\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n {isShowError && \r\n {title}\r\n {message}\r\n }\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, addUpdateAddress, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n // update heading in props if not provided from module\r\n if (!showAddOrUpdateAddress.heading) {\r\n // create heading component from configured values\r\n const addAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).addAddressHeading;\r\n const editAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).editAddressHeading;\r\n const headingText = addUpdateAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n const heading = headingText && ;\r\n\r\n showAddOrUpdateAddress.heading = heading;\r\n }\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\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 { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport SignInButtonComponent from './components/sign-in-button';\nimport SignInDescriptionComponent from './components/sign-in-description';\nimport SignInErrorComponent from './components/sign-in-error';\nimport SignInInputComponent from './components/sign-in-input';\nimport SignInLabelComponent from './components/sign-in-label';\nimport SignInLinkComponent from './components/sign-in-link';\nimport SignInLoadingIconComponent from './components/sign-in-loading-icon';\nimport SignInLoadingMessageComponent from './components/sign-in-loading-message';\nimport SignInTextComponent from './components/sign-in-text';\nimport { ISignInConfig, ISignInProps, ISignInResources } from './sign-in.props.autogenerated';\n\nexport interface ISignInViewState {\n isShowLoading: boolean;\n}\n\nexport interface ISignInItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n error: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface ISignInSocialItem {\n key: string;\n button: INodeProps;\n image: React.ReactNode;\n text: React.ReactNode;\n}\n\nexport interface ISignInB2BItem {\n key: string;\n button: INodeProps;\n text: React.ReactNode;\n}\n\nexport interface ISignInSocialAccount {\n socialAccounts: INodeProps;\n items: ISignInSocialItem[];\n}\n\nexport interface ISignInB2BAccount {\n socialAccounts: INodeProps;\n items: ISignInB2BItem[];\n}\nexport interface ISignInLocalAccount {\n localAccount: INodeProps;\n items: ISignInItem[];\n forgetPassword: React.ReactNode;\n disclaimer: React.ReactNode;\n error: React.ReactNode;\n signInButton: React.ReactNode;\n}\n\nexport interface ISignInLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface ISignInViewProps {\n className: string;\n viewState: ISignInViewState;\n signIn: IModuleProps;\n loading: ISignInLoading;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n signInSection: INodeProps;\n signInSectionHeading: React.ReactNode;\n signInLocalAccount: ISignInLocalAccount;\n signInSocialAccount: ISignInSocialAccount;\n signInB2BAccount: ISignInB2BAccount;\n signUpSection: INodeProps;\n signUpSectionHeading: React.ReactNode;\n signUpDescription: React.ReactNode;\n signUpLink: React.ReactNode;\n}\n\n/**\n * SignIn component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass SignIn extends React.Component> {\n private readonly moduleClassName: string = 'ms-sign-in';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n @observable private emailId: string;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: ISignInProps) {\n super(props);\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.emailId = 'logonIdentifier';\n }\n\n public componentDidMount(): void {\n this._prePopulateData();\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: ISignInProps, nextState: ISignInViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const config: ISignInConfig = this.props.config || {};\n const resources: ISignInResources = this.props.resources || {};\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n signIn: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n signInSection: {\n className: `${this.moduleClassName}__sign-in-section`\n },\n signInSectionHeading: (\n \n ),\n signInLocalAccount: {\n localAccount: {\n className: `${this.moduleClassName}__account-items localAccount`\n },\n items: [\n this._renderInput(\n this.emailId,\n 'email',\n resources.emailAddressLabelText,\n resources.emailAddressAriaLabel,\n this.emailRegex\n ),\n this._renderInput('password', 'password', resources.passwordLabelText)\n ],\n forgetPassword: (\n \n ),\n disclaimer: config.signInDisclaimer && (\n \n ),\n error: ,\n signInButton: (\n \n )\n },\n signInSocialAccount: {\n socialAccounts: {\n className: `${this.moduleClassName}__social-accounts`\n },\n items: [\n this._renderSocialAccount(\n 'FacebookExchange',\n resources.facebookButtonText,\n resources.facebookButtonAriaLabel,\n config.facebookIcon\n ),\n this._renderSocialAccount(\n 'MicrosoftAccountExchange',\n resources.microsoftButtonText,\n resources.microsoftButtonAriaLabel,\n config.microsoftIcon\n )\n ]\n },\n signInB2BAccount: {\n socialAccounts: {\n className: `${this.moduleClassName}__b2b-social-accounts`\n },\n items: [\n this._renderB2BSocialAccount(\n 'StoreManagerB2BSignin',\n resources.b2bButtonText,\n resources.b2bButtonAriaLabel,\n config.displayB2bAccountManagerSignin\n )\n ]\n },\n signUpSection: {\n className: `${this.moduleClassName}__sign-up-section`\n },\n signUpSectionHeading: (\n \n ),\n signUpDescription: (\n \n ),\n signUpLink: (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.signInDisclaimer = event.target.value);\n\n public handleSignInHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.signInHeading.text = event.target.value);\n\n public handleSignUpHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.signUpHeading.text = event.target.value);\n\n private readonly _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['CONTENT'] && window['CONTENT']['email_pattern']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n this.emailRegex = window['CONTENT']['email_pattern'];\n }\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // @ts-expect-error\n this.emailId = (window.SA_FIELDS.AttributeFields || [])[0].ID || this.emailId;\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const resources: ISignInResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const errorMessages = {\n requiredField_email: resources.requriedEmailError,\n requiredField_password: resources.requriedPasswordError,\n invalid_email: resources.invalidEmailError,\n invalid_password: resources.invalidPasswordError,\n unknown_error: resources.unknownError\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], errorMessages);\n }\n };\n\n private _renderInput(id: string, type: string, labelText: string, ariaLabel?: string, pattern?: string): ISignInItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n error: (\n \n ),\n input: (\n \n )\n };\n }\n\n private _renderSocialAccount(id: string, text: string, ariaLabel: string, iconImage?: Msdyn365.IImageData): ISignInSocialItem {\n return {\n key: id,\n button: {\n id,\n tag: 'button',\n className: classnames(\n `${this.moduleClassName}__social-account`,\n `${this.moduleClassName}__social-account-${id}`,\n 'accountButton',\n 'msc-btn'\n ),\n 'aria-label': ariaLabel\n },\n image: this._createImageMarkup(iconImage),\n text: \n };\n }\n\n private _renderB2BSocialAccount(\n id: string,\n text: string,\n ariaLabel: string,\n _displayB2bAccountManagerSignin: boolean | undefined\n ): ISignInB2BItem | null {\n if (_displayB2bAccountManagerSignin) {\n return {\n key: id,\n button: {\n id,\n tag: 'button',\n className: classnames(\n `${this.moduleClassName}__social-account`,\n `${this.moduleClassName}__social-account-${id}`,\n 'accountButton',\n 'msc-btn'\n ),\n 'aria-label': ariaLabel\n },\n text: \n };\n }\n return null;\n }\n\n private _createImageMarkup(iconImage?: Msdyn365.IImageData): React.ReactNode | null {\n if (iconImage) {\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings || {},\n imageSettings: iconImage && iconImage.imageSettings\n };\n const pictureClassName = `${this.moduleClassName}__social-account-picture`;\n return (\n
\n \n
\n );\n }\n return null;\n }\n}\n\nexport default SignIn;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './modules/account-address-tile';\nexport * from './modules/account-customer-balance';\nexport * from './modules/account-customer-balance-tile';\nexport * from './modules/account-generic-tile';\nexport * from './modules/account-loyalty';\nexport * from './modules/account-loyalty-tile';\nexport * from './modules/account-order-templates-tile';\nexport * from './modules/account-profile';\nexport * from './modules/account-profile-edit';\nexport * from './modules/account-welcome-tile';\nexport * from './modules/account-wishlist-tile';\nexport * from './modules/b2b-requests-status';\nexport * from './modules/b2b-requests-tile';\nexport * from './modules/loyalty-sign-up';\nexport * from './modules/loyalty-terms';\nexport * from './modules/password-reset';\nexport * from './modules/password-reset-verification';\nexport * from './modules/sign-in';\nexport * from './modules/sign-up';\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React, { ReactNode } from 'react';\r\nimport { IFooterCategoryViewProps } from './smwe-footer-category';\r\n\r\nexport const FooterCategoryView: React.FC = props => {\r\n const {categories, FooterList, FooterListItem} = props;\r\n if(!categories || !categories.length) {\r\n props.context.telemetry.error('Footer content is empty, module wont render');\r\n return null;\r\n }\r\n return(\r\n \r\n { categories.map((category: ReactNode, index: number) => {\r\n return (\r\n \r\n {category}\r\n \r\n );\r\n })\r\n }\r\n \r\n );\r\n};\r\n\r\nexport default FooterCategoryView;","/*!\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","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Heading, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address';\r\nimport { IAccountManagementAddressConfig } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address.props.autogenerated';\r\n\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n {isShowError && \r\n {title}\r\n {message}\r\n }\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, addUpdateAddress, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n // update heading in props if not provided from module\r\n if (!showAddOrUpdateAddress.heading) {\r\n // create heading component from configured values\r\n const addAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).addAddressHeading;\r\n const editAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).editAddressHeading;\r\n const headingText = addUpdateAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n const heading = headingText && ;\r\n\r\n showAddOrUpdateAddress.heading = heading;\r\n }\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport Msdyn365, {\n ContentEditableEvent,\n generateImageUrl,\n getCatalogId,\n getUrlSync,\n Image,\n RichTextComponent,\n Text\n} from '@msdyn365-commerce/core';\nimport { MediaLocation, ProductCatalog } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ICatalogPickerData } from './catalog-picker.data';\nimport { ICatalogPickerProps } from './catalog-picker.props.autogenerated';\n\n/**\n * ICatalogPickerViewProps.\n */\nexport interface ICatalogPickerViewProps extends ICatalogPickerProps {\n catalogPicker: IModuleProps;\n heading: React.ReactNode;\n paragraph: React.ReactNode;\n catalogs: ReactNode;\n}\n\n/**\n * CatalogPicker component.\n * @extends {React.PureComponent>}\n */\nexport class CatalogPicker extends React.PureComponent> {\n private static readonly _moduleClassName = 'ms-catalog-picker';\n\n public constructor(props: ICatalogPickerViewProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { heading, paragraph } = this.props.config;\n\n const catalogPickerHeading = heading && (\n \n );\n\n const isCatalogsAvailable: boolean = ArrayExtensions.hasElements(this.props.data.catalogs?.result);\n const catalogPickerParagraph = paragraph && (\n \n );\n const viewProps = {\n ...this.props,\n handleText: this.handleTextChange,\n catalogPicker: {\n moduleProps: this.props,\n className: CatalogPicker._moduleClassName\n },\n heading: catalogPickerHeading,\n paragraph: catalogPickerParagraph,\n catalogs: isCatalogsAvailable ? this._renderCatalogPicker() : ''\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n private _renderCatalogPickerButton(item: ProductCatalog): React.ReactNode {\n const catalogId = item.RecordId;\n const currentCatalogId = getCatalogId(this.props.context.request);\n if (currentCatalogId === catalogId) {\n return
{this.props.resources.currentCatalogText}
;\n }\n let linkToCatalog = '';\n if (Msdyn365.isBrowser) {\n const catalogUrl = getUrlSync('home', this.props.context.actionContext) ?? '';\n const fullUrl = new URL(catalogUrl, window.location.href);\n fullUrl.searchParams.set('catalogid', `${catalogId}`);\n linkToCatalog = fullUrl.href;\n }\n return (\n \n {this.props.resources.changeCatalogButtonText}\n \n );\n }\n\n private _renderCatalogPicker(): React.ReactNode {\n const catalogs = this.props.data.catalogs?.result;\n\n const isBrowser = Msdyn365.isBrowser;\n\n return (\n
\n {catalogs?.map(item => {\n const reactKey = `${JSON.stringify(item)}-${String(isBrowser)}`;\n const image: MediaLocation | undefined = ArrayExtensions.firstOrDefault(item.Images);\n return (\n \n

{item.Name}

\n
\n \n
\n {this._renderCatalogPickerButton(item)}\n
\n
\n
\n );\n })}\n \n );\n }\n}\n\nexport default CatalogPicker;\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Heading, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address';\r\nimport { IAccountManagementAddressConfig } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address.props.autogenerated';\r\n\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n {isShowError && \r\n {title}\r\n {message}\r\n }\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, addUpdateAddress, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n // update heading in props if not provided from module\r\n if (!showAddOrUpdateAddress.heading) {\r\n // create heading component from configured values\r\n const addAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).addAddressHeading;\r\n const editAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).editAddressHeading;\r\n const headingText = addUpdateAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n const heading = headingText && ;\r\n\r\n showAddOrUpdateAddress.heading = heading;\r\n }\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\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 { CustomerBalances } from '@msdyn365-commerce/retail-proxy';\nimport { getTelemetryObject, Heading, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { computed, reaction } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileData } from './account-customer-balance-tile.data';\nimport { IAccountCustomerBalanceTileProps } from './account-customer-balance-tile.props.autogenerated';\nimport { CreditComponent, ErrorComponent } from './components/account-customer-balance-tile-info';\nimport LinksComponent from './components/account-customer-balance-tile-links';\n\nexport interface IAccountCustomerBalanceTileViewProps extends IAccountCustomerBalanceTileProps {\n AccountCustomerBalanceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n content: React.ReactNode;\n links: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceTileViewState {\n isDetailsLinkDisplayed: boolean;\n content: React.ReactNode;\n}\n\n/**\n *\n * AccountCustomerBalanceTile component.\n * @extends {React.Component>}\n */\nclass AccountCustomerBalanceTile extends React.Component<\n IAccountCustomerBalanceTileProps,\n IAccountCustomerBalanceTileViewState\n> {\n @computed get hasError(): boolean {\n return get(this.props, 'data.balance.status') !== 'SUCCESS';\n }\n\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountCustomerBalanceTileProps) {\n super(props);\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n this.state = { ...this._initState() };\n\n reaction(\n () => this.hasError,\n () => {\n this.props.context.telemetry.error('Error retrieving customer account balance');\n this.setState({\n content: \n });\n }\n );\n }\n\n @computed get isCustomerAccountPaymentEnabled(): boolean {\n const customerResult = get(this.props, 'data.customerInformation.result');\n\n const allowOnAccountPayment = customerResult ? customerResult.AllowOnAccountPayment : false;\n const isB2BSite = isChannelTypeB2B(this.props.context.request);\n const enableCustomerAccountPayment = get(this.props, 'context.request.app.platform.enableCustomerAccountPayment');\n\n return (\n allowOnAccountPayment &&\n (enableCustomerAccountPayment === 'all' ||\n (enableCustomerAccountPayment === 'b2b' && isB2BSite) ||\n (enableCustomerAccountPayment === 'b2c' && !isB2BSite))\n );\n }\n\n public shouldComponentUpdate(\n nextProps: IAccountCustomerBalanceTileProps,\n nextState: IAccountCustomerBalanceTileViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n if (!this.isCustomerAccountPaymentEnabled) {\n return <>;\n }\n\n const { className, heading, links } = this.props.config;\n const viewProps = {\n ...this.props,\n AccountCustomerBalanceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-customer-balance-tile', className)\n },\n heading: heading && (\n \n ),\n content: this.state.content,\n links: this.state.isDetailsLinkDisplayed && (\n (event: Msdyn365.ContentEditableEvent) => void 0,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n }}\n />\n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _initState(): IAccountCustomerBalanceTileViewState {\n const account: CustomerBalances = get(this.props, 'data.balance.result');\n\n let content: React.ReactNode;\n let isDetailsLinkDisplayed = false;\n\n if (this.hasError) {\n this.props.telemetry.error('Error retrieving customer account balance');\n content = ;\n } else if (\n account.Balance === 0 &&\n account.CreditLimit === 0 &&\n account.InvoiceAccountBalance === 0 &&\n account.InvoiceAccountCreditLimit === 0\n ) {\n // Non-established credit\n content = ;\n } else {\n // Successfully retrieved balance\n const { accountCreditVerbagePrefix, accountCreditVerbagePostfix } = this.props.resources;\n const currencyCode = get(this.props, 'context.request.channel.Currency');\n const formatCurrency = get(this.props, 'context.cultureFormatter.formatCurrency');\n let customerCredit = 0;\n\n if (account.InvoiceAccountCreditLimit === 0) {\n customerCredit = account.CreditLimit - account.Balance;\n } else {\n customerCredit = account.InvoiceAccountCreditLimit - account.InvoiceAccountBalance;\n }\n\n const customerCreditFormatted = `${formatCurrency(customerCredit.toFixed(2), currencyCode)}`;\n\n isDetailsLinkDisplayed = true;\n content = (\n \n );\n }\n\n return { content, isDetailsLinkDisplayed };\n }\n}\n\nexport default AccountCustomerBalanceTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILoyaltySignUpViewProps } from './loyalty-sign-up';\n\nconst LoyaltySignUpView: React.FC = props => {\n const {\n LoyaltySignUp,\n heading,\n memberHeading,\n signInLink,\n signUpText,\n signUpButton,\n detailsLink,\n termsLink,\n loading,\n infoMessageBar\n } = props;\n\n if (loading) {\n props.context.telemetry.error('LoyaltySignUp data is empty, module wont render');\n return null;\n }\n\n return (\n \n {infoMessageBar}\n {memberHeading}\n {heading}\n {detailsLink}\n {signUpText}\n {termsLink}\n {signUpButton}\n {signInLink}\n \n );\n};\n\nexport default LoyaltySignUpView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ILinkData } from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ILinksData {\n linkText?: string;\n linkUrl: ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n}\n\nexport interface IAccountLoyaltyTileLinks {\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 AccountLoyaltyTileLinks: 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};\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-loyalty-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 AccountLoyaltyTileLinks;\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 { LoyaltyRewardPoint } from '@msdyn365-commerce/retail-proxy';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyTileData } from './account-loyalty-tile.data';\nimport { IAccountLoyaltyTileProps } from './account-loyalty-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-loyalty-tile-description';\nimport LinksComponent from './components/account-loyalty-tile-links';\n\nexport interface IAccountLoyaltyTileViewProps extends IAccountLoyaltyTileProps {\n AccountLoyaltyTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountLoyalty component.\n * @extends {React.PureComponent>}\n */\nclass AccountLoyaltyTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountLoyaltyTileProps) {\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, data, resources, context } = this.props;\n const { className, heading, signUpLinkText, signUpLinkAriaLabel, viewLinkText, viewLinkAriaLabel } = config;\n const { accountLoyaltySummary, accountLoyaltyMemberSummary } = resources;\n const { loyaltyCard } = data;\n\n let description = accountLoyaltySummary;\n let url = Msdyn365.getUrlSync('loyaltyJoin', context.actionContext) || '';\n const link = { linkText: signUpLinkText, linkUrl: { destinationUrl: url }, ariaLabel: signUpLinkAriaLabel };\n\n if (loyaltyCard && loyaltyCard.result && loyaltyCard.result.CardNumber) {\n const decimalPrecision = 2;\n let points = 0;\n\n if (loyaltyCard.result.RewardPoints && loyaltyCard.result.RewardPoints.length > 0) {\n loyaltyCard.result.RewardPoints.forEach((rewardPoint: LoyaltyRewardPoint) => {\n points += rewardPoint.ActivePoints!;\n });\n }\n link.ariaLabel = viewLinkAriaLabel;\n link.linkText = viewLinkText;\n url = Msdyn365.getUrlSync('loyalty', context.actionContext) || '';\n link.linkUrl.destinationUrl = url;\n description = format(accountLoyaltyMemberSummary, points.toFixed(decimalPrecision));\n }\n\n const viewProps = {\n ...this.props,\n className,\n AccountLoyaltyTile: {\n moduleProps: this.props,\n className: classnames('ms-account-loyalty-tile', config.className)\n },\n heading: heading && (\n \n ),\n links: (\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.signUpLinkText && this.props.config.viewLinkText) {\n this.props.config.viewLinkText = event.target.value;\n }\n };\n}\n\nexport default AccountLoyaltyTile;\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Heading, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address';\r\nimport { IAccountManagementAddressConfig } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address.props.autogenerated';\r\n\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n {isShowError && \r\n {title}\r\n {message}\r\n }\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, addUpdateAddress, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n // update heading in props if not provided from module\r\n if (!showAddOrUpdateAddress.heading) {\r\n // create heading component from configured values\r\n const addAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).addAddressHeading;\r\n const editAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).editAddressHeading;\r\n const headingText = addUpdateAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n const heading = headingText && ;\r\n\r\n showAddOrUpdateAddress.heading = heading;\r\n }\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\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 { IAccountGenericTileViewProps } from './account-generic-tile';\n\nconst AccountGenericTileView: React.FC = props => {\n const { AccountGenericTile, heading, links } = props;\n\n return (\n \n {heading}\n {links}\n \n );\n};\n\nexport default AccountGenericTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\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\nexport * from './sign-up-button';\nexport * from './sign-up-error';\nexport * from './sign-up-input';\nexport * from './sign-up-label';\nexport * from './sign-up-loading-icon';\nexport * from './sign-up-loading-message';\nexport * from './sign-up-success';\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLoadingIcon {\n className: string;\n}\n\nconst PasswordResetVerificationLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default PasswordResetVerificationLoadingIcon;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport { AsyncResult } from '@msdyn365-commerce/retail-proxy';\n\nimport { ICategoryPromotionalContentData } from './navigation-menu.props.autogenerated';\n\nexport interface INavigationMenuData {\n categories: AsyncResult;\n}\n\nexport interface IMenuItemData {\n id?: number;\n linkText?: string;\n linkURL?: string;\n imageSource?: string;\n imageDestinationURL?: string;\n subMenu?: IMenuItemData[];\n promotionalContent?: ICategoryPromotionalContentData[];\n menuSource?: string;\n shouldOpenNewTab?: boolean;\n ariaLabel?: string;\n}\n\n/**\n *\n * Menu type index id.\n */\nexport enum MenuTypeIndexId {\n Cms = 1000,\n Retail = 5000\n}\n\n/**\n *\n * Menu type source.\n */\nexport enum MenuSource {\n Cms = 'Cms',\n Retail = 'Retail'\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport MsDyn365, { IActionContext, IGridSettings, IImageSettings, isEmptyOrNullObject } from '@msdyn365-commerce/core';\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, getCategoryUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { addThrottledEvent, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport * as React from 'react';\n\nimport { IMenuItemData, INavigationMenuData, MenuSource, MenuTypeIndexId } from './navigation-menu.data';\nimport { ICmsNavItemsData, INavigationMenuProps, ISubMenusData, navigationMenuSource } from './navigation-menu.props.autogenerated';\n\nexport interface INavigationMenuViewProps extends INavigationMenuProps {\n className: string;\n menuItemData: IMenuItemData[];\n Navigation: IModuleProps;\n MenuList: INodeProps;\n ListItem: INodeProps;\n Link: INodeProps;\n Button: INodeProps;\n Span: INodeProps;\n ImageContainer: INodeProps;\n MobileDescriptionContainer: INodeProps;\n MobileBackButton: INodeProps;\n MobileDescriptionLabel: INodeProps;\n imageSettings: IImageSettings;\n gridSettings: IGridSettings;\n isMobileView: boolean;\n DivContainer?: INodeProps;\n ImageDivContainer?: INodeProps;\n showCategoryImage?: boolean;\n showPromotionalContent?: boolean;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport interface INavigationMenuState {\n isMobile: boolean;\n}\n\n/**\n *\n * NavigationMenu component.\n * @extends {React.PureComponent>}\n */\nclass NavigationMenu extends React.PureComponent, INavigationMenuState> {\n private static CMSItemIdInit: number = MenuTypeIndexId.Cms;\n\n private static RSItemIdInit: number = MenuTypeIndexId.Retail;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\n private menuItemList: IMenuItemData[];\n\n private isRetail: boolean = true;\n\n private isCMS: boolean = true;\n\n @observable\n private viewport: GridSize;\n\n public static getFriendlyName(locale: string, nameTranslations?: TextValueTranslation[]): string | undefined {\n let nameTranslation: TextValueTranslation | undefined;\n if (locale && nameTranslations && nameTranslations.length > 0) {\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\n }\n\n return nameTranslation && nameTranslation.Text;\n }\n\n constructor(props: INavigationMenuProps) {\n super(props);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._setNavigationSource(this.props.config && this.props.config.navigationMenuSource);\n this.state = { isMobile: this.isMobile };\n this.menuItemList = [];\n }\n\n @computed get isMobile(): boolean {\n return this.viewport === 'xs' || this.viewport === 'sm';\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n this.resizeThrottledEventHandler = addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n }\n this._updateViewport();\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n\n public render(): JSX.Element | null {\n this.menuItemList = this._mapData();\n if (isEmptyOrNullObject(this.props.data)) {\n this.props.telemetry.error('Navigatiomenu returned null');\n return null;\n }\n\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=224&h=300&m=6', w: 0, h: 0 },\n xl: { q: 'w=224&h=300&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n\n const viewProps = {\n ...this.props,\n ...this.state,\n imageSettings: defaultImageSettings,\n gridSettings: this.props.context.request.gridSettings,\n Navigation: {\n moduleProps: this.props,\n className: classnames('ms-nav', this.props.config.className, this.state.isMobile ? 'mobile-vp' : 'desktop-vp'),\n tag: 'nav',\n role: this.isMobile ? 'listbox' : 'navigation'\n },\n MenuList: {\n className: 'ms-nav__list',\n tag: 'ul',\n role: this.isMobile ? 'listbox' : 'menu'\n },\n ListItem: {\n className: 'ms-nav__list__item',\n role: 'presentation',\n tag: 'li'\n },\n showCategoryImage: this.props.config.displayCategoryImage ?? false,\n showPromotionalContent: this.props.config.displayPromotionalImage ?? false,\n Link: {\n tag: 'a',\n className: 'ms-nav__list__item__link',\n role: this.isMobile ? 'option' : 'menuitem'\n },\n DivContainer: {\n tag: 'div',\n className: 'ms-nav__feature'\n },\n ImageDivContainer: {\n tag: 'div',\n className: 'category-image',\n role: 'tabpanel'\n },\n Button: {\n className: 'ms-nav__list__item__button',\n tag: 'button',\n role: this.isMobile ? 'option' : 'menuitem',\n onClick: this.props\n },\n ImageContainer: {\n className: 'ms-nav__list__item__image'\n },\n Span: {\n className: 'ms-nav__list__item__span',\n tag: 'span'\n },\n MobileDescriptionContainer: {\n className: 'ms-nav__list__mobile__container'\n },\n MobileBackButton: {\n className: 'ms-nav__list__mobile__container__button',\n tag: 'button',\n 'aria-label': this.props.resources.backButtonAriaLabel,\n onClick: this.props\n },\n MobileDescriptionLabel: {\n className: 'ms-nav__list__mobile__container__span',\n tag: 'span'\n },\n isMobileView: this.state.isMobile,\n menuItemData: this.menuItemList,\n className: classnames('ms-nav', this.props.config.className)\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _mapData(): IMenuItemData[] {\n const { data, config } = this.props;\n const mergedData: IMenuItemData[] = [];\n if (this.isRetail && data && data.categories && data.categories.result && data.categories.result.length > 0) {\n data.categories.result.map((item: CategoryHierarchy, index) =>\n mergedData.push(this._constructMenuItemData(item, undefined, true, index, true))\n );\n }\n\n if (this.isCMS && config.cmsNavItems && config.cmsNavItems.length > 0) {\n config.cmsNavItems.map((item: ICmsNavItemsData, idx: number) =>\n mergedData.push(this._constructMenuItemData(undefined, item, false, idx + 1))\n );\n }\n return this._constructTopMenuItemData(mergedData);\n }\n\n private _constructTopMenuItemData(mergedData: IMenuItemData[]): IMenuItemData[] {\n const enableTopLevelMenu = this.props.config.enabletopMenu ?? false;\n if (!enableTopLevelMenu) {\n return mergedData;\n }\n const mergedRootMenuData: IMenuItemData[] = [];\n const topMenu = {\n id: 1,\n linkText: this.props.config.rootMenuNavigation ?? '...',\n linkURL: '#',\n imageSource: undefined,\n subMenu: mergedData\n } as IMenuItemData;\n mergedRootMenuData.push(topMenu);\n\n return mergedRootMenuData;\n }\n\n private _constructMenuItemData(\n retailItem?: CategoryHierarchy,\n cmsItem?: ICmsNavItemsData,\n isRetail?: boolean,\n idx?: number,\n addedAllMenu?: boolean\n ): IMenuItemData {\n const locale =\n this.props.context && this.props.context.request && this.props.context.request.locale\n ? this.props.context.request.locale\n : 'en-us';\n const { categoryPromotionalContent } = this.props.config;\n const cmsItemText = (cmsItem && cmsItem.linkText) || '';\n const { menuAriaLabel } = this.props.resources;\n\n // Filter category promotional data based on category name\n const promotionalData =\n retailItem &&\n categoryPromotionalContent?.filter(promoItem => promoItem.categoryName?.toLowerCase() === retailItem?.Name?.toLowerCase());\n\n // First check if image is available from promotional data else read from retail server\n let imageSource: string = 'empty';\n if (ArrayExtensions.hasElements(retailItem?.Images) && retailItem!.Images[0].Uri) {\n imageSource = retailItem!.Images[0].Uri;\n }\n if (isRetail) {\n return {\n id: NavigationMenu.RSItemIdInit++,\n linkText: NavigationMenu.getFriendlyName(locale, retailItem?.NameTranslations) ?? '',\n linkURL: retailItem?.Url,\n imageSource,\n subMenu: this._getNestedChildren(retailItem, imageSource, addedAllMenu),\n promotionalContent: this.props.config.displayPromotionalImage && promotionalData,\n menuSource: MenuSource.Retail,\n ariaLabel: `${NavigationMenu.getFriendlyName(locale, retailItem?.NameTranslations) ?? ''} ${menuAriaLabel}`\n } as IMenuItemData;\n }\n return {\n id: NavigationMenu.CMSItemIdInit++,\n linkText: cmsItemText,\n linkURL: (cmsItem && cmsItem.linkUrl && cmsItem.linkUrl.destinationUrl) || '',\n imageDestinationURL: (cmsItem && cmsItem.imageLink && cmsItem.imageLink.destinationUrl) || '',\n imageSource: (cmsItem && cmsItem.image && cmsItem.image.src) || '',\n subMenu: this._getCMSNestedChildren(cmsItem),\n menuSource: MenuSource.Cms,\n shouldOpenNewTab: cmsItem?.openInNewTab,\n ariaLabel: `${cmsItemText} ${menuAriaLabel}`\n } as IMenuItemData;\n }\n\n private _getNestedChildren(category?: CategoryHierarchy, imageSourceUrl?: string, addedAllMenu: boolean = false): IMenuItemData[] {\n const nestedChildren: IMenuItemData[] = [];\n if (!category || !category.Children || category.Children.length === 0) {\n return [];\n }\n if (!this.props.config.enabletopMenu && addedAllMenu) {\n nestedChildren.push({\n linkText: this.props.resources.allCategoryMenuText,\n imageSource: imageSourceUrl,\n linkURL: getCategoryUrl(category, (this.props.context as unknown) as IActionContext, {})\n });\n }\n category.Children.map((item: CategoryHierarchy, index) => {\n nestedChildren.push(this._constructMenuItemData(item, undefined, true, index, false));\n });\n return nestedChildren;\n }\n\n private _getCMSNestedChildren(category?: ICmsNavItemsData): IMenuItemData[] {\n const nestedChildren: IMenuItemData[] = [];\n\n if (!category || !category.subMenus || category.subMenus.length === 0) {\n return [];\n }\n\n category.subMenus.map((item: ISubMenusData, idx: number) => {\n nestedChildren.push(this._constructMenuItemData(undefined, item, false, idx));\n });\n return nestedChildren;\n }\n\n private readonly _setNavigationSource = (sourceType?: navigationMenuSource): void => {\n switch (sourceType) {\n case navigationMenuSource.retailServerOnly:\n this.isRetail = true;\n this.isCMS = false;\n break;\n case navigationMenuSource.cmsOnly:\n this.isRetail = false;\n this.isCMS = true;\n break;\n case navigationMenuSource.all:\n this.isRetail = true;\n this.isCMS = true;\n break;\n default:\n }\n };\n\n private _updateViewport(): void {\n this.viewport = this._getViewport();\n this.setState({ isMobile: this.isMobile });\n }\n\n private _getViewport(): GridSize {\n const { context } = this.props;\n\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\nexport default NavigationMenu;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IDictionary, Text } from '@msdyn365-commerce/core';\nimport { AttributeDefinition, Customer, CustomerAttribute } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { StringExtensions, updateCustomerAttributes, updateCustomerAttributesInput } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IPayLoad,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable, reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileData } from '../account-profile.data';\nimport { IAccountProfileProps } from '../account-profile.props.autogenerated';\nimport TextComponent from './account-profile-text';\n\ninterface IAttributePropertiesType {\n Name?: string;\n IsMandatory?: boolean;\n}\n\nexport interface IAccountProfileAttributesProps {\n accountProfileProps: IAccountProfileProps;\n}\n\nexport enum AccountAttributeDataTypeValue {\n Decimal = 3,\n Integer = 4,\n Text = 5,\n TrueFalse = 6\n}\n\nexport interface IAttributePayloadData {\n recordId?: number;\n name?: string;\n dataTypeValue?: number;\n isEnumeration?: boolean;\n lowerBoundValue?: number;\n upperBoundValue?: number;\n decimalValue?: number;\n integerValue?: number;\n textValue?: string;\n booleanValue?: boolean;\n isMandatory?: boolean;\n defaultValue?: string;\n}\n\nexport interface IAccountProfileAttributesState extends React.ComponentState {\n editAttributes: boolean;\n phone: string;\n vatNumber: string;\n attributes: IDictionary;\n attributeError: IDictionary;\n}\n\n/**\n *\n * AccountProfileAttributes class.\n * @extends {React.PureComponentIAccountProfileAttributesProps, IAccountProfileAttributesState>}\n */\n@observer\nclass AccountProfileAttributes extends React.Component {\n private readonly attributePayloadData: IAttributePayloadData[];\n\n @observable private isUpdatingAttributes: boolean = false;\n\n @observable private gotException: boolean = false;\n\n private hasError: boolean = false;\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private initialAttributes: IDictionary;\n\n private initialCustomerAttributes?: CustomerAttribute[];\n\n private initialPhone: string;\n\n private initialVatNumber: string;\n\n private readonly payLoad: IPayLoad;\n\n private readonly editRef: React.RefObject;\n\n private readonly attributesContainerRef: React.RefObject;\n\n private readonly attributeClassName: string = 'ms-account-profile__attributes-element';\n\n private readonly maxIntegerLimit: number = 2_100_000_000;\n\n private readonly minIntegerLimit: number = -2_100_000_000;\n\n private readonly maxDecimalLimit: number = 7_900_000_000_000;\n\n private readonly minDecimalLimit: number = -7_900_000_000_000;\n\n private readonly maxStringLength: number = 1000;\n\n private readonly maxVATNumberLength: number = 20;\n\n private readonly maxPhoneLength: number = 25;\n\n private readonly editAsyncCustomerFeatureName: string = 'Dynamics.AX.Application.RetailEnableAsyncCustomerEditFeature';\n\n private isEditAsyncCustomerFeatureEnabled: boolean = false;\n\n constructor(props: IAccountProfileAttributesProps) {\n super(props);\n this.state = {\n editAttributes: false,\n phone: '',\n vatNumber: '',\n attributes: {},\n attributeError: {}\n };\n this.initialAttributes = {};\n this.initialCustomerAttributes = [];\n this.initialPhone = '';\n this.initialVatNumber = '';\n this.attributePayloadData = [];\n const telemetryPageName =\n (this.props.accountProfileProps &&\n this.props.accountProfileProps.context &&\n this.props.accountProfileProps.context.request &&\n this.props.accountProfileProps.context.request.telemetryPageName) ||\n '';\n const friendlyName = (this.props.accountProfileProps && this.props.accountProfileProps.friendlyName) || '';\n const telemetry = (this.props.accountProfileProps && this.props.accountProfileProps.telemetry) || {};\n this.telemetryContent = getTelemetryObject(telemetryPageName, friendlyName, telemetry);\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n this.editRef = React.createRef();\n this.attributesContainerRef = React.createRef();\n }\n\n public componentDidMount(): void {\n this._buildPayloadData();\n this._getAttributes();\n this._getCustomerPhoneAndVatNumber();\n reaction(\n () => this.props.accountProfileProps.data.customerInformation.result,\n () => {\n const customerInformation = this.props.accountProfileProps.data.customerInformation.result;\n this.initialCustomerAttributes = customerInformation && customerInformation.Attributes;\n this._getAttributes();\n this._getCustomerPhoneAndVatNumber();\n }\n );\n reaction(\n () => this.props.accountProfileProps.data.attributeDefinitions.result,\n () => {\n this._buildPayloadData();\n }\n );\n }\n\n public shouldComponentUpdate(nextProps: IAccountProfileAttributesProps, nextState: IAccountProfileAttributesState): boolean {\n if (this.state === nextState && this.props.accountProfileProps.data === nextProps.accountProfileProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n return this._renderAttributes();\n }\n\n private readonly _renderAttributes = (): JSX.Element | null => {\n const { config, data, resources } = this.props.accountProfileProps;\n const attributeDefinitions: AttributeDefinition[] = data.attributeDefinitions.result || [];\n const additionalInformationSectionHeading =\n (config.additionalInformationSectionHeading && config.additionalInformationSectionHeading.text) || '';\n const showAttributes = config.showAttributes || '';\n const attributes = showAttributes.split(',');\n const elements = attributes.map(att => {\n const attributeDefinition: AttributeDefinition = attributeDefinitions.find(\n attribute => attribute.IsHidden === false && attribute.Name!.toLocaleLowerCase() === att.toLocaleLowerCase()\n ) || { RecordId: 0 };\n return this._renderAttribute(attributeDefinition);\n });\n const edit = (this.state && this.state.editAttributes) || false;\n this.payLoad.contentAction.etext = `${resources.attributesEditButtonText} ${additionalInformationSectionHeading}`;\n const editAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = `${resources.attributesSaveButtonText} ${additionalInformationSectionHeading}`;\n const saveAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = `${resources.attributesCancelButtonText} ${additionalInformationSectionHeading}`;\n const cancelAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n const customerInformation = data.customerInformation.result;\n\n this.isEditAsyncCustomerFeatureEnabled =\n data.featureState?.result?.find(feature => feature.Name === this.editAsyncCustomerFeatureName)?.IsEnabled || false;\n\n // Disable the 'Edit' button if the switch is enabled and the customer is async.\n const disableBtn: boolean =\n (this.props.accountProfileProps.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false) &&\n !this.isEditAsyncCustomerFeatureEnabled;\n return (\n \n {config.additionalInformationSectionHeading && (\n \n )}\n {config.showPhone && this._renderPhone()}\n {config.showVatNumber && this._renderVatNumber()}\n {elements}\n {this.gotException && (\n
\n \n
\n )}\n {!edit && (\n \n {resources.attributesEditButtonText}\n \n )}\n {edit && (\n \n {resources.attributesSaveButtonText}\n \n )}\n {edit && (\n \n {resources.attributesCancelButtonText}\n \n )}\n
\n );\n };\n\n private readonly _renderPhone = (): JSX.Element | null => {\n const { phoneSectionHeading } = this.props.accountProfileProps.config;\n const heading = (phoneSectionHeading && phoneSectionHeading.text) || '';\n const className = (heading && heading.replace(/ /g, '_')) || '';\n const editAttributes = (this.state && this.state.editAttributes) || false;\n return (\n
\n {phoneSectionHeading && }\n \n {this._renderError('Phone')}\n
\n );\n };\n\n private readonly _renderVatNumber = (): JSX.Element | null => {\n const { vatNumberSectionHeading } = this.props.accountProfileProps.config;\n const heading = (vatNumberSectionHeading && vatNumberSectionHeading.text) || '';\n const className = (heading && heading.replace(/ /g, '_')) || '';\n const editAttributes = (this.state && this.state.editAttributes) || false;\n return (\n
\n {vatNumberSectionHeading && }\n \n {this._renderError('VATNumber')}\n
\n );\n };\n\n private readonly _renderAttribute = (customAttribute: AttributeDefinition): JSX.Element | null => {\n const editAttributes = (this.state && this.state.editAttributes) || false;\n const className = (customAttribute.Name && customAttribute.Name.replace(/ /g, '_')) || '';\n switch (customAttribute.ExtDataType && customAttribute.ExtDataType.Value) {\n case AccountAttributeDataTypeValue.Integer:\n case AccountAttributeDataTypeValue.Decimal:\n return this._renderIntegerDecimalInput(customAttribute, className, editAttributes);\n case AccountAttributeDataTypeValue.Text:\n return this._renderTextInputOrSelect(customAttribute, className, editAttributes);\n case AccountAttributeDataTypeValue.TrueFalse:\n return this._renderBoolean(customAttribute, className, editAttributes);\n default:\n return null;\n }\n };\n\n private readonly _renderIntegerDecimalInput = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n const edit = (this.state && this.state.editAttributes) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n return (\n
\n \n \n {this._renderError(customAttribute.Name || '')}\n
\n );\n };\n\n private readonly _renderTextInputOrSelect = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n const isEnumeration: boolean = customAttribute.IsEnumeration || false;\n const edit = (this.state && this.state.editAttributes) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n if (isEnumeration && customAttribute.EnumerationDetails) {\n const value = this.state.attributes[customAttribute.Name || ''] || '';\n const hasNoValue = value === '';\n return (\n
\n \n \n {hasNoValue && (\n \n )}\n {customAttribute.EnumerationDetails.map(option => {\n const selected = option.EnumerationValue === this.state.attributes[customAttribute.Name || ''];\n return (\n \n {option.EnumerationValue}\n \n );\n })}\n \n
\n );\n }\n return (\n
\n \n \n {this._renderError(customAttribute.Name || '')}\n
\n );\n };\n\n private readonly _renderBoolean = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n let value = this.state.attributes[customAttribute.Name || ''] || '';\n const hasNoValue = value === '';\n const render = !(hasNoValue && !editAttributes);\n value = value || 'false';\n const toggleState = (value === 'true' && 'enable') || 'disable';\n const arialabel = format(this.props.accountProfileProps.resources.attributeToggleButtonAriaLabel, customAttribute.Name);\n const ariaPressed = (value === 'true' && true) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n let toggleValue = 'false';\n if (value === 'true') {\n toggleValue = 'false';\n } else {\n toggleValue = 'true';\n }\n\n return (\n \n \n {render && (\n \n \n \n \n \n )}\n \n );\n };\n\n private readonly _renderError = (attributeName: string): JSX.Element | null => {\n const error: string = (this.state && this.state.attributeError && this.state.attributeError[attributeName]) || '';\n const hasError = !StringExtensions.isNullOrWhitespace(error);\n if (hasError) {\n return (\n
\n \n
\n );\n }\n return null;\n };\n\n private readonly _getAttributeProps = (attributeName: string): IAttributePropertiesType => {\n const attributePayloadData = this.attributePayloadData.find(att => att.name === attributeName);\n const isMandatory: boolean = (attributePayloadData && attributePayloadData.isMandatory) || false;\n return {\n Name: isMandatory ? `${attributeName || ''} *` : attributeName || '',\n IsMandatory: isMandatory\n };\n };\n\n private readonly _onPhoneChange = (event: React.ChangeEvent): void => {\n const value = event.target.value;\n this.setState({ phone: value });\n };\n\n private readonly _onVatNumberChange = (event: React.ChangeEvent): void => {\n const value = event.target.value;\n this.setState({ vatNumber: value });\n };\n\n private readonly _enableAttributes = () => {\n this.hasError = false;\n\n // To clear exception messages\n this.gotException = false;\n this.setState({ editAttributes: true, attributeError: {} });\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n if (this.attributesContainerRef.current) {\n const attributes: HTMLCollectionOf = this.attributesContainerRef.current.getElementsByClassName(\n this.attributeClassName\n );\n if (attributes && attributes.length > 0) {\n this._setFocus(attributes[0] as HTMLElement);\n }\n }\n }, 0);\n }\n };\n\n private readonly _disableAttributes = () => {\n this.setState({\n editAttributes: false,\n attributeError: {},\n attributes: this.initialAttributes,\n phone: this.initialPhone,\n vatNumber: this.initialVatNumber\n });\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n this._setFocus(this.editRef.current);\n }, 0);\n }\n };\n\n private readonly _onAttributeChange = (attributeDefinition: AttributeDefinition) => (event: React.ChangeEvent) => {\n const value = event.target.value;\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n }\n });\n };\n\n private readonly _onAttributeCheck = (attributeDefinition: AttributeDefinition, value: string) => (\n event: React.MouseEvent\n ) => {\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n }\n });\n };\n\n private readonly _onAttributeSelect = (attributeDefinition: AttributeDefinition) => (event: React.ChangeEvent) => {\n const value = event.currentTarget.selectedOptions[0].value;\n const index = event.currentTarget.selectedOptions[0].index;\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n },\n selectedIndex: {\n ...this.state.selectedIndex,\n [name]: index\n }\n });\n };\n\n private readonly _getAttributes = () => {\n const { config, data } = this.props.accountProfileProps;\n const showAttributes = config.showAttributes || '';\n const showAttributesArray = showAttributes.split(',');\n const customer = data.customerInformation.result;\n const custmerAttributes: CustomerAttribute[] = (customer && customer.Attributes) || [];\n const attributes: IDictionary = {};\n\n showAttributesArray.forEach(showAttribute => {\n const attributePayloadData = this.attributePayloadData.find(att => att.name === showAttribute);\n const isMandatory: boolean = (attributePayloadData && attributePayloadData.isMandatory) || false;\n const defaultValue = attributePayloadData && attributePayloadData.defaultValue;\n const attribute = custmerAttributes.find(att => att.Name === showAttribute);\n let value: string = '';\n if (attribute && attribute.AttributeValue) {\n const name = (attribute && attribute.Name) || '';\n switch (attribute.DataTypeValue) {\n case AccountAttributeDataTypeValue.Integer:\n if (attribute.AttributeValue.IntegerValue) {\n value = String(attribute.AttributeValue.IntegerValue);\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.Decimal:\n if (attribute.AttributeValue.DecimalValue) {\n value = String(attribute.AttributeValue.DecimalValue);\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n if (attribute.AttributeValue.StringValue) {\n value = attribute.AttributeValue.StringValue;\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n if (attribute.AttributeValue.BooleanValue !== null) {\n value = String(attribute.AttributeValue.BooleanValue);\n attributes[name] = value;\n }\n break;\n default:\n\n // Do nothing\n }\n }\n if (StringExtensions.isNullOrWhitespace(value) && isMandatory) {\n attributes[showAttribute] = '';\n }\n if (value.length === 0 && defaultValue) {\n attributes[showAttribute] = String(defaultValue);\n }\n });\n if (Object.keys(this.initialAttributes).length === 0) {\n this.initialAttributes = attributes;\n }\n this.setState({ attributes });\n };\n\n // eslint-disable-next-line\n private readonly _addOrUpdateAttribute = (customer: Customer) => {\n const { resources } = this.props.accountProfileProps;\n const { phone, vatNumber } = this.state;\n const attributeError: IDictionary = {};\n let hasError: boolean = false;\n let hasValue: boolean = true;\n for (const [key, value] of Object.entries(this.state.attributes)) {\n const payloadData: IAttributePayloadData = this.attributePayloadData.find(data => data.name === key) || {};\n if (payloadData) {\n switch (payloadData.dataTypeValue) {\n case AccountAttributeDataTypeValue.Decimal:\n const decimalValue = Number(value);\n if (isNaN(decimalValue)) {\n const typeError = format(resources.attributeInputTypeErrorText, payloadData.name, 'Decimal');\n attributeError[payloadData.name || ''] = typeError;\n hasError = true;\n } else if (payloadData.lowerBoundValue !== undefined && payloadData.upperBoundValue !== undefined) {\n if (decimalValue < payloadData.lowerBoundValue || decimalValue > payloadData.upperBoundValue) {\n const rangeError = format(\n resources.attributeInputRangeErrorText,\n payloadData.name,\n payloadData.lowerBoundValue,\n payloadData.upperBoundValue\n );\n attributeError[payloadData.name || ''] = rangeError;\n hasError = true;\n }\n } else {\n if (decimalValue > this.maxDecimalLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMaximumErrorText,\n payloadData.name,\n this.maxDecimalLimit\n );\n hasError = true;\n }\n\n if (decimalValue < this.minDecimalLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMinimumErrorText,\n payloadData.name,\n this.minDecimalLimit\n );\n hasError = true;\n }\n }\n\n if (!hasError) {\n if (StringExtensions.isNullOrWhitespace(value)) {\n hasValue = false;\n } else {\n payloadData.decimalValue = decimalValue;\n hasValue = true;\n }\n }\n break;\n case AccountAttributeDataTypeValue.Integer:\n const integerValue = Number(value);\n if (isNaN(integerValue) || value.includes('.')) {\n const typeError = format(resources.attributeInputTypeErrorText, payloadData.name, 'Integer');\n attributeError[payloadData.name || ''] = typeError;\n hasError = true;\n } else if (payloadData.lowerBoundValue !== undefined && payloadData.upperBoundValue !== undefined) {\n if (integerValue < payloadData.lowerBoundValue || integerValue > payloadData.upperBoundValue) {\n const rangeError = format(\n resources.attributeInputRangeErrorText,\n payloadData.name,\n payloadData.lowerBoundValue,\n payloadData.upperBoundValue\n );\n attributeError[payloadData.name || ''] = rangeError;\n hasError = true;\n }\n } else {\n if (integerValue > this.maxIntegerLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMaximumErrorText,\n payloadData.name,\n this.maxIntegerLimit\n );\n hasError = true;\n }\n\n if (integerValue < this.minIntegerLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMinimumErrorText,\n payloadData.name,\n this.minIntegerLimit\n );\n hasError = true;\n }\n }\n\n if (!hasError) {\n if (StringExtensions.isNullOrWhitespace(value)) {\n hasValue = false;\n } else {\n payloadData.integerValue = integerValue;\n hasValue = true;\n }\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n let trimValue = '';\n if (!StringExtensions.isNullOrWhitespace(value)) {\n trimValue = value.trim();\n }\n if (trimValue.length > this.maxStringLength) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputStringMaxLengthErrorText,\n payloadData.name,\n this.maxStringLength\n );\n hasError = true;\n }\n if (!hasError) {\n payloadData.textValue = trimValue;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n payloadData.booleanValue = value === 'true';\n break;\n default:\n\n // Do nothing\n }\n\n if (payloadData.isMandatory && StringExtensions.isNullOrWhitespace(value)) {\n attributeError[payloadData.name || ''] = format(resources.attributeInputMandatoryErrorText, payloadData.name);\n hasError = true;\n }\n\n const custmerAttributes: CustomerAttribute[] = (customer && customer.Attributes) || [];\n const attribute = custmerAttributes.find(att => att.Name === key);\n const index = custmerAttributes.findIndex(att => att.Name === key);\n\n if (index !== -1 && !hasValue) {\n custmerAttributes.splice(index, 1);\n }\n\n if (!hasError && hasValue) {\n if (attribute) {\n attribute.Attribute = undefined;\n attribute.DataTypeValue = payloadData.dataTypeValue;\n attribute.Name = payloadData.name;\n attribute.RecordId = payloadData.recordId;\n attribute.Units = undefined;\n attribute.AttributeValue = {\n IntegerValue: payloadData.integerValue,\n BooleanValue: payloadData.booleanValue,\n StringValue: payloadData.textValue,\n DecimalValue: payloadData.decimalValue\n };\n attribute.ExtensionProperties = [];\n attribute.NameTranslations = [];\n } else {\n custmerAttributes.push({\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerAttribute',\n Attribute: undefined,\n DataTypeValue: payloadData.dataTypeValue,\n KeyName: payloadData.name,\n Name: payloadData.name,\n RecordId: payloadData.recordId,\n Units: undefined,\n AttributeValue: {\n // @ts-expect-error\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CommercePropertyValue',\n IntegerValue: payloadData.integerValue,\n BooleanValue: payloadData.booleanValue,\n StringValue: payloadData.textValue,\n DecimalValue: payloadData.decimalValue\n },\n 'ExtensionProperties@odata.type': '#Collection(Microsoft.Dynamics.Commerce.Runtime.DataModel.CommerceProperty)',\n ExtensionProperties: [],\n 'NameTranslations@odata.type':\n '#Collection(Microsoft.Dynamics.Commerce.Runtime.DataModel.TextValueTranslation)',\n NameTranslations: []\n });\n }\n }\n }\n }\n\n if (phone.trim().length > this.maxPhoneLength) {\n attributeError.Phone = format(resources.attributeInputStringMaxLengthErrorText, 'Phone', this.maxPhoneLength);\n hasError = true;\n } else {\n customer.Phone = phone.trim();\n }\n\n if (vatNumber.trim().length > this.maxVATNumberLength) {\n attributeError.VATNumber = format(resources.attributeInputStringMaxLengthErrorText, 'VAT Number', this.maxVATNumberLength);\n hasError = true;\n } else {\n customer.VatNumber = vatNumber.trim();\n }\n\n this.hasError = hasError;\n this.setState({ attributeError });\n };\n\n private readonly _saveAttributes = async () => {\n const { context, data } = this.props.accountProfileProps;\n const customer = data.customerInformation.result;\n\n if (customer && context) {\n this._addOrUpdateAttribute(customer);\n const input = new updateCustomerAttributesInput(\n customer.AccountNumber,\n customer.Attributes || [],\n context.request.apiSettings,\n customer.Phone,\n customer.VatNumber\n );\n\n this.isUpdatingAttributes = true;\n this.gotException = false;\n\n if (!this.hasError) {\n this.setState({ editAttributes: false });\n try {\n await updateCustomerAttributes(input, context.actionContext);\n } catch (error) {\n this.gotException = true;\n customer.Attributes = this.initialCustomerAttributes;\n if (context.telemetry) {\n context.telemetry.exception(error);\n context.telemetry.debug('Unable to update customer attributes');\n }\n this.setState({\n attributeError: {},\n attributes: this.initialAttributes,\n phone: this.initialPhone,\n vatNumber: this.initialVatNumber\n });\n }\n this.setState({ editAttributes: false });\n if (!this.gotException) {\n this.initialAttributes = this.state.attributes;\n this.initialCustomerAttributes = customer.Attributes;\n this.initialPhone = this.state.phone;\n this.initialVatNumber = this.state.vatNumber;\n }\n }\n\n this.isUpdatingAttributes = false;\n\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n this._setFocus(this.editRef.current);\n }, 0);\n }\n }\n };\n\n private readonly _setFocus = (element: HTMLElement | null) => {\n element?.focus();\n };\n\n private readonly _buildPayloadData = () => {\n const { data } = this.props.accountProfileProps;\n const attributeDefinitions = data.attributeDefinitions.result || [];\n const attributes: IDictionary = {};\n\n attributeDefinitions.forEach(attributeDefinition => {\n const attributePayloadData: IAttributePayloadData = {};\n attributePayloadData.recordId = attributeDefinition.RecordId;\n attributePayloadData.name = attributeDefinition.Name;\n attributePayloadData.dataTypeValue = attributeDefinition.DataTypeValue;\n attributePayloadData.isEnumeration = attributeDefinition.IsEnumeration;\n attributePayloadData.isMandatory = attributeDefinition.IsMandatory;\n switch (attributeDefinition.DataTypeValue) {\n case AccountAttributeDataTypeValue.Integer:\n const defaultIntegerValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.IntegerValue;\n attributePayloadData.lowerBoundValue = attributeDefinition.LowerBound && attributeDefinition.LowerBound.IntegerValue;\n attributePayloadData.upperBoundValue = attributeDefinition.UpperBound && attributeDefinition.UpperBound.IntegerValue;\n if (attributePayloadData.name && defaultIntegerValue) {\n attributePayloadData.defaultValue = String(defaultIntegerValue);\n attributes[attributePayloadData.name] = String(defaultIntegerValue);\n }\n break;\n case AccountAttributeDataTypeValue.Decimal:\n const defaultDecimalValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.DecimalValue;\n attributePayloadData.lowerBoundValue = attributeDefinition.LowerBound && attributeDefinition.LowerBound.DecimalValue;\n attributePayloadData.upperBoundValue = attributeDefinition.UpperBound && attributeDefinition.UpperBound.DecimalValue;\n if (attributePayloadData.name && defaultDecimalValue) {\n attributePayloadData.defaultValue = String(defaultDecimalValue);\n attributes[attributePayloadData.name] = String(defaultDecimalValue);\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n const defaultStringValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.StringValue;\n if (attributePayloadData.name && defaultStringValue) {\n attributePayloadData.defaultValue = defaultStringValue;\n attributes[attributePayloadData.name] = defaultStringValue;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n const defaultBooleanValue =\n (attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.BooleanValue) || false;\n if (attributePayloadData.name) {\n attributePayloadData.defaultValue = String(defaultBooleanValue);\n attributes[attributePayloadData.name] = String(defaultBooleanValue);\n }\n break;\n default:\n\n // Do nothing\n }\n this.attributePayloadData.push(attributePayloadData);\n });\n Object.keys(attributes).length > 0 && this.setState({ attributes });\n };\n\n private readonly _getCustomerPhoneAndVatNumber = () => {\n const customer = this.props.accountProfileProps.data.customerInformation.result;\n const phone = (customer && customer.Phone) || '';\n const vatNumber = (customer && customer.VatNumber) || '';\n this.setState({ phone, vatNumber });\n if (this.initialPhone.length === 0) {\n this.initialPhone = phone;\n }\n if (this.initialVatNumber.length === 0) {\n this.initialVatNumber = vatNumber;\n }\n };\n}\n\nexport default AccountProfileAttributes;\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 { ILinkData } from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ILinksData {\n linkText?: string;\n linkUrl: ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n isDisabled?: boolean;\n}\n\nexport interface IAccountProfileLinks {\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 AccountProfileLinks: 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: link.isDisabled ? 'ms-account-profile__section-link-disable' : 'ms-account-profile__section-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 AccountProfileLinks;\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 { Customer } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport {\n ArrayExtensions,\n updateCustomerPersonalization,\n updateCustomerPersonalizationInput\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileData } from './account-profile.data';\nimport {\n IAccountProfileProps,\n IEmailAddressSectionHeadingData,\n IHeadingData,\n INameSectionHeadingData\n} from './account-profile.props.autogenerated';\nimport AccountProfileAttributes from './components/account-profile-attributes';\nimport DescriptionComponent from './components/account-profile-description';\nimport LinksComponent, { ILinksData } from './components/account-profile-links';\nimport TextComponent from './components/account-profile-text';\n\nexport interface IAccountPreference {\n accountPreference: INodeProps;\n heading: React.ReactNode;\n buttonWrapper: INodeProps;\n buttonYesText: React.ReactNode;\n buttonNoText: React.ReactNode;\n button: React.ReactNode;\n description: React.ReactNode;\n onUpdateAccountPreference(preferenceType?: string): void;\n}\n\nexport interface IAccountPreferences {\n accountPreferences: INodeProps;\n heading?: React.ReactNode;\n personalization: IAccountPreference;\n extraPreferences?: IAccountPreference[];\n}\n\nexport interface IAccountProfileItem {\n AccountProfileItem: INodeProps;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\nexport interface IAccountCustomerAttributes {\n customerAttributes?: React.ReactNode;\n}\n\nexport interface IAccountProfileViewProps extends IAccountProfileProps {\n AccountProfile: IModuleProps;\n accountProfileWrapper?: INodeProps;\n className: string;\n heading?: React.ReactNode;\n emailSection: IAccountProfileItem;\n nameSection: IAccountProfileItem;\n preferenceSection: IAccountPreferences;\n customerAttributesWrapper?: INodeProps;\n customerAttributesSection?: IAccountCustomerAttributes;\n infoMessageBar?: React.ReactNode;\n}\n\n/**\n *\n * AccountProfile component.\n * @extends {React.Component>}\n */\n@observer\nclass AccountProfile extends React.Component> {\n @observable private isUpdatingPreference: boolean = false;\n\n private readonly telemetryContent?: ITelemetryContent;\n private readonly payLoad: IPayLoad;\n private readonly editAsyncCustomerFeatureName: string = 'Dynamics.AX.Application.RetailEnableAsyncCustomerEditFeature';\n\n private isEditAsyncCustomerFeatureEnabled: boolean = false;\n\n constructor(props: IAccountProfileProps) {\n super(props);\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 shouldComponentUpdate(nextProps: IAccountProfileProps): boolean {\n if (this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const { className, heading, emailAddressSectionHeading, nameSectionHeading, showAttributes, showPhone, showVatNumber } = config;\n\n const { editButtonText, editButtonAriaLabel } = resources;\n const customerInformation = data.customerInformation.result;\n\n this.isEditAsyncCustomerFeatureEnabled =\n data.featureState?.result?.find(feature => feature.Name === this.editAsyncCustomerFeatureName)?.IsEnabled || false;\n\n const invalidAsyncCustomerState: boolean =\n (this.props.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false) &&\n !this.isEditAsyncCustomerFeatureEnabled;\n\n // As per the design, phone and vat numbers are part of the profile attributes section\n const shouldRenderAttributes = (showAttributes && showAttributes.length > 0) || showPhone || showVatNumber || false;\n const editLink: ILinksData = {\n linkUrl: {\n destinationUrl: get(this.props, 'context.request.user.editProfileUrl', '')\n },\n linkText: editButtonText,\n ariaLabel: editButtonAriaLabel,\n isDisabled: invalidAsyncCustomerState\n };\n\n const viewProps = {\n ...this.props,\n className,\n AccountProfile: {\n moduleProps: this.props,\n className: classnames('ms-account-profile', config.className)\n },\n infoMessageBar: invalidAsyncCustomerState && (\n \n ),\n accountProfileWrapper: {\n className: classnames('ms-account-profile-wrapper')\n },\n heading: heading && (\n \n ),\n emailSection: this._renderEmailSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-email'),\n emailAddressSectionHeading as IEmailAddressSectionHeadingData,\n customerInformation && customerInformation.Email\n ),\n nameSection: this._renderNameSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-name'),\n nameSectionHeading as INameSectionHeadingData,\n this.getDescription(customerInformation),\n Msdyn365.isOboRequest(this.props.context.request) ? undefined : [editLink]\n ),\n preferenceSection: this._renderPreferenceSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-preferences'),\n invalidAsyncCustomerState,\n customerInformation\n ),\n customerAttributesWrapper: {\n className: classnames('ms-account-profile__attributes-wrapper')\n },\n customerAttributesSection: shouldRenderAttributes && this._renderCustomerAttributes()\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 handleEmailHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.emailAddressSectionHeading!.text = event.target.value);\n\n public handleNameHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.nameSectionHeading!.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.resources.editButtonText) {\n this.props.resources.editButtonText = event.target.value;\n }\n };\n\n @computed get editProfileUrl(): string {\n return get(this.props, 'context.request.user.editProfileUrl', '');\n }\n\n private getDescription(customerInformation: Customer | undefined): string {\n let description = '';\n if (customerInformation !== undefined) {\n if (customerInformation.FirstName) {\n description += customerInformation.FirstName;\n }\n if (customerInformation.LastName) {\n description += customerInformation.FirstName ? ` ${customerInformation.LastName}` : customerInformation.LastName;\n }\n }\n return description;\n }\n\n private _renderEmailSection(\n className: string,\n heading?: IEmailAddressSectionHeadingData,\n description?: string,\n links?: ILinksData[]\n ): IAccountProfileItem {\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: description && (\n \n )\n };\n }\n\n private _renderNameSection(\n className: string,\n heading?: INameSectionHeadingData,\n description?: string,\n links?: ILinksData[]\n ): IAccountProfileItem {\n if (!ArrayExtensions.hasElements(links)) {\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && (\n \n ),\n description: description && (\n \n )\n };\n }\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && (\n \n ),\n links: (\n \n ),\n description: description && (\n \n )\n };\n }\n\n private readonly onClickEventHandler = (className: string) => async () => {\n return this._updateAccountPersonalization(className);\n };\n\n private _renderPreferenceSection(\n className: string,\n invalidAsyncCustomerState: boolean,\n customerInformation?: Customer\n ): IAccountPreferences | null {\n const {\n personalizationDescription,\n personalizationEnableButtonAriaLabel,\n webTrackingDescription,\n webTrackingEnableButtonAriaLabel\n } = this.props.resources;\n const { preferencesSectionHeading, personalizationSectionHeading, webTrackingSectionHeading } = this.props.config;\n const { enableDataAnalytics } = this.props.context.request.features;\n const extraPreferences: IAccountPreference[] = [];\n\n if (!customerInformation) {\n this.props.context.telemetry.error('Account profile data is empty, module wont render');\n return null;\n }\n\n // Show browser activity login preference if switch is enabled AND a heading is provided\n enableDataAnalytics &&\n webTrackingSectionHeading &&\n extraPreferences.push(\n this._renderPreference(\n 'web-tracking',\n webTrackingSectionHeading as IHeadingData,\n webTrackingEnableButtonAriaLabel,\n webTrackingDescription,\n customerInformation.OptOutWebActivityTracking || false,\n invalidAsyncCustomerState\n )\n );\n\n return {\n accountPreferences: {\n className\n },\n heading: preferencesSectionHeading && (\n \n ),\n personalization: this._renderPreference(\n 'personalization',\n personalizationSectionHeading as IHeadingData,\n personalizationEnableButtonAriaLabel,\n personalizationDescription,\n customerInformation.OptOutPersonalization || false,\n invalidAsyncCustomerState\n ),\n extraPreferences: extraPreferences || undefined\n };\n }\n\n private readonly _renderPreference = (\n className: string,\n sectionHeading: IHeadingData,\n enableAriaLabel: string,\n description: string,\n isOptOut: boolean,\n disableBtn: boolean\n ) => {\n const { toggleDisableText, toggleEnableText } = this.props.resources;\n const toggleState = isOptOut ? 'disable' : 'enable';\n const onClickHandler = this.onClickEventHandler(className);\n this.payLoad.contentAction.etext = sectionHeading.text;\n const attributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n return {\n accountPreference: {\n className: classnames('ms-account-profile__preference', `ms-account-profile__preference-${className}`, {\n 'ms-account-profile__personalization-updating': this.isUpdatingPreference\n })\n },\n heading: sectionHeading && (\n \n ),\n buttonWrapper: {\n className: classnames('ms-account-profile__toggle-wrapper', `ms-account-profile__toggle-${toggleState}`, {\n // Disable the toggle completely if customer is async.\n 'ms-account-profile__toggle-disabled': disableBtn\n })\n },\n buttonYesText: ,\n buttonNoText: ,\n button: (\n \n ),\n description: ,\n onUpdateAccountPreference: async () => this._updateAccountPersonalization(className)\n };\n };\n\n private readonly _updateAccountPersonalization = async (preferenceType?: string) => {\n const customerInformation = this.props.data.customerInformation.result;\n\n if (customerInformation) {\n const {\n telemetry,\n context: { request, actionContext }\n } = this.props;\n\n let isOptOutPersonalization = false;\n let input;\n\n switch (preferenceType) {\n case 'web-tracking':\n isOptOutPersonalization = customerInformation.OptOutWebActivityTracking || false;\n input = new updateCustomerPersonalizationInput(\n customerInformation.AccountNumber,\n !isOptOutPersonalization,\n request.apiSettings,\n preferenceType\n );\n break;\n case undefined:\n case 'personalization':\n default:\n isOptOutPersonalization = customerInformation.OptOutPersonalization || false;\n input = new updateCustomerPersonalizationInput(\n customerInformation.AccountNumber,\n !isOptOutPersonalization,\n request.apiSettings,\n preferenceType\n );\n }\n\n this.isUpdatingPreference = true;\n\n try {\n await updateCustomerPersonalization(input, actionContext);\n } catch (error) {\n if (telemetry) {\n telemetry.exception(error);\n telemetry.debug('Unable to update customer personalization');\n }\n }\n\n this.isUpdatingPreference = false;\n }\n };\n\n private readonly _renderCustomerAttributes = (): React.ReactNode => {\n return ;\n };\n}\n\nexport default AccountProfile;\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 AccountWelcomeTile from './account-welcome-tile';\nimport AccountWelcomeTileView from './account-welcome-tile.view';\n\nexport * from './account-welcome-tile';\nexport * from './account-welcome-tile.data';\nexport { IAccountWelcomeTileConfig, IAccountWelcomeTileProps } from './account-welcome-tile.props.autogenerated';\nexport * from './account-welcome-tile.view';\n\nexport { AccountWelcomeTile, AccountWelcomeTileView };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport AccountLoyalty from './account-loyalty';\nimport AccountLoyaltyView from './account-loyalty.view';\n\nexport * from './account-loyalty';\nexport * from './account-loyalty.data';\nexport { IAccountLoyaltyConfig, IAccountLoyaltyProps, IAccountLoyaltyResources } from './account-loyalty.props.autogenerated';\nexport * from './account-loyalty.view';\nexport * from './components';\n\nexport { AccountLoyalty, AccountLoyaltyView };\n","/*!\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\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrganizationUsersTileViewProps } from './organization-users-tile';\n\nconst OrganizationUsersTileView: React.FC = props => {\n const { OrganizationUsersTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default OrganizationUsersTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './account-customer-balance-tile-info';\nexport * from './account-customer-balance-tile-links';\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync } from '@msdyn365-commerce/core';\nimport { getLoyaltyCardAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport { GetLoyaltyCardInput, issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsModalViewProps, LoyaltyTermsModal } from './components/loyalty-terms-modal';\nimport { ILoyaltyTermsData } from './loyalty-terms.data';\nimport { ILoyaltyTermsProps } from './loyalty-terms.props.autogenerated';\n\nexport interface ILoyaltyTermsState {\n checked: boolean;\n clicked: boolean;\n isModalOpen: boolean;\n}\nexport interface ILoyaltyTermsViewProps extends ILoyaltyTermsProps {\n LoyaltyTerms: IModuleProps;\n modalToggle: React.ReactElement;\n modal: ILoyaltyTermsModalViewProps;\n loading: boolean;\n}\n\n/**\n *\n * LoyaltyTerms component.\n * @extends {React.Component>}\n */\nclass LoyaltyTerms extends React.Component, ILoyaltyTermsState> {\n private readonly toggleRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n public constructor(props: ILoyaltyTermsProps) {\n super(props);\n this._toggle = this._toggle.bind(this);\n this._submit = this._submit.bind(this);\n this._checkboxChecked = this._checkboxChecked.bind(this);\n this.toggleRef = React.createRef();\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n let search = this.props.context.request.url.requestUrl.search;\n let isJoining = false;\n if (search) {\n search = search.substring(1);\n const qsps = search.split('&');\n for (const qsp of qsps) {\n const splitQsp = qsp.split('=');\n isJoining = splitQsp[0] === 'joiningLoyalty' && splitQsp[1] === 'true';\n if (isJoining) {\n break;\n }\n }\n }\n\n this.state = {\n isModalOpen: isJoining,\n checked: false,\n clicked: false\n };\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltyTermsProps, nextState: ILoyaltyTermsState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className, hideToggle },\n resources,\n slots: { serviceTerms },\n data: { loyaltyCard },\n context: {\n request: {\n user: { isAuthenticated }\n }\n }\n } = this.props;\n const completeClass = classname('ms-loyalty-terms', className);\n\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltyTerms: {\n moduleProps: this.props,\n className: completeClass\n },\n loading: loyaltyCard.status === 'LOADING',\n modalToggle: hideToggle !== true && (\n \n ),\n modal:\n isAuthenticated &&\n loyaltyCard.result &&\n loyaltyCard.result.CardNumber === undefined &&\n LoyaltyTermsModal({\n resources: { ...resources },\n returnRef: this.toggleRef,\n checked: this.state.checked,\n isOpen: this.state.isModalOpen,\n terms: serviceTerms,\n telemetryContent: this.telemetryContent,\n onToggle: this._toggle,\n onSubmit: this._submit,\n onCheck: this._checkboxChecked\n })\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _toggle(): void {\n this.setState({ isModalOpen: !this.state.isModalOpen, checked: false });\n }\n\n private _submit(): void {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(card => {\n if (this.props.config.redirectToLoyalty) {\n window.location.assign(getUrlSync('loyalty', this.props.context.actionContext) || '');\n } else {\n getLoyaltyCardAsync({ callerContext: this.props.context.actionContext }, card.CardNumber || '')\n .then(fullCard => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n fullCard\n );\n })\n .catch((error: Error) => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n card\n );\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to fetch loyalty card');\n });\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n }\n\n private _checkboxChecked(): void {\n this.setState({ checked: !this.state.checked });\n }\n}\n\nexport default LoyaltyTerms;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * 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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountPreference, IAccountPreferences, IAccountProfileItem, IAccountProfileViewProps } from './account-profile';\n\nconst AccountPreferencesSection: React.FC = ({ accountPreferences, heading, personalization, extraPreferences }) => {\n return (\n \n {heading}\n \n {extraPreferences &&\n extraPreferences.map((preferenceSecton, index) => {\n return ;\n })}\n \n );\n};\n\nconst AccountPreferenceSection: React.FC = ({\n accountPreference,\n heading,\n description,\n buttonWrapper,\n buttonYesText,\n button,\n buttonNoText\n}) => {\n return (\n \n {heading}\n {description}\n \n {buttonNoText}\n {button}\n {buttonYesText}\n \n \n );\n};\n\nconst AccountProfileSection: React.FC = ({ AccountProfileItem, heading, links, description }) => {\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nconst AccountProfileView: React.FC = props => {\n const {\n AccountProfile,\n infoMessageBar,\n accountProfileWrapper,\n heading,\n emailSection,\n nameSection,\n preferenceSection,\n customerAttributesWrapper,\n customerAttributesSection\n } = props;\n\n return (\n \n {infoMessageBar}\n {accountProfileWrapper && (\n \n {heading}\n \n \n \n \n )}\n {customerAttributesWrapper && {customerAttributesSection}}\n \n );\n};\n\nexport default AccountProfileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignInInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n ariaLabel?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface ISignInInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst SignInInput: React.FC = ({ id, type, value, pattern, className, maxLength, ariaLabel, onChange }) => (\n \n);\n\nexport default SignInInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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\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","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { IShippingPopupViewProps } from './shipping-popup';\r\n\r\nimport { Modal, ModalBody, ModalHeader } from '@msdyn365-commerce-modules/utilities';\r\nimport { stateSettings } from '../../settings/app.settings';\r\nimport { dataStates } from '../shipping-map/shipping-map.data-states';\r\n\r\nexport default (props: IShippingPopupViewProps) => {\r\n\r\n const {\r\n shippingPopup__shippingModalTitle,\r\n shippingPopup__shippingModalDescription,\r\n shippingPopup__shippingModalLegend\r\n } = props.resources;\r\n\r\n const states = props.context.app.config.statesSettings as stateSettings || [];\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n

{shippingPopup__shippingModalTitle}

\r\n
\r\n
\r\n {props.slots.map}\r\n
\r\n
\r\n

{shippingPopup__shippingModalDescription}

\r\n

{shippingPopup__shippingModalLegend}

\r\n
    \r\n {\r\n Object.keys(states)\r\n .filter(state => !states[state])\r\n .map((state, index) => (
  • {dataStates[state]}
  • ))\r\n }\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n );\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 { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyTileViewProps } from './account-loyalty-tile';\n\nconst AccountLoyaltyTileView: React.FC = props => {\n const { AccountLoyaltyTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountLoyaltyTileView;\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 React from 'react';\n\ninterface IAccountProfileText {\n className: string;\n text: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountProfileText: React.FC = ({ className, text }) => {text};\n\nexport default IAccountProfileText;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignInLink {\n id?: string;\n className: string;\n href: string;\n ariaLabel: string;\n text: string;\n telemetryContent?: ITelemetryContent;\n}\n\nconst SignInLink: React.FC = ({ id, className, href, telemetryContent, ariaLabel, text }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n {text}\n \n );\n};\n\nexport default SignInLink;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 MsDyn365, { IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IPayLoad,\n ITelemetryContent,\n Module,\n Node,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { INavigationMenuViewProps } from './navigation-menu';\nimport { IMenuItemData } from './navigation-menu.data';\n\ninterface INavigationState {\n parentMenu?: number;\n activeMenu?: number;\n categoryImage?: IImageData[] | null;\n mobileViewLabelText?: string;\n categoryImageAltText: string;\n}\n\n/**\n *\n * NavigationMenuView component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuView extends React.PureComponent {\n private static isBackTrack: boolean = false;\n\n private currentLevel: number = 0;\n\n private readonly menuNode: React.RefObject;\n\n private readonly menuItemRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: INavigationMenuViewProps) {\n super(props);\n this.menuNode = React.createRef();\n this.menuItemRef = React.createRef();\n this.state = { activeMenu: undefined, mobileViewLabelText: '', parentMenu: undefined, categoryImageAltText: '' };\n this._closeSubmenu = this._closeSubmenu.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document.body.addEventListener('mousedown', this._handleClickOutside);\n document.body.addEventListener('focusout', this._handleFocusOutside);\n }\n }\n\n public componentDidUpdate(): void {\n if (this.menuItemRef.current?.children[0] && this.props.isMobileView) {\n (this.menuItemRef.current.children[0] as HTMLElement).focus();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document.body.removeEventListener('mousedown', this._handleClickOutside, false);\n document.body.removeEventListener('focusout', this._handleFocusOutside, false);\n }\n }\n\n public render(): JSX.Element | null {\n const { isMobileView, MenuList, MobileBackButton, MobileDescriptionContainer, MobileDescriptionLabel, Navigation } = this.props;\n\n this.currentLevel = 1;\n return (\n \n \n {isMobileView && this.state.activeMenu !== undefined && (\n \n \n {this.state.mobileViewLabelText}\n \n )}\n {this._renderDisplay()}\n \n \n );\n }\n\n private _renderDisplay(): JSX.Element[] {\n const { ListItem, menuItemData, isMobileView } = this.props;\n const { activeMenu } = this.state;\n const menuItemList: JSX.Element[] = [];\n\n if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\n let menuItem: IMenuItemData = {};\n for (const menuItemDatum of menuItemData) {\n if (menuItemDatum && menuItemDatum.id === activeMenu) {\n menuItem = menuItemDatum;\n !NavigationMenuView.isBackTrack\n ? this.setState({ parentMenu: undefined })\n : this.setState({ parentMenu: undefined, mobileViewLabelText: menuItemDatum.linkText });\n break;\n }\n menuItem = this._getFromSubMenu(menuItemDatum) as IMenuItemData;\n if (menuItem && menuItem.id === activeMenu) {\n break;\n }\n }\n\n menuItem &&\n menuItemList.push(\n \n {' '}\n {this._createMenuItemList(menuItem)}{' '}\n \n );\n } else {\n menuItemData.forEach((item: IMenuItemData, index: number) => {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n \n );\n });\n }\n\n return menuItemList;\n }\n\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\n const subMenus = item && item.subMenu;\n if (subMenus && subMenus.length > 0) {\n for (let i = 0; i <= subMenus.length - 1; i++) {\n if (subMenus[i].id === this.state.activeMenu) {\n !NavigationMenuView.isBackTrack\n ? this.setState({ parentMenu: item?.id })\n : this.setState({ parentMenu: item && item.id, mobileViewLabelText: subMenus[i].linkText });\n return subMenus[i];\n }\n const found = this._getFromSubMenu(subMenus[i]);\n if (found) {\n return found;\n }\n }\n }\n this.props.context.telemetry.error('Submenu content is empty, module wont render.');\n return null;\n }\n\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false);\n }\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false)}\n \n );\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\n return this._renderLinkMenuItem(menuItemData, menuItemData.id, false, true);\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\n return this._renderSpanMenuItem(menuItemData, menuItemData.id, true);\n }\n this.props.context.telemetry.error('Navigation menu content is empty, module wont render.');\n return null;\n }\n\n private _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number, IsSubMenu?: boolean): JSX.Element | null {\n const { isMobileView, ListItem } = this.props;\n const enableMultiSupportMenu = this.props.config.enableMultilevelMenu || false;\n const multiLevelSupportedMenu = this.props.config.menuLevelSupport || 3;\n\n // Const isParentMenu:boolean= false;\n if (activeMenu && this.state.activeMenu !== activeMenu) {\n this.props.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\n return null;\n }\n\n if (!subMenus || subMenus.length === 0) {\n this.props.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\n return null;\n }\n\n let levelClassName: string = '';\n const menuOptions =\n subMenus &&\n subMenus.map((option: IMenuItemData, idx: number) => {\n const hasOptions = option.subMenu && option.subMenu.length > 0;\n let menuItem: JSX.Element | null;\n if (hasOptions && isMobileView) {\n menuItem = this._renderButtonMenuItem(option, activeMenu, idx);\n } else {\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, idx) : this._renderSpanMenuItem(option);\n }\n\n let subMenu;\n const haveSubmenu = hasOptions && enableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - 1;\n if (haveSubmenu) {\n this.currentLevel++;\n levelClassName = enableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined, true);\n }\n return (\n \n {menuItem}\n {subMenu}\n \n );\n });\n return this._renderMenu(levelClassName, menuOptions, activeMenu, IsSubMenu);\n }\n\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\n const { Button } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderLinkMenuItem(\n option: IMenuItemData,\n index?: number,\n hoverEffect: boolean = true,\n isParent: boolean = false\n ): JSX.Element | null {\n const { Link } = this.props;\n const linkText = option.linkText ? option.linkText : '';\n const imagesource = option.imageSource ? option.imageSource : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\n const { Link } = this.props;\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n if (linkText && linkUrl) {\n return (\n \n {linkText}\n \n );\n }\n return null;\n }\n\n private _renderSpanMenuItem(option: IMenuItemData, index?: number, isParent: boolean = false): JSX.Element | null {\n const { Span } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean): JSX.Element | null {\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, showPromotionalContent, isMobileView } = this.props;\n const categoryImageDisplay =\n !isMobileView &&\n (showCategoryImage || showPromotionalContent) &&\n !ArrayExtensions.hasElements(this.state.categoryImage) &&\n !submenu;\n const promotionalContentDisplay =\n !isMobileView && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !submenu;\n const DivContainerClass = this.currentLevel > 2 || categoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\n this.currentLevel = 1;\n return (\n \n 2 &&\n 'navmenu-multi-level'\n )}\n >\n {menuOptions}\n \n {categoryImageDisplay &&\n this.state.categoryImage &&\n this.state.categoryImage.map(item => (\n \n {this.state.categoryImage && this._getCategoryImage(item)}\n {promotionalContentDisplay && this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n \n ))}\n \n );\n }\n\n private readonly _updateCategoryImage = (categoryImageSrc: string, option: IMenuItemData) => () => {\n const linkText = option && option.linkText ? option.linkText : '';\n const promotionalImage: IImageData[] = [{ src: categoryImageSrc, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\n option.promotionalContent.map(item => {\n if (item && item.image) {\n const imageSrc = item.image.src;\n const promotionalItemImageSettings = item.image.imageSettings;\n promotionalImage.push({\n src: imageSrc,\n altText: item.text,\n imageSettings: promotionalItemImageSettings,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n }\n });\n }\n this.setState({\n categoryImage: promotionalImage.length > 0 ? promotionalImage : [{ src: 'empty' }],\n categoryImageAltText: linkText\n });\n };\n\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\n if (!this.props.isMobileView) {\n this.setState({\n activeMenu: this.state.activeMenu && this.state.activeMenu === data.id! ? undefined : data.id!,\n parentMenu: parentId\n });\n if (this.props.showCategoryImage) {\n this._updateCategoryImage(data.imageSource!, data)();\n }\n } else {\n NavigationMenuView.isBackTrack = false;\n this.setState({\n activeMenu: data.id,\n mobileViewLabelText: data.linkText!,\n parentMenu: parentId\n });\n }\n };\n\n private readonly _handleGoBack = () => () => {\n NavigationMenuView.isBackTrack = true;\n this.setState({ activeMenu: this.state.parentMenu });\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleClickOutside = (event: MouseEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\n this.setState({\n activeMenu: undefined,\n mobileViewLabelText: '',\n categoryImage: null\n });\n }\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleFocusOutside = (event: FocusEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.relatedTarget as Node)) {\n this._closeSubmenu();\n }\n };\n\n /**\n * Checks to assign a ref for focus.\n * @param index -Sub menu list index.\n * @param mobileViewLabelText -Parent user clicked Sub menu list.\n * @param optionLinkText -Sub menu list.\n * @returns Ref.\n */\n private readonly _shouldAddFocusMenuRef = (index: number, mobileViewLabelText?: string, optionLinkText?: string) => {\n if (!NavigationMenuView.isBackTrack && index === 0) {\n return true;\n }\n if (!optionLinkText || !mobileViewLabelText) {\n return false;\n }\n return mobileViewLabelText === optionLinkText;\n };\n\n private _closeSubmenu(): void {\n if (!this.props.isMobileView) {\n this.setState({ activeMenu: undefined, categoryImage: null, mobileViewLabelText: '' });\n }\n }\n\n private readonly _getCategoryImage = (categoryImage?: IImageData): React.ReactNode | null => {\n if (!categoryImage || !categoryImage.src) {\n return null;\n }\n\n const categoryImageUrl = generateImageUrl(`${categoryImage.src}`, this.props.context.actionContext.requestContext.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n sm: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n md: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n lg: { q: 'w=300&h=250&m=8', w: 0, h: 0 }\n },\n lazyload: true\n };\n if (categoryImageUrl !== undefined) {\n return (\n \n );\n }\n return null;\n };\n}\n\nexport default NavigationMenuView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignInErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignInError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default SignInError;\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","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Heading, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address';\r\nimport { IAccountManagementAddressConfig } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address.props.autogenerated';\r\n\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n {isShowError && \r\n {title}\r\n {message}\r\n }\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, addUpdateAddress, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n // update heading in props if not provided from module\r\n if (!showAddOrUpdateAddress.heading) {\r\n // create heading component from configured values\r\n const addAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).addAddressHeading;\r\n const editAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).editAddressHeading;\r\n const headingText = addUpdateAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n const heading = headingText && ;\r\n\r\n showAddOrUpdateAddress.heading = heading;\r\n }\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface 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 * as React from 'react';\n\ninterface IAccountLoyaltyTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountLoyaltyTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n\nexport default IAccountLoyaltyTileDescription;\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Heading, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address';\r\nimport { IAccountManagementAddressConfig } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address.props.autogenerated';\r\n\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n {isShowError && \r\n {title}\r\n {message}\r\n }\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, addUpdateAddress, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n // update heading in props if not provided from module\r\n if (!showAddOrUpdateAddress.heading) {\r\n // create heading component from configured values\r\n const addAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).addAddressHeading;\r\n const editAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).editAddressHeading;\r\n const headingText = addUpdateAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n const heading = headingText && ;\r\n\r\n showAddOrUpdateAddress.heading = heading;\r\n }\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Heading, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address';\r\nimport { IAccountManagementAddressConfig } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address.props.autogenerated';\r\n\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n {isShowError && \r\n {title}\r\n {message}\r\n }\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, addUpdateAddress, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n // update heading in props if not provided from module\r\n if (!showAddOrUpdateAddress.heading) {\r\n // create heading component from configured values\r\n const addAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).addAddressHeading;\r\n const editAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).editAddressHeading;\r\n const headingText = addUpdateAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n const heading = headingText && ;\r\n\r\n showAddOrUpdateAddress.heading = heading;\r\n }\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignInDescription {\n className: string;\n description: string;\n}\n\nconst SignInDescription: React.FC = ({ className, description }) =>

{description}

;\n\nexport default SignInDescription;\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 * 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 * as React from 'react';\n\nexport interface IAccountOrganizationUsersTileDescription {\n description: string;\n}\n\nexport const AccountOrganizationUsersTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../organization-users-tile.props.autogenerated';\n\nexport interface IAccountOrganizationUsersTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nexport const AccountOrganizationUsersTileLinks: React.FC = ({\n links,\n telemetryContent,\n onTextChange,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-organization-users-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { AccountOrganizationUsersTileDescription, AccountOrganizationUsersTileLinks } from './components';\nimport { IOrganizationUsersTileData } from './organization-users-tile.data';\nimport { IOrganizationUsersTileProps } from './organization-users-tile.props.autogenerated';\n\nexport interface IOrganizationUsersTileViewProps extends IOrganizationUsersTileProps {\n OrganizationUsersTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * OrganizationUsersTile component.\n * @extends {React.PureComponent>}\n */\nclass OrganizationUsersTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IOrganizationUsersTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountOrganizationUsersTileDescriptionForSingleUser, accountOrganizationUsersTileDescriptionForMultipleUsers } = resources;\n const numUsers = data.users && data.users.result;\n const accountOrganizationUsersTileDescription =\n numUsers === 1 ? accountOrganizationUsersTileDescriptionForSingleUser : accountOrganizationUsersTileDescriptionForMultipleUsers;\n const customerInformation = data.customerInformation.result;\n\n // Organization-users tile will not be render for non-admin users.\n if (!customerInformation?.IsB2bAdmin) {\n return null;\n }\n\n const viewProps = {\n ...this.props,\n className,\n OrganizationUsersTile: {\n moduleProps: this.props,\n className: classnames('ms-account-organization-users-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n this.props.config.heading.text = event.target.value;\n };\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default OrganizationUsersTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport 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 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 React from 'react';\n\nexport interface ISignInLoadingMessage {\n className: string;\n message: string;\n}\n\nconst SignInLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default SignInLoadingMessage;\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { ISmweFooterCategoryConfig, ISmweFooterCategoryProps } from './smwe-footer-category.props.autogenerated';\r\n\r\nexport interface IFooterCategoryViewProps extends ISmweFooterCategoryProps {\r\n categories: React.ReactNode[];\r\n FooterList: IModuleProps;\r\n FooterListItem: INodeProps;\r\n}\r\n\r\n/**\r\n *\r\n * FooterCategory component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass FooterCategory extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n if(!this.props.slots || !this.props.slots.content || !this.props.slots.content.length) {\r\n this.props.context.telemetry.error('footer slots content is empty, module wont render');\r\n return null;\r\n }\r\n const viewprops = {\r\n ...this.props,\r\n categories: this.props.slots.content,\r\n FooterList: {\r\n moduleProps: this.props,\r\n className: classnames('ms-footer__list', this.props.config.className),\r\n tag:'ul'\r\n },\r\n FooterListItem: {\r\n className: classnames('ms-footer__list-item', this.props.config.className),\r\n tag: 'li'\r\n },\r\n };\r\n\r\n return this.props.renderView(viewprops) as React.ReactElement;\r\n }\r\n}\r\n\r\nexport default FooterCategory;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Heading, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address';\r\nimport { IAccountManagementAddressConfig } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address.props.autogenerated';\r\n\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n {isShowError && \r\n {title}\r\n {message}\r\n }\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, addUpdateAddress, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n // update heading in props if not provided from module\r\n if (!showAddOrUpdateAddress.heading) {\r\n // create heading component from configured values\r\n const addAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).addAddressHeading;\r\n const editAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).editAddressHeading;\r\n const headingText = addUpdateAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n const heading = headingText && ;\r\n\r\n showAddOrUpdateAddress.heading = heading;\r\n }\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\r\n"],"sourceRoot":""}