{"version":3,"sources":["webpack:///src/modules/product-specification/components/product-specification-table-stucture.tsx?4b07","webpack:///src/modules/password-reset/password-reset.tsx?2fc7","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-profile-edit/components/account-profile-edit-loading-icon.tsx?e178","webpack:///src/modules/product-specification/product-specification.tsx?f393","webpack:///src/modules/account-customer-balance-tile/index.ts?038c","webpack:///src/modules/content-block/components/additional-content.tsx?1a32","webpack:///src/modules/content-block/components/links.tsx?5056","webpack:///src/modules/content-block/content-block.tsx?8675","webpack:///src/modules/account-address-tile/components/index.ts?24f7","webpack:///src/modules/social-share/social-share.view.tsx?76da","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/themes/gardner-theme-b2c/views/components/carticon.component.tsx?0bc6","webpack:///src/modules/sign-in/components/sign-in-loading-icon.tsx?3d5a","webpack:///src/modules/account-address-tile/index.ts?effb","webpack:///src/modules/loyalty-terms/components/index.ts?508b","webpack:///./src/themes/gardner-theme/views/business-organization-list.view.tsx?ad18","webpack:///src/modules/account-profile/index.ts?8c04","webpack:///./src/themes/gardner-theme-b2c/views/business-organization-list.view.tsx?ec68","webpack:///src/modules/account-invoice-tile/components/account-invoice-tile-description.tsx?0029","webpack:///src/modules/account-invoice-tile/components/account-invoice-tile-links.tsx?d307","webpack:///src/modules/account-invoice-tile/account-invoice-tile.tsx?9a78","webpack:///./src/themes/gardner-theme/views/components/carticon.component.tsx?6233","webpack:///src/modules/account-loyalty-tile/components/index.ts?c444","webpack:///src/modules/account-profile-edit/components/account-profile-edit-button.tsx?8f71","webpack:///src/modules/account-profile/components/account-profile-description.tsx?6478","webpack:///src/modules/sign-in/components/sign-in-text.tsx?92d7","webpack:///src/modules/fabrikam/views/cart.view.tsx?8115","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/sign-in/components/sign-in-button.tsx?a9cc","webpack:///src/modules/product-specification/product-specification.view.tsx?bfbe","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-profile-edit/components/account-profile-edit-label.tsx?505c","webpack:///src/modules/account-loyalty-tile/index.ts?b609","webpack:///src/modules/business-organization-list/business-organization-list.view.tsx?8701","webpack:///src/modules/business-organization-list/business-organization-list.tsx?b6f5","webpack:///src/modules/account-customer-balance-tile/components/account-customer-balance-tile-links.tsx?5f47","webpack:///src/index.ts?c6ae","webpack:///src/modules/sign-in/sign-in.tsx?44ed","webpack:///src/modules/account-profile-edit/components/account-profile-edit-error.tsx?a0b2","webpack:///src/modules/fabrikam/views/order-history.view.tsx?46de","webpack:///src/modules/catalog-picker/catalog-picker.tsx?dde5","webpack:///src/modules/account-customer-balance-tile/account-customer-balance-tile.tsx?9383","webpack:///src/modules/adventureworks/views/business-organization-list.view.tsx?dcc4","webpack:///src/modules/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/modules/account-order-templates-tile/account-order-templates-tile.view.tsx?90af","webpack:///./src/modules/eve-business-sign-up/eve-business-sign-up.view.tsx?dc32","webpack:///src/modules/account-profile-edit/account-profile-edit.view.tsx?72b7","webpack:///src/modules/sign-up/components/index.ts?0666","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/account-welcome-tile/index.ts?2bd4","webpack:///src/modules/account-loyalty/index.ts?6823","webpack:///src/modules/social-share/social-share.tsx?ed88","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/business-organization-list/components/small-components.tsx?104e","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-wishlist-tile/index.ts?b510","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/account-loyalty-tile/account-loyalty-tile.view.tsx?c661","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/account-invoice-tile/account-invoice-tile.view.tsx?4620","webpack:///src/modules/sign-in/components/sign-in-error.tsx?2f11","webpack:///src/modules/account-profile-edit/components/account-profile-edit-loading-message.tsx?2c6f","webpack:///src/modules/loyalty-terms/loyalty-terms.view.tsx?5155","webpack:///./src/modules/eve-business-sign-up/components/sign-up-button.tsx?e34c","webpack:///./src/modules/eve-business-sign-up/components/sign-up-error.tsx?b1ad","webpack:///./src/modules/eve-business-sign-up/components/sign-up-input.tsx?a0aa","webpack:///./src/modules/eve-business-sign-up/components/sign-up-label.tsx?2e32","webpack:///./src/modules/eve-business-sign-up/eve-business-sign-up.tsx?1300","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/gardner-theme-b2c/views/account-management-address.view.tsx?9fc6","webpack:///src/modules/sign-in/components/sign-in-description.tsx?196e","webpack:///src/modules/account-customer-balance/index.tsx?fe9b","webpack:///src/modules/account-profile-edit/components/account-profile-edit-input.tsx?3bba","webpack:///src/modules/password-reset/components/password-reset-loading-icon.tsx?29cc","webpack:///src/modules/account-order-templates-tile/index.ts?21a3","webpack:///src/modules/sign-in/components/index.ts?3da2","webpack:///src/modules/b2b-requests-status/components/b2b-requests-table.tsx?6d33","webpack:///src/modules/b2b-requests-status/b2b-requests-status.tsx?692d","webpack:///src/modules/content-block/content-block.view.tsx?a86e","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/account-profile-edit/account-profile-edit.tsx?a9d6"],"names":["ProductSpecificationTableRow","_ref","productName","cellData","className","React","scope","dangerouslySetInnerHTML","getRichTextHtml","PasswordReset","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","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","PasswordResetError","errorClassName","role","OrderLookupViewComponent","_orderLookupForm$clas","_submitButton$classNa","orderLookup","orderLookupContainer","orderLookupAdditionalFieldContainer","paragraph","orderLookupForm","renderOrderLookupInputField","orderNumberInput","submitButton","additionalProperties","registeredUserMessage","fieldErrorMessage","Module","Node","ArrayExtensions","hasElements","item","submitButtonLabelText","AccountProfileEditLoadingIcon","ProductSpecification","_toggle","drawerListId","setState","isDrawerOpen","undefined","isAdditionalMediaDrawerOpen","catalogId","validateCatalogId","reaction","product","result","RecordId","actionInput","AttributesForSelectedVariantInput","actionContext","apiSettings","channelId","getAttributesForSelectedVariant","catch","error","debug","_heading$tag","productSpecificationData","length","isAccrodion","displayStyle","handleText","ProductSpecificationTableProps","ProductSpecificationTableBodyProps","title","productSpecificationResult","_createDrawerBody","_createTableBody","content","_this$props$context$r","_this$props$data$addi","tableRows","index","_renderProductCell","Name","app","OmniChannelMedia","additionalMediaLocations","push","_createAdditionalMediaDrawer","_this$props$context$r2","_this$props$data$addi2","accordionItemContainer","drawers","_product$Name","Drawer","collapseProps","timeout","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","onToggle","additionalDownloadsText","prevState","mediaLocation","Uri","href","download","AltText","DataTypeValue","_renderCurrencyCell","_renderDateTimeCell","_renderDecimalCell","_renderIntegerCell","_renderTextCell","_renderTrueFalseCell","warning","CurrencyValue","CurrencyCode","_product$DateTimeOffs","DateTimeOffsetValue","toUTCString","IntegerValue","FloatValue","TextValue","BooleanValue","trueValueText","falseValueText","assembleNode","itemIndex","_item$links","renderHeading","additionalContentHeading","handleAdditionalTextChange","subtext","renderParagraph","additionalContentParagraphText","links","ctaLink","renderLinks","linkIndex","editableLink","linkText","linkUrl","destinationUrl","openInNewTab","link","onTextChange","handleAdditionalLinkTextChange","additionalContentItemContainer","additionalContentItemLinks","contentBlockAdditionalContent","additionalContent","reactNodes","additionalContentNode","additionalContentItems","ContentCardLinks","_mapEditableLinks","linkdata","editableLinks","forEach","payLoad","getPayloadObject","contentAction","etext","attributes","getTelemetryAttributes","btnClass","onClick","onTelemetryClick","ContentBlock","handleTextChange","handleParagraphChange","handleLinkTextChange","Number","_this$props$config$im","image","imageAriaLabel","contentBlockTitle","imageProps","gridSettings","imageSettings","contentBlockLinks","LinksComponent","msdyn365__moduleLayout","contentBlockText","contentBlockImage","preserveImageSpace","moduleType","typeName","imagePropertyName","moduleId","layout","shouldSkipToMainImage","contentBlockviewProps","moduleClass","contentBlockContainer","imageContainer","detailsContainer","contentBlockAnchorTag","imageLink","_getImageLink","handleAdditionalParagraphChange","handleAdditionalText","handleAdditionalParagraph","additionalContentObject","actionableRegion","SocialShareView","SocialShareList","SocialShareItemElements","SocialShareItem","SocialShare","createElement","SocialShareElement","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","CartIcon","cartLabel","cartQtyLabel","cart","cartItem","hasInvoiceLine","totalItemsInCart","qtyLabel","format","visibility","CartIconComponent","msdyn365Commerce","createComponentOverride","component","SignInLoadingIcon","BusinessFormItemComponent","renderModal","isModalOpen","headingSection","bodySection","footerSection","toggleModal","wrapClassName","autoFocus","fade","applicationNode","toggle","ModalHeader","ModalFooter","BusinessUserFormComponent","modalClassName","FormWrapper","modalHeading","modalDescription","inputs","toString","modalFooter","BusinessUserDetailsComponent","selectedUser","FirstName","LastName","userFullName","keys","InputID","BusinessOrganizationListComponent","OrganizationUserList","moduleContainer","noUsersText","addUserButton","organizationListTable","form","formType","requestAccountStatementButton","requestStatementModal","buttonList","headingForEmptyUserOrganizationList","textForEmptyUserOrganizationList","getForm","formProps","AccountInvoiceTileDescription","description","AccountInvoiceTileLinks","AccountInvoiceTile","_data$customerBalance","cultureFormatter","formatCurrency","currencyCode","accountInvoiceTileDescription","invoiceTotalAmount","customerBalance","OpenInvoiceBalance","toFixed","AccountProfileEditButton","disabled","Button","IAccountProfileDescription","SignInText","_renderPromotions","promotions","promotionMessageWrapper","promotionMessage","promotionSeeAllLink","promotionDialog","_renderCartlines","cartLines","storeSelector","backToShoppingButton","waitingComponent","cartLoadingStatus","cartDataResult","mulitplePickUp","emailDeliveryModeCode","emptyCartText","cartLine","MsDyn365","isBrowser","cartline","_renderBOPISBlock","_renderGroupBOPISBlock","addToOrderTemplate","addToWishlist","remove","onToggleBopisHandler","isBopisSelected","pickUpInStore","callbacks","toggleBopis","onChangeStoreHandler","_cartLine$data","DeliveryMode","shipInsteadDisplayText","shipToAddressDisplayText","pickItUpDisplayText","pickUpAtStoreWithLocationText","changeStoreDisplayText","TelemetryConstant","PickupInStore","puckUpinStoreAttribute","ContainerProps","orgUnitName","_renderErrorBlock","errorData","errors","Wrapper","header","_renderOrderSummarylines","orderSummaryLines","OrderSummaryItems","promoCode","subtotal","shipping","otherCharge","tax","totalDiscounts","orderTotal","_renderInvoiceSummarylines","invoiceSummaryLines","invoices","giftCard","loyalty","_renderCartLinesGroup","cartLinesGroup","cartlines","_props$context$action2","_props$context$action3","cartlineId","_renderCartLinesGroupHeader","_countItems","channel","EmailDeliveryModeCode","multiplePickUpEnabled","count","_cartLine$pickUpInSto","pickUpText","shippingText","emailshippingText","payInvoicesDisplayText","groupTitle","IsInvoiceLine","StringExtensions","isNullOrEmpty","_renderCartLinesGroupTitle","_cartLine$data2","countItem","reduce","_item$data","Quantity","_cartLine$pickUpInSto2","_cartLine$pickUpInSto3","_cartLine$pickUpInSto4","itemLabel","itemsLabel","suffix","deliveryOption","CartView","_props$cart","_props$context$action","_props$cart2","renderModuleAttributes","promotionOptions","CartlinesWrapper","orderSummaryHeading","OrderSummaryWrapper","invoiceSummaryLineitems","orderSummaryLineitems","OrderSummaryErrors","checkoutAsSignInUserButton","checkoutAsGuestButton","expressCheckoutButton","ExpressCheckoutSectionWrapper","createTemplateFromCartButton","SignUpText","LoyaltySignUp","handleMemberHeadingChange","memberHeading","_issueLoyalty","user","isAuthenticated","clicked","IssueLoyaltyInput","issueLoyalty","then","location","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","_data$customerInforma","_this$props$context$a","signInUrl","termsUrl","loyaltyJoinUrl","origin","signInurl","completeClass","classname","loyaltyCard","hasLoyaltyAccount","CardTenderTypeValue","customerInformation","invalidAsyncCustomerState","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","infoMessageBar","accountProcessingPendingInfoMessage","params","isEditor","status","signInLink","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","detailsLink","viewLoyaltyPageText","termsLink","loyaltyTermsLinkText","SignInButton","ProductSpecificationView","rowdata","filter","row","ObjectExtensions","isNullOrUndefined","AccountCustomerBalanceTileView","AccountCustomerBalanceTile","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","name","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","isNullOrWhitespace","replace","toLocaleLowerCase","fieldValue","_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","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","_context$request$user","orderLookupDefaultHeadingText","orderLookupButtonLabel","orderLookupFormAriaLabel","orderLookupOrderNumberLabel","orderLookupOrderNumberAriaLabel","orderLookupSubmitAriaLabel","headingText","headingTag","orderLookupHeading","_createParagraph","autoComplete","onSubmit","submit","_renderAdditionalFields","_getExtensibleEnumera","_getExtensibleEnumera2","isOrderLookupAdditionalFieldValid","isOrderLookupFieldValid","getExtensibleEnumerations","StoreOperationsDataActions","getExtensibleEnumerationsAsync","callerContext","find","TypeName","ExtensibleEnumerations","orderLookupAdditionalParameter","validateOrderLookupField","orderStatusLookUpParameter","isValidField","validateOrderLookupAdditionalField","orderStatusLookUpAdditionalParameters","isValidAdditionalField","_item$fieldKey","fieldKey","validateAdditionalFieldWithProxy","some","setLookupFieldState","additionalFieldsInput","PasswordResetLoadingMessage","AccountProfileEditLabel","BusinessFormItem","BusinessUserForm","_renderModal","BusinessUserDetails","BusinessOrganizationList","ButtonList","_getForm","FormType","InputType","renderInputSection","asteriskAfterLabel","onInputChange","element","customClass","maxChars","isRequired","fieldReference","FormLabel","asteriskText","FormFieldError","FormInput","maxLength","placeholder","_this$props$config","BusinessFormDefaultInputs","Text","businessUserFirstNameLabelText","businessUserLastNameLabelText","Email","businessUserEmailAddressLabelText","SpendingLimit","businessUserSpendingLimitLabelText","delayFocus","formChildReference","userFormEditReference","userFormDeleteReference","_handleAddUserButtonClicked","newForm","formItems","newUser","B2BUserId","Random","Guid","generateGuid","isFormActive","Add","referenceBack","addUserButtonReference","hasFormError","hasActionError","selectedUserData","_handleAddEditFormSaveButton","async","updatedUser","_createBusinessPartner","Edit","editOrganizationUser","EditOrganizationUserInput","reload","trace","addOrganizationUser","AddOrganizationUserInput","businessUserActionRetailErrorMsg","parseFloat","_handleEditIcon","userData","possibleName","cell","fullName","lastSpaceIndex","lastIndexOf","firstName","substring","lastName","possibleCell","dataCell","_handleDeleteIcon","displayedUserData","TableDataType","Price","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","None","callbackRemoveButton","_onInputChange","prev","refresh","isReady","_isFormReady","formItem","match","isNaN","_formatPrice","price","_getCurrentUrl","reqContext","url","requestUrl","_getViewport","device","Type","innerWidth","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","_toggleModal","bind","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","Heading","innerRef","modalState","Table","_createTableProps","_renderUserForm","_renderUserDetails","AdminRequestStatementButton","buttonReference","onRequestStatement","onToggleDropdown","myUserAccountLabel","isDropdownShowing","RequestStatementModal","fromDateString","toDateString","onChangeFromDate","onChangeToDate","canSubmitRequest","canSubmitStatementRequest","modalHeaderLabel","onSubmitRequest","selectedOrganizationLabel","selectedUserName","modalAriaLabel","maxDateString","tableSort","showPagination","paginationItemPerPage","businessUserPaginationNextButtonText","businessUserPaginationPreviousButtonText","businessUserEditButtonText","businessUserViewUserButtonText","businessUserDeleteButtonText","businessUserActionButtonText","businessUserPaginationAriaLabel","columnSortAriaLabel","tableData","_createTableItems","headings","isMobile","includes","sortable","rows","editLinkText","deleteLinkText","viewLinkText","editLinkTooltip","deleteLinkTooltip","viewLinkTooltip","enableToModify","actionLinkText","showCheckBoxes","isSortable","resourcePrefix","minifyActions","excludedColumns","paginationProperty","skipCount","query","skip","parseInt","itemPerPage","prevText","nextText","paginationText","isSingleSelectOnly","tableAriaLabel","tableTabIndex","businessUserSelectCheckBoxAriaLabelText","sortByAscending","sortByDescending","actions","onDelete","onView","formatPrice","checkBoxCallback","businessUserActiveStatusText","businessUserPendingStatusText","businessUserRemovedStatusText","usersList","statusString","StatusValue","FullName","buttonReferences","edit","delete","_this$state$reference","businessUserRemoveModalHeaderText","businessUserRemoveModalDescription","businessUserViewModalHeaderText","businessUserCancelButtonText","businessUserCancelRemoveUserButtonText","businessUserRemoveUserButtonText","businessUserErrorUpdatingUsersMessage","formClassName","typeClassName","handleRemoveButton","businessUserEditUserFormHeadingText","businessUserAddUserFormHeadingText","businessUserSaveButtonArialabel","businessUserSaveButtonText","businessUserCancelButtonArialabel","businessUserFieldIncorrectErrorText","businessUserActionErrorText","businessUserAllFieldsRequiredMessage","FormButton","computed","AccountCustomerBalanceTileLinks","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","AccountProfileEditError","OrderHistoryOrderInfomation","orderInformationProps","salesId","receiptId","channelName","createdDate","amount","channelReferenceId","OrderHistoryGroupDelivery","deliveryProps","processing","address","trackingInfo","OrderHistoryGroup","groupProps","delivery","salesLinesProps","salesLines","salesLine","LineId","OrderHistoryGroups","groupsProps","groups","group","OrderHistoryHeader","_ref5","headerProps","orderCountLabel","extraActions","OrderHistorySalesOder","_ref6","salesOrderProps","orderInfomation","orderDetailsLink","expandProductsButton","OrderHistoryList","_ref7","listProps","salesOrders","salesOrder","OrderHistoryView","_ref8","orderHistoryProps","alert","emptyMessage","backToShoppingLink","list","moreButton","CatalogPicker","PureComponent","_this$props$data$cata","catalogPickerHeading","_moduleClassName","isCatalogsAvailable","catalogPickerParagraph","RichTextComponent","catalogValidationText","_renderCatalogPicker","_renderCatalogPickerButton","getCatalogId","currentCatalogText","linkToCatalog","_getUrlSync","catalogUrl","getUrlSync","fullUrl","changeCatalogButtonText","_this$props$data$cata2","reactKey","JSON","stringify","String","firstOrDefault","Images","tabIndex","Image","src","generateImageUrl","galleryImageSettings","altText","loadFailureBehavior","_initState","hasError","apiGenericErrorMessage","get","customerResult","allowOnAccountPayment","AllowOnAccountPayment","isB2BSite","isChannelTypeB2B","enableCustomerAccountPayment","isCustomerAccountPaymentEnabled","isDetailsLinkDisplayed","account","Balance","CreditLimit","InvoiceAccountBalance","InvoiceAccountCreditLimit","noCreditErrorMessage","accountCreditVerbagePrefix","accountCreditVerbagePostfix","customerCredit","customerCreditFormatted","LoyaltySignUpView","AccountLoyaltyTileLinks","AccountLoyaltyTile","signUpLinkText","signUpLinkAriaLabel","viewLinkAriaLabel","accountLoyaltySummary","accountLoyaltyMemberSummary","CardNumber","decimalPrecision","points","RewardPoints","rewardPoint","ActivePoints","DescriptionComponent","AccountOrderTemplatesTileView","AccountOrderTemplatesTile","BusinessSignUpItem","isAddressInput","BusinesSignUpView","businessSignUp","ContainerWrapper","businessSignUpForm","AccountProfileEditItem","AccountProfileEditLoading","AccountProfileEditView","accountProfileEdit","accountProfileEditLocalAccount","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","DecimalValue","StringValue","_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","NameTranslations","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","slots","socialShareItems","cookies","isConsentGiven","viewprops","caption","orientation","LoyaltyTermsModal","LoyaltyTermsCancel","loyaltyTermCancelAttributes","LoyaltyTermsSubmit","loyaltyTermSubmitAttributes","LoyaltyTermsAgree","loyaltyTermCheckboxAttributes","returnFocusRef","returnRef","modalHeader","cancelButton","cancelLoyaltyTermsText","checked","joinLoyaltyTermsText","loyaltyTermsHeading","terms","agreeSection","checkbox","onCheck","agreeText","loyaltyAgreeToTerms","OrganizationUsersTileView","OrganizationUsersTile","LoyaltyTerms","_submit","_checkboxChecked","toggleRef","search","isJoining","qsps","qsp","splitQsp","hideToggle","serviceTerms","modalToggle","joinLoyaltytermsToggleText","card","redirectToLoyalty","getLoyaltyCardAsync","fullCard","update","GetLoyaltyCardInput","GetMaxLength","parsedMaxLength","AccountPreferencesSection","AccountPreferenceSection","preferenceSecton","AccountProfileSection","AccountProfileView","SignInInput","PasswordResetInput","AccountOrderTemplatesTileDescription","AccountOrderTemplatesTileLinks","accountOrderTemplatesTileDescription","orderTemplates","orderTemplatesCount","AccountLoyaltyTileView","PasswordResetButton","IAccountProfileText","SignInLink","SignInError","AccountProfileEditLoadingMessage","LoyaltyTermsView","SignUpButton","SignUpError","SignUpInput","TextArea","SignUpLabel","needToReset","showErrors","addressForm","updateAddress","fieldRequiredError","fieldInvalidError","_label$replace$trim","renderFieldFeedbackMessage","fieldPattern","invalidFieldMessage","missingFieldMessage","baseSignUpItem","Address","updateForm","resetAddress","BusinessSignUp","_this","BusinessSignUpDefaultInputs","firstNameLabel","lastNameLabel","emailAddressLabel","CompanyName","companyLabel","Department","departmentLabel","JobTitle","jobTitleLabel","Size","companySizeLabel","companyAddressLabel","Comment","commentLabel","needsToReset","hasSubmitErrors","_onAddressChange","currentAddress","addressItem","addressHasErrors","showAddressErrors","currentInput","_onSubmit","preventDefault","_getItem","companyName","companyEmail","companyAddress","jobTitle","department","companySize","comments","newPartner","CompanySize","Comments","createProspectAsync","_onCancel","cleanForm","isAddress","arguments","_addedReference","_renderForm","signUpButtonArialabel","cancelButtonArialabel","partialAddressErrorMessage","addressSlot","successPageURL","confirmationLink","newFormFields","PasswordResetLabel","IAccountLoyaltyTileDescription","AddressShow","AddressDetail","AddressList","List","isShowList","Item","showItems","isShowPrimaryButton","primaryButton","editButton","removeButton","Error","isShowError","AddressLists","ListAddress","isShowEmptyListMessage","emptyListMessage","addButton","primaryAddressList","otherAddressList","AddressAddUpdate","AddressForm","isShowSaveButton","saveButton","isShowCancelButton","AddressItem","AddressError","AccountManagementAddressView","_props$customerAddres","AccountAddressManagement","showAddressList","showAddOrUpdateAddress","screenReaderNotification","addressId","customerAddresses","slice","AddressTypeValue","invoiceAddress","isShowAddresList","isShowAddOrUpdateAddress","SignInDescription","AccountProfileEditInput","PasswordResetLoadingIcon","RequestsTableColumnHeader","getUserName","UserFirstName","UserLastName","b2bRequestsNameDisplay","formatDate","date","year","month","day","getDetails","_requestDetails$Invoi","Details","requestDetails","accountStatementStartDateTime","AccountStatementStartDateTime","accountStatementEndDateTime","AccountStatementEndDateTime","invoiceId","InvoiceId","TypeValue","b2bRequestsAccountStatementDetails","b2bRequestsInvoiceCopyDetails","getDisplayFriendlyTypeValue","typeValue","b2bRequestsTypeCreateProspect","b2bRequestsTypeAddUser","b2bRequestsTypeDeleteUser","b2bRequestsTypeEditUser","b2bRequestsTypeRequestAccountStatement","b2bRequestsTypeRequestInvoiceCopy","b2bRequestsTypeUnknown","getDisplayFriendlyStatusValue","statusValue","b2bRequestsStatusProcessed","b2bRequestsStatusError","b2bRequestsStatusRequested","createTableProps","tableProps","_context$request$quer","operationRequests","_request$TypeValue","_request$StatusValue","b2bRequestsTypeColumn","b2bRequestsRequestDateColumn","CreatedDateTime","b2bRequestsDescriptionColumn","b2bRequestsUserColumn","b2bRequestsStatusColumn","createTableItems","b2bRequestsPreviousText","b2bRequestsNextText","B2bRequestsTable","B2bRequestsStatus","renderHeader","headingData","_this$props$data$oper","_this$props$data$oper2","itemCount","getItemNumberDisplayString","_retrieveExcludedColumns","renderTable","b2bRequestsNumberOfItemsSingular","b2bRequestsNumberOfItems","variant","VariantType","Viewport","renderAdditionalContent","_additionalContent$ad","ContentBlockView","AccountOrganizationUsersTileDescription","AccountOrganizationUsersTileLinks","accountOrganizationUsersTileDescriptionForSingleUser","accountOrganizationUsersTileDescriptionForMultipleUsers","numUsers","accountOrganizationUsersTileDescription","IsB2bAdmin","SignInLoadingMessage","AccountProfileEdit","onTextBoxChange","givenName","surname","invalidEmailAddressError","PRE","_htmlDecode","PAT_DESC","required_field","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","str","e","document","innerHTML","childNodes","nodeValue","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","AccountProfileEditErrorComponent","requiredFieldMissingSummaryError","AccountProfileEditButtonComponent","showEmail","AccountProfileEditLabelComponent","AccountProfileEditInputComponent"],"mappings":"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","file":"static/js/10.2a2d75e0f5f7923a6904.chunk.js","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getRichTextHtml } from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\n/**\n * Product specification table row.\n */\nexport interface IProductSpecificationTableRow {\n productName?: string;\n cellData?: React.ReactNode;\n className?: string;\n}\n\n/**\n * Product specification table row component.\n * @param props - For product specification table row.\n * @param props.productName - Product name.\n * @param props.cellData - Cell data.\n * @param props.className - Class name.\n * @returns - Returns JSX element.\n */\nexport const ProductSpecificationTableRow: React.FC = ({ productName, cellData, className }) => (\n \n \n {/* eslint-disable-next-line react/no-danger */}\n \n \n {cellData}\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 { 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 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 * as React from 'react';\n\nexport interface IAccountProfileEditLoadingIcon {\n className: string;\n}\n\nconst AccountProfileEditLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default AccountProfileEditLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { Drawer, IModuleProps, INodeProps, Module } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { validateCatalogId } from '@msdyn365-commerce-modules/retail-actions';\nimport { AttributesForSelectedVariantInput, getAttributesForSelectedVariant } from '../..';\nimport { ProductSpecificationTableRow } from './components/product-specification-table-stucture';\nimport { IProductSpecificationData } from './product-specification.data';\nimport { displayStyle, IProductSpecificationProps } from './product-specification.props.autogenerated';\n\n/**\n * Maintain Drawer State.\n */\nexport interface IProductSpecificationState {\n isDrawerOpen: boolean;\n isAdditionalMediaDrawerOpen: boolean;\n drawerListId: number | undefined;\n}\n\n/**\n * Product specification view props.\n */\nexport interface IProductSpecificationViewProps extends IProductSpecificationProps<{}> {\n ProductSpecification: IModuleProps;\n ProductSpecificationTableProps: INodeProps;\n ProductSpecificationTableBodyProps: INodeProps;\n productSpecificationResult?: (JSX.Element | null)[];\n\n title?: React.ReactNode;\n isAccrodion?: boolean;\n handleText?(event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * Check for display style either accordion or table.\n */\nexport interface IProductSpecificationExtentedProps extends IProductSpecificationProps {\n displayStyle?: displayStyle;\n}\n\n/**\n *\n * ProductSpecification component.\n * @extends {React.Component>}\n */\n@observer\nclass ProductSpecification extends React.Component {\n public constructor(props: IProductSpecificationExtentedProps) {\n super(props);\n this.state = {\n isDrawerOpen: false,\n isAdditionalMediaDrawerOpen: false,\n drawerListId: undefined\n };\n }\n\n public async componentDidMount(): Promise {\n const { context, data, telemetry } = this.props;\n const catalogId = Msdyn365.getCatalogId(this.props.context.request);\n validateCatalogId(catalogId);\n reaction(\n () => (data.product.result ? data.product.result.RecordId : null),\n () => {\n if (context && data.product.result) {\n const actionInput = new AttributesForSelectedVariantInput(\n data.product.result.RecordId,\n\n +context.actionContext.requestContext.apiSettings.channelId,\n data.product.result,\n catalogId\n );\n\n getAttributesForSelectedVariant(actionInput, this.props.context.actionContext).catch((error: Error) => {\n telemetry.error(error.message);\n telemetry.debug('Unable to update attributes for Product');\n telemetry.error(error.message);\n });\n }\n }\n );\n }\n\n public shouldComponentUpdate(nextProps: IProductSpecificationExtentedProps, nextState: IProductSpecificationState): 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 let data: IProductSpecificationData;\n try {\n data = this.props.data;\n } catch (error) {\n this.props.telemetry.error(`Something went wrong ------${error}`);\n return
{error}
;\n }\n\n if (!data.productSpecificationData.result || data.productSpecificationData.result.length <= 0) {\n this.props.telemetry.error('Product specification content is empty, module wont render.');\n return null;\n }\n\n const { heading, className } = this.props.config;\n const { productSpecificationData } = this.props.data;\n const isAccrodion = this.props.config.displayStyle === displayStyle.accordion;\n const viewProps = {\n ...this.props,\n handleText: this.handleHeadingChange,\n ProductSpecification: {\n moduleProps: this.props,\n className: classnames('ms-product-specification', className)\n },\n ProductSpecificationTableProps: isAccrodion\n ? {\n moduleProps: this.props,\n className: classnames('ms-product-specification__accordion', className)\n }\n : {\n className: classnames('ms-product-specification__table table-striped table-bordered'),\n tag: 'table'\n },\n isAccrodion,\n ProductSpecificationTableBodyProps: isAccrodion\n ? {}\n : {\n className: '',\n tag: 'tbody'\n },\n title: heading?.text && (\n \n ),\n productSpecificationResult:\n productSpecificationData.result && (isAccrodion ? this._createDrawerBody(data) : this._createTableBody(data))\n } as IProductSpecificationViewProps;\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handle Heading Text Change.\n * @param event - Current event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n private _createTableBody(content: IProductSpecificationData): (JSX.Element | null)[] {\n const tableRows = content.productSpecificationData.result!.map((product, index) => {\n const cellData: JSX.Element | null = this._renderProductCell(product);\n\n if (!cellData) {\n return null;\n }\n\n return (\n <>\n \n \n );\n });\n\n if (this.props.context.request.app?.config?.OmniChannelMedia && this.props.data.additionalMediaLocations.result?.length) {\n tableRows.push(this._createAdditionalMediaDrawer());\n }\n\n return tableRows;\n }\n\n private _createDrawerBody(content: IProductSpecificationData): (JSX.Element | null)[] {\n const accordionItemContainer: IModuleProps = {\n moduleProps: this.props,\n className: 'ms-product-specification-title'\n };\n\n const drawers = content.productSpecificationData.result!.map(product => {\n const cellData: JSX.Element | null = this._renderProductCell(product);\n if (!cellData) {\n return null;\n }\n return (\n \n \n
{cellData}
\n \n
\n );\n });\n\n if (this.props.context.request.app?.config?.OmniChannelMedia && this.props.data.additionalMediaLocations.result?.length) {\n drawers.push(this._createAdditionalMediaDrawer());\n }\n\n return drawers;\n }\n private _createAdditionalMediaDrawer(): JSX.Element {\n const accordionItemContainer: IModuleProps = {\n moduleProps: this.props,\n className: 'ms-product-specification-title'\n };\n\n return (\n \n {\n this.setState(prevState => ({\n ...prevState,\n isAdditionalMediaDrawerOpen: !prevState.isAdditionalMediaDrawerOpen\n }));\n }}\n >\n
\n \n
\n \n
\n );\n }\n\n private readonly _toggle = (drawerListId: number | undefined) => (): void => {\n if (this.state.drawerListId !== drawerListId) {\n this.setState({ drawerListId, isDrawerOpen: true });\n } else {\n this.setState({ drawerListId: undefined, isDrawerOpen: false });\n }\n };\n\n private _renderProductCell(product: AttributeValue): JSX.Element | null {\n switch (product.DataTypeValue) {\n case 0: // None\n // Return span here instead of null so the row still shows\n return ;\n case 1: // Currency\n return this._renderCurrencyCell(product);\n case 2: // DateTime\n return this._renderDateTimeCell(product);\n case 3: // Decimal\n return this._renderDecimalCell(product);\n case 4: // Integer\n return this._renderIntegerCell(product);\n case 5: // Text\n return this._renderTextCell(product);\n case 6: // TrueFalse\n return this._renderTrueFalseCell(product);\n case 40: // Video\n this.props.telemetry.warning('Got video specification type, not supported yet so skipping line');\n return null;\n case 41: // Image\n this.props.telemetry.warning('Got image specification type, not supported yet so skipping line');\n return null;\n default:\n this.props.telemetry.warning(`Got unknown specification type ${product.DataTypeValue} so skipping line`);\n return null;\n }\n }\n\n private _renderCurrencyCell(product: AttributeValue): JSX.Element | null {\n if (product.CurrencyValue !== null && product.CurrencyValue !== undefined) {\n return (\n \n {product.CurrencyCode}\n {product.CurrencyValue}\n \n );\n }\n\n return null;\n }\n\n private _renderDateTimeCell(product: AttributeValue): JSX.Element | null {\n if (product.DateTimeOffsetValue?.toUTCString) {\n return {product.DateTimeOffsetValue.toUTCString()};\n }\n\n return null;\n }\n\n private _renderIntegerCell(product: AttributeValue): JSX.Element | null {\n if (product.IntegerValue !== null && product.IntegerValue !== undefined) {\n return {product.IntegerValue};\n }\n\n return null;\n }\n\n private _renderDecimalCell(product: AttributeValue): JSX.Element | null {\n if (product.FloatValue !== null && product.FloatValue !== undefined) {\n return {product.FloatValue};\n }\n\n return null;\n }\n\n private _renderTextCell(product: AttributeValue): JSX.Element | null {\n if (product.TextValue !== null && product.TextValue !== undefined) {\n // eslint-disable-next-line react/no-danger\n return ;\n }\n\n return null;\n }\n\n private _renderTrueFalseCell(product: AttributeValue): JSX.Element | null {\n // TODO 20369885 setting to default value is needed to work around a platform bug where\n // config string value does not get its default value.\n if (product.BooleanValue) {\n return {this.props.resources.trueValueText ? this.props.resources.trueValueText : 'Yes'};\n }\n return {this.props.resources.falseValueText ? this.props.resources.falseValueText : 'No'};\n }\n}\n\nexport default ProductSpecification;\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\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAdditionalContentData, ILinksData } from '../content-block.props.autogenerated';\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content Component props.\n */\nexport interface IContentBlockAdditionalContentProps {\n requestContext: Msdyn365.IRequestContext;\n additionalContent: IAdditionalContentData[] | undefined;\n handleAdditionalTextChange(index: number, event: Msdyn365.ContentEditableEvent): void;\n handleAdditionalParagraphChange(index: number, event: Msdyn365.ContentEditableEvent): void;\n handleAdditionalLinkTextChange(linkIndex: number, index: number, event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content view props.\n */\nexport interface IContentBlockAdditionalContentViewProps {\n additionalContentNode: INodeProps;\n additionalContentItems?: IContentBlockAdditionalContentItemViewProps[];\n}\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content Item view props.\n */\nexport interface IContentBlockAdditionalContentItemViewProps {\n heading: React.ReactNode;\n text: React.ReactNode;\n links: React.ReactNode;\n additionalContentItemContainer: INodeProps;\n additionalContentItemLinks: INodeProps;\n}\n\n/**\n * Renders additional content heading.\n * @param additionalContentHeading - Additional content heading.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns Heading Node.\n */\nconst renderHeading = (additionalContentHeading: string, props: IContentBlockAdditionalContentProps, itemIndex: number) => {\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalTextChange(itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Renders additional content heading.\n * @param additionalContentParagraphText - Additional content paragraph text.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns Paragraph Node.\n */\nconst renderParagraph = (additionalContentParagraphText: string, props: IContentBlockAdditionalContentProps, itemIndex: number) => {\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalTextChange(itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Renders additional content heading.\n * @param ctaLink - Additional content link.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @param linkIndex - Additional content link index.\n * @returns Link Node.\n */\nconst renderLinks = (ctaLink: ILinksData, props: IContentBlockAdditionalContentProps, itemIndex: number, linkIndex: number) => {\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: ctaLink.ariaLabel,\n className: 'ms-content-block__details__additional-content-cta-links',\n linkText: ctaLink.linkText,\n linkUrl: ctaLink.linkUrl.destinationUrl,\n openInNewTab: ctaLink.openInNewTab,\n role: 'link'\n };\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalLinkTextChange(linkIndex, itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Create node for each additonal content item.\n * @param item - Content block additonal content item props.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns IContentBlockAdditionalContentItemViewProps.\n */\nconst assembleNode = (\n item: IAdditionalContentData,\n props: IContentBlockAdditionalContentProps,\n itemIndex: number\n): IContentBlockAdditionalContentItemViewProps => {\n const headingNode = item.heading && renderHeading(item.heading, props, itemIndex);\n const paragraphNode = item.subtext && renderParagraph(item.subtext, props, itemIndex);\n const linksNode = item.links?.map((ctaLink: ILinksData, index: number) => {\n return renderLinks(ctaLink, props, itemIndex, index);\n });\n\n return {\n heading: headingNode,\n text: paragraphNode,\n links: linksNode,\n additionalContentItemContainer: { className: 'ms-content-block__details__additional-content__container' },\n additionalContentItemLinks: { className: 'ms-content-block__details__additional-content-cta' }\n };\n};\n\n/**\n * ContentBlockAdditionalContent component.\n * @param props - Content Block Additional content component props.\n * @returns Content Block Additional content view props.\n */\nexport const contentBlockAdditionalContent = (\n props: IContentBlockAdditionalContentProps\n): IContentBlockAdditionalContentViewProps | undefined => {\n const { additionalContent } = props;\n if (!additionalContent) {\n return undefined;\n }\n\n const reactNodes: IContentBlockAdditionalContentItemViewProps[] = [];\n additionalContent.map((item, index: number) => {\n return reactNodes.push(assembleNode(item, props, index));\n });\n\n return {\n additionalContentNode: { className: 'ms-content-block__details__additional-content' },\n additionalContentItems: reactNodes\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 { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../content-block.props.autogenerated';\n\nexport interface IContentCardLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n role?: string;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * ContentCardLinks component.\n * @extends {React.PureComponent}\n */\nexport class ContentCardLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n }\n\n private readonly _mapEditableLinks = (linkdata: ILinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n linkdata.forEach((link, index) => {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const btnClass = index === 0 ? 'msc-cta__primary' : 'msc-cta__secondary';\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: btnClass,\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: this.props.role,\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n };\n}\nexport default ContentCardLinks;\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 { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { contentBlockAdditionalContent, IContentBlockAdditionalContentViewProps } from './components/additional-content';\nimport LinksComponent from './components/links';\nimport { actionableRegion as region, IContentBlockConfig, IContentBlockProps } from './content-block.props.autogenerated';\n\nexport interface IContentBlockViewProps extends IContentBlockProps<{}> {\n title?: React.ReactNode;\n text?: React.ReactNode;\n image?: React.ReactNode;\n links?: React.ReactNode;\n className?: string;\n contentBlockContainer: IModuleProps;\n imageContainer: INodeProps;\n detailsContainer: INodeProps;\n contentBlockAnchorTag?: INodeProps;\n imageLink?: string;\n imageAriaLabel?: string;\n additionalContent?: IContentBlockAdditionalContentViewProps;\n handleAdditionalText?(): void;\n handleAdditionalParagraph?(): void;\n handleAdditionalLinkTextChange?(): void;\n}\n\n/**\n * Site-builder configuration for the module.\n */\nexport interface IContentBlockFullConfig extends IContentBlockConfig {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- This field comes from SDK.\n msdyn365__moduleLayout?: string;\n}\n\n/**\n * ContentCard component.\n * @extends {React.PureComponent}\n */\nexport class ContentBlock extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public render(): JSX.Element | null {\n const { heading, paragraph, image, links, className, imageAriaLabel } = this.props.config;\n const contentBlockTitle = heading && (\n \n );\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings ?? {},\n imageSettings: image?.imageSettings\n };\n const contentBlockLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n const contentBlockText = paragraph && (\n \n );\n const contentBlockImage = (\n \n );\n\n if (!contentBlockTitle && !contentBlockText && !contentBlockLinks) {\n this.props.context.telemetry.error('Content block content is empty, module wont render.');\n return null;\n }\n const contentBlockviewProps = {\n ...this.props,\n title: contentBlockTitle,\n text: contentBlockText,\n image: contentBlockImage,\n links: contentBlockLinks,\n moduleClass: this.props.config.className,\n contentBlockContainer: {\n moduleProps: this.props,\n className: classnames('ms-content-block', className)\n },\n imageContainer: { className: 'ms-content-block__image' },\n detailsContainer: { className: 'ms-content-block__details' },\n contentBlockAnchorTag: {\n tag: 'a',\n className: 'ms-content-block__link',\n role: 'link'\n },\n imageLink: this._getImageLink(),\n imageAriaLabel,\n additionalContent: contentBlockAdditionalContent({\n requestContext: this.props.context.request,\n additionalContent: this.props.config.additionalContent,\n handleAdditionalTextChange: this.handleAdditionalTextChange,\n handleAdditionalParagraphChange: this.handleAdditionalParagraphChange,\n handleAdditionalLinkTextChange: this.handleAdditionalLinkTextChange\n }),\n handleAdditionalText: this.handleAdditionalTextChange,\n handleAdditionalParagraph: this.handleAdditionalParagraphChange,\n handleAdditionalLinkTextChange: this.handleAdditionalLinkTextChange\n };\n\n return this.props.renderView(contentBlockviewProps) as React.ReactElement;\n }\n\n /**\n * To handle text change.\n * @param event - To handle text change event.\n * @name - HandleTextChange\n * @public\n * @returns - The Text value.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n /**\n * To handle paragraph change.\n * @param event - To handle text change event.\n * @name - HandleParagraphChange\n * @public\n * @returns - The Paragraph value.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.paragraph = event.target.value);\n\n /**\n * Handle link text change.\n * @param linkIndex - The link index.\n * @returns - Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[Number(linkIndex)]) {\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\n }\n };\n\n public handleAdditionalTextChange(index: number, event: Msdyn365.ContentEditableEvent): void {\n if (this.props.config.additionalContent) {\n this.props.config.additionalContent[Number(index)].heading = event.target.value;\n }\n }\n\n public handleAdditionalLinkTextChange(linkIndex: number, index: number, event: Msdyn365.ContentEditableEvent): void {\n const additionalContentObject =\n (this.props.config.additionalContent &&\n ArrayExtensions.hasElements(this.props.config.additionalContent) &&\n this.props.config.additionalContent[Number(index)]) ||\n {};\n if (additionalContentObject.links) {\n additionalContentObject.links[Number(linkIndex)].linkText = event.target.value;\n }\n }\n\n public handleAdditionalParagraphChange(index: number, event: Msdyn365.ContentEditableEvent): void {\n if (this.props.config.additionalContent) {\n this.props.config.additionalContent[Number(index)].subtext = event.target.value;\n }\n }\n\n private _getImageLink(): string | null {\n const { imageLink, links, actionableRegion } = this.props.config;\n if (actionableRegion === region.imageAndLinks) {\n if (imageLink?.destinationUrl) {\n return imageLink.destinationUrl;\n } else if (links && ArrayExtensions.hasElements(links) && links[0].linkUrl) {\n return links[0].linkUrl.destinationUrl;\n }\n return null;\n }\n return null;\n }\n}\n\nexport default ContentBlock;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './account-address-tile-description';\nexport * from './account-address-tile-links';\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ISocialShareViewProps } from './social-share';\n\nexport const SocialShareView: React.FC = props => {\n const { SocialShareList, SocialShareItemElements, SocialShareItem, SocialShare } = props;\n if (SocialShareItemElements.length === 0) {\n props.context.telemetry.error('Social media list is empty, module wont render');\n return null;\n }\n return (\n \n \n {SocialShareItemElements.map((SocialShareElement: ReactNode, index: number) => {\n return (\n \n {SocialShareElement}\n \n );\n })}\n \n \n );\n};\n\nexport default SocialShareView;\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","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { format, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\n/**\r\n * ICartIconData: Interface for Cart Icon Data.\r\n */\r\nexport interface ICartIconData {\r\n cart?: ICartState;\r\n}\r\n\r\n/**\r\n * ICartIconComponentProps: Interface for Cart Icon component props.\r\n */\r\nexport interface ICartIconComponentProps extends IComponentProps {\r\n className?: string;\r\n cartLabel: string;\r\n cartQtyLabel: string;\r\n telemetryContent?: ITelemetryContent;\r\n}\r\n\r\n/**\r\n * ICartIconComponent: Interface for Cart Icon component.\r\n */\r\nexport interface ICartIconComponent extends IComponent {\r\n}\r\n\r\nconst CartIconComponentActions = {};\r\n\r\n/**\r\n *\r\n * CartIcon component.\r\n * @extends {React.FC}\r\n */\r\nconst CartIcon: React.FC = observer((props: ICartIconComponentProps) => {\r\n const { cartLabel, cartQtyLabel, data: { cart } } = props;\r\n const defaultCartItemCount: number = 0;\r\n\r\n // If there are invoice lines, don't update mini cart item quantity\r\n let cartItem = defaultCartItemCount;\r\n\r\n if (cart) {\r\n cartItem = cart.hasInvoiceLine ? defaultCartItemCount : cart.totalItemsInCart;\r\n }\r\n\r\n let qtyLabel: string = '';\r\n const cartMaxQuantity: number = 99;\r\n const maxQuantityLabel: string = '99+';\r\n if (cartItem > cartMaxQuantity) {\r\n qtyLabel = maxQuantityLabel;\r\n } else {\r\n qtyLabel = format(cartQtyLabel, cartItem);\r\n }\r\n const label = format(cartLabel, cartItem);\r\n\r\n // Construct telemetry attribute to render\r\n const payLoad = getPayloadObject('click', props.telemetryContent!, 'cart-icon', '');\r\n const attributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n const style: React.CSSProperties = {\r\n visibility: cart ? 'visible' : 'hidden'\r\n };\r\n return (\r\n \r\n
\r\n {qtyLabel}\r\n
\r\n
\r\n );\r\n});\r\n\r\n// @ts-expect-error -- Compatible issue with the component override.\r\nexport const CartIconComponent: React.FunctionComponent = msdyn365Commerce.createComponentOverride(\r\n 'CartIcon',\r\n { component: CartIcon, ...CartIconComponentActions }\r\n);\r\n\r\nexport default CartIconComponent;\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 ISignInLoadingIcon {\n className: string;\n}\n\nconst SignInLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default SignInLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport AccountAddressTile from './account-address-tile';\nimport AccountAddressTileView from './account-address-tile.view';\n\nexport * from './account-address-tile';\nexport * from './account-address-tile.data';\nexport {\n IAccountAddressTileConfig,\n IAccountAddressTileProps,\n IAccountAddressTileResources,\n ILinksData\n} from './account-address-tile.props.autogenerated';\nexport * from './account-address-tile.view';\nexport * from './components';\n\nexport { AccountAddressTile, AccountAddressTileView };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './loyalty-terms-modal';\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IBusinessFormItem, IBusinessOrganizationListViewProps, IFormViewProps, InputID } from '@msdyn365-commerce-modules/business-organization-list';\r\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IBusinessOrganizationListProps, IBusinessOrganizationListResources }\r\n from '../definition-extensions/business-organization-list.ext.props.autogenerated';\r\n\r\n/**\r\n * Business Form Item component.\r\n * @param props - View props.\r\n * @returns The JSX Element.\r\n */\r\nconst BusinessFormItemComponent: React.FC = (props: IBusinessFormItem) => {\r\n const {\r\n wrapper,\r\n label,\r\n errorMessage,\r\n input\r\n } = props;\r\n return (\r\n \r\n {label}\r\n {errorMessage}\r\n {input}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * To render modal.\r\n * @param className - The modal classname.\r\n * @param isModalOpen - The boolean for modal open status.\r\n * @param headingSection - The heading section of modal.\r\n * @param bodySection - The body section of modal.\r\n * @param footerSection - The footer section of modal.\r\n * @param toggleModal - The toggle modal callback function.\r\n * @returns The JSX Element.\r\n */\r\nconst renderModal = (className: string, isModalOpen: boolean, headingSection: React.ReactNode, bodySection: React.ReactNode, footerSection: React.ReactNode,\r\n toggleModal?: () => void) => {\r\n return (\r\n \r\n \r\n {headingSection}\r\n \r\n \r\n {bodySection}\r\n \r\n \r\n {footerSection}\r\n \r\n \r\n );\r\n};\r\n\r\n/**\r\n * Business User Form component.\r\n * @param props - View props.\r\n * @returns The JSX Element.\r\n */\r\nconst BusinessUserFormComponent: React.FC = (props: IFormViewProps) => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\r\n\r\n const modalBody = (\r\n <>\r\n {modalDescription}\r\n \r\n {inputs && inputs.map((item: IBusinessFormItem) => {\r\n return (\r\n\r\n \r\n );\r\n })}\r\n {errorMessage?.map((error: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {error}\r\n \r\n );\r\n })}\r\n \r\n \r\n\r\n );\r\n\r\n const modalFooter = buttons && buttons.map((button: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {button}\r\n \r\n );\r\n });\r\n\r\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\r\n};\r\n\r\n/**\r\n * Selected user interface.\r\n */\r\ninterface ISelectedUser {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n FirstName?: string;\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n LastName?: string;\r\n}\r\n\r\n/**\r\n * Business User Details component.\r\n * @param props - View props.\r\n * @returns The JSX Element.\r\n */\r\nconst BusinessUserDetailsComponent: React.FC = (props: IFormViewProps) => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n const { modalClassName, FormWrapper, modalHeading, modalDescription, buttons, errorMessage, resources, toggle } = props;\r\n let modalBody = null;\r\n const selectedUser = props.selectedUser as ISelectedUser | string;\r\n\r\n if (!selectedUser) {\r\n modalBody = errorMessage;\r\n } else {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n const { FirstName, LastName } = selectedUser as ISelectedUser;\r\n const userFullName = `${FirstName as string} ${LastName as string}`;\r\n\r\n modalBody = (\r\n <>\r\n { modalDescription }\r\n \r\n \r\n {userFullName}\r\n \r\n { Object.keys(selectedUser).map((data, index) => {\r\n if (data === InputID.FirstName || data === InputID.LastName) {\r\n return null;\r\n }\r\n const label = resources[`table${data}HeadingText`] as string || data;\r\n return (\r\n {label}\r\n {': '}\r\n {selectedUser[data]}\r\n );\r\n\r\n })}\r\n \r\n \r\n );\r\n }\r\n\r\n const modalFooter = buttons && buttons.map((button: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {button}\r\n \r\n );\r\n });\r\n\r\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\r\n};\r\n\r\n/**\r\n * To get form.\r\n * @param type - The type of form.\r\n * @param formProps - The form props.\r\n * @param toggleModal - The toggle modal callback function.\r\n * @returns The JSX Element.\r\n */\r\nconst getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\r\n switch (type) {\r\n case 'ADD':\r\n case 'EDIT':\r\n return ;\r\n case 'VIEW':\r\n case 'REMOVE':\r\n return ;\r\n default:\r\n return null;\r\n }\r\n};\r\n\r\n/**\r\n * Business Organization List component.\r\n * @param props - View props.\r\n * @returns The JSX Element.\r\n */\r\nconst BusinessOrganizationListComponent: React.FC> = props => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n const { OrganizationUserList, moduleContainer, heading, noUsersText, addUserButton, organizationListTable, form, formType,\r\n toggleModal, requestAccountStatementButton, requestStatementModal } = props;\r\n\r\n const buttonList: React.ReactNode =\r\n (\r\n \r\n {addUserButton}\r\n {requestAccountStatementButton}\r\n \r\n );\r\n\r\n if (noUsersText) {\r\n return (\r\n \r\n \r\n {heading}\r\n \r\n \r\n {props.resources.headingForEmptyUserOrganizationList}\r\n \r\n \r\n {props.resources.textForEmptyUserOrganizationList}\r\n \r\n {buttonList}\r\n \r\n {requestStatementModal}\r\n {noUsersText}\r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n {buttonList}\r\n {requestStatementModal}\r\n {organizationListTable}\r\n \r\n { form && getForm(formType, form, toggleModal) }\r\n \r\n );\r\n};\r\n\r\nexport default BusinessOrganizationListComponent;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport AccountProfile from './account-profile';\nimport AccountProfileView from './account-profile.view';\n\nexport * from './account-profile';\nexport * from './account-profile.data';\nexport {\n EmailAddressSectionHeadingTag,\n IAccountProfileConfig,\n IAccountProfileProps,\n IAccountProfileResources,\n IEmailAddressSectionHeadingData,\n INameSectionHeadingData,\n IPersonalizationSectionHeadingData,\n IPreferencesSectionHeadingData,\n NameSectionHeadingTag,\n PersonalizationSectionHeadingTag,\n PreferencesSectionHeadingTag\n} from './account-profile.props.autogenerated';\nexport * from './account-profile.view';\nexport * from './components';\n\nexport { AccountProfile, AccountProfileView };\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IBusinessFormItem, IBusinessOrganizationListViewProps, IFormViewProps, InputID } from '@msdyn365-commerce-modules/business-organization-list';\r\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IBusinessOrganizationListProps, IBusinessOrganizationListResources }\r\n from '../definition-extensions/business-organization-list.ext.props.autogenerated';\r\n\r\n/**\r\n * Business Form Item component.\r\n * @param props - View props.\r\n * @returns The JSX Element.\r\n */\r\nconst BusinessFormItemComponent: React.FC = (props: IBusinessFormItem) => {\r\n const {\r\n wrapper,\r\n label,\r\n errorMessage,\r\n input\r\n } = props;\r\n return (\r\n \r\n {label}\r\n {errorMessage}\r\n {input}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * To render modal.\r\n * @param className - The modal classname.\r\n * @param isModalOpen - The boolean for modal open status.\r\n * @param headingSection - The heading section of modal.\r\n * @param bodySection - The body section of modal.\r\n * @param footerSection - The footer section of modal.\r\n * @param toggleModal - The toggle modal callback function.\r\n * @returns The JSX Element.\r\n */\r\nconst renderModal = (className: string, isModalOpen: boolean, headingSection: React.ReactNode, bodySection: React.ReactNode, footerSection: React.ReactNode,\r\n toggleModal?: () => void) => {\r\n return (\r\n \r\n \r\n {headingSection}\r\n \r\n \r\n {bodySection}\r\n \r\n \r\n {footerSection}\r\n \r\n \r\n );\r\n};\r\n\r\n/**\r\n * Business User Form component.\r\n * @param props - View props.\r\n * @returns The JSX Element.\r\n */\r\nconst BusinessUserFormComponent: React.FC = (props: IFormViewProps) => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\r\n\r\n const modalBody = (\r\n <>\r\n {modalDescription}\r\n \r\n {inputs && inputs.map((item: IBusinessFormItem) => {\r\n return (\r\n\r\n \r\n );\r\n })}\r\n {errorMessage?.map((error: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {error}\r\n \r\n );\r\n })}\r\n \r\n \r\n\r\n );\r\n\r\n const modalFooter = buttons && buttons.map((button: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {button}\r\n \r\n );\r\n });\r\n\r\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\r\n};\r\n\r\n/**\r\n * Selected user interface.\r\n */\r\ninterface ISelectedUser {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n FirstName?: string;\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n LastName?: string;\r\n}\r\n\r\n/**\r\n * Business User Details component.\r\n * @param props - View props.\r\n * @returns The JSX Element.\r\n */\r\nconst BusinessUserDetailsComponent: React.FC = (props: IFormViewProps) => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n const { modalClassName, FormWrapper, modalHeading, modalDescription, buttons, errorMessage, resources, toggle } = props;\r\n let modalBody = null;\r\n const selectedUser = props.selectedUser as ISelectedUser | string;\r\n\r\n if (!selectedUser) {\r\n modalBody = errorMessage;\r\n } else {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n const { FirstName, LastName } = selectedUser as ISelectedUser;\r\n const userFullName = `${FirstName as string} ${LastName as string}`;\r\n\r\n modalBody = (\r\n <>\r\n { modalDescription }\r\n \r\n \r\n {userFullName}\r\n \r\n { Object.keys(selectedUser).map((data, index) => {\r\n if (data === InputID.FirstName || data === InputID.LastName) {\r\n return null;\r\n }\r\n const label = resources[`table${data}HeadingText`] as string || data;\r\n return (\r\n {label}\r\n {': '}\r\n {selectedUser[data]}\r\n );\r\n\r\n })}\r\n \r\n \r\n );\r\n }\r\n\r\n const modalFooter = buttons && buttons.map((button: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {button}\r\n \r\n );\r\n });\r\n\r\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\r\n};\r\n\r\n/**\r\n * To get form.\r\n * @param type - The type of form.\r\n * @param formProps - The form props.\r\n * @param toggleModal - The toggle modal callback function.\r\n * @returns The JSX Element.\r\n */\r\nconst getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\r\n switch (type) {\r\n case 'ADD':\r\n case 'EDIT':\r\n return ;\r\n case 'VIEW':\r\n case 'REMOVE':\r\n return ;\r\n default:\r\n return null;\r\n }\r\n};\r\n\r\n/**\r\n * Business Organization List component.\r\n * @param props - View props.\r\n * @returns The JSX Element.\r\n */\r\nconst BusinessOrganizationListComponent: React.FC> = props => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n const { OrganizationUserList, moduleContainer, heading, noUsersText, addUserButton, organizationListTable, form, formType,\r\n toggleModal, requestAccountStatementButton, requestStatementModal } = props;\r\n\r\n const buttonList: React.ReactNode =\r\n (\r\n \r\n {addUserButton}\r\n {requestAccountStatementButton}\r\n \r\n );\r\n\r\n if (noUsersText) {\r\n return (\r\n \r\n \r\n {heading}\r\n \r\n \r\n {props.resources.headingForEmptyUserOrganizationList}\r\n \r\n \r\n {props.resources.textForEmptyUserOrganizationList}\r\n \r\n {buttonList}\r\n \r\n {requestStatementModal}\r\n {noUsersText}\r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n {buttonList}\r\n {requestStatementModal}\r\n {organizationListTable}\r\n \r\n { form && getForm(formType, form, toggleModal) }\r\n \r\n );\r\n};\r\n\r\nexport default BusinessOrganizationListComponent;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountInvoiceTileDescription {\n description: string;\n}\n\nexport const AccountInvoiceTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-invoice-tile.props.autogenerated';\n\nexport interface IAccountInvoiceTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountInvoiceTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-invoice-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountInvoiceTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountInvoiceTileData } from './account-invoice-tile.data';\nimport { IAccountInvoiceTileProps } from './account-invoice-tile.props.autogenerated';\nimport { AccountInvoiceTileDescription } from './components';\nimport LinksComponent from './components/account-invoice-tile-links';\n\nexport interface IAccountInvoiceTileViewProps extends IAccountInvoiceTileProps {\n AccountInvoiceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountInvoiceTile component.\n * @extends {React.PureComponent>}\n */\nclass AccountInvoiceTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountInvoiceTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const {\n config,\n data,\n resources,\n context: {\n cultureFormatter: {\n formatCurrency,\n\n // @ts-expect-error\n currencyCode\n }\n }\n } = this.props;\n const { className, heading, links } = config;\n const { accountInvoiceTileDescription } = resources;\n\n const openinvoiceAmount = data.customerBalance.result?.OpenInvoiceBalance || 0;\n const invoiceTotalAmount: string | undefined = formatCurrency(openinvoiceAmount.toFixed(2), currencyCode);\n\n const description = invoiceTotalAmount && format(accountInvoiceTileDescription, invoiceTotalAmount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountInvoiceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-invoice-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: description && \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountInvoiceTile;\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { format, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\n/**\r\n * ICartIconData: Interface for Cart Icon Data.\r\n */\r\nexport interface ICartIconData {\r\n cart?: ICartState;\r\n}\r\n\r\n/**\r\n * ICartIconComponentProps: Interface for Cart Icon component props.\r\n */\r\nexport interface ICartIconComponentProps extends IComponentProps {\r\n className?: string;\r\n cartLabel: string;\r\n cartQtyLabel: string;\r\n telemetryContent?: ITelemetryContent;\r\n}\r\n\r\n/**\r\n * ICartIconComponent: Interface for Cart Icon component.\r\n */\r\nexport interface ICartIconComponent extends IComponent {\r\n}\r\n\r\nconst CartIconComponentActions = {};\r\n\r\n/**\r\n *\r\n * CartIcon component.\r\n * @extends {React.FC}\r\n */\r\nconst CartIcon: React.FC = observer((props: ICartIconComponentProps) => {\r\n const { cartLabel, cartQtyLabel, data: { cart } } = props;\r\n const defaultCartItemCount: number = 0;\r\n const invoiceItemCount: number = 1;\r\n\r\n // If there are invoice lines, don't update mini cart item quantity\r\n let cartItem = defaultCartItemCount;\r\n\r\n if (cart) {\r\n cartItem = cart.hasInvoiceLine ? invoiceItemCount : cart.totalItemsInCart;\r\n }\r\n\r\n let qtyLabel: string = '';\r\n const cartMaxQuantity: number = 99;\r\n const maxQuantityLabel: string = '99+';\r\n if (cartItem > cartMaxQuantity) {\r\n qtyLabel = maxQuantityLabel;\r\n } else {\r\n qtyLabel = format(cartQtyLabel, cartItem);\r\n }\r\n const label = format(cartLabel, cartItem);\r\n\r\n // Construct telemetry attribute to render\r\n const payLoad = getPayloadObject('click', props.telemetryContent!, 'cart-icon', '');\r\n const attributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n const style: React.CSSProperties = {\r\n visibility: cart ? 'visible' : 'hidden'\r\n };\r\n return (\r\n \r\n
\r\n {qtyLabel}\r\n
\r\n
\r\n );\r\n});\r\n\r\n// @ts-expect-error -- Compatible issue with the component override.\r\nexport const CartIconComponent: React.FunctionComponent = msdyn365Commerce.createComponentOverride(\r\n 'CartIcon',\r\n { component: CartIcon, ...CartIconComponentActions }\r\n);\r\n\r\nexport default CartIconComponent;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './account-loyalty-tile-description';\nexport { IAccountLoyaltyTileLinks } from './account-loyalty-tile-links';\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst AccountProfileEditButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n disabled,\n telemetryContent,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n );\n};\n\nexport default AccountProfileEditButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as 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 MsDyn365 from '@msdyn365-commerce/core';\nimport { ICartlinesViewProps, ICartResources, ICartViewProps, IOrderSummaryErrors } from '@msdyn365-commerce-modules/cart';\nimport { ICartLineItemViewProps } from '@msdyn365-commerce-modules/cart/dist/types/modules/cart/components/cart-line-items-promotion';\nimport { IInvoiceSummaryLines } from '@msdyn365-commerce-modules/invoice-payment-summary';\nimport { IOrderSummaryLines } from '@msdyn365-commerce-modules/order-summary-utilities';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent,\n Node,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst CartView: React.FC = (props: ICartViewProps) => (\n
\n {props.title}\n {props.promotionOptions && _renderPromotions(props.promotionOptions)}\n {props.cart?.hasInvoiceLine || props.multiplePickUpEnabled ? (\n _renderCartLinesGroup(props, props.resources)\n ) : (\n \n {_renderCartlines(\n props.cartlines,\n props.resources,\n props.storeSelector,\n props.backToShoppingButton,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult,\n props.telemetryContent,\n props.multiplePickUpEnabled,\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n \n )}\n {props.orderSummaryHeading && (\n \n {props.orderSummaryHeading}\n {props.cart?.hasInvoiceLine\n ? _renderInvoiceSummarylines(props.invoiceSummaryLineitems, props.OrderSummaryItems, props)\n : _renderOrderSummarylines(props.orderSummaryLineitems, props.OrderSummaryItems, props)}\n {_renderErrorBlock(props.OrderSummaryErrors)}\n {props.checkoutAsSignInUserButton}\n {props.checkoutAsGuestButton}\n {props.expressCheckoutButton && ArrayExtensions.hasElements(props.expressCheckoutButton) ? (\n {props.expressCheckoutButton}\n ) : null}\n {props.backToShoppingButton}\n {props.createTemplateFromCartButton}\n \n )}\n {props.storeSelector}\n
\n);\n\nconst _renderPromotions = (promotions: ICartLineItemViewProps): JSX.Element | undefined => {\n return (\n <>\n \n {promotions.promotionMessage}\n {promotions.promotionSeeAllLink}\n {promotions.promotionDialog}\n \n \n );\n};\n\nconst _renderCartlines = (\n cartLines: ICartlinesViewProps[] | undefined,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n backToShoppingButton: React.ReactNode,\n waitingComponent: React.ReactNode,\n cartLoadingStatus: string,\n cartDataResult: boolean,\n telemetryContent?: ITelemetryContent,\n mulitplePickUp?: boolean,\n emailDeliveryModeCode?: string\n): JSX.Element[] | JSX.Element => {\n const { emptyCartText } = resources;\n\n if (cartLoadingStatus) {\n return <>{cartLoadingStatus};\n }\n if (cartLines) {\n return cartLines.map((cartLine, index) => {\n return (\n
\n {cartLine.cartline}\n {mulitplePickUp ? null : _renderBOPISBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {mulitplePickUp ? (\n \n {_renderGroupBOPISBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n ) : cartLine.addToOrderTemplate ? (\n \n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n ) : (\n <>\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n )}\n
\n );\n });\n }\n return cartDataResult ? (\n
\n

{emptyCartText}

\n {backToShoppingButton}\n
\n ) : (\n <>{waitingComponent}\n );\n};\n\n/**\n * On Toggle function.\n * @param cartLine -Cartline.\n * @param isBopisSelected -Boolean.\n * @returns Set state of button.\n */\nconst onToggleBopisHandler = (cartLine: ICartlinesViewProps, isBopisSelected: boolean) => () => {\n cartLine.pickUpInStore && cartLine.pickUpInStore.callbacks.toggleBopis(!isBopisSelected);\n};\n\n/**\n * On change store function.\n * @param cartLine -CartLine items prop.\n * @returns Set state of button.\n */\nconst onChangeStoreHandler = (cartLine: ICartlinesViewProps) => () => {\n cartLine.pickUpInStore && cartLine.pickUpInStore.callbacks.toggleBopis(true);\n};\n\nconst _renderBOPISBlock = (\n cartLine: ICartlinesViewProps,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent,\n emailDeliveryModeCode?: string\n): JSX.Element | null => {\n // If it is electronic item cart line, then return null for BOPISBlock.\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\n return null;\n }\n\n const {\n shipInsteadDisplayText,\n shipToAddressDisplayText,\n pickItUpDisplayText,\n pickUpAtStoreWithLocationText,\n changeStoreDisplayText\n } = resources;\n\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n
\n {isBopisSelected ? (\n {pickUpAtStoreWithLocationText}\n ) : (\n {shipToAddressDisplayText}\n )}\n
\n {isBopisSelected && (\n
\n {cartLine.pickUpInStore.orgUnitName}\n \n
\n )}\n \n {isBopisSelected ? shipInsteadDisplayText : pickItUpDisplayText}\n \n
\n );\n};\n\nconst _renderErrorBlock = (errorData: IOrderSummaryErrors | undefined): JSX.Element | null => {\n if (!errorData || errorData.errors.length === 0) {\n return null;\n }\n return (\n \n {errorData.header}\n {errorData.errors}\n \n );\n};\n\nconst _renderOrderSummarylines = (\n orderSummaryLines: IOrderSummaryLines | undefined,\n OrderSummaryItems: INodeProps,\n props: ICartViewProps\n): JSX.Element | null => {\n if (!orderSummaryLines) {\n return null;\n }\n return (\n \n {props.promoCode}\n {orderSummaryLines.subtotal}\n {orderSummaryLines.shipping}\n {orderSummaryLines.otherCharge}\n {orderSummaryLines.tax}\n {orderSummaryLines.totalDiscounts ? orderSummaryLines.totalDiscounts : null}\n {orderSummaryLines.orderTotal}\n \n );\n};\n\nconst _renderInvoiceSummarylines = (\n invoiceSummaryLines: IInvoiceSummaryLines | undefined,\n OrderSummaryItems: INodeProps,\n props: ICartViewProps\n): JSX.Element | null => {\n if (!invoiceSummaryLines) {\n props.context.telemetry.error('InvoiceSummary content is empty, module wont render');\n return null;\n }\n return (\n \n {invoiceSummaryLines.invoices}\n {invoiceSummaryLines.giftCard}\n {invoiceSummaryLines.loyalty}\n {invoiceSummaryLines.orderTotal}\n \n );\n};\n\nconst _renderCartLinesGroup = (props: ICartViewProps, resources: ICartResources): JSX.Element | undefined => {\n if (props.cartLinesGroup && props.cartLinesGroup.length > 0) {\n return (\n
\n {props.cartLinesGroup.map(cartlines => {\n return (\n
\n {_renderCartLinesGroupHeader(\n cartlines[0],\n props.storeSelector,\n resources,\n _countItems(cartlines),\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n {_renderCartlines(\n cartlines,\n props.resources,\n props.storeSelector,\n props.backToShoppingButton,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult,\n props.telemetryContent,\n props.multiplePickUpEnabled,\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n
\n );\n })}\n
\n );\n }\n return props.cartDataResult ? (\n
\n
\n

{props.resources.emptyCartText}

\n {props.backToShoppingButton}\n
\n
\n ) : (\n <>{props.waitingComponent}\n );\n};\nconst _renderCartLinesGroupHeader = (\n cartLine: ICartlinesViewProps,\n storeSelector: React.ReactNode | undefined,\n resources: ICartResources,\n count: number,\n emailDeliveryModeCode?: string\n) => {\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\n const { pickUpText, shippingText, emailshippingText, payInvoicesDisplayText } = resources;\n let groupTitle: string;\n\n groupTitle = isBopisSelected ? pickUpText : shippingText;\n if (cartLine.data && cartLine.data.cartline.IsInvoiceLine) {\n groupTitle = payInvoicesDisplayText;\n } else if (!StringExtensions.isNullOrEmpty(emailDeliveryModeCode)) {\n groupTitle = cartLine.data && cartLine.data.cartline.DeliveryMode === emailDeliveryModeCode ? emailshippingText : groupTitle;\n }\n\n return (\n <>\n
\n

\n

{groupTitle}

\n {_renderCartLinesGroupTitle(cartLine, resources, count)}\n
\n \n );\n};\n\nconst _renderGroupBOPISBlock = (\n cartLine: ICartlinesViewProps,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent,\n emailDeliveryModeCode?: string\n): JSX.Element | null => {\n // If it is electronic item cart line, then return null for GroupBOPISBlock.\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\n return null;\n }\n\n const { changeStoreDisplayText, shipInsteadDisplayText, pickItUpDisplayText } = resources;\n\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n <>\n {isBopisSelected ? (\n \n ) : null}\n \n {isBopisSelected ? shipInsteadDisplayText : pickItUpDisplayText}\n \n \n );\n};\n\nconst _countItems = (cartLine: ICartlinesViewProps[]): number => {\n let countItem = 0;\n countItem = cartLine.reduce((count, item) => {\n return count + (item.data?.cartline.Quantity || 0);\n }, 0);\n return countItem;\n};\n\nconst _renderCartLinesGroupTitle = (cartLine: ICartlinesViewProps, resources: ICartResources, count: number) => {\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\n const { itemLabel, itemsLabel } = resources;\n const suffix = count > 1 ? itemsLabel : itemLabel;\n return (\n <>\n \n {isBopisSelected ? (\n

\n {cartLine.pickUpInStore?.deliveryOption}\n {', '}\n {cartLine.pickUpInStore?.orgUnitName}\n

\n ) : null}\n

\n ({count}\n {` `}\n {suffix})\n

\n
\n \n );\n};\n\nexport default CartView;\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 { 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 { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IProductSpecificationViewProps } from './product-specification';\n\nconst ProductSpecificationView: React.FC = props => {\n const { ProductSpecification, ProductSpecificationTableProps, ProductSpecificationTableBodyProps, productSpecificationResult } = props;\n const rowdata =\n productSpecificationResult &&\n ArrayExtensions.hasElements(productSpecificationResult) &&\n productSpecificationResult.filter(row => !ObjectExtensions.isNullOrUndefined(row));\n\n return rowdata && ArrayExtensions.hasElements(rowdata) ? (\n \n {props.title}\n \n {rowdata}\n \n \n ) : null;\n};\n\nexport default ProductSpecificationView;\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 * as React from 'react';\n\nexport interface IAccountProfileEditLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst AccountProfileEditLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default AccountProfileEditLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport AccountLoyaltyTile from './account-loyalty-tile';\nimport AccountLoyaltyTileView from './account-loyalty-tile.view';\n\nexport * from './account-loyalty-tile';\nexport * from './account-loyalty-tile.data';\nexport {\n IAccountLoyaltyTileConfig,\n IAccountLoyaltyTileProps,\n IAccountLoyaltyTileResources\n} from './account-loyalty-tile.props.autogenerated';\nexport * from './account-loyalty-tile.view';\nexport * from './components';\n\nexport { AccountLoyaltyTile, AccountLoyaltyTileView };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListViewProps, IFormViewProps, InputID } from './business-organization-list';\nimport { IBusinessFormItem } from './components/small-components';\n\nconst BusinessFormItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst BusinessUserForm: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\n\n const modalBody = (\n <>\n {modalDescription}\n \n {inputs &&\n inputs.map((item: IBusinessFormItem) => {\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n \n );\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst BusinessUserDetails: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, selectedUser, buttons, errorMessage, resources, toggle } = props;\n let modalBody = null;\n\n if (!selectedUser) {\n modalBody = errorMessage;\n } else {\n const { FirstName, LastName } = selectedUser;\n const userFullName = `${FirstName} ${LastName}`;\n\n modalBody = (\n <>\n {modalDescription}\n \n \n {userFullName}\n \n {Object.keys(selectedUser).map((data, index) => {\n if (data === InputID.FirstName || data === InputID.LastName) {\n return null;\n }\n const label = resources[`table${data}HeadingText`] || data;\n return (\n \n {label}\n {': '}\n {selectedUser[data]}\n \n );\n })}\n \n \n );\n }\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst _getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\n switch (type) {\n case 'ADD':\n case 'EDIT':\n return ;\n case 'VIEW':\n case 'REMOVE':\n return ;\n default:\n return null;\n }\n};\n\nconst _renderModal = (\n className: string,\n isModalOpen: boolean,\n headingSection: React.ReactNode,\n bodySection: React.ReactNode,\n footerSection: React.ReactNode,\n toggleModal?: () => void\n) => {\n return (\n \n {headingSection}\n {bodySection}\n {footerSection}\n \n );\n};\n\nconst BusinessOrganizationList: React.FC = props => {\n const {\n OrganizationUserList,\n moduleContainer,\n heading,\n noUsersText,\n addUserButton,\n organizationListTable,\n form,\n formType,\n toggleModal,\n requestAccountStatementButton,\n requestStatementModal\n } = props;\n\n const ButtonList: React.ReactNode = (\n \n {addUserButton}\n {requestAccountStatementButton}\n \n );\n\n if (noUsersText) {\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {noUsersText}\n \n \n );\n }\n\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {organizationListTable}\n \n {form && _getForm(formType, form, toggleModal)}\n \n );\n};\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IRequestContext } from '@msdyn365-commerce/core';\nimport {\n AccountStatementRequest,\n BusinessPartnerOperationDeliveryType,\n BusinessPartnerUser,\n BusinessPartnerUsersDataActions\n} from '@msdyn365-commerce/retail-proxy';\nimport { AdminRequestStatementButton, RequestStatementModal } from '@msdyn365-commerce-modules/account-management';\nimport {\n addOrganizationUser,\n AddOrganizationUserInput,\n ArrayExtensions,\n deleteOrganizationUser,\n DeleteOrganizationUserInput,\n editOrganizationUser,\n EditOrganizationUserInput,\n EmailRegex,\n Random,\n StringExtensions\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n Heading,\n IDataTableProps,\n IHeadingsProperty,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITableItemProps,\n ITableRowProps,\n ITelemetryContent,\n Table,\n TableDataType,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListData } from './business-organization-list.data';\nimport { IBusinessOrganizationListProps, IBusinessOrganizationListResources } from './business-organization-list.props.autogenerated';\nimport { FormButton, FormFieldError, FormInput, FormLabel, IBusinessFormItem, IUserFormItem } from './components';\n\nexport interface IBusinessOrganizationListViewProps extends IBusinessOrganizationListProps {\n OrganizationUserList: IModuleProps;\n moduleContainer: INodeProps;\n heading: React.ReactNode;\n noUsersText?: string;\n addUserButton?: React.ReactNode;\n search?: React.ReactNode;\n organizationListTable: React.ReactNode;\n form?: IFormViewProps;\n formItems?: IUserFormItem[];\n formType: FormType;\n deleteUserForm?: React.ReactNode;\n viewUserDetails?: React.ReactNode;\n modalHeading?: React.ReactNode;\n modalState?: boolean;\n requestAccountStatementButton: React.ReactNode;\n requestStatementModal: React.ReactNode;\n toggleModal?(): void;\n}\n\nexport interface IBusinessOrganizationListState {\n isReady: boolean;\n formItems: IUserFormItem[];\n isFormActive: boolean;\n formType: FormType;\n selectedUserData?: BusinessPartnerUser;\n referenceBack?: HTMLButtonElement | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n displayedUserData?: any;\n refresh: boolean;\n isModalOpen: boolean;\n hasFormError: boolean;\n hasActionError: boolean;\n isStatementRequestModalOpen: boolean;\n statementRequestFromDateString: string;\n statementRequestToDateString: string;\n isStatementRequestAdminDropdownOpen: boolean;\n statementRequestFullOrg: boolean;\n statementRequestMaxDateString?: string;\n businessUserActionRetailErrorMsg: string;\n}\n\ntype GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport enum FormType {\n None = 'NONE',\n Edit = 'EDIT',\n Remove = 'REMOVE',\n View = 'VIEW',\n Add = 'ADD'\n}\n\nexport enum InputType {\n Text = 'text',\n Email = 'email'\n}\n\nexport enum InputID {\n FirstName = 'FirstName',\n LastName = 'LastName',\n B2BUserId = 'B2BUserId',\n Email = 'Email',\n SpendingLimit = 'SpendingLimit',\n Status = 'Status',\n FullName = 'Name'\n}\n\nexport interface IFormViewProps {\n modalClassName: string;\n FormWrapper: INodeProps;\n modalHeading?: string;\n modalDescription?: React.ReactNode;\n inputs?: IBusinessFormItem[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n selectedUser?: any;\n buttons?: React.ReactNode[];\n errorMessage?: React.ReactNode[];\n resources: IBusinessOrganizationListResources;\n toggle?(): void;\n}\n\nexport const renderInputSection = (\n inputs: IUserFormItem[],\n className: string,\n asteriskAfterLabel: string,\n onInputChange: (event: React.ChangeEvent) => void\n): IBusinessFormItem[] => {\n return inputs.map(element => {\n const { customClass, id, type, label, maxChars, isRequired, pattern, value, isDisabled, fieldReference } = element;\n return {\n wrapper: {\n className: classnames(className, id, customClass)\n },\n key: id,\n label: ,\n errorMessage: ,\n input: (\n \n )\n };\n });\n};\n\ninterface IUserTableItemProps extends ITableItemProps {\n user: BusinessPartnerUser;\n}\n\n/**\n *\n * BusinessOrganizationList component.\n * @extends {React.PureComponent>}\n */\n@observer\nclass BusinessOrganizationList extends React.Component<\n IBusinessOrganizationListProps,\n IBusinessOrganizationListState\n> {\n public BusinessFormDefaultInputs: IUserFormItem[] = [\n {\n id: InputID.FirstName,\n type: InputType.Text,\n label: this.props.resources.businessUserFirstNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.LastName,\n type: InputType.Text,\n label: this.props.resources.businessUserLastNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.Email,\n type: InputType.Email,\n label: this.props.resources.businessUserEmailAddressLabelText,\n value: '',\n isRequired: true,\n pattern: EmailRegex.defaultRegex.source,\n customClass: 'width-100'\n },\n {\n id: InputID.SpendingLimit,\n type: InputType.Text,\n label: this.props.resources.businessUserSpendingLimitLabelText,\n value: '',\n isRequired: false,\n customClass: 'width-50',\n maxChars: this.props.config?.maxLength\n }\n ];\n\n @observable\n private _viewport: GridSize;\n\n private readonly delayFocus: number = 110;\n\n private formChildReference: React.RefObject[] = [];\n\n private userFormEditReference: React.RefObject[] = [];\n\n private userFormDeleteReference: React.RefObject[] = [];\n\n private readonly submitButtonReference: React.RefObject;\n\n private readonly addUserButtonReference: React.RefObject;\n\n private readonly statementRequestButtonReference: React.RefObject;\n\n private readonly moduleClassName: string = 'ms-business-organization-list';\n\n private readonly mobileExcludedColumns: string[];\n\n @computed get isMobile(): boolean {\n return this._viewport === 'xs' || this._viewport === 'sm';\n }\n\n @computed get canSubmitStatementRequest(): boolean {\n return (\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestFromDateString) &&\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestToDateString)\n );\n }\n\n @computed get selectedUserName(): string {\n const { businessUserSelectedUserDisplayName } = this.props.resources;\n return this.state.selectedUserData\n ? businessUserSelectedUserDisplayName\n .replace('{firstName}', this.state.selectedUserData.FirstName || '')\n .replace('{lastName}', this.state.selectedUserData.LastName || '')\n : '';\n }\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: IBusinessOrganizationListProps) {\n super(props);\n this._toggleModal = this._toggleModal.bind(this);\n this._onInputChange = this._onInputChange.bind(this);\n this._handleRemoveUserButton = this._handleRemoveUserButton.bind(this);\n\n this.mobileExcludedColumns = [InputID.Email, InputID.Status, InputID.SpendingLimit];\n this._viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._updateViewport = this._updateViewport.bind(this);\n this.submitButtonReference = React.createRef();\n this.addUserButtonReference = React.createRef();\n this.statementRequestButtonReference = React.createRef();\n this.state = {\n isReady: false,\n formItems: this.addedReference(),\n isFormActive: false,\n formType: FormType.None,\n refresh: true,\n isModalOpen: false,\n hasFormError: false,\n hasActionError: false,\n isStatementRequestModalOpen: false,\n statementRequestFromDateString: '',\n statementRequestToDateString: '',\n isStatementRequestAdminDropdownOpen: false,\n statementRequestFullOrg: false,\n statementRequestMaxDateString: new Date().toISOString().split('T')[0],\n businessUserActionRetailErrorMsg: ''\n };\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n }\n\n public addedReference(): IUserFormItem[] {\n const newFormFields = this.BusinessFormDefaultInputs;\n return newFormFields.map((input, index) => {\n this.formChildReference[Number(index)] = React.createRef();\n input.fieldReference = this.formChildReference[Number(index)];\n return input;\n });\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser && window.addEventListener) {\n window.addEventListener('resize', this._updateViewport);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser && window.removeEventListener) {\n window.removeEventListener('resize', this._updateViewport);\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IBusinessOrganizationListProps,\n nextState: IBusinessOrganizationListState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n\n if (!this.state.isModalOpen && this.state.isModalOpen !== nextState.isModalOpen) {\n setTimeout(() => {\n this.formChildReference[0].current?.focus();\n this.submitButtonReference.current?.focus();\n }, this.delayFocus);\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config,\n resources,\n data: { users }\n } = this.props;\n const { className, heading } = config;\n const {\n businessUserAddUserButtonText,\n businessUserLoadingMessage,\n businessUserEmptyListMessage,\n businessUserErrorGettingUsersMessage,\n userAccountStatementLabel,\n fullOrganizationLabel,\n requestStatementButtonLabel,\n statementRequestModalHeaderLabel,\n cancelLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n sendToEmailLabel,\n selectedUserLabel\n } = resources;\n const {\n formItems,\n isFormActive,\n formType,\n isModalOpen,\n statementRequestFromDateString,\n statementRequestToDateString,\n isStatementRequestModalOpen,\n statementRequestMaxDateString\n } = this.state;\n\n const hasUsers = users && users.result && users.result.length > 0;\n this.payLoad.contentAction.etext = TelemetryConstant.AddUser;\n const addUserAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n const customer = this.props.data.customerInformation?.result;\n\n if (!hasUsers) {\n let errorMessage = '';\n if (users.status === 'LOADING') {\n errorMessage = businessUserLoadingMessage;\n } else if (users.status === 'FAILED') {\n errorMessage = businessUserErrorGettingUsersMessage;\n } else if (users.result && users.result.length === 0) {\n errorMessage = businessUserEmptyListMessage;\n }\n\n const errorProps = {\n ...this.props,\n className,\n OrganizationUserList: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n moduleContainer: {\n className: `${this.moduleClassName}__container`\n },\n heading: heading && ,\n addUserButton: (\n \n {businessUserAddUserButtonText}\n \n ),\n noUsersText:

{errorMessage}

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

{businessUserRemoveModalDescription}

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

{businessUserAllFieldsRequiredMessage}

\n ),\n inputs: renderInputSection(formItems, `${formClassName}-item`, asteriskAfterLabel, this._onInputChange),\n buttons: [\n ,\n \n ],\n errorMessage: [\n hasFormError && (\n \n ),\n hasActionError && (\n \n )\n ],\n resources\n };\n }\n\n // _onInputChange: updates the fomrItems state on every input change\n private readonly _onInputChange = (event: React.ChangeEvent): void => {\n const newForm = this.state.formItems;\n\n newForm.forEach(item => {\n if (item.id === event.target.id) {\n item.value = event.target.value;\n }\n });\n\n // Update state object with latest values and check if form is ready\n // TODO: remove !refresh\n this.setState(prev => ({\n refresh: !prev.refresh,\n isReady: this._isFormReady(),\n formItems: newForm,\n hasFormError: false,\n hasActionError: false\n }));\n };\n\n // _isFormReady: checks whether the current values in the input fields are valid for submission, this will also disable/enable the submit button.\n private readonly _isFormReady = (): boolean => {\n const { formItems } = this.state;\n\n for (const formItem of formItems) {\n // Will return TRUE if:\n // - input field is required and EMPTY\n // OR\n // - pattern provided and value does not match pattern\n // OR\n // - if spendingLimit input --> make sure value can be parsed into an NUMBER\n if (formItem.isRequired && formItem.value.length === 0) {\n return false;\n } else if (formItem.pattern !== undefined && formItem.value.match(formItem.pattern) === null) {\n return false;\n } else if (formItem.id === InputID.SpendingLimit && formItem.value !== '' && isNaN(Number.parseFloat(formItem.value))) {\n this.setState({\n hasFormError: true\n });\n return false;\n }\n }\n\n return true;\n };\n\n private readonly _formatPrice = (price: number): string => {\n return this.props.context.cultureFormatter ? this.props.context.cultureFormatter.formatCurrency(price) : price.toString();\n };\n\n private readonly _getCurrentUrl = (reqContext: IRequestContext): URL => {\n if (MsDyn365.isBrowser) {\n return new URL(window.location.href);\n }\n\n // NOTE: Typing on requestURL is incorrect\n if (reqContext.url.requestUrl.href) {\n return new URL(reqContext.url.requestUrl.href);\n }\n return new URL(reqContext.url.requestUrl.href);\n };\n\n private _updateViewport(): void {\n this._viewport = this._getViewport();\n }\n\n private readonly _getViewport = (): GridSize => {\n const { context } = this.props;\n\n // Always render in mobile viewport on a mobile device\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (MsDyn365.isBrowser && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n\n return 'xs';\n };\n\n private readonly _toggleStatementRequestDropdown = (): void => {\n this.setState({\n isStatementRequestAdminDropdownOpen: !this.state.isStatementRequestAdminDropdownOpen\n });\n };\n\n private readonly _updateFromDate = (newFromDate: string) => {\n this.setState({\n statementRequestFromDateString: newFromDate\n });\n };\n\n private readonly _updateToDate = (newToDate: string) => {\n this.setState({\n statementRequestToDateString: newToDate\n });\n };\n\n private readonly _showRequestStatementModal = (isFullOrg: boolean) => {\n this.setState({\n statementRequestFullOrg: isFullOrg,\n isStatementRequestModalOpen: true\n });\n };\n\n private readonly _requestStatement = () => {\n const customer = this.props.data.customerInformation.result!;\n const businessPartnerUsers = this.props.data.users.result!;\n\n const currentUser = businessPartnerUsers.find(element => element.Email === customer.Email);\n const B2BUserId = this._getB2BUserId(currentUser);\n\n const statementRequest: AccountStatementRequest = {\n FromDate: new Date(this.state.statementRequestFromDateString),\n ToDate: new Date(this.state.statementRequestToDateString),\n IsForFullOrganization: this.state.statementRequestFullOrg,\n RequestedUserId: B2BUserId,\n RequestingUserEmail: customer.Email,\n DeliveryTypeValue: BusinessPartnerOperationDeliveryType?.Email || 1\n };\n\n const context = { callerContext: this.props.context.actionContext };\n\n BusinessPartnerUsersDataActions.requestAccountStatementAsync(context, B2BUserId, statementRequest);\n\n this._closeStatementRequestModal();\n };\n\n private readonly _getB2BUserId = (currentUser: BusinessPartnerUser | undefined) => {\n if (this.state.statementRequestFullOrg || !this.state.selectedUserData) {\n return currentUser ? currentUser.B2BUserId : '';\n }\n return this.state.selectedUserData.B2BUserId;\n };\n\n private readonly _closeStatementRequestModal = () => {\n this.setState({\n isStatementRequestModalOpen: false\n });\n this.statementRequestButtonReference.current?.focus();\n };\n\n private readonly _onSelectRow = (records: ITableRowProps[]) => {\n const selectedRow = records.find(rowProps => rowProps.isSelected);\n\n this.setState({\n selectedUserData: selectedRow ? (selectedRow.row[0] as IUserTableItemProps).user : undefined\n });\n };\n}\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * 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\nexport * from './modules/account-address-tile';\nexport * from './modules/account-customer-balance';\nexport * from './modules/account-customer-balance-tile';\nexport * from './modules/account-generic-tile';\nexport * from './modules/account-loyalty';\nexport * from './modules/account-loyalty-tile';\nexport * from './modules/account-order-templates-tile';\nexport * from './modules/account-profile';\nexport * from './modules/account-profile-edit';\nexport * from './modules/account-welcome-tile';\nexport * from './modules/account-wishlist-tile';\nexport * from './modules/b2b-requests-status';\nexport * from './modules/b2b-requests-tile';\nexport * from './modules/loyalty-sign-up';\nexport * from './modules/loyalty-terms';\nexport * from './modules/password-reset';\nexport * from './modules/password-reset-verification';\nexport * from './modules/sign-in';\nexport * from './modules/sign-up';\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * 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\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst AccountProfileEditError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default AccountProfileEditError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHeader,\n IList,\n IOrderHistoryViewProps,\n IOrderInformation,\n ISalesOrder\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderHistoryOrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n channelName,\n createdDate,\n count,\n amount,\n channelReferenceId\n}) => (\n \n {channelName}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const OrderHistoryGroupDelivery: React.FC = ({\n deliveryProps,\n heading,\n count,\n processing,\n address,\n trackingInfo\n}) => (\n \n {heading}\n {count}\n {processing}\n {address}\n {trackingInfo}\n \n);\n\nexport const OrderHistoryGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n {salesLine.salesLine}\n ))}\n \n )}\n \n);\n\nexport const OrderHistoryGroups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderHistoryHeader: React.FC = ({ headerProps, heading, orderCountLabel, extraActions }) => (\n \n {heading}\n {orderCountLabel}\n {extraActions}\n \n);\n\nexport const OrderHistorySalesOder: React.FC = ({\n salesOrderProps,\n orderInfomation,\n groups,\n orderDetailsLink,\n expandProductsButton\n}) => (\n \n {orderInfomation && }\n {groups && }\n {expandProductsButton}\n {orderDetailsLink}\n \n);\n\nexport const OrderHistoryList: React.FC = ({ listProps, salesOrders }) => (\n \n {salesOrders && salesOrders.map((salesOrder, index) => )}\n \n);\n\nconst OrderHistoryView: React.FC = ({\n orderHistoryProps,\n header,\n alert,\n loading,\n emptyMessage,\n backToShoppingLink,\n list,\n table,\n moreButton\n}) => (\n \n {header && }\n {loading}\n {alert && (\n <>\n {alert}\n {backToShoppingLink}\n \n )}\n {emptyMessage && (\n \n {emptyMessage}\n {backToShoppingLink}\n \n )}\n {list && }\n {table}\n {moreButton && moreButton}\n \n);\n\nexport default OrderHistoryView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport Msdyn365, {\n ContentEditableEvent,\n generateImageUrl,\n getCatalogId,\n getUrlSync,\n Image,\n RichTextComponent,\n Text\n} from '@msdyn365-commerce/core';\nimport { MediaLocation, ProductCatalog } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ICatalogPickerData } from './catalog-picker.data';\nimport { ICatalogPickerProps } from './catalog-picker.props.autogenerated';\n\n/**\n * ICatalogPickerViewProps.\n */\nexport interface ICatalogPickerViewProps extends ICatalogPickerProps {\n catalogPicker: IModuleProps;\n heading: React.ReactNode;\n paragraph: React.ReactNode;\n catalogs: ReactNode;\n}\n\n/**\n * CatalogPicker component.\n * @extends {React.PureComponent>}\n */\nexport class CatalogPicker extends React.PureComponent> {\n private static readonly _moduleClassName = 'ms-catalog-picker';\n\n public constructor(props: ICatalogPickerViewProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { heading, paragraph } = this.props.config;\n\n const catalogPickerHeading = heading && (\n \n );\n\n const isCatalogsAvailable: boolean = ArrayExtensions.hasElements(this.props.data.catalogs?.result);\n const catalogPickerParagraph = paragraph && (\n \n );\n const viewProps = {\n ...this.props,\n handleText: this.handleTextChange,\n catalogPicker: {\n moduleProps: this.props,\n className: CatalogPicker._moduleClassName\n },\n heading: catalogPickerHeading,\n paragraph: catalogPickerParagraph,\n catalogs: isCatalogsAvailable ? this._renderCatalogPicker() : ''\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n private _renderCatalogPickerButton(item: ProductCatalog): React.ReactNode {\n const catalogId = item.RecordId;\n const currentCatalogId = getCatalogId(this.props.context.request);\n if (currentCatalogId === catalogId) {\n return
{this.props.resources.currentCatalogText}
;\n }\n let linkToCatalog = '';\n if (Msdyn365.isBrowser) {\n const catalogUrl = getUrlSync('home', this.props.context.actionContext) ?? '';\n const fullUrl = new URL(catalogUrl, window.location.href);\n fullUrl.searchParams.set('catalogid', `${catalogId}`);\n linkToCatalog = fullUrl.href;\n }\n return (\n \n {this.props.resources.changeCatalogButtonText}\n \n );\n }\n\n private _renderCatalogPicker(): React.ReactNode {\n const catalogs = this.props.data.catalogs?.result;\n\n const isBrowser = Msdyn365.isBrowser;\n\n return (\n
\n {catalogs?.map(item => {\n const reactKey = `${JSON.stringify(item)}-${String(isBrowser)}`;\n const image: MediaLocation | undefined = ArrayExtensions.firstOrDefault(item.Images);\n return (\n \n

{item.Name}

\n
\n \n
\n {this._renderCatalogPickerButton(item)}\n
\n
\n
\n );\n })}\n \n );\n }\n}\n\nexport default CatalogPicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { CustomerBalances } from '@msdyn365-commerce/retail-proxy';\nimport { getTelemetryObject, Heading, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { computed, reaction } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileData } from './account-customer-balance-tile.data';\nimport { IAccountCustomerBalanceTileProps } from './account-customer-balance-tile.props.autogenerated';\nimport { CreditComponent, ErrorComponent } from './components/account-customer-balance-tile-info';\nimport LinksComponent from './components/account-customer-balance-tile-links';\n\nexport interface IAccountCustomerBalanceTileViewProps extends IAccountCustomerBalanceTileProps {\n AccountCustomerBalanceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n content: React.ReactNode;\n links: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceTileViewState {\n isDetailsLinkDisplayed: boolean;\n content: React.ReactNode;\n}\n\n/**\n *\n * AccountCustomerBalanceTile component.\n * @extends {React.Component>}\n */\nclass AccountCustomerBalanceTile extends React.Component<\n IAccountCustomerBalanceTileProps,\n IAccountCustomerBalanceTileViewState\n> {\n @computed get hasError(): boolean {\n return get(this.props, 'data.balance.status') !== 'SUCCESS';\n }\n\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountCustomerBalanceTileProps) {\n super(props);\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n this.state = { ...this._initState() };\n\n reaction(\n () => this.hasError,\n () => {\n this.props.context.telemetry.error('Error retrieving customer account balance');\n this.setState({\n content: \n });\n }\n );\n }\n\n @computed get isCustomerAccountPaymentEnabled(): boolean {\n const customerResult = get(this.props, 'data.customerInformation.result');\n\n const allowOnAccountPayment = customerResult ? customerResult.AllowOnAccountPayment : false;\n const isB2BSite = isChannelTypeB2B(this.props.context.request);\n const enableCustomerAccountPayment = get(this.props, 'context.request.app.platform.enableCustomerAccountPayment');\n\n return (\n allowOnAccountPayment &&\n (enableCustomerAccountPayment === 'all' ||\n (enableCustomerAccountPayment === 'b2b' && isB2BSite) ||\n (enableCustomerAccountPayment === 'b2c' && !isB2BSite))\n );\n }\n\n public shouldComponentUpdate(\n nextProps: IAccountCustomerBalanceTileProps,\n nextState: IAccountCustomerBalanceTileViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n if (!this.isCustomerAccountPaymentEnabled) {\n return <>;\n }\n\n const { className, heading, links } = this.props.config;\n const viewProps = {\n ...this.props,\n AccountCustomerBalanceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-customer-balance-tile', className)\n },\n heading: heading && (\n \n ),\n content: this.state.content,\n links: this.state.isDetailsLinkDisplayed && (\n (event: Msdyn365.ContentEditableEvent) => void 0,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n }}\n />\n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _initState(): IAccountCustomerBalanceTileViewState {\n const account: CustomerBalances = get(this.props, 'data.balance.result');\n\n let content: React.ReactNode;\n let isDetailsLinkDisplayed = false;\n\n if (this.hasError) {\n this.props.telemetry.error('Error retrieving customer account balance');\n content = ;\n } else if (\n account.Balance === 0 &&\n account.CreditLimit === 0 &&\n account.InvoiceAccountBalance === 0 &&\n account.InvoiceAccountCreditLimit === 0\n ) {\n // Non-established credit\n content = ;\n } else {\n // Successfully retrieved balance\n const { accountCreditVerbagePrefix, accountCreditVerbagePostfix } = this.props.resources;\n const currencyCode = get(this.props, 'context.request.channel.Currency');\n const formatCurrency = get(this.props, 'context.cultureFormatter.formatCurrency');\n let customerCredit = 0;\n\n if (account.InvoiceAccountCreditLimit === 0) {\n customerCredit = account.CreditLimit - account.Balance;\n } else {\n customerCredit = account.InvoiceAccountCreditLimit - account.InvoiceAccountBalance;\n }\n\n const customerCreditFormatted = `${formatCurrency(customerCredit.toFixed(2), currencyCode)}`;\n\n isDetailsLinkDisplayed = true;\n content = (\n \n );\n }\n\n return { content, isDetailsLinkDisplayed };\n }\n}\n\nexport default AccountCustomerBalanceTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IBusinessFormItem,\n IBusinessOrganizationListViewProps,\n IFormViewProps,\n InputID\n} from '@msdyn365-commerce-modules/business-organization-list';\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBusinessOrganizationListProps,\n IBusinessOrganizationListResources\n} from '../definition-extensions/business-organization-list.ext.props.autogenerated';\n\n/**\n * Business Form Item component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessFormItemComponent: React.FC = (props: IBusinessFormItem) => {\n const { wrapper, label, errorMessage, input } = props;\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\n/**\n * To render modal.\n * @param className - The modal classname.\n * @param isModalOpen - The boolean for modal open status.\n * @param headingSection - The heading section of modal.\n * @param bodySection - The body section of modal.\n * @param footerSection - The footer section of modal.\n * @param toggleModal - The toggle modal callback function.\n * @returns The JSX Element.\n */\nconst renderModal = (\n className: string,\n isModalOpen: boolean,\n headingSection: React.ReactNode,\n bodySection: React.ReactNode,\n footerSection: React.ReactNode,\n toggleModal?: () => void\n) => {\n return (\n \n {headingSection}\n {bodySection}\n {footerSection}\n \n );\n};\n\n/**\n * Business User Form component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessUserFormComponent: React.FC = (props: IFormViewProps) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\n\n const modalBody = (\n <>\n {modalDescription}\n \n {inputs &&\n inputs.map((item: IBusinessFormItem) => {\n return ;\n })}\n {errorMessage?.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n \n );\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\n/**\n * Selected user interface.\n */\ninterface ISelectedUser {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n FirstName?: string;\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n LastName?: string;\n}\n\n/**\n * Business User Details component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessUserDetailsComponent: React.FC = (props: IFormViewProps) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { modalClassName, FormWrapper, modalHeading, modalDescription, buttons, errorMessage, resources, toggle } = props;\n let modalBody = null;\n const selectedUser = props.selectedUser as ISelectedUser | string;\n\n if (!selectedUser) {\n modalBody = errorMessage;\n } else {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { FirstName, LastName } = selectedUser as ISelectedUser;\n const userFullName = `${FirstName as string} ${LastName as string}`;\n\n modalBody = (\n <>\n {modalDescription}\n \n \n {userFullName}\n \n {Object.keys(selectedUser).map((data, index) => {\n if (data === InputID.FirstName || data === InputID.LastName) {\n return null;\n }\n const label = (resources[`table${data}HeadingText`] as string) || data;\n return (\n \n {label}\n {': '}\n {selectedUser[data]}\n \n );\n })}\n \n \n );\n }\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\n/**\n * To get form.\n * @param type - The type of form.\n * @param formProps - The form props.\n * @param toggleModal - The toggle modal callback function.\n * @returns The JSX Element.\n */\nconst getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\n switch (type) {\n case 'ADD':\n case 'EDIT':\n return ;\n case 'VIEW':\n case 'REMOVE':\n return ;\n default:\n return null;\n }\n};\n\n/**\n * Business Organization List component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessOrganizationListComponent: React.FC> = props => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const {\n OrganizationUserList,\n moduleContainer,\n heading,\n noUsersText,\n addUserButton,\n organizationListTable,\n form,\n formType,\n toggleModal,\n requestAccountStatementButton,\n requestStatementModal\n } = props;\n\n const buttonList: React.ReactNode = (\n \n {addUserButton}\n {requestAccountStatementButton}\n \n );\n\n if (noUsersText) {\n return (\n \n \n {heading}\n \n \n {props.resources.headingForEmptyUserOrganizationList}\n \n \n {props.resources.textForEmptyUserOrganizationList}\n \n {buttonList}\n \n {requestStatementModal}\n {noUsersText}\n \n \n );\n }\n\n return (\n \n \n {heading}\n {buttonList}\n {requestStatementModal}\n {organizationListTable}\n \n {form && getForm(formType, form, toggleModal)}\n \n );\n};\n\nexport default BusinessOrganizationListComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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","/*!\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","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IBusinessSignUpItem, IBusinessSignUpViewProps } from './eve-business-sign-up';\r\n\r\nconst BusinessSignUpItem: React.FC = ({ wrapper, label, errorMessage, input, isAddressInput }) => {\r\n // Hide label and error message if rendering address section\r\n return (\r\n \r\n {!isAddressInput && label}\r\n {input}\r\n {!isAddressInput && errorMessage}\r\n \r\n );\r\n};\r\n\r\nconst BusinesSignUpView: React.FC = props => {\r\n const { businessSignUp, ContainerWrapper, heading, businessSignUpForm } = props;\r\n\r\n const { FormWrapper, buttons, items, errorMessage, disclaimer } = businessSignUpForm;\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n \r\n {items &&\r\n items.map((item: IBusinessSignUpItem) => {\r\n return ;\r\n })}\r\n {errorMessage &&\r\n errorMessage.map((error: React.ReactNode, index: number) => {\r\n return {error};\r\n })}\r\n {buttons &&\r\n buttons.map((button: React.ReactNode, index: number) => {\r\n return {button};\r\n })}\r\n {disclaimer}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default BusinesSignUpView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IAccountProfileEditItem,\n IAccountProfileEditLoading,\n IAccountProfileEditLocalAccount,\n IAccountProfileEditViewProps\n} from './account-profile-edit';\n\nconst AccountProfileEditItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n {items &&\n items.map((item: IAccountProfileEditItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n );\n};\n\nconst AccountProfileEditLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst AccountProfileEditView: React.FC = props => {\n const { accountProfileEdit, viewState, loading, defaultAADConainer, aadConainer, heading, accountProfileEditLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(accountProfileEditLocalAccount)}\n \n \n );\n};\n\nexport default AccountProfileEditView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './sign-up-button';\nexport * from './sign-up-error';\nexport * from './sign-up-input';\nexport * from './sign-up-label';\nexport * from './sign-up-loading-icon';\nexport * from './sign-up-loading-message';\nexport * from './sign-up-success';\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport 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 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 { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ISocialShareConfig, ISocialShareProps, orientation } from './social-share.props.autogenerated';\n\nexport interface ISocialShareViewProps extends ISocialShareProps {\n isConsentGiven: boolean;\n SocialShareItemElements: React.ReactNode[];\n SocialShare: IModuleProps;\n SocialShareList: INodeProps;\n SocialShareItem: INodeProps;\n SocialShareItemCustomization: INodeProps;\n}\n\n/**\n *\n * SocialShare component.\n * @extends {React.PureComponent>}\n */\nclass SocialShare extends React.PureComponent> {\n constructor(props: ISocialShareProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { slots } = this.props;\n\n if (!slots || !ArrayExtensions.hasElements(slots.socialShareItems)) {\n this.props.context.telemetry.error('No social media is enable for sharing, module wont render');\n return null;\n }\n\n const isConsentGiven =\n this.props.context.request &&\n this.props.context.request.cookies &&\n this.props.context.request.cookies.isConsentGiven &&\n this.props.context.request.cookies.isConsentGiven();\n\n if (!isConsentGiven && !this.props.context.request.params.isEditor) {\n return null;\n }\n\n const viewprops = {\n ...this.props,\n SocialShare: {\n moduleProps: this.props,\n className: classnames('ms-social-share', this.props.config.className)\n },\n SocialShareList: {\n 'data-title': this.props.config.caption,\n className: `ms-social-share-ul ${this.props.config.caption && 'caption'} ${\n this.props.config.orientation === orientation.vertical ? 'vertical' : ''\n }`,\n tag: 'ul',\n role: 'group'\n },\n SocialShareItem: {\n className: 'ms-social-share-li',\n tag: 'li',\n tabIndex: '0',\n role: 'link'\n },\n SocialShareItemElements: slots && slots.socialShareItems.length > 0 && slots.socialShareItems\n };\n\n return this.props.renderView(viewprops) as React.ReactElement;\n }\n}\n\nexport default SocialShare;\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 {\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 { 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 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 React from 'react';\n\nexport interface IAccountOrderTemplatesTileDescription {\n description: string;\n}\n\nexport const AccountOrderTemplatesTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-order-templates-tile.props.autogenerated';\n\nexport interface IAccountOrderTemplatesTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nexport const AccountOrderTemplatesTileLinks: React.FC = ({\n links,\n onTextChange,\n telemetryContent,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-order-templates-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountOrderTemplatesTileData } from './account-order-templates-tile.data';\nimport { IAccountOrderTemplatesTileProps } from './account-order-templates-tile.props.autogenerated';\nimport { AccountOrderTemplatesTileDescription, AccountOrderTemplatesTileLinks } from './components';\n\nexport interface IAccountOrderTemplatesTileViewProps extends IAccountOrderTemplatesTileProps {\n AccountOrderTemplatesTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountOrderTemplatesTile component.\n * @extends {React.PureComponent>}\n */\nexport class AccountOrderTemplatesTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountOrderTemplatesTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n\n if (!this.props.context.request.params.isEditor && !isChannelTypeB2B(this.props.context.request)) {\n return <>;\n }\n\n const { className, heading, links } = config;\n const { accountOrderTemplatesTileDescription } = resources;\n const orderTemplates = data.orderTemplates;\n\n const orderTemplatesCount = (orderTemplates?.result || []).length;\n const description = format(accountOrderTemplatesTileDescription, orderTemplatesCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountOrderTemplatesTile: {\n moduleProps: this.props,\n className: classnames('ms-account-order-templates-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n this.props.config.heading.text = event.target.value;\n };\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountOrderTemplatesTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './account-profile-description';\nexport { IAccountProfileLinks } from './account-profile-links';\nexport * from './account-profile-text';\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { 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 { 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 { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountInvoiceTileViewProps } from './account-invoice-tile';\n\nexport default (props: IAccountInvoiceTileViewProps) => {\n const { AccountInvoiceTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport 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 * as React from 'react';\n\nexport interface IAccountProfileEditLoadingMessage {\n className: string;\n message: string;\n}\n\nconst AccountProfileEditLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default AccountProfileEditLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsViewProps } from './loyalty-terms';\n\nconst LoyaltyTermsView: React.FC = props => {\n const { LoyaltyTerms, modalToggle, modal, loading } = props;\n\n return !loading && modal ? (\n \n {modalToggle}\n \n {modal.heading}\n \n {modal.terms}\n \n {modal.checkbox}\n {modal.agreeText}\n \n \n \n {modal.submitButton}\n {modal.cancelButton}\n \n \n \n ) : null;\n};\n\nexport default LoyaltyTermsView;\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface IBusinessSignUpButtonProps {\r\n id?: string;\r\n className: string;\r\n text: string;\r\n ariaLabel: string;\r\n disabled?: boolean;\r\n link?: string;\r\n telemetryContent: ITelemetryContent;\r\n onClick?(event: React.MouseEvent): void;\r\n}\r\n\r\nexport const SignUpButton: React.FC = ({\r\n id,\r\n className,\r\n text,\r\n ariaLabel,\r\n telemetryContent,\r\n disabled,\r\n link,\r\n onClick\r\n}) => {\r\n const payLoad = getPayloadObject('click', telemetryContent, text);\r\n const attributes = getTelemetryAttributes(telemetryContent, payLoad);\r\n return (\r\n \r\n {text}\r\n \r\n );\r\n};\r\n\r\nexport default SignUpButton;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nexport interface IBusinessSignUpErrorProps {\r\n id?: string;\r\n className: string;\r\n type?: string;\r\n message?: string;\r\n}\r\n\r\nexport const SignUpError: React.FC = ({ id, className, type = 'page', message }) => {\r\n const errorClassName = `${className}__${type}-error`;\r\n\r\n return (\r\n
;\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 { IContentBlockAdditionalContentItemViewProps, IContentBlockAdditionalContentViewProps } from './components/additional-content';\nimport { IContentBlockViewProps } from './content-block';\n\n/**\n * Render Additional Content.\n * @param additionalContent - Additional content view props.\n * @returns JSX Element.\n */\nconst renderAdditionalContent = (additionalContent: IContentBlockAdditionalContentViewProps) => {\n return (\n \n {additionalContent.additionalContentItems?.map((item: IContentBlockAdditionalContentItemViewProps) => {\n return (\n <>\n {item.heading}\n \n {item.text}\n {item.links}\n \n \n );\n })}\n \n );\n};\n\nconst ContentBlockView: React.FC = props => {\n const {\n contentBlockContainer,\n imageContainer,\n detailsContainer,\n title,\n text,\n links,\n image,\n contentBlockAnchorTag,\n imageLink,\n imageAriaLabel,\n additionalContent\n } = props;\n\n if (imageLink) {\n return (\n \n \n {image}\n \n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n }\n return (\n \n {image}\n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n};\n\nexport default ContentBlockView;\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","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileEditConfig, IAccountProfileEditProps } from './account-profile-edit.props.autogenerated';\nimport AccountProfileEditButtonComponent from './components/account-profile-edit-button';\nimport AccountProfileEditErrorComponent from './components/account-profile-edit-error';\nimport AccountProfileEditInputComponent from './components/account-profile-edit-input';\nimport AccountProfileEditLabelComponent from './components/account-profile-edit-label';\nimport AccountProfileEditLoadingIconComponent from './components/account-profile-edit-loading-icon';\nimport AccountProfileEditLoadingMessageComponent from './components/account-profile-edit-loading-message';\n\nexport interface IAccountProfileEditViewState {\n isShowLoading: boolean;\n}\n\nexport interface IAccountProfileEditItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IAccountProfileEditLocalAccount {\n localAccount: INodeProps;\n items: IAccountProfileEditItem[];\n errorMessage: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IAccountProfileEditLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IAccountProfileEditViewProps {\n className: string;\n viewState: IAccountProfileEditViewState;\n loading: IAccountProfileEditLoading;\n accountProfileEdit: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n accountProfileEditLocalAccount: IAccountProfileEditLocalAccount;\n}\n\n/**\n *\n * AccountProfileEdit component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass AccountProfileEdit extends React.Component> {\n private readonly moduleClassName: string = 'ms-account-profile-edit';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @observable private givenName: string;\n\n @observable private surname: string;\n\n @observable private email: string;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IAccountProfileEditProps) {\n super(props);\n this.givenName = '';\n this.surname = '';\n this.email = '';\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IAccountProfileEditProps,\n nextState: IAccountProfileEditViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n accountProfileEdit: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && config.heading.text && (\n \n ),\n accountProfileEditLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public onTextBoxChange = (event: React.ChangeEvent) => {\n const id = event.target.id;\n const value = event.target.value;\n\n switch (id.toLowerCase()) {\n case 'givenname': {\n this.givenName = value;\n break;\n }\n case 'surname': {\n this.surname = value;\n break;\n }\n case 'email': {\n this.emailRegex = value;\n break;\n }\n default:\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n const { resources } = this.props;\n const invalidEmailAddressError = resources.invalidEmailAddressError || 'Please enter a valid email address.';\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map(\n (obj: { ID: string; PRE: string; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string }) => {\n const value = obj.PRE ? this._htmlDecode(obj.PRE) : '';\n switch (obj.ID.toLowerCase()) {\n case 'givenname': {\n this.givenName = value;\n break;\n }\n case 'surname': {\n this.surname = value;\n break;\n }\n case 'email': {\n this.email = value;\n this.emailRegex = obj.PAT;\n obj.PAT_DESC = invalidEmailAddressError;\n break;\n }\n default:\n }\n }\n );\n }\n };\n\n private _htmlDecode(str: string): string {\n const e = document.createElement('div');\n\n e.innerHTML = str;\n return e.childNodes.length === 0 ? '' : e.childNodes[0].nodeValue || '';\n }\n\n private readonly _updateErrorMessage = () => {\n const { resources } = this.props;\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n required_field: resources.requiredFieldMissingError,\n verifying_blurb: resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n };\n\n private _renderLocalAccount(): IAccountProfileEditLocalAccount {\n const { config, resources } = this.props;\n const localAccount = {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('givenName', 'text', this.givenName, resources.firstNameLabelText, resources.firstNameMaxLength),\n this._renderInput('surname', 'text', this.surname, resources.lastNameLabelText, resources.lastNameMaxLength)\n ],\n errorMessage: [\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n\n if (config.showEmail && this.email !== '') {\n localAccount.items.push(\n this._renderInput('email', 'email', this.email, resources.emailAddressLabelText, undefined, this.emailRegex)\n );\n }\n\n return localAccount;\n }\n\n private _renderInput(\n id: string,\n type: string,\n value: string,\n labelText: string,\n maxLength?: string,\n pattern?: string\n ): IAccountProfileEditItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default AccountProfileEdit;\n"],"sourceRoot":""}