{"version":3,"sources":["webpack:///src/modules/password-reset/password-reset.tsx?2fc7","webpack:///src/modules/fabrikam/views/reviews-list.view.tsx?39a2","webpack:///src/modules/password-reset/components/password-reset-error.tsx?5bd3","webpack:///src/modules/order-lookup/order-lookup.view.tsx?d1dd","webpack:///src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-header.component.tsx?66e1","webpack:///src/modules/account-profile-edit/components/account-profile-edit-loading-icon.tsx?e178","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/social-share/social-share.view.tsx?76da","webpack:///src/modules/password-reset/password-reset.view.tsx?f872","webpack:///src/modules/adventureworks/views/order-history.view.tsx?16f3","webpack:///src/modules/adventureworks/views/checkout-customer-account-payment.view.tsx?fdf3","webpack:///./src/themes/nile-theme/views/k3-compositions.view.tsx?b79b","webpack:///src/modules/account-profile-edit/components/account-profile-edit-button.tsx?8f71","webpack:///src/modules/tile-list/tile-list.tsx?f539","webpack:///src/modules/fabrikam/views/cart.view.tsx?8115","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/password-reset/components/password-reset-loading-message.tsx?a735","webpack:///./src/themes/nile-theme/views/search-result-container.view.tsx?6a70","webpack:///src/modules/account-profile-edit/components/account-profile-edit-label.tsx?505c","webpack:///src/modules/tile-list/tile-list.view.tsx?d2bd","webpack:///./src/themes/nile-theme/views/checkout-gift-card.view.tsx?5a93","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/adventureworks/views/components/search.categorysuggest.tsx?5c98","webpack:///src/modules/adventureworks/views/components/search.mobile.empty.tsx?16ff","webpack:///src/modules/adventureworks/views/components/search.form.tsx?f934","webpack:///src/modules/adventureworks/views/components/search.keywordsuggest.tsx?34ae","webpack:///src/modules/adventureworks/views/components/search.productsuggest.tsx?1992","webpack:///src/modules/adventureworks/views/search.view.tsx?4e21","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-profile-edit/account-profile-edit.view.tsx?72b7","webpack:///./src/themes/nile-theme/views/components/price.component.tsx?f97e","webpack:///src/modules/check-in-for-pickup/check-in-confirmation.tsx?9d47","webpack:///src/modules/check-in-for-pickup/check-in-error.tsx?9f7f","webpack:///src/modules/check-in-for-pickup/check-in-for-pickup.tsx?404b","webpack:///src/modules/social-share/social-share.tsx?ed88","webpack:///src/modules/password-reset/components/password-reset-input.tsx?7f32","webpack:///./src/themes/nile-theme/views/checkout-loyalty.view.tsx?efbe","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/check-in-for-pickup/check-in-for-pickup.view.tsx?26b3","webpack:///src/modules/account-profile-edit/components/account-profile-edit-loading-message.tsx?2c6f","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/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/content-block/content-block.view.tsx?a86e","webpack:///src/modules/account-profile-edit/account-profile-edit.tsx?a9d6"],"names":["PasswordReset","React","constructor","props","super","moduleClassName","handleHeadingChange","event","this","config","heading","text","target","value","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","setTimeout","clearInterval","window","isInitialized","map","obj","ID","toLowerCase","newPasswordRegex","PAT","reenterPasswordRegex","resources","message","verifying_blurb","loadingMessage","Object","assign","PasswordRegex","defaultRegex","source","telemetryContent","getTelemetryObject","context","request","telemetryPageName","friendlyName","telemetry","componentDidMount","componentDidUpdate","shouldComponentUpdate","nextProps","nextState","state","data","render","viewProps","_objectSpread","viewState","isShowLoading","passwordReset","moduleProps","className","classnames","loading","modal","tag","Modal","isOpen","modalBody","ModalBody","icon","PasswordResetLoadingIconComponent","PasswordResetLoadingMessageComponent","defaultAADConainer","id","style","display","aadConainer","Msdyn365","editProps","onEdit","requestContext","passwordResetLocalAccount","_renderLocalAccount","renderView","localAccount","items","_renderInput","newPasswordLabelText","confirmPasswordLabelText","errorMessage","PasswordResetErrorComponent","key","passwordEntryMismatchError","requiredFieldMissingError","fieldIncorrectError","buttonsWrapper","buttons","PasswordResetButtonComponent","ariaLabel","saveButtonAriaLabel","saveButtonText","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","type","labelText","pattern","wrapper","label","PasswordResetLabelComponent","forId","input","PasswordResetInputComponent","__decorate","observable","observer","buildReviewCard","Node","cardProps","headerProps","rating","name","date","cardBodyProps","reviewProps","reviewTitle","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","ratingHelpfulLabel","like","dislike","edit","report","createReviewModal","Module","modalHeader","form","inputRow","ratingLabel","titleLabel","titleInput","textLabel","textInput","privacyPolicyUrl","error","modalFooter","submitButton","cancelButton","createReportModal","reported","headerSubmitted","header","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton","ReviewsListview","averageRating","filterByDropdown","noReviewsMessage","noReviewsWithFilterMessage","pageControls","refineReviewsProps","reportReviewModal","reviewsListProps","reviewCards","reviewCount","reviewModal","sortByDropdown","userReview","length","isFilterApplied","review","PasswordResetError","_ref","errorClassName","role","OrderLookupViewComponent","_orderLookupForm$clas","_submitButton$classNa","orderLookup","orderLookupContainer","orderLookupAdditionalFieldContainer","paragraph","orderLookupForm","renderOrderLookupInputField","orderNumberInput","additionalProperties","registeredUserMessage","fieldErrorMessage","ArrayExtensions","hasElements","item","submitButtonLabelText","componentClassName","OrderHistoryWithSearchAndFiltersHeaderComponent","createComponent","component","salesOrders","textProps","showOrderCount","extraActions","orderCount","orderCountText","orderCountLabel","ordersCountLabel","createElement","onChange","AccountProfileEditLoadingIcon","assembleNode","itemIndex","_item$links","renderHeading","additionalContentHeading","handleAdditionalTextChange","subtext","renderParagraph","additionalContentParagraphText","links","ctaLink","index","renderLinks","linkIndex","editableLink","linkText","linkUrl","destinationUrl","openInNewTab","link","onTextChange","handleAdditionalLinkTextChange","additionalContentItemContainer","additionalContentItemLinks","contentBlockAdditionalContent","additionalContent","reactNodes","push","additionalContentNode","additionalContentItems","ContentCardLinks","_mapEditableLinks","linkdata","editableLinks","forEach","payLoad","getPayloadObject","contentAction","etext","attributes","getTelemetryAttributes","btnClass","onClick","onTelemetryClick","ContentBlock","handleTextChange","handleParagraphChange","handleLinkTextChange","Number","_heading$tag","_this$props$context$r","_this$props$config$im","image","imageAriaLabel","contentBlockTitle","imageProps","gridSettings","imageSettings","contentBlockLinks","LinksComponent","msdyn365__moduleLayout","contentBlockText","contentBlockImage","preserveImageSpace","moduleType","typeName","imagePropertyName","moduleId","layout","shouldSkipToMainImage","contentBlockviewProps","title","moduleClass","contentBlockContainer","imageContainer","detailsContainer","contentBlockAnchorTag","imageLink","_getImageLink","handleAdditionalParagraphChange","handleAdditionalText","handleAdditionalParagraph","additionalContentObject","actionableRegion","SocialShareView","SocialShareList","SocialShareItemElements","SocialShareItem","SocialShare","SocialShareElement","PasswordResetItem","PasswordResetLoading","_ref3","PasswordResetView","_ref2","button","LocalAccount","OrderHistoryOrderInfomation","orderInformationProps","salesId","receiptId","channelName","createdDate","count","amount","channelReferenceId","OrderHistoryGroupDelivery","deliveryProps","processing","address","trackingInfo","OrderHistoryGroup","groupProps","delivery","salesLinesProps","salesLines","salesLine","LineId","OrderHistoryGroups","_ref4","groupsProps","groups","group","OrderHistoryHeader","_ref5","OrderHistorySalesOder","_ref6","salesOrderProps","orderInfomation","orderDetailsLink","expandProductsButton","placedBy","OrderHistoryList","_ref7","listProps","salesOrder","OrderHistoryView","_ref8","orderHistoryProps","alert","emptyMessage","backToShoppingLink","list","table","moreButton","SummaryForm","formProps","addPaymentButton","appliedLine","bottomBorder","paymentAmountInput","EditForm","inputLabel","inputAmount","customerName","customerAccountNumber","customerSince","accountCredit","accountDetails","CheckoutCustomerAccountView","checkoutCustomerAccount","checkoutErrorRef","summaryView","editView","moduleState","ref","isReady","productCompositions","compositionTypes","fibres","productRecId","open","compositionState","setCompositionState","undefined","_toggle","hasSetValue","setHasSetValue","_productCompositions$","result","filter","composition","Product","_productCompositions$2","thatOne","ItemDataAreaId","compositionMap","Map","cs","collection","get","CompositionType","set","Drawer","collapseProps","timeout","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","onToggle","values","cm","_compositionTypes$res","find","el","RecId","Description","c","_fibres$result","Fibre","Percent","AccountProfileEditButton","disabled","Button","TileList","_telemetryContent","StringExtensions","isNullOrWhitespace","Heading","headingTag","_this$props$config$cl","propsCarousel","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","vertical","_createHeading","singleSlideCarouselComponentProps","tileItemContainer","tileListContainer","tileListHeading","tiles","slots","content","_renderPromotions","promotions","promotionMessageWrapper","promotionMessage","promotionSeeAllLink","promotionDialog","_renderCartlines","cartLines","storeSelector","backToShoppingButton","waitingComponent","cartLoadingStatus","cartDataResult","mulitplePickUp","emailDeliveryModeCode","emptyCartText","cartLine","MsDyn365","isBrowser","toString","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","_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","actionContext","channel","EmailDeliveryModeCode","multiplePickUpEnabled","_cartLine$pickUpInSto","pickUpText","shippingText","emailshippingText","payInvoicesDisplayText","groupTitle","IsInvoiceLine","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","cart","hasInvoiceLine","CartlinesWrapper","orderSummaryHeading","OrderSummaryWrapper","invoiceSummaryLineitems","orderSummaryLineitems","OrderSummaryErrors","checkoutAsSignInUserButton","checkoutAsGuestButton","expressCheckoutButton","ExpressCheckoutSectionWrapper","createTemplateFromCartButton","labelGroup","renderErrorLabel","responseErrorMessage","errorMessageClassName","renderRegisteredUserMessage","signInUrl","signInLinkClassName","registeredUserClassName","orderLookupRegisteredUserText","orderLookupViewAccountText","orderLookupSignInLinkText","infoMessage","signInText","href","renderFieldErrors","orderLookupFieldValidationErrorMessage","RenderOrderLookupAdditionalFieldInput","_getOrderLookupAdditionalFields","additionalFieldLabel","additionalFieldError","additionalFieldInput","additionalFieldLabelClassName","inputType","isValidAdditionalFieldName","additionalFieldValidationMessage","RenderOrderLookupFormFields","_getOrderLookupFields","orderLookupLabelClassName","orderLookupLabel","inputReference","fieldErrorClassName","isInputTypeError","renderAlert","isValidInputField","OrderLookupSearchValues","OrderLookup","isEmailValue","isOrderNumberValue","orderLookupExtensibleEnum","handleSubmit","orderNumber","email","orderLookupValue","orderStatusLookUpParametersType","orderLookupName","_validateOrderLookupForm","_Msdyn365$getUrlSync","actionContextValue","orderDetailsPath","baseUrl","URL","location","origin","redirectUrl","searchParameters","searchParams","fieldName","replace","toLocaleLowerCase","fieldValue","_this$orderNumberInpu","_this$emailInputRef$c","orderNumberInputRef","current","emailInputRef","setState","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","orderLookupHeading","_createParagraph","autoComplete","onSubmit","user","submit","_renderAdditionalFields","_getExtensibleEnumera","_getExtensibleEnumera2","isOrderLookupAdditionalFieldValid","isOrderLookupFieldValid","getExtensibleEnumerations","StoreOperationsDataActions","getExtensibleEnumerationsAsync","callerContext","TypeName","ExtensibleEnumerations","orderLookupAdditionalParameter","validateOrderLookupField","orderStatusLookUpParameter","isValidField","Name","validateOrderLookupAdditionalField","orderStatusLookUpAdditionalParameters","isValidAdditionalField","_item$fieldKey","fieldKey","validateAdditionalFieldWithProxy","some","setLookupFieldState","additionalFieldsInput","PasswordResetLoadingMessage","createSearchResultModal","modalProps","refineMenu","sortByDropDown","isRecoSearchPage","createModalBody","renderSort","renderRefiner","refiners","RefineMenuContainer","RefinerSectionContainer","submenu","SortingContainer","renderCategoryHierarchy","CategoryHierarchyContainer","categoryHierarchyList","categoryHierarchySeparator","category","renderTitle","TitleContainer","titlePrefix","titleText","titleCount","SearchResultContainerView","SearchResultContainer","products","pagination","ProductsContainer","ProductSectionContainer","choiceSummary","isMobile","modalToggle","searchResultModal","TitleViewProps","categoryHierarchy","CategoryNavContainer","RefineAndProductSectionContainer","FeatureSearchContainer","similarLookProduct","query","recommendation","newOptions","sortByOptionRelevanceDesc","sortByOptionBestSelling","sortByOptionNewScore","useEffect","swatchDisable","_sortAndFilterContainerRef","_getSortCriteriaColumn","_props$data$listPageS","sortCriteria","listPageState","sortingCritera","Columns","queryColumns","JSON","parse","decodeURIComponent","parseQueryParam","_getSortColumnFromSelectedOption","option","searchConfiguration","mappedConfiguration","sortColumn","pending","selectedSortByOption","activeDropdown","_getCurrentlySelectedOption","activeSortColumn","activeMappedConfig","mappedSearchConfig","ColumnName","IsDescending","dropdownOption","newSortOptions","LabeledDropdown","labelClassname","sortByDropdownLabel","dropdownId","dropdownClassname","toggleColor","dropdownOptions","selectedOption","onSelectOption","notification","warning","history","pushState","buildListPageUrl","fullUrl","sortingColumns","skipCount","delete","sortedRefiners","sort","first","second","RefinerRecordId","stringify","compressedRefiners","refiner","compressedRefiner","refinerKey","compressRefiners","url","requestUrl","getCurrentUrl","transaction","currentPageNumber","document","_strikeSVG","imgCollect","querySelectorAll","node","classList","contains","thisColour","src","backgroundImage","maxWidth","AccountProfileEditLabel","htmlFor","tileListView","tileItem","keyIndex","From","inputPinLabel","inputExpLabel","inputProps","inputNumProps","inputPinProps","inputExpProps","inputNumber","inputPin","inputExp","applyButton","supportExternalGiftCard","showGiftCardPinInput","showGiftCardExpInput","alertFieldLabel","SelectedGiftCard","itemProps","selectedGiftCard","removeButton","GiftCardList","_objectWithoutProperties","_excluded","AddResource","ShowResource","CheckoutGiftCardView","checkoutGiftCardProps","showGiftCard","addGiftCard","AccountProfileEditError","renderCategorySuggestionsTitle","inCategoriesHeading","categoryAutoSuggestionHeading","CategorySuggestionsComponent","noResultText","isLoadingAutoSuggest","isLoadingNode","autosuggestCategory","CategorySuggest","UlCategory","MobileAutoSuggestEmptyComponent","noSearchResultImage","Image","altText","lazyload","viewports","xs","w","h","q","renderProductNotFoundResultsImage","emptyMobileSearchTextHeading","emptyMobileSearchText","FormComponent","searchForm","formWrapper","clearSearchButtonText","isSearchText","clearSearch","cancelButtonNode","cancelBtnAriaLabel","cancelBtn","renderClearButton","submitBtn","renderKeywordSuggestionsTitle","keywordsHeading","KeywordSuggestionsComponent","keywordSuggest","ulKeyword","keywordSuggestions","renderProductSuggestionsTitle","productSuggestionsHeading","productAutoSuggestionHeading","renderProductNotFoundResults","noResultContentHeadingText","noResultContentParagraphText","ProductSuggestionsComponent","productSuggest","ulProduct","productSuggestions","productSuggestionHeading","_item$id","LiProduct","AProduct","thumbnail","price","searchSuggestionHeading","searchText","searchTextString","concat","searchAutoSuggestionHeading","format","SearchView","Search","AutoSuggestAriaLabel","AutoSuggestAriaLabelText","AutoSuggest","KeywordSuggest","ProductSuggest","UlKeyword","UlProduct","autosuggestKeyword","autosuggestProduct","SearchForm","FormWrapper","handleCancelSearchFocused","categorySuggestionHeading","setSearchTextString","useState","isMobilePort","setIsMobile","propsFormInput","propsFormInputCurrent","action","isMobileViewport","useCallback","isMobileView","variant","VariantType","Browser","addEventListener","viewport","Fragment","onBlur","isSearchFormExpanded","AccountLoyaltyTileLinks","AccountLoyaltyTile","signUpLinkText","viewLinkText","signUpLinkAriaLabel","viewLinkAriaLabel","accountLoyaltySummary","accountLoyaltyMemberSummary","loyaltyCard","description","CardNumber","decimalPrecision","points","RewardPoints","rewardPoint","ActivePoints","toFixed","DescriptionComponent","AccountProfileEditItem","AccountProfileEditLoading","AccountProfileEditView","accountProfileEdit","accountProfileEditLocalAccount","getOriginalPrice","_props$data$price$Bas","_props$data$price$Tra","_props$data$price$Adj","Math","max","BasePrice","TradeAgreementPrice","AdjustedPrice","formatCurrency","shouldUseFreePriceText","freePriceText","cultureFormatter","renderCurrentPrice","maxVariantPrice","MaxVariantPrice","minVariantPrice","MinVariantPrice","_props$priceResources","isPriceMinMaxEnabled","itemProp","priceResources","priceRangeSeparator","CustomerContextualPrice","SalesAgreementPrice","bind","_this$props$data$pric","_this$props$data$pric2","_this$props$priceReso","_this$props$priceReso2","_this$props$priceReso3","_this$props$priceReso4","_this$props$priceReso5","_this$props$priceReso6","_this$props$priceReso7","firstPriceLine","AttainablePriceLines","salesAgreementDetailCollapseProps","salesAgreementPricePrompt","Collapse","salesAgreementExpirationDatePrompt","formatDate","EffectiveDate","ExpirationDate","salesAgreementCommittedQuantityPrompt","CommittedQuantity","salesAgreementRemainingQuantityPrompt","RemainingQuantity","preventDefault","console","log","PriceComponent","msdyn365Commerce","createComponentOverride","isSalesAgreementPriceFeatureEnabled","useLegacySalesAgreementHTMLFeature","salesAgreementPrice","_props$data$price$Sal","_props$priceResources8","_props$priceResources9","isExpanded","setIsExpanded","toggle","tabIndex","_props$data$price$Att","_props$priceResources2","_props$priceResources3","_props$priceResources4","_props$priceResources5","_props$priceResources6","_props$priceResources7","renderSalesAgreementDetail","originalPrice","showStrikethroughPricing","initialPrice","originalPriceText","currentPriceText","savingsText","renderCurrentPriceWithOriginalPrice","CheckInConfirmationComponent","confirmationText","shouldShowQrCode","channelReferenceIdLabel","QRCode","size","CheckInErrorComponent","CheckInForPickup","checkInForOrderPickup","async","channelId","parseInt","packingSlipId","additionalInformationToSubmit","additionalInformationList","additionalInformationKeyValuePair","_additionalInformatio","formKey","resourceId","extensionPropertyList","ObjectExtensions","isNullOrUndefined","additionalInformation","Key","Value","StringValue","SalesOrdersDataActions","checkInForOrderPickupAsync","queryResultSettings","headerErrorMessage","genericErrorMessage","isCheckedIn","Promise","resolve","_this$props$context$r2","_this$props$context$r3","_this$props$context$r4","isNaN","params","isEditor","isPreview","requiredParameterMissingErrorMessage","additionalInformationKeys","_this$props$context$r5","isHeaderError","headerError","confirmationComponent","defaultConfirmationText","confirmationIdLabel","additionalInformationValues","additionalInformationHeading","socialShareItems","cookies","isConsentGiven","viewprops","caption","orientation","GetMaxLength","maxLength","parsedMaxLength","PasswordResetInput","AddCheckoutLoyalty","cardNumber","drawer","rewardPoints","loyaltyAmountContainer","appliedLoyaltyAmountContainer","loyaltyAmountLabel","loyaltyAmountInput","loyaltyAmountApplyButton","showAppliedAmount","loyaltyAmountAppliedText","loyaltyAmountAppliedPrice","loyaltyAmountRemoveButton","notEnoughPointsErrorString","showNotEnoughPointsError","checkoutLoyaltyRewardPoint","availablePointsText","activePoints","expiringPointsText","expiringPoints","ShowCheckoutLoyalty","coveredAmountText","formatNotEnoughPointsMessage","minPoints","minDollars","maxDollars","formatCartValueTooLowMessage","equivalentDollars","cartDollars","getMaxDollars","loyaltyTransactionEstimation","MaxCurrencyValueOfLoyaltyPoints","loyaltyGuard","setShowMinValueError","e","_e$target","isError","parseFloat","CheckoutLoyaltyView","_props$data$checkout$","initialized","setInitialized","showMinValueError","setShowMinvalueError","checkoutLoyalty","showLoyalty","addLoyalty","notEnoughPointsMessage","minLoyaltyRedeemAmount","querySelector","btn","addLoyaltyExtended","checkout","checkoutCart","TotalAmount","cartValueTooLowMessage","isShowLoyalty","isShowAddLoyalty","AccountLoyaltyTileView","PasswordResetButton","CheckInViewComponent","_props$config$additio","FormBuilder","additionalInformationDefaultHeading","submitButtonText","additionalInformationSubmitButtonText","keys","requiredValueMissingErrorMessage","AccountProfileEditLoadingMessage","PasswordResetLabel","IAccountLoyaltyTileDescription","AccountProfileEditInput","PasswordResetLoadingIcon","renderAdditionalContent","_additionalContent$ad","ContentBlockView","AccountProfileEdit","onTextBoxChange","givenName","surname","emailRegex","invalidEmailAddressError","PRE","_htmlDecode","PAT_DESC","required_field","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","str","innerHTML","childNodes","nodeValue","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","AccountProfileEditErrorComponent","requiredFieldMissingSummaryError","AccountProfileEditButtonComponent","showEmail","emailAddressLabelText","AccountProfileEditLabelComponent","AccountProfileEditInputComponent"],"mappings":"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","file":"static/js/10.9dae1830845280159e67.chunk.js","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { PasswordRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport PasswordResetButtonComponent from './components/password-reset-button';\nimport PasswordResetErrorComponent from './components/password-reset-error';\nimport PasswordResetInputComponent from './components/password-reset-input';\nimport PasswordResetLabelComponent from './components/password-reset-label';\nimport PasswordResetLoadingIconComponent from './components/password-reset-loading-icon';\nimport PasswordResetLoadingMessageComponent from './components/password-reset-loading-message';\nimport { IPasswordResetConfig, IPasswordResetProps } from './password-reset.props.autogenerated';\n\nexport interface IPasswordResetViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetLocalAccount {\n localAccount: INodeProps;\n items: IPasswordResetItem[];\n errorMessage: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetViewProps {\n className: string;\n viewState: IPasswordResetViewState;\n loading: IPasswordResetLoading;\n passwordReset: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetLocalAccount: IPasswordResetLocalAccount;\n}\n\n/**\n *\n * PasswordReset component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordReset extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n @observable private newPasswordRegex: string;\n\n @observable private reenterPasswordRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IPasswordResetProps) {\n super(props);\n\n this.newPasswordRegex = PasswordRegex.defaultRegex.source;\n this.reenterPasswordRegex = PasswordRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: IPasswordResetProps, nextState: IPasswordResetViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n passwordReset: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && (\n \n ),\n passwordResetLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map((obj: { ID: string; PAT: string }) => {\n switch (obj.ID.toLowerCase()) {\n case 'newpassword': {\n this.newPasswordRegex = obj.PAT;\n break;\n }\n case 'reenterpassword': {\n this.reenterPasswordRegex = obj.PAT;\n break;\n }\n default:\n }\n });\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const { resources } = this.props;\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n verifying_blurb: resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n };\n\n private _renderLocalAccount(): IPasswordResetLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('newPassword', 'password', resources.newPasswordLabelText, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, this.reenterPasswordRegex)\n ],\n errorMessage: [\n ,\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n }\n\n private _renderInput(id: string, type: string, labelText: string, pattern?: string): IPasswordResetItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default PasswordReset;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IReviewModalViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport {\n IReportReviewModalViewProps,\n IReviewCardViewProps,\n IReviewsListState,\n IReviewsListViewProps\n} from '@msdyn365-commerce-modules/ratings-reviews/src/modules/reviews-list';\nimport { IModuleProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst ReviewsListview: React.FC = props => {\n const {\n averageRating,\n filterByDropdown,\n moduleProps,\n noReviewsMessage,\n noReviewsWithFilterMessage,\n pageControls,\n refineReviewsProps,\n reportReviewModal,\n reviewsListProps,\n reviewCards,\n reviewCount,\n reviewModal,\n sortByDropdown,\n state,\n userReview\n } = props;\n\n if (!userReview && reviewCards.length === 0 && !state.isFilterApplied) {\n return {noReviewsMessage};\n }\n\n return (\n \n {averageRating}\n {reviewCount}\n \n {sortByDropdown}\n {filterByDropdown}\n \n \n {userReview && buildReviewCard(userReview)}\n {reviewCards.map(review => {\n return buildReviewCard(review);\n })}\n \n {reviewCards.length === 0 && state.isFilterApplied && noReviewsWithFilterMessage}\n {pageControls}\n {createReviewModal(reviewModal, moduleProps)}\n {createReportModal(reportReviewModal, state)}\n \n );\n};\n\nconst buildReviewCard = (props: IReviewCardViewProps) => {\n return (\n \n \n {props.rating}\n {props.name}\n {props.date}\n \n \n \n {props.reviewTitle}\n {props.reviewText}\n \n \n {props.responseName}\n {props.responseDate}\n {props.responseText}\n \n \n {props.ratingHelpfulLabel}\n {props.like}\n {props.dislike}\n {props.edit}\n {props.report}\n \n \n \n );\n};\n\nconst createReviewModal = (props: IReviewModalViewProps, moduleProps: IModuleProps): JSX.Element => {\n return (\n \n {props.modalHeader}\n \n \n \n {props.rating}\n {props.ratingLabel}\n \n \n {props.titleLabel}\n {props.titleInput}\n \n \n {props.textLabel}\n {props.textInput}\n \n {props.privacyPolicyUrl}\n {props.error}\n \n \n \n {props.submitButton}\n {props.cancelButton}\n \n \n );\n};\n\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\n return (\n \n {state.reported ? props.headerSubmitted : props.header}\n \n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\n \n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\n \n );\n};\n\nexport default ReviewsListview;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport 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 Msdyn365 from '@msdyn365-commerce/core';\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\nimport { SalesOrder } from '@msdyn365-commerce/retail-proxy';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-header';\nconst headingClassName = `${componentClassName}__heading`;\nconst orderCountClassName = `${componentClassName}__order-count`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersHeaderResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersHeaderResources {\n orderCountLabel: string;\n ordersCountLabel: string;\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersHeaderData interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersHeaderData {\n salesOrders: SalesOrder[];\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersHeaderProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersHeaderProps\n extends Msdyn365.IComponentProps {\n className?: string;\n resources: IOrderHistoryWithSearchAndFiltersHeaderResources;\n textProps: Msdyn365.ITextProps;\n showOrderCount: boolean;\n extraActions?: React.ReactNode;\n onChange(event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersHeader component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersHeaderFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersHeaderProps\n) => {\n const {\n resources,\n data: { salesOrders },\n textProps,\n showOrderCount,\n extraActions\n } = props;\n\n const orderCount = salesOrders?.length;\n const orderCountText = `(${orderCount} ${orderCount === 1 ? resources?.orderCountLabel : resources?.ordersCountLabel})`;\n\n return (\n \n {textProps?.text && (\n \n )}\n {showOrderCount && {orderCountText}}\n {extraActions}\n \n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersHeader component.\n */\nexport const OrderHistoryWithSearchAndFiltersHeaderComponent: React.FunctionComponent = Msdyn365.msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersHeaderProps\n>('OrderHistoryWithSearchAndFiltersHeaderComponent', { component: OrderHistoryWithSearchAndFiltersHeaderFunctionalComponent });\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 { 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\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IPasswordResetItem, IPasswordResetLoading, IPasswordResetLocalAccount, IPasswordResetViewProps } from './password-reset';\n\nconst PasswordResetItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n {items &&\n items.map((item: IPasswordResetItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n );\n};\n\nconst PasswordResetLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetView: React.FC = props => {\n const { passwordReset, viewState, loading, defaultAADConainer, aadConainer, heading, passwordResetLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\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
\n {orderInfomation.placedBy && {orderInfomation.placedBy}}\n
{orderInfomation && }
\n
\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICheckoutCustomerAccountPaymentViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/checkout-customer-account-payment';\nimport { IAccountPaymentEditViewForm } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/components/get-account-payment-form-edit-mode';\nimport { IAccountPaymentSummaryViewForm } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/components/get-account-payment-form-summary-mode';\n\nexport const SummaryForm: React.FC = ({\n formProps,\n label,\n addPaymentButton,\n appliedLine,\n bottomBorder,\n paymentAmountInput\n}) => (\n \n <>\n {label}\n {paymentAmountInput}\n {addPaymentButton}\n {appliedLine}\n {bottomBorder}\n \n \n);\n\nexport const EditForm: React.FC = ({\n formProps,\n inputLabel,\n inputAmount,\n addPaymentButton,\n customerName,\n customerAccountNumber,\n customerSince,\n accountCredit,\n alert,\n accountDetails,\n appliedLine,\n bottomBorder\n}) => (\n \n <>\n {customerName}\n {customerAccountNumber}\n {customerSince}\n {accountCredit}\n {accountDetails}\n {inputLabel}\n {alert}\n {inputAmount}\n {addPaymentButton}\n {appliedLine}\n {bottomBorder}\n \n \n);\n\nconst CheckoutCustomerAccountView: React.FC = props => {\n const { checkoutCustomerAccount, checkoutErrorRef, summaryView, editView, moduleState, alert } = props;\n return (\n \n {alert}\n {moduleState.isReady && summaryView && }\n {!moduleState.isReady && editView && }\n \n );\n};\n\nexport default CheckoutCustomerAccountView;\n","import * as React from 'react';\r\nimport { IK3ProductCompositionTable, K3ProductCompositionTableExtensionClass } from '@k3-msdyn365-commerce-modules/k3.msdyn365.commerce.online/dist/types/actions/DataServiceEntities.g';\r\nimport { IK3CompositionsViewProps } from '@k3-msdyn365-commerce-modules/k3.msdyn365.commerce.online/dist/types/modules/k3-compositions/k3-compositions';\r\nimport { Drawer } from '@msdyn365-commerce-modules/utilities';\r\n\r\nexport default (props: IK3CompositionsViewProps) => {\r\n const {\r\n data: { productCompositions, compositionTypes, fibres },\r\n productRecId\r\n } = props;\r\n\r\n let open = true;\r\n\r\n const [compositionState, setCompositionState] = React.useState(undefined);\r\n\r\n const _toggle = () => (): void => {\r\n open = !open;\r\n };\r\n\r\n const [hasSetValue, setHasSetValue] = React.useState(false);\r\n\r\n if (!hasSetValue) {\r\n const renderModule =\r\n productRecId && !!productCompositions.result?.filter(composition => composition.Product === productRecId).length;\r\n\r\n if (renderModule) {\r\n const thatOne = productCompositions.result?.filter(\r\n composition => composition.Product === productRecId && composition.ItemDataAreaId === ''\r\n );\r\n if (thatOne && thatOne.length > 0) {\r\n setCompositionState(thatOne);\r\n setHasSetValue(true);\r\n }\r\n }\r\n }\r\n\r\n if (compositionState && compositionState.length) {\r\n const compositionMap = new Map();\r\n compositionState.forEach(cs => {\r\n const collection = compositionMap.get(cs.CompositionType);\r\n if (!collection) {\r\n compositionMap.set(cs.CompositionType, [cs]);\r\n } else {\r\n collection.push(cs);\r\n }\r\n });\r\n // console.log(compositionState);\r\n return (\r\n \r\n
\r\n \r\n {[...compositionMap.values()].map((cm: K3ProductCompositionTableExtensionClass[]) => (\r\n

\r\n {`${compositionTypes?.result?.find(el => el.RecId === cm[0].CompositionType)?.Description}: ` || ''}\r\n\r\n {cm.map((c: K3ProductCompositionTableExtensionClass) => (\r\n \r\n {`${c.Percent}% ${fibres?.result?.find(el => el.RecId === c.Fibre)?.Description}` || ''}\r\n , \r\n \r\n ))}\r\n

\r\n ))}\r\n
\r\n
\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n};\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getTelemetryObject,\n Heading,\n IComponentNodeProps,\n INodeProps,\n ISingleSlideCarouselProps,\n ITelemetryContent,\n NodeTag,\n SingleSlideCarousel\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ITileListProps, ITitleData } from './tile-list.props.autogenerated';\n\n/**\n * Tile-list view props.\n */\nexport interface ITileListViewProps extends ITileListProps<{}> {\n title?: React.ReactNode;\n tiles: React.ReactNode[];\n tileItemContainer: INodeProps;\n tileListContainer: INodeProps;\n tileListHeading: INodeProps;\n singleSlideCarouselComponentProps: INodeProps;\n}\n\n/**\n *\n * TileList component.\n * @extends {React.PureComponent>}\n */\nexport class TileList 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 private static _createHeading(heading?: ITitleData): React.ReactNode | null {\n if (!heading || !heading.text || StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n return ;\n }\n public constructor(props: ITileListProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { resources } = this.props;\n const { title, className } = this.props.config;\n const propsCarousel: IComponentNodeProps = {\n tag: SingleSlideCarousel,\n className: this.props.config.className ?? '',\n flipperPrevLabel: resources.flipperPrevious,\n flipperNextLabel: resources.flipperNext,\n parentId: this.props.id,\n telemetryContent: this._telemetryContent,\n vertical: false\n };\n\n const viewProps = {\n ...this.props,\n title: TileList._createHeading(title),\n singleSlideCarouselComponentProps: propsCarousel,\n tileItemContainer: {\n tag: 'li' as NodeTag,\n className: 'ms-tile__item',\n role: 'listitem'\n },\n tileListContainer: { className: classnames('ms-tile-list', className) },\n tileListHeading: { className: 'ms-tile-list__heading' },\n tiles: this.props.slots.content\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n}\n\nexport default TileList;\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 { 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 * 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","/*--------------------------------------------------------------\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 {\r\n ICategoryHierarchyViewProps,\r\n IRefineMenuViewProps,\r\n ISearchResultContainerViewProps,\r\n ISearchResultModalViewProps,\r\n ISortByViewProps,\r\n ITitleViewProps\r\n} from '@msdyn365-commerce-modules/search-result-container';\r\nimport {\r\n Module,\r\n Node,\r\n LabeledDropdown,\r\n ILabeledDropdownOption,\r\n ILabeledDropdownOnChangeNotification\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport { ProductRefinerValue, SortColumn } from '@msdyn365-commerce/retail-proxy';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport * as React from 'react';\r\nimport MsDyn365, { IRequestContext } from '@msdyn365-commerce/core';\r\nimport { transaction } from 'mobx';\r\nimport { useEffect } from 'react';\r\n\r\nconst SearchResultContainerView: React.FC = (props: {\r\n context?: any;\r\n resources?: any;\r\n data?: any;\r\n telemetry?: any;\r\n SearchResultContainer?: any;\r\n products?: any;\r\n pagination?: any;\r\n ProductsContainer?: any;\r\n ProductSectionContainer?: any;\r\n choiceSummary?: any;\r\n isMobile?: any;\r\n modalToggle?: any;\r\n searchResultModal?: any;\r\n TitleViewProps?: any;\r\n refineMenu?: any;\r\n categoryHierarchy?: any;\r\n CategoryNavContainer?: any;\r\n RefineAndProductSectionContainer?: any;\r\n errorMessage?: any;\r\n FeatureSearchContainer?: any;\r\n similarLookProduct?: any;\r\n}) => {\r\n const {\r\n SearchResultContainer,\r\n products,\r\n pagination,\r\n ProductsContainer,\r\n ProductSectionContainer,\r\n choiceSummary,\r\n isMobile,\r\n modalToggle,\r\n searchResultModal,\r\n TitleViewProps,\r\n refineMenu,\r\n categoryHierarchy,\r\n CategoryNavContainer,\r\n RefineAndProductSectionContainer,\r\n errorMessage,\r\n FeatureSearchContainer,\r\n similarLookProduct\r\n } = props;\r\n const isRecoSearchPage = props.context.actionContext.requestContext.query?.recommendation;\r\n\r\n const newOptions: ILabeledDropdownOption[] = [\r\n { key: 'Ranking-Desc', value: props.resources.sortByOptionRelevanceDesc },\r\n { key: 'BestSelling', value: props.resources.sortByOptionBestSelling },\r\n { key: 'NewScore', value: props.resources.sortByOptionNewScore }\r\n ];\r\n\r\n const parseQueryParam = (key: string, requestContext: IRequestContext): SortColumn[] | null => {\r\n if (requestContext.query && requestContext.query[key]) {\r\n return JSON.parse(decodeURIComponent(requestContext.query[key]));\r\n }\r\n return null;\r\n };\r\n\r\n useEffect(() => {\r\n swatchDisable();\r\n });\r\n\r\n let _sortAndFilterContainerRef: React.RefObject = React.createRef();\r\n\r\n let _getSortCriteriaColumn = (): SortColumn | undefined => {\r\n const sortCriteria = props.data.listPageState.result?.sortingCritera;\r\n if (ArrayExtensions.hasElements(sortCriteria?.Columns)) {\r\n return sortCriteria!.Columns[0];\r\n }\r\n\r\n const queryColumns = parseQueryParam('sorting', props.context.request);\r\n if (ArrayExtensions.hasElements(queryColumns)) {\r\n return queryColumns[0];\r\n }\r\n\r\n return undefined;\r\n };\r\n\r\n let _getCurrentlySelectedOption = (): ILabeledDropdownOption | undefined => {\r\n const activeSortColumn = _getSortCriteriaColumn();\r\n\r\n const searchConfiguration = props.data.searchConfiguration.result;\r\n\r\n if (!activeSortColumn || !searchConfiguration) {\r\n return undefined;\r\n }\r\n\r\n const activeMappedConfig = searchConfiguration.find(\r\n (mappedSearchConfig: { sortColumn: { ColumnName: string | undefined; IsDescending: boolean | undefined } }) =>\r\n mappedSearchConfig.sortColumn.ColumnName === activeSortColumn.ColumnName &&\r\n mappedSearchConfig.sortColumn.IsDescending === activeSortColumn.IsDescending\r\n );\r\n if (!activeMappedConfig) {\r\n return undefined;\r\n }\r\n\r\n return newOptions.find(dropdownOption => dropdownOption.key === activeMappedConfig.key);\r\n };\r\n\r\n const compressRefiners = (refiners: ProductRefinerValue[]) => {\r\n const compressedRefiners: (string | number)[][] = [];\r\n\r\n refiners.forEach(refiner => {\r\n const compressedRefiner: (string | number)[] = [];\r\n const compressedRefinerKeys = [\r\n 'DataTypeValue',\r\n 'LeftValueBoundString',\r\n 'RefinerRecordId',\r\n 'RefinerSourceValue',\r\n 'RightValueBoundString',\r\n 'UnitText'\r\n ];\r\n compressedRefinerKeys.forEach(refinerKey => {\r\n compressedRefiner.push(refiner[refinerKey]);\r\n });\r\n compressedRefiners.push(compressedRefiner);\r\n });\r\n\r\n return compressedRefiners;\r\n };\r\n\r\n const buildListPageUrl = (fullUrl: URL, refiners?: ProductRefinerValue[], sortingColumns?: SortColumn[], skipCount?: number) => {\r\n // Refiner Change flow\r\n if (refiners !== undefined) {\r\n if (refiners.length === 0) {\r\n fullUrl.searchParams.delete('refiners');\r\n } else {\r\n const sortedRefiners = refiners.sort((first, second) =>\r\n first.RefinerRecordId && second.RefinerRecordId && first.RefinerRecordId > second.RefinerRecordId ? 1 : -1\r\n );\r\n fullUrl.searchParams.set('refiners', JSON.stringify(compressRefiners(sortedRefiners)));\r\n }\r\n\r\n // Adding or removing a refiner means we want to always load page 1\r\n fullUrl.searchParams.delete('skip');\r\n return fullUrl.href;\r\n }\r\n\r\n if (sortingColumns !== undefined) {\r\n if (sortingColumns.length === 0) {\r\n fullUrl.searchParams.delete('sorting');\r\n } else {\r\n fullUrl.searchParams.set('sorting', JSON.stringify(sortingColumns));\r\n }\r\n\r\n // Changing the sort means always load page 1\r\n fullUrl.searchParams.delete('skip');\r\n return fullUrl.href;\r\n }\r\n\r\n if (skipCount) {\r\n fullUrl.searchParams.set('skip', skipCount.toString());\r\n }\r\n\r\n return fullUrl.href;\r\n };\r\n\r\n const getCurrentUrl = (requestContext: IRequestContext): URL => {\r\n if (MsDyn365.isBrowser) {\r\n return new URL(window.location.href);\r\n }\r\n\r\n // NOTE: Typing on requestURL is incorrect\r\n //@ts-ignore\r\n if (requestContext.url.requestUrl.href) {\r\n //@ts-ignore\r\n return new URL(requestContext.url.requestUrl.href);\r\n }\r\n // @ts-ignore\r\n return new URL(requestContext.url.requestUrl);\r\n };\r\n\r\n const _updateSortByDropdown = (notification: ILabeledDropdownOnChangeNotification): void => {\r\n const { context } = props;\r\n const requestContext = context && context.request;\r\n const actionContext = context && context.actionContext;\r\n\r\n if (!requestContext || !actionContext || !props.data.listPageState.result) {\r\n const error = `[sort-by-category] cannot sort without context: ${!requestContext ? 'requestContext ' : ''} ${\r\n !actionContext ? 'actionContext ' : ''\r\n } could not be found`;\r\n props.telemetry.warning(error);\r\n }\r\n\r\n window.history.pushState(\r\n {},\r\n '',\r\n buildListPageUrl(\r\n getCurrentUrl(props.context.request),\r\n undefined,\r\n [_getSortColumnFromSelectedOption(notification.selectedOption)],\r\n undefined\r\n )\r\n );\r\n transaction(() => {\r\n props.data.listPageState.result!.currentPageNumber = 0;\r\n props.data.listPageState.result!.sortingCritera = { Columns: [_getSortColumnFromSelectedOption(notification.selectedOption)] };\r\n });\r\n };\r\n\r\n const _getSortColumnFromSelectedOption = (option: ILabeledDropdownOption): SortColumn => {\r\n const { data } = props;\r\n if (!data.searchConfiguration.result) {\r\n return {};\r\n }\r\n const mappedConfiguration = data.searchConfiguration.result.find((searchConfiguration: { key: string }) => {\r\n return searchConfiguration.key === option.key;\r\n });\r\n if (mappedConfiguration) {\r\n return mappedConfiguration.sortColumn;\r\n }\r\n return {};\r\n };\r\n\r\n let state = {\r\n pending: false,\r\n selectedSortByOption: newOptions[0]\r\n };\r\n\r\n const activeDropdown = _getCurrentlySelectedOption() || state.selectedSortByOption;\r\n\r\n const newdd = (\r\n \r\n );\r\n\r\n // props.data.listPageState;\r\n let newSortOptions: ISortByViewProps = {\r\n SortingContainer: { className: 'ms-search-result-container__Sort-by-category' },\r\n sortByDropDown: newdd\r\n };\r\n\r\n const swatchDisable = () => {\r\n if (document) {\r\n const _strikeSVG =\r\n 'data:image/svg+xml;utf8,' +\r\n \"\" +\r\n \"\";\r\n\r\n /* Task 1217 & 1312 */\r\n const imgCollect = document.querySelectorAll('img.msc-swatch-container__item__image');\r\n\r\n if (imgCollect.length > 0) {\r\n imgCollect.forEach(node => {\r\n if (node.classList.contains('msc-swatch-container__item__disabled')) {\r\n const thisColour = node.src;\r\n node.src = _strikeSVG;\r\n node.style.backgroundImage = node.style.backgroundImage = \"url('\" + thisColour + \"')\";\r\n if (isMobile) {\r\n node.style.maxWidth = '20px';\r\n } else {\r\n node.style.maxWidth = '30px';\r\n }\r\n }\r\n });\r\n }\r\n }\r\n };\r\n\r\n if (isMobile) {\r\n return (\r\n \r\n {categoryHierarchy && renderCategoryHierarchy(categoryHierarchy)}\r\n {renderTitle(TitleViewProps)}\r\n {choiceSummary}\r\n {modalToggle}\r\n {createSearchResultModal(searchResultModal, refineMenu, newSortOptions, isRecoSearchPage)}\r\n {similarLookProduct}\r\n \r\n {errorMessage}\r\n {products}\r\n \r\n {pagination}\r\n \r\n );\r\n }\r\n return (\r\n \r\n {categoryHierarchy && {renderCategoryHierarchy(categoryHierarchy)}}\r\n \r\n {refineMenu && renderRefiner(refineMenu)}\r\n \r\n {similarLookProduct}\r\n
\r\n {TitleViewProps && renderTitle(TitleViewProps)}\r\n {choiceSummary}\r\n
\r\n
\r\n {newSortOptions && !isRecoSearchPage && renderSort(newSortOptions)}\r\n
\r\n \r\n {errorMessage}\r\n {products}\r\n \r\n {pagination}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst createSearchResultModal = (\r\n modalProps: ISearchResultModalViewProps,\r\n refineMenu: IRefineMenuViewProps,\r\n sortByDropDown: ISortByViewProps,\r\n isRecoSearchPage?: string\r\n): JSX.Element => {\r\n return React.cloneElement(\r\n modalProps.modal,\r\n {},\r\n modalProps.modalHeader,\r\n createModalBody(modalProps, refineMenu, sortByDropDown, isRecoSearchPage),\r\n modalProps.modalFooter\r\n );\r\n};\r\n\r\nconst createModalBody = (\r\n props: ISearchResultModalViewProps,\r\n refineMenu: IRefineMenuViewProps,\r\n sortByDropDown: ISortByViewProps,\r\n isRecoSearchPage?: string\r\n): JSX.Element | null => {\r\n if (sortByDropDown) {\r\n return React.cloneElement(props.modalBody, {}, renderSort(sortByDropDown, isRecoSearchPage), renderRefiner(refineMenu));\r\n }\r\n return null;\r\n};\r\n\r\nconst renderRefiner = (props: IRefineMenuViewProps): JSX.Element | null => {\r\n const { refiners, RefineMenuContainer, RefinerSectionContainer } = props;\r\n if (refiners) {\r\n return (\r\n \r\n \r\n {refiners.map((submenu, index) => (\r\n {submenu}\r\n ))}\r\n \r\n \r\n );\r\n }\r\n return null;\r\n};\r\n\r\nconst renderSort = (props: ISortByViewProps, isRecoSearchPage?: string): JSX.Element | null => {\r\n const { SortingContainer, sortByDropDown } = props;\r\n if (sortByDropDown && !isRecoSearchPage) {\r\n return {sortByDropDown};\r\n }\r\n return null;\r\n};\r\n\r\nconst renderCategoryHierarchy = (props: ICategoryHierarchyViewProps): JSX.Element | null => {\r\n const { CategoryHierarchyContainer, categoryHierarchyList, categoryHierarchySeparator } = props;\r\n if (categoryHierarchyList) {\r\n return (\r\n \r\n {categoryHierarchyList.map((category, index) => (\r\n \r\n {category}\r\n {categoryHierarchyList && categoryHierarchyList[index + 1] && categoryHierarchySeparator}\r\n \r\n ))}\r\n \r\n );\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst renderTitle = (props: ITitleViewProps): JSX.Element | null => {\r\n const { title, TitleContainer } = props;\r\n if (title) {\r\n return (\r\n \r\n

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

\r\n
\r\n );\r\n }\r\n return null;\r\n};\r\n\r\nexport default SearchResultContainerView;\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 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 { Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ITileListViewProps } from './tile-list';\n\n/**\n * View component.\n * @param props - The view properties.\n * @returns Returns props.\n */\nexport const tileListView: React.FC = props => {\n const { title, tiles, tileListContainer, tileListHeading, tileItemContainer, singleSlideCarouselComponentProps } = props;\n return (\n \n {title}\n \n {tiles.map((tileItem: ReactNode, index: number) => {\n const keyIndex = `tile-list-item__${index}`;\n return (\n \n {tileItem}\n \n );\n })}\n \n \n );\n};\n\nexport default tileListView;\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddResource, ICheckoutGiftCardViewProps, IForm, IItem, IList, IShowResource } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-gift-card/./checkout-gift-card';\r\n\r\nexport const From: React.FC = ({ formProps, label, inputPinLabel, inputExpLabel, alert, inputProps, inputNumProps,\r\n inputPinProps, inputExpProps, inputNumber, inputPin, inputExp, applyButton, supportExternalGiftCard, showGiftCardPinInput, showGiftCardExpInput, alertFieldLabel }) => (\r\n \r\n {supportExternalGiftCard ? \r\n \r\n \r\n {label}\r\n {alert}\r\n {inputNumber}\r\n \r\n {showGiftCardPinInput &&\r\n \r\n {inputPinLabel}\r\n {inputPin}\r\n }\r\n {showGiftCardExpInput &&\r\n \r\n {inputExpLabel}\r\n {inputExp}\r\n }\r\n {(showGiftCardPinInput || showGiftCardExpInput) && alertFieldLabel}\r\n \r\n {applyButton}\r\n : <>\r\n {label}\r\n {alert}\r\n {inputNumber}\r\n {applyButton}\r\n \r\n }\r\n \r\n);\r\n\r\nexport const SelectedGiftCard: React.FC = ({ itemProps, selectedGiftCard, removeButton }) => (\r\n \r\n {selectedGiftCard}\r\n {removeButton}\r\n \r\n);\r\n\r\nexport const GiftCardList: React.FC = ({ listProps, list }) => (\r\n \r\n {list.map(({ id, ...item }) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport const AddResource: React.FC = ({ form, list }) => (\r\n <>\r\n {form && }\r\n {list && }\r\n \r\n);\r\n\r\n\r\nexport const ShowResource: React.FC = ({ title, list }) => (\r\n <>\r\n {title}\r\n {list && }\r\n \r\n);\r\n\r\nconst CheckoutGiftCardView: React.FC = props => {\r\n const { checkoutGiftCardProps, showGiftCard, addGiftCard } = props;\r\n return (\r\n \r\n {showGiftCard && }\r\n {addGiftCard && }\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutGiftCardView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface 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 { ISearchData, ISearchViewProps } from '@msdyn365-commerce-modules/search';\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\n\n/**\n * Render Categories heading.\n * @param inCategoriesHeading - The Keywords result heading.\n * @returns The JSX Element.\n */\nconst renderCategorySuggestionsTitle = (inCategoriesHeading: string): JSX.Element => {\n const categoryAutoSuggestionHeading = inCategoriesHeading ? inCategoriesHeading : 'In categories';\n\n return
{categoryAutoSuggestionHeading}
;\n};\n\n/**\n * Render Categories suggestion result.\n * @param inCategoriesHeading - The Categories result heading.\n * @param noResultText - The \"No Result\" text.\n * @param props - The Categories suggestion result.\n * @param isLoadingAutoSuggest - The autosuggestion loading flag.\n * @param isLoadingNode - The autosuggestion loading node.\n * @returns The JSX Element.\n */\nexport const CategorySuggestionsComponent = (\n inCategoriesHeading: string,\n noResultText: string,\n props: ISearchViewProps & ISearchProps,\n isLoadingAutoSuggest?: boolean,\n isLoadingNode?: React.ReactNode\n): JSX.Element => {\n return props.autosuggestCategory ? (\n \n {renderCategorySuggestionsTitle(inCategoriesHeading)}\n \n {isLoadingAutoSuggest && isLoadingNode}\n {!isLoadingAutoSuggest &&\n props.autosuggestCategory.text.map(text => {\n return text;\n })}\n \n \n ) : (\n \n {renderCategorySuggestionsTitle(inCategoriesHeading)}\n \n
  • {noResultText}
  • \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 { IImageData, Image } from '@msdyn365-commerce/core';\nimport { ISearchData } from '@msdyn365-commerce-modules/search';\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\n\n/**\n * Render Products Suggestion result heading.\n * @param props -The props.\n * @returns The JSX Element.\n */\nconst renderProductNotFoundResultsImage = (props: ISearchProps): JSX.Element | null => {\n const noSearchResultImage: IImageData | undefined = props.config.noSearchResultImage;\n if (!noSearchResultImage || !noSearchResultImage.src) {\n return null;\n }\n const imageSettings = {\n lazyload: true,\n viewports: {\n xs: { w: 100, h: 100, q: 'w=100&h=100&q=60&m=6' }\n }\n };\n return (\n \n );\n};\n\n/**\n * Render Product suggestion result.\n * @param props -The props.\n * @returns The JSX Element.\n */\nexport const MobileAutoSuggestEmptyComponent = (props: ISearchProps): JSX.Element => {\n return (\n \n
    {renderProductNotFoundResultsImage(props)}
    \n
    \n
    {props.resources.emptyMobileSearchTextHeading}
    \n
    {props.resources.emptyMobileSearchText}
    \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 { ISearchData, ISearchFormViewProps } from '@msdyn365-commerce-modules/search';\nimport { Button, INodeProps, Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\nimport { MobileAutoSuggestEmptyComponent } from './search.mobile.empty';\n\n/**\n * Render Clear button for mobile viewport.\n * @param clearSearchButtonText -The Clear button text.\n * @param clearSearch -Clear Search callback.\n * @returns -The JSX Element.\n */\nconst renderClearButton = (clearSearchButtonText: string, clearSearch: () => void): JSX.Element => {\n return (\n \n );\n};\n\n/**\n * Render Search form.\n * @param form -Form view props.\n * @param searchForm -Search Form props.\n * @param formWrapper -Form Wrapper props.\n * @param isMobile -Is mobile viewport flag.\n * @param clearSearchButtonText -The Clear button text.\n * @param props -The props for resource.\n * @param isSearchText -Is SearchText flag for input text.\n * @param clearSearch -Clear Search callback.\n * @returns -The JSX Element.\n */\nexport const FormComponent = (\n form: ISearchFormViewProps,\n searchForm: INodeProps,\n formWrapper: INodeProps,\n isMobile: boolean,\n clearSearchButtonText: string,\n props: ISearchProps,\n isSearchText: boolean,\n clearSearch: () => void\n): JSX.Element => {\n const cancelButtonNode = (\n \n );\n\n return isMobile ? (\n \n {form.cancelBtn}\n \n {form.input}\n {isSearchText && renderClearButton(clearSearchButtonText, clearSearch)}\n {!isSearchText ? MobileAutoSuggestEmptyComponent(props) : null}\n \n \n ) : (\n \n \n {form.submitBtn}\n {form.input}\n {isSearchText && cancelButtonNode}\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 { ISearchKeywordViewProps } from '@msdyn365-commerce-modules/search';\nimport { INodeProps, Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\n/**\n * Render keywords heading.\n * @param keywordsHeading -The Keywords result heading.\n * @returns The JSX Element.\n */\nconst renderKeywordSuggestionsTitle = (keywordsHeading: string): JSX.Element => {\n const categoryAutoSuggestionHeading = keywordsHeading ? keywordsHeading : 'Keywords';\n\n return
    {categoryAutoSuggestionHeading}
    ;\n};\n\n/**\n * Render keywords reults.\n * @param keywordSuggest -The Keywords suggest Node props.\n * @param ulKeyword -The List Node props.\n * @param keywordsHeading -The Keywords result heading.\n * @param noResultText -The \"No Result\" text.\n * @param keywordSuggestions -The Keywords suggestion result.\n * @param isLoadingAutoSuggest - The autosuggestion loading flag.\n * @param isLoadingNode - The autosuggestion loading node.\n * @returns -The JSX Element.\n */\nexport const KeywordSuggestionsComponent = (\n keywordSuggest: INodeProps,\n ulKeyword: INodeProps,\n keywordsHeading: string,\n noResultText: string,\n keywordSuggestions?: ISearchKeywordViewProps,\n isLoadingAutoSuggest?: boolean,\n isLoadingNode?: React.ReactNode\n): JSX.Element => {\n return keywordSuggestions ? (\n \n {renderKeywordSuggestionsTitle(keywordsHeading)}\n \n {isLoadingAutoSuggest && isLoadingNode}\n {!isLoadingAutoSuggest &&\n keywordSuggestions.text.map(text => {\n return text;\n })}\n \n \n ) : (\n \n {renderKeywordSuggestionsTitle(keywordsHeading)}\n \n
  • {noResultText}
  • \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 { IImageData, Image } from '@msdyn365-commerce/core';\nimport { ISearchData, ISearchProductViewProps } from '@msdyn365-commerce-modules/search';\nimport { INodeProps, Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\n\n/**\n * Render Products Suggestion result heading.\n * @param productSuggestionsHeading -The products suggestion result heading.\n * @returns The JSX Element.\n */\nconst renderProductSuggestionsTitle = (productSuggestionsHeading: string): JSX.Element => {\n const productAutoSuggestionHeading = productSuggestionsHeading ? productSuggestionsHeading : 'Products';\n\n return
    {productAutoSuggestionHeading}
    ;\n};\n\n/**\n * Render Products Suggestion result heading.\n * @param props -The props.\n * @returns The JSX Element.\n */\nconst renderProductNotFoundResultsImage = (props: ISearchProps): JSX.Element | null => {\n const noSearchResultImage: IImageData | undefined = props.config.noSearchResultImage;\n if (!noSearchResultImage || !noSearchResultImage.src) {\n return null;\n }\n return (\n \n );\n};\n\n/**\n * Render Products No result section.\n * @param props -The props.\n * @returns The JSX Element.\n */\nconst renderProductNotFoundResults = (props: ISearchProps): JSX.Element => {\n return (\n \n
    {renderProductNotFoundResultsImage(props)}
    \n
    {props.resources.noResultContentHeadingText}
    \n
    \n {props.resources.noResultContentParagraphText}\n
    \n
    \n );\n};\n\n/**\n * Render Product suggestion result.\n * @param productSuggest -The product suggest Node props.\n * @param ulProduct -The List Node props.\n * @param props -The props.\n * @param productSuggestions -The Product suggestion result.\n * @param isLoadingAutoSuggest - The autosuggestion loading flag.\n * @param isLoadingNode - The autosuggestion loading node.\n * @returns The JSX Element.\n */\nexport const ProductSuggestionsComponent = (\n productSuggest: INodeProps,\n ulProduct: INodeProps,\n props: ISearchProps,\n productSuggestions?: ISearchProductViewProps,\n isLoadingAutoSuggest?: boolean,\n isLoadingNode?: React.ReactNode\n): JSX.Element => {\n const liProduct: INodeProps = {\n tag: 'li',\n className: 'msc-no-result-content'\n };\n return productSuggestions ? (\n \n {renderProductSuggestionsTitle(props.resources.productSuggestionHeading)}\n \n {isLoadingAutoSuggest && isLoadingNode}\n {!isLoadingAutoSuggest &&\n productSuggestions.items.map((item, index) => {\n return (\n \n \n {item.thumbnail}\n {item.text}\n {item.price}\n \n \n );\n })}\n \n \n ) : (\n \n {renderProductSuggestionsTitle(props.resources.productSuggestionHeading)}\n \n {renderProductNotFoundResults(props)}\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 { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { ISearchData, ISearchFormViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search';\nimport { Button, format, isMobile, Module, Node, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport React, { useCallback, useEffect, useState } from 'react';\n\nimport { ISearchProps } from '../definition-extensions/search.ext.props.autogenerated';\nimport { CategorySuggestionsComponent } from './components/search.categorysuggest';\nimport { FormComponent } from './components/search.form';\nimport { KeywordSuggestionsComponent } from './components/search.keywordsuggest';\nimport { ProductSuggestionsComponent } from './components/search.productsuggest';\n\n/**\n * Render Title for AutoSuggest.\n * @param searchSuggestionHeading -The heading resource string.\n * @param searchText -The search string.\n * @returns -The JSX Element.\n */\nconst renderTitle = (searchSuggestionHeading: string, searchText: string): JSX.Element => {\n const searchTextString = '\"'.concat(searchText.concat('\"'));\n const searchAutoSuggestionHeading = searchSuggestionHeading\n ? format(searchSuggestionHeading, searchTextString)\n : `Search for ${searchTextString}`;\n\n return {searchAutoSuggestionHeading};\n};\n\n/**\n * Search View.\n * @param props - The view props.\n * @returns The JSX Element.\n */\nconst SearchView: React.FC> = (\n props: ISearchViewProps & ISearchProps\n): JSX.Element => {\n const {\n Search,\n AutoSuggestAriaLabel,\n AutoSuggestAriaLabelText,\n searchText,\n AutoSuggest,\n KeywordSuggest,\n ProductSuggest,\n UlKeyword,\n UlProduct,\n form,\n autosuggestKeyword,\n autosuggestProduct,\n SearchForm,\n FormWrapper,\n label,\n context,\n isLoadingAutoSuggest,\n isLoadingNode,\n callbacks: { handleCancelSearchFocused }\n } = props;\n\n const { searchSuggestionHeading, categorySuggestionHeading, keywordsHeading, noResultText, clearSearchButtonText } = props.resources;\n\n const [searchTextString, setSearchTextString] = useState();\n const [isMobilePort, setIsMobile] = useState(false);\n\n useEffect(() => {\n setSearchTextString(searchText);\n }, [searchText]);\n\n /**\n * ClearSearch callback method to clear search string.\n */\n const clearSearch = (): void => {\n setSearchTextString('');\n\n const propsForm = props.form as ISearchFormViewProps;\n const propsFormInput = propsForm.input as React.DetailedHTMLProps, HTMLInputElement>;\n const propsFormInputCurrent = (propsFormInput.ref as React.RefObject).current;\n\n if (propsFormInputCurrent) {\n propsFormInputCurrent.value = '';\n }\n\n propsFormInput.value = '';\n props.searchText = '';\n props.FormWrapper.action = '';\n };\n\n const isMobileViewport = useCallback(() => {\n const isMobileView = isMobile({ variant: VariantType.Browser, context: context.request }) === 'xs';\n setIsMobile(isMobileView);\n }, [context]);\n\n useEffect(() => {\n window.addEventListener('resize', isMobileViewport);\n isMobileViewport();\n }, [isMobileViewport]);\n\n const viewport = isMobile({ variant: VariantType.Browser, context: context.request });\n\n const isMobileView = viewport === 'sm' || viewport === 'xs';\n\n AutoSuggest.className = !StringExtensions.isNullOrEmpty(searchTextString)\n ? `${AutoSuggest.className} show`\n : `${AutoSuggest.className} hide`;\n const isSearchText: boolean = !StringExtensions.isNullOrEmpty(searchTextString);\n\n return (\n \n {label}\n {FormComponent(\n form as ISearchFormViewProps,\n SearchForm,\n FormWrapper,\n isMobilePort,\n clearSearchButtonText,\n props,\n isSearchText,\n clearSearch\n )}\n {!isMobileView && (\n \n {!StringExtensions.isNullOrEmpty(searchTextString) ? (\n {AutoSuggestAriaLabelText}\n ) : (\n ''\n )}\n {!StringExtensions.isNullOrEmpty(searchTextString) ? (\n <>\n \n \n {renderTitle(searchSuggestionHeading, searchText)}\n \n \n \n {CategorySuggestionsComponent(\n categorySuggestionHeading,\n noResultText,\n props,\n isLoadingAutoSuggest,\n isLoadingNode\n )}\n {KeywordSuggestionsComponent(\n KeywordSuggest,\n UlKeyword,\n keywordsHeading,\n noResultText,\n autosuggestKeyword,\n isLoadingAutoSuggest,\n isLoadingNode\n )}\n \n {ProductSuggestionsComponent(\n ProductSuggest,\n UlProduct,\n props,\n autosuggestProduct,\n isLoadingAutoSuggest,\n isLoadingNode\n )}\n \n \n ) : null}\n \n )}\n {isMobileView && props.isSearchFormExpanded && (\n \n {!StringExtensions.isNullOrEmpty(searchTextString) ? (\n {AutoSuggestAriaLabelText}\n ) : (\n ''\n )}\n {!StringExtensions.isNullOrEmpty(searchTextString) ? (\n <>\n \n {(form as ISearchFormViewProps).cancelBtn}\n {renderTitle(searchSuggestionHeading, searchText)}\n \n \n \n {CategorySuggestionsComponent(\n categorySuggestionHeading,\n noResultText,\n props,\n isLoadingAutoSuggest,\n isLoadingNode\n )}\n {KeywordSuggestionsComponent(\n KeywordSuggest,\n UlKeyword,\n keywordsHeading,\n noResultText,\n autosuggestKeyword,\n isLoadingAutoSuggest,\n isLoadingNode\n )}\n \n {ProductSuggestionsComponent(\n ProductSuggest,\n UlProduct,\n props,\n autosuggestProduct,\n isLoadingAutoSuggest,\n isLoadingNode\n )}\n \n \n ) : null}\n \n )}\n \n );\n};\nexport default SearchView;\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, 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\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { PriceLine, ProductPrice, SalesAgreementPriceLine } from '@msdyn365-commerce/retail-proxy';\nimport { Button, Collapse, format, ICollapseProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nconst defaultPrice: number = 0;\nconst freePrice: number = 0;\n\n/**\n * Interface for price component resources.\n * @param {string} priceRangeSeparator - The price range separator.\n */\nexport interface IPriceComponentResources {\n priceRangeSeparator?: string;\n salesAgreementPricePrompt?: string;\n salesAgreementExpirationDatePrompt?: string;\n salesAgreementCommittedQuantityPrompt?: string;\n salesAgreementRemainingQuantityPrompt?: string;\n}\n\n/**\n * Interface for price component props.\n * @param {boolean} isPriceMinMaxEnabled - Whether the price range feature is enabled or not.\n * @param {IPriceComponentResources} priceResources - The price range resources.\n */\nexport interface IPriceComponentProps extends IComponentProps<{ price: ProductPrice }> {\n className?: string;\n savingsText?: string;\n freePriceText?: string;\n originalPriceText?: string;\n currentPriceText?: string;\n isPriceMinMaxEnabled?: boolean;\n isSalesAgreementPriceFeatureEnabled?: boolean;\n useLegacySalesAgreementHTMLFeature?: boolean;\n salesAgreementLineId?: number;\n priceResources?: IPriceComponentResources;\n salesAgreementDetailCollapseProps?: ICollapseProps;\n salesAgreementDetailOnClick?(event: React.MouseEvent | React.KeyboardEvent): void;\n}\n\n/**\n * The interface of price component.\n */\nexport interface IPriceComponent extends IComponent {}\n\nconst priceComponentActions = {};\n\n/**\n * Get the original price from price component props.\n * @param props - The IPriceComponentProps.\n * @returns The original price.\n */\nconst getOriginalPrice = (props: IPriceComponentProps): number => {\n return Math.max(\n props.data.price.BasePrice ?? defaultPrice,\n props.data.price.TradeAgreementPrice ?? defaultPrice,\n props.data.price.AdjustedPrice ?? defaultPrice\n );\n};\n\n/**\n * Get the formatted currency.\n * @param props - The props.\n * @param price - The price.\n * @param shouldUseFreePriceText - The shouldUseFreePriceText.\n * @returns The formatted currency.\n */\nconst formatCurrency = (props: IPriceComponentProps, price: number | undefined, shouldUseFreePriceText: boolean | undefined): string => {\n if (price === undefined) {\n return '';\n }\n\n if (shouldUseFreePriceText && price === freePrice && props.freePriceText) {\n return props.freePriceText;\n }\n\n return props.context.cultureFormatter.formatCurrency(price);\n};\n\n/**\n * ShowStrikethroughPricing.\n * @param props - The props.\n * @returns True if showStrikethroughPricing, false otherwise.\n */\nconst showStrikethroughPricing = (props: IPriceComponentProps): boolean => {\n const originalPrice = getOriginalPrice(props);\n if (\n props.isPriceMinMaxEnabled &&\n props.data.price.MaxVariantPrice &&\n props.data.price.MinVariantPrice &&\n props.data.price.MaxVariantPrice > props.data.price.MinVariantPrice\n ) {\n return props.data.price.MinVariantPrice < originalPrice;\n }\n\n if (originalPrice && props.data.price.CustomerContextualPrice) {\n return originalPrice > props.data.price.CustomerContextualPrice;\n }\n\n return false;\n};\n\n/**\n * Render current price.\n * @param props - The props.\n * @returns The JSX.Element.\n */\nconst renderCurrentPrice = (props: IPriceComponentProps): JSX.Element => {\n const maxVariantPrice: string = formatCurrency(props, props.data.price.MaxVariantPrice, false);\n const minVariantPrice: string = formatCurrency(props, props.data.price.MinVariantPrice, false);\n if (\n props.isPriceMinMaxEnabled &&\n props.data.price.MaxVariantPrice &&\n props.data.price.MinVariantPrice &&\n props.data.price.MaxVariantPrice > props.data.price.MinVariantPrice\n ) {\n return (\n \n \n {minVariantPrice}\n \n \n {props.priceResources?.priceRangeSeparator}\n \n \n {maxVariantPrice}\n \n \n );\n }\n\n return (\n \n {formatCurrency(props, props.data.price.CustomerContextualPrice, true)}\n \n );\n};\n\n/**\n * Render current price with original price.\n * @param props - The props.\n * @returns The JSX.Element.\n */\nconst renderCurrentPriceWithOriginalPrice = (props: IPriceComponentProps): JSX.Element => {\n const originalPrice: number = getOriginalPrice(props);\n const initialPrice: string = formatCurrency(props, originalPrice, true);\n\n return (\n <>\n \n {` `}\n {props.originalPriceText}\n {` `}\n {initialPrice}\n {` `}\n {props.currentPriceText}\n {` `}\n {renderCurrentPrice(props)}\n \n \n \n {props.savingsText && {props.savingsText}}\n \n );\n};\n\n/**\n * The state of sales agreement details.\n * @deprecated This will be removed with SalesAgreementPrice class soon.\n */\nexport interface ISalesAgreementDetailState {\n isOpen: boolean;\n}\n\n/**\n * The SalesAgreementPrice class.\n * @deprecated This implementation is deprecated. It will be removed soon. Please use the implementation in the Price function component.\n */\n// eslint-disable-next-line react/require-optimization -- Not needed.\nclass SalesAgreementPrice extends React.Component {\n public constructor(props: IPriceComponentProps) {\n super(props);\n this._toggle = this._toggle.bind(this);\n this.state = {\n isOpen: true\n } as ISalesAgreementDetailState;\n }\n\n public render(): React.ReactElement {\n const priceLines: PriceLine[] = this.props.data.price.AttainablePriceLines ?? [];\n const firstPriceLine: SalesAgreementPriceLine = priceLines[0] as SalesAgreementPriceLine;\n if (this.props.salesAgreementDetailCollapseProps) {\n this.props.salesAgreementDetailCollapseProps.isOpen = this.state.isOpen;\n }\n return (\n \n

    \n {formatCurrency(\n this.props,\n this.props.data.price.SalesAgreementPrice ?? this.props.data.price.CustomerContextualPrice,\n true\n )}\n

    \n \n {this.props.priceResources?.salesAgreementPricePrompt}\n

    \n \n

    \n \n {/* Available date */}\n {// eslint-disable-next-line prefer-template -- Copied from other class.\n ' · ' +\n format(\n this.props.priceResources?.salesAgreementExpirationDatePrompt ?? '',\n this.props.context.cultureFormatter.formatDate(firstPriceLine.EffectiveDate as Date),\n this.props.context.cultureFormatter.formatDate(firstPriceLine.ExpirationDate as Date)\n )}\n \n \n {/* Quantity commitment */}\n {// eslint-disable-next-line prefer-template -- Copied from other class.\n ' · ' +\n format(\n this.props.priceResources?.salesAgreementCommittedQuantityPrompt ?? '',\n firstPriceLine.CommittedQuantity\n )}\n \n \n {/* Remaining quantity to qualify */}\n {// eslint-disable-next-line prefer-template -- Copied from other class.\n ' · ' +\n format(\n this.props.priceResources?.salesAgreementRemainingQuantityPrompt ?? '',\n firstPriceLine.RemainingQuantity\n )}\n \n

    \n
    \n
    \n );\n }\n\n /**\n * Callback which toggles collapse mode.\n * @param event - The mouse or keyboard event.\n */\n private _toggle(event: React.MouseEvent | React.KeyboardEvent): void {\n event.preventDefault();\n console.log(this.state.isOpen);\n // eslint-disable-next-line react/no-access-state-in-setstate -- Copied from other class.\n this.setState({ isOpen: !this.state.isOpen });\n console.log(this.state.isOpen);\n }\n}\n\nconst renderSalesAgreementDetail = (props: IPriceComponentProps): JSX.Element => {\n // In most cases there should be only one sales agreement line.\n // If there are more than one, only the first one will be shown.\n const firstPriceLine: SalesAgreementPriceLine = (props.data.price.AttainablePriceLines ?? [])[0] as SalesAgreementPriceLine;\n return (\n

    \n

    \n {/* Available date */}\n {// eslint-disable-next-line prefer-template -- Copied from other class.\n ' · ' +\n format(\n props.priceResources?.salesAgreementExpirationDatePrompt ?? '',\n props.context.cultureFormatter.formatDate(firstPriceLine.EffectiveDate as Date),\n props.context.cultureFormatter.formatDate(firstPriceLine.ExpirationDate as Date)\n )}\n

    \n

    \n {/* Quantity commitment */}\n {// eslint-disable-next-line prefer-template -- Copied from other class.\n ' · ' + format(props.priceResources?.salesAgreementCommittedQuantityPrompt ?? '', firstPriceLine.CommittedQuantity)}\n

    \n

    \n {/* Remaining quantity to qualify */}\n {// eslint-disable-next-line prefer-template -- Copied from other class.\n ' · ' + format(props.priceResources?.salesAgreementRemainingQuantityPrompt ?? '', firstPriceLine.RemainingQuantity)}\n

    \n

    \n );\n};\n\n/**\n * Price.\n * @param props - The props.\n * @returns The JSX.Element.\n */\nconst Price: React.FC = (props: IPriceComponentProps): JSX.Element | null => {\n // CustomerContextualPrice could be zero\n if (props.data.price.CustomerContextualPrice === undefined) {\n return null;\n }\n\n // Determine if contract price is avaiable/applied by:\n // isFeatureEnabled and SA price != 0, for PDP.\n // SA line id != 0, for cart line.\n if (props.isSalesAgreementPriceFeatureEnabled && props.data.price.SalesAgreementPrice !== 0) {\n if (props.useLegacySalesAgreementHTMLFeature) {\n const salesAgreementPrice = new SalesAgreementPrice(props);\n return {salesAgreementPrice.render()};\n } else {\n const [isExpanded, setIsExpanded] = React.useState(false);\n const toggle = () => {\n setIsExpanded(!isExpanded);\n };\n return (\n \n \n

    \n {formatCurrency(props, props.data.price.SalesAgreementPrice ?? props.data.price.CustomerContextualPrice, true)}\n

    \n \n {props.priceResources?.salesAgreementPricePrompt}\n \n {isExpanded && renderSalesAgreementDetail(props)}\n
    \n
    \n );\n }\n }\n\n return (\n \n {showStrikethroughPricing(props) ? renderCurrentPriceWithOriginalPrice(props) : renderCurrentPrice(props)}\n \n );\n};\n\n/**\n * The PriceComponent.\n */\nexport const PriceComponent: React.FunctionComponent = msdyn365Commerce.createComponentOverride('Price', {\n component: Price,\n ...priceComponentActions\n});\n\n\nexport default PriceComponent;","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport QRCode from 'qrcode.react';\nimport * as React from 'react';\n\n/**\n * CheckInConfirmation component Properties.\n */\nexport interface ICheckInConfirmationProps {\n /**\n * The confirmation text to show.\n */\n confirmationText: string;\n\n /**\n * Should the order confirmation number shown as QR code or not.\n * If false, the order confirmation number (channel reference ID) will be shown as text.\n */\n shouldShowQrCode: boolean;\n\n /**\n * The label shows for channel reference ID.\n */\n channelReferenceIdLabel: string;\n\n /**\n * The channel reference ID to show. When shouldShowQrCode is true, the ID is shown as QR code, otherwise it is shown as text.\n */\n channelReferenceId?: string;\n}\n\n/**\n * CheckInConfirmation component for showing confirmation information after check-in succeed.\n * @param confirmationProps - The confirmation properties.\n * @param confirmationProps.confirmationText - The confirmation text.\n * @param confirmationProps.shouldShowQrCode - Should the order confirmation number shown as QR code or not.\n * If false, the order confirmation number (channel reference ID) will be shown as text.\n * @param confirmationProps.channelReferenceIdLabel - The label shows for channel reference ID.\n * @param confirmationProps.channelReferenceId - The channel reference ID to show.\n * When shouldShowQrCode is true, the ID is shown as QR code, otherwise it is shown as text.\n * @returns The check-in confirmation component.\n */\nexport const CheckInConfirmationComponent: React.FC = ({\n confirmationText,\n shouldShowQrCode,\n channelReferenceIdLabel,\n channelReferenceId\n}) => {\n return (\n
    \n

    {confirmationText}

    \n {channelReferenceId && (\n

    \n {`${channelReferenceIdLabel} ${channelReferenceId}`}\n

    \n )}\n {channelReferenceId && shouldShowQrCode && (\n \n \n \n )}\n
    \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\n/**\n * Check-in error properties.\n */\nexport interface ICheckInErrorProps {\n errorMessage?: string;\n}\n\n/**\n * Check-in error.\n * @param errorProps - The error properties.\n * @param errorProps.errorMessage - The error message to show.\n * @returns The alert element showing check-in errors.\n */\nexport const CheckInErrorComponent: React.FC = ({ errorMessage }) => {\n if (!errorMessage) {\n return null;\n }\n\n return (\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 { IDictionary } from '@msdyn365-commerce/core';\nimport { CommerceProperty, SalesOrdersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\nimport { CheckInConfirmationComponent } from './check-in-confirmation';\nimport { CheckInErrorComponent } from './check-in-error';\nimport { IAdditionalInformationKeysData, ICheckInForPickupConfig, ICheckInForPickupProps } from './check-in-for-pickup.props.autogenerated';\n\n/**\n * The interface representing a piece of additional information data.\n */\ninterface IAdditionalInformation {\n formKey: IAdditionalInformationKeysData;\n value: string;\n}\n\n/**\n * The state for check-in view.\n */\nexport interface ICheckInViewState {\n /**\n * If the module has header error to show.\n */\n isHeaderError: boolean;\n\n /**\n * If the customer has checked in.\n */\n isCheckedIn: boolean;\n\n /**\n * Additional information to capture.\n */\n additionalInformation: IDictionary[];\n}\n\n/**\n * The properties for check-in view.\n */\nexport interface ICheckInViewProps extends ICheckInForPickupProps {\n headerError: React.ReactNode;\n confirmationComponent: React.ReactNode;\n viewState: ICheckInViewState;\n additionalInformationValues: string[];\n checkInForOrderPickup(additionalInformation?: IAdditionalInformation[]): Promise;\n}\n\n/**\n * The state of the CheckInForPickup module.\n */\nexport interface ICheckInForPickupState {\n /**\n * The header error message.\n */\n headerErrorMessage: string;\n\n /**\n * If the customer has checked in successfully.\n */\n isCheckedIn: boolean;\n}\n\n/**\n *\n * CheckIn component.\n * @extends {React.Component, ICheckInForPickupState>}\n */\nclass CheckInForPickup extends React.Component, ICheckInForPickupState> {\n public constructor(props: ICheckInForPickupProps) {\n super(props);\n this.state = {\n headerErrorMessage: '',\n isCheckedIn: false\n };\n }\n\n public render(): JSX.Element | null {\n const isHeaderError: boolean = this.state.headerErrorMessage !== '';\n\n const viewProps = {\n ...this.props,\n headerError: ,\n confirmationComponent: (\n \n ),\n checkInForOrderPickup: this.checkInForOrderPickup,\n additionalInformationValues: this.props.config.additionalInformationKeys\n ? this.props.config.additionalInformationKeys.map(() => {\n return {};\n })\n : undefined,\n viewState: {\n isHeaderError,\n isCheckedIn: this.state.isCheckedIn\n }\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public shouldComponentUpdate(nextProps: ICheckInForPickupProps, nextState: ICheckInForPickupState): boolean {\n if (\n this.props.config.additionalInformationHeading !== nextProps.config.additionalInformationHeading ||\n this.props.config.confirmationText !== nextProps.config.confirmationText\n ) {\n return true;\n }\n if (this.state.headerErrorMessage !== nextState.headerErrorMessage || this.state.isCheckedIn !== nextState.isCheckedIn) {\n return true;\n }\n return false;\n }\n\n public async componentDidMount(): Promise {\n await this._onInit();\n }\n\n /**\n * The async callback for submitting check-in.\n * @param additionalInformationList - The optional additional information captured.\n * @returns The async result.\n */\n public checkInForOrderPickup = async (additionalInformationList?: IAdditionalInformation[]): Promise => {\n const channelId: number = Number.parseInt(this.props.context.request.query!.channelId, 10);\n const channelReferenceId: string = this.props.context.request.query!.channelReferenceId;\n const packingSlipId: string = this.props.context.request.query!.packingSlipId;\n\n const additionalInformationToSubmit: { formKey: string; value: string }[] | undefined = additionalInformationList?.map(\n additionalInformationKeyValuePair => {\n return {\n formKey: additionalInformationKeyValuePair.formKey.resourceId ?? '',\n value: additionalInformationKeyValuePair.value\n };\n }\n );\n const extensionPropertyList: CommerceProperty[] = [];\n if (!ObjectExtensions.isNullOrUndefined(additionalInformationToSubmit)) {\n for (const additionalInformation of additionalInformationToSubmit) {\n extensionPropertyList.push({\n Key: additionalInformation.formKey,\n Value: {\n StringValue: additionalInformation.value\n }\n });\n }\n }\n try {\n await SalesOrdersDataActions.checkInForOrderPickupAsync(\n { callerContext: this.props.context.actionContext, queryResultSettings: {} },\n channelId,\n packingSlipId,\n channelReferenceId,\n extensionPropertyList\n );\n } catch (error) {\n this.setState({ headerErrorMessage: this.props.resources.genericErrorMessage, isCheckedIn: false });\n this.props.telemetry.error(error);\n return Promise.resolve();\n }\n this.setState({ headerErrorMessage: '', isCheckedIn: true });\n return Promise.resolve();\n };\n\n /**\n * The action performed on module initialization.\n * @returns The async result.\n */\n private readonly _onInit = async (): Promise => {\n const channelId: number = Number.parseInt(this.props.context.request.query?.channelId ?? '', 10);\n const channelReferenceId: string | undefined = this.props.context.request.query?.channelReferenceId;\n const packingSlipId: string | undefined = this.props.context.request.query?.packingSlipId;\n if (Number.isNaN(channelId) || !channelReferenceId || !packingSlipId) {\n // No error message shown in editor mode.\n if (this.props.context.request.params.isEditor) {\n return Promise.resolve();\n } else if (this.props.context.request.params.isPreview) {\n this.setState({ headerErrorMessage: this.props.resources.requiredParameterMissingErrorMessage });\n } else {\n this.setState({ headerErrorMessage: this.props.resources.genericErrorMessage });\n }\n this.props.context.telemetry.error(\n 'One or more required URL parameters are missing. ' +\n 'Please make sure you have pass in channelId, channelReferenceId and packingSlipId through URL parameter.'\n );\n return Promise.resolve();\n }\n\n const { additionalInformationKeys } = this.props.config;\n\n const hasAdditionalInformation: boolean = ArrayExtensions.hasElements(additionalInformationKeys);\n\n // Call check-in-for-pickup directly if no additional information to capture.\n if (!hasAdditionalInformation) {\n try {\n await SalesOrdersDataActions.checkInForOrderPickupAsync(\n { callerContext: this.props.context.actionContext, queryResultSettings: {} },\n channelId,\n packingSlipId,\n channelReferenceId\n );\n } catch (error) {\n this.setState({ headerErrorMessage: this.props.resources.genericErrorMessage, isCheckedIn: false });\n this.props.telemetry.error(error);\n return Promise.resolve();\n }\n this.setState({ headerErrorMessage: '', isCheckedIn: true });\n }\n return Promise.resolve();\n };\n}\n\nexport default CheckInForPickup;\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 { 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","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n ICheckoutLoyaltyAdd, ICheckoutLoyaltyRewardPoint, ICheckoutLoyaltyShow,\r\n ICheckoutLoyaltyViewProps\r\n} from '@msdyn365-commerce-modules/checkout/src/modules/checkout-loyalty/./checkout-loyalty';\r\nimport MsDyn365 from \"@msdyn365-commerce/core\";\r\nimport { ICheckoutLoyaltyProps } from \"../definition-extensions/checkout-loyalty.ext.props.autogenerated\";\r\n\r\n\r\ninterface ICheckoutLoyaltyAddExtended extends ICheckoutLoyaltyAdd {\r\n notEnoughPointsErrorString: string;\r\n showNotEnoughPointsError: boolean;\r\n}\r\n\r\nconst AddCheckoutLoyalty: React.FC = ({\r\n heading,\r\n cardNumber,\r\n drawer,\r\n rewardPoints,\r\n loyaltyAmountContainer,\r\n appliedLoyaltyAmountContainer,\r\n loyaltyAmountLabel,\r\n loyaltyAmountInput,\r\n loyaltyAmountApplyButton,\r\n showAppliedAmount,\r\n loyaltyAmountAppliedText,\r\n loyaltyAmountAppliedPrice,\r\n loyaltyAmountRemoveButton,\r\n notEnoughPointsErrorString,\r\n showNotEnoughPointsError\r\n}) => {\r\n return (\r\n <>\r\n {heading}\r\n {cardNumber}\r\n \r\n {rewardPoints.map((rewardPoint: ICheckoutLoyaltyRewardPoint) => {\r\n return (\r\n \r\n {rewardPoint.title}\r\n {rewardPoint.availablePointsText}\r\n {rewardPoint.activePoints}\r\n {rewardPoint.expiringPointsText}\r\n {rewardPoint.expiringPoints}\r\n \r\n );\r\n })}\r\n \r\n \r\n {loyaltyAmountLabel}\r\n {loyaltyAmountInput}\r\n {loyaltyAmountApplyButton}\r\n {\r\n showAppliedAmount &&\r\n \r\n {loyaltyAmountAppliedText}\r\n {loyaltyAmountAppliedPrice}\r\n {loyaltyAmountRemoveButton}\r\n \r\n }\r\n \r\n {showNotEnoughPointsError &&

    {notEnoughPointsErrorString}

    }\r\n \r\n );\r\n};\r\n\r\nconst ShowCheckoutLoyalty: React.FC = ({\r\n heading,\r\n coveredAmountText,\r\n amount\r\n}) => {\r\n\r\n return (\r\n <>\r\n {heading}\r\n {coveredAmountText}\r\n {amount}\r\n \r\n );\r\n};\r\n\r\nconst CheckoutLoyaltyView: React.FC> = props => {\r\n const [ initialized , setInitialized ] = React.useState(false);\r\n const [ showMinValueError , setShowMinvalueError ] = React.useState(false);\r\n const { checkoutLoyalty,\r\n viewState,\r\n showLoyalty,\r\n addLoyalty,\r\n resources: {\r\n notEnoughPointsErrorString,\r\n notEnoughPointsMessage\r\n },\r\n config: {\r\n minLoyaltyRedeemAmount\r\n },\r\n context: {\r\n cultureFormatter: {\r\n formatCurrency\r\n }\r\n }\r\n } = props;\r\n const maxDollars = getMaxDollars(props);\r\n const minDollars = minLoyaltyRedeemAmount ? (minLoyaltyRedeemAmount * .10) : 0;\r\n const minPoints = minLoyaltyRedeemAmount || 0;\r\n if (MsDyn365.isBrowser && !initialized) {\r\n const input = document.querySelector('.ms-checkout-loyalty__amount-input');\r\n const btn = document.querySelector('.ms-checkout-loyalty__amount-button');\r\n if (input && btn) {\r\n setInitialized(true);\r\n loyaltyGuard(minDollars, input, btn, setShowMinvalueError);\r\n }\r\n\r\n }\r\n\r\n const addLoyaltyExtended: ICheckoutLoyaltyAddExtended = {\r\n ...addLoyalty,\r\n notEnoughPointsErrorString: notEnoughPointsErrorString.replace('{0}', formatCurrency(minDollars)),\r\n showNotEnoughPointsError: showMinValueError\r\n }\r\n\r\n let cartDollars = props.data.checkout.result?.checkoutCart.cart.TotalAmount || 0;\r\n return (\r\n \r\n {minDollars > cartDollars ? (\r\n <>\r\n

    {formatCartValueTooLowMessage(props.resources.cartValueTooLowMessage, minPoints.toString(), formatCurrency(minDollars), formatCurrency(cartDollars))}

    \r\n \r\n ) : \r\n maxDollars >= minDollars || minDollars === 0 ? (\r\n <>\r\n {viewState.isShowLoyalty && }\r\n {viewState.isShowAddLoyalty && }\r\n \r\n ) : (\r\n <>\r\n

    {formatNotEnoughPointsMessage(notEnoughPointsMessage, minPoints.toString(), formatCurrency(minDollars), formatCurrency(maxDollars))}

    \r\n )\r\n }\r\n\r\n
    \r\n );\r\n};\r\n\r\nconst formatNotEnoughPointsMessage = (message: string, minPoints:string, minDollars: string, maxDollars: string) =>\r\n message.replace('{0}', minPoints).replace('{1}', minDollars).replace('{2}', maxDollars);\r\n\r\n const formatCartValueTooLowMessage = (message: string, minPoints: string, equivalentDollars:string, cartDollars: string) =>\r\n formatNotEnoughPointsMessage(message, minPoints, equivalentDollars, cartDollars);\r\n\r\n\r\nconst getMaxDollars = (props: ICheckoutLoyaltyViewProps): number => {\r\n return props.data.loyaltyTransactionEstimation.result &&\r\n props.data.loyaltyTransactionEstimation.result.MaxCurrencyValueOfLoyaltyPoints ? props.data.loyaltyTransactionEstimation.result.MaxCurrencyValueOfLoyaltyPoints : 0;\r\n}\r\n\r\nconst loyaltyGuard = (minDollars: number, input: HTMLInputElement, button: HTMLButtonElement, setShowMinValueError: React.Dispatch>) => {\r\n input.addEventListener('keyup', (e) => {\r\n // @ts-ignore - yes it is\r\n const value = e.target?.value;\r\n if (value) {\r\n const parsedValue = parseFloat(value);\r\n const isError = parsedValue < minDollars;\r\n button.disabled = isError;\r\n setShowMinValueError(isError);\r\n }\r\n })\r\n}\r\n\r\nexport default CheckoutLoyaltyView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyTileViewProps } from './account-loyalty-tile';\n\nconst AccountLoyaltyTileView: React.FC = props => {\n const { AccountLoyaltyTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountLoyaltyTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { FormBuilder } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICheckInViewProps } from './check-in-for-pickup';\n\n/**\n * The check-in view for submitting check-in, capturing additional information, and showing check-in confirmation.\n * @param props - The check-in view properties.\n * @returns The check-in view as a react component.\n */\nconst CheckInViewComponent: React.FC = (props: ICheckInViewProps) => {\n const { headerError, checkInForOrderPickup, confirmationComponent, viewState } = props;\n return (\n <>\n {viewState.isHeaderError && headerError}\n {!viewState.isHeaderError && ArrayExtensions.hasElements(props.config.additionalInformationKeys) && (\n \n )}\n {!viewState.isHeaderError &&\n !ArrayExtensions.hasElements(props.config.additionalInformationKeys) &&\n viewState.isCheckedIn &&\n confirmationComponent}\n \n );\n};\n\nexport default CheckInViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLoadingMessage {\n className: string;\n message: string;\n}\n\nconst AccountProfileEditLoadingMessage: React.FC = ({ className, message }) => (\n
    {message}
    \n);\n\nexport default AccountProfileEditLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountLoyaltyTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountLoyaltyTileDescription: React.FC = ({ description }) => (\n

    {description}

    \n);\n\nexport default IAccountLoyaltyTileDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IAccountProfileEditInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst AccountProfileEditInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default AccountProfileEditInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLoadingIcon {\n className: string;\n}\n\nconst PasswordResetLoadingIcon: React.FC = ({ className }) =>
    ;\n\nexport default PasswordResetLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 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":""}