{"version":3,"sources":["webpack:///src/modules/country-picker/country-picker.tsx?051f","webpack:///src/modules/tab-item/tab-item.view.tsx?76f0","webpack:///src/modules/checkout-payment-instrument/checkout-payment-instrument.view.tsx?9afd","webpack:///src/modules/checkout-payment-instrument/components/index.ts?e7fe","webpack:///src/modules/password-reset/password-reset.view.tsx?f872","webpack:///src/modules/account-address-tile/account-address-tile.view.tsx?0b73","webpack:///src/index.ts?c6ae","webpack:///src/modules/back-top-footer/back-top-footer.tsx?0e13","webpack:///src/modules/invoice-details/invoice-details.view.tsx?5ebe","webpack:///src/modules/bulk-purchase/bulk-purchase.view.tsx?2550","webpack:///src/common/get-checkout-return-url.tsx?942d","webpack:///src/modules/adventureworks/views/components/carticon.component.tsx?3d75","webpack:///src/modules/adventureworks/views/components/promocode.component.tsx?6e07","webpack:///src/modules/quick-order/quick-order.view.tsx?2242","webpack:///src/modules/checkout-google-pay/checkout-google-pay.view.tsx?b573","webpack:///src/modules/aad-generic/aad-generic.view.tsx?ecad","webpack:///src/modules/account-customer-balance-tile/account-customer-balance-tile.view.tsx?955a","webpack:///src/modules/catalog-picker/catalog-picker.view.tsx?d632","webpack:///src/modules/adventureworks/views/components/navigation-menu-utilities.tsx?9734","webpack:///src/modules/adventureworks/views/components/navigation-menu-root-disabled.tsx?8952","webpack:///src/modules/adventureworks/views/components/navigation-menu-root-enabled.tsx?083d","webpack:///src/modules/adventureworks/views/navigation-menu.view.tsx?c096","webpack:///src/modules/b2b-requests-status/b2b-requests-status.view.tsx?afa7","webpack:///src/modules/checkout-payment-instrument/components/payment-information.tsx?3828","webpack:///../../src/index.ts?0e3e","webpack:///src/modules/checkout-google-pay/checkout-google-pay.tsx?876c","webpack:///src/modules/fabrikam/views/search-result-container.view.tsx?f8ea","webpack:///src/modules/invoices-list/invoices-list.view.tsx?0243","webpack:///src/modules/adventureworks/views/content-block.view.tsx?ebaa","webpack:///src/modules/tab/tab.tsx?d713","webpack:///../../../src/module-state-manager/with-module-state.tsx?61ca","webpack:///src/modules/checkout-payment-instrument/actions/get-card-payment-accept-point.ts?e5ef","webpack:///../../src/checkout-state.ts?acd8","webpack:///src/common/index.ts?ee63","webpack:///src/modules/account-generic-tile/account-generic-tile.view.tsx?bca1","webpack:///src/modules/sign-up/sign-up.view.tsx?e4b6","webpack:///src/modules/account-profile-edit/account-profile-edit.view.tsx?72b7","webpack:///src/modules/tab-item/tab-item.tsx?d2c1","webpack:///src/modules/navigation-menu/navigation-menu.data.ts?a9f0","webpack:///src/modules/navigation-menu/navigation-menu.tsx?390c","webpack:///src/common/error.tsx?f9f6","webpack:///../../../src/module-state-manager/module-state.ts?7579","webpack:///src/modules/account-wishlist-tile/account-wishlist-tile.view.tsx?58da","webpack:///src/common/checkout.tsx?9dad","webpack:///src/modules/country-picker/country-picker.view.tsx?825b","webpack:///src/modules/tab/tab.view.tsx?701e","webpack:///src/modules/organization-users-tile/organization-users-tile.view.tsx?d92a","webpack:///src/common/iframe.tsx?89ab","webpack:///src/modules/account-profile/account-profile.view.tsx?b442","webpack:///src/common/with-visibility-observer.tsx?6bf2","webpack:///src/modules/tile-list-item/tile-list-item.view.tsx?0144","webpack:///src/common/payment-instrument-message.ts?208d","webpack:///src/modules/account-loyalty-tile/account-loyalty-tile.view.tsx?c661","webpack:///src/modules/b2b-requests-tile/b2b-requests-tile.view.tsx?949e","webpack:///../../../src/module-state-manager/index.ts?8e3a","webpack:///src/modules/account-welcome-tile/account-welcome-tile.view.tsx?a13c","webpack:///src/modules/navigation-menu/navigation-menu.view.tsx?df40","webpack:///src/common/waiting.tsx?8365","webpack:///src/modules/account-invoice-tile/account-invoice-tile.view.tsx?4620","webpack:///src/modules/loyalty-terms/loyalty-terms.view.tsx?5155","webpack:///src/common/add-payment-form.tsx?7e1f","webpack:///src/modules/tile-list-item/components/links.tsx?e54f","webpack:///src/modules/tile-list-item/tile-list-item.tsx?99bb","webpack:///../../src/checkout-utilities.data.ts?b2cc","webpack:///src/checkout-errors/checkout-errors.ts?687e","webpack:///src/modules/checkout-payment-instrument/checkout-payment-instrument.tsx?0303","webpack:///src/modules/checkout-apple-pay/checkout-apple-pay.view.tsx?3cd4","webpack:///src/modules/checkout-payment-instrument/index.ts?4b7c","webpack:///src/modules/adventureworks/views/footer-item.view.tsx?9747","webpack:///src/modules/account-customer-balance/account-customer-balance.view.tsx?35d2","webpack:///../../src/checkout-state-data-action.ts?8344","webpack:///src/common/empty-active-cart.tsx?80fa"],"names":["CountryPicker","React","constructor","props","super","_telemetryContent","getTelemetryObject","this","context","request","telemetryPageName","friendlyName","telemetry","_preferredSiteStorageKey","_cookieExpirationTime","closeModal","setState","isModalOpen","_handleStayOnSiteButtonClick","_this$props$context$r","currentBaseUrl","marketSettings","urlToStore","_appendProtocolToUrl","_writeToCookie","_handleClick","storageKey","storageValue","cookieOptions","secure","sameSite","maxAge","cookies","set","baseUrl","includes","isCookieValueSet","get","value","state","undefined","render","_heading$tag","heading","subheading","countryList","actionLink","config","isConsentGiven","countryPickerHeading","MsDyn365","className","tag","text","editProps","onEdit","handleTextChange","requestContext","countryPickerSubHeading","handleParagraphChange","countryPickerActionLink","createLink","currentSiteButton","Button","onClick","tabIndex","resources","stayOnCurrentSiteButtonText","viewprops","_objectSpread","modalContainer","moduleProps","Modal","isOpen","toggle","modalTransition","timeout","shouldUpdateFocusToFirstElement","modalHeaderContainer","ModalHeader","closeButtonTabIndex","modalFooterContainer","ModalFooter","modalBodyContainer","ModalBody","link","renderCountryList","stayOnCurrentSiteButton","renderView","event","target","handleLinkTextChange","_this$props$config$ac","linkText","StringExtensions","isNullOrEmpty","linkUrl","destinationUrl","_link$linkText","payLoad","getPayloadObject","attributes","getTelemetryAttributes","editableLink","ariaLabel","openInNewTab","role","additionalProperties","onTelemetryClick","onTextChange","localeItems","map","renderCountry","localeItem","_image$imageSettings","_image$src","localeBaseUrl","matchedCountryItem","find","item","url","imageSize","q","w","h","defaultImageSettings","viewports","xs","lg","xl","lazyload","image","imageProps","gridSettings","imageSettings","key","displayString","href","src","altText","loadFailureBehavior","shouldSkipToMainImage","displaySubString","_renderTabItemContent","items","length","index","TabItemView","tabItemType","tabSlots","TabContentContainer","TabHeaderContainer","TabItemContent","tabHeader","TabItemType","TabContent","Module","Object","assign","Node","tabItemContent","TabHeader","OverlayModal","_ref","modal","CheckoutPaymentInstrumentView","_ref2","checkoutPaymentInstrument","checkoutErrorRef","id","waiting","alert","paymentInformation","addPaymentForm","overlayModal","_objectWithoutProperties","_excluded","ref","PasswordResetItem","wrapper","label","errorMessage","input","PasswordResetLoading","_ref3","modalBody","icon","message","PasswordResetView","passwordReset","viewState","loading","defaultAADConainer","aadConainer","passwordResetLocalAccount","isShowLoading","localAccount","buttonsWrapper","buttons","verificationSuccessModal","verificationSuccessModalMessage","error","button","LocalAccount","AccountAddressTileView","AccountAddressTile","description","links","BackTopFooter","backtoTopText","telemetryContent","destination","BackToTop","title","InvoiceDetailsView","header","products","paymentDetails","payInvoiceError","BulkPurchaseViewComponent","container","content","GetCheckoutReturnUrl","actionContext","returnUrl","getUrlSync","isAbsoluteUrl","RegExp","test","window","location","origin","CartIcon","observer","cartLabel","cartQtyLabel","data","cart","cartItem","totalItemsInCart","qtyLabel","format","style","visibility","CartIconComponent","msdyn365Commerce","createComponentOverride","component","PromoCode","_onInputChangeHandler","promoCodeInputValue","trim","canApply","_applyPromotion","cartState","appliedPromo","addPromoCode","promoCode","then","result","status","substatus","duplicatePromoCodeErrorText","invalidPromoCodeErrorText","catch","failedToAddPromoCodeErrorText","_onSubmitHandler","preventDefault","applyPromotionHandler","_renderForm","promoPlaceholderText","promoCodeApplyButtonText","onSubmit","onChange","placeholder","disabled","_removePromotion","_event$currentTarget$","code","currentTarget","getAttribute","removePromoCodes","promoCodes","failedToRemovePromoCodeErrorText","_renderAppliedPromoCode","Coupons","ArrayExtensions","hasElements","removePromotionHandler","coupon","removePromoAriaLabelFormat","removePromoText","Code","TelemetryConstant","ApplyPromoCode","promoCodeHeadingText","renderConfigure","configure","containerProps","dropdowns","renderConfigureDropdown","dropdown","labelContainerProps","errors","select","quickOrderView","quickOrderProps","contentProps","form","quickOrderForm","drawer","quickOrderFormProductContent","quickOrderFormMsgContent","quickOrderList","isMobileView","renderForm","quickOrderProductContent","quickOrderMsgContent","product","quantity","userMessage","addToCartBtn","CheckoutGooglePayView","checkoutGooglePay","checkoutButton","appendChild","document","createElement","aadGeneric","aadAPIConainer","AccountCustomerBalanceTileView","AccountCustomerBalanceTile","CatalogPickerViewFunctionComponent","catalogPicker","paragraph","catalogs","NavMenuConstants","getCategoryImage","categoryImage","alttext","categoryImageUrl","generateImageUrl","navProps","apiSettings","sm","md","_props$navProps$confi","imageData","Msdyn365","categoryImageSettings","NavigationMenuRootDisabled","supportedLevel","four","currentLevel","zero","escapeKey","promotionalImage","_toggleNavBar","previousState","activeMenu","isNavOpen","_bindDesktopCategoryClick","menuId","isDrawerOpen","drawerKeyValue","newPair","_updateCategoryImage","categoryImageSource","option","promotionalContent","imageSource","push","_handleDropdownToggle","parentId","isOnlyMobile","isBackTrack","mobileViewLabelText","parentMenu","showCategoryImage","_handleGoBack","_handleClickOutside","menuNode","current","contains","_shouldAddFocusMenuRef","optionLinkText","_closeNavMenu","_this$menuNode$curren","children","focus","_escFunction","_this$menuNode$curren2","keyCode","_customUpdateViewport","menuItemRef","menuItemData","subMenu","imagesource","isMobile","variant","VariantType","Browser","componentDidMount","customResizeThrottledEventHandler","addThrottledEvent","addEventListener","body","componentDidUpdate","_this$menuItemRef$cur","componentWillUnmount","removeEventListener","_renderMobileMenu","hamburgerAriaLabel","_renderCollapseMenu","Collapse","_renderDesktopMenu","MenuList","MobileBackButton","MobileDescriptionContainer","MobileDescriptionLabel","Navigation","classnames","_renderDisplay","_renderDrawerLink","linkURL","isNullOrWhitespace","_renderLinkMenuItem","_renderSpanMenuItem","ListItem","menuItemList","menuItem","_getFromSubMenu","_createMenuItemList","entries","parentMenuId","menu","one","Number","found","_renderSubMenu","_renderButtonMenuItem","subMenuArray","isSubMenu","_this$props$navProps$","_this$props$navProps$2","subMenus","rootMenu","filter","subMenuItem","MenuTypeIndexId","Retail","isEnableMultiSupportMenu","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","three","levelClassName","menuOptions","hasOptions","getMenuItem","isHavingSubmenu","Math","round","two","_renderSubMenuDrawer","toString","onMouseOver","_renderMenu","_renderLinkMenuItemLevelOne","_this$props$navProps$3","toggleButtonText","buttonText","keys","colProps","Drawer","collapseProps","openGlyph","closeGlyph","glyphPlacement","onToggle","menuSubItem","Link","contentAction","etext","shouldOpenNewTab","isHoverEffect","arguments","_renderPromotionalLink","Span","level","isSubmenu","_this$state$categoryI","DivContainer","ImageDivContainer","showPromotionalContent","isCategoryImageDisplay","isPromotionalContentDisplay","divContainerClass","menuLevelSupportClassName","categoryImages","imagesContainerKey","join","_item$src","_item$additionalPrope","__decorate","computed","NavigationMenuRootEnabled","_addShopAllLink","_this$menuItemData$0$","shopAllObject","allCategoryMenuText","menuSource","MenuSource","unshift","cmsMenuData","retailMenuItemData","retailMenuData","JSON","parse","stringify","menuItemDatum","navigationMenuView","enabletopMenu","B2bRequestsStatusView","b2bRequestsStatus","table","PaymentInformation","changePaymentButtonText","cardTitle","cardNumberLabel","expiresDateLabel","addressTitle","tokenizedPaymentCard","tenderLine","billingAddress","canEdit","NameOnCard","CardTypeId","CardTokenInfo","ExpirationMonth","ExpirationYear","MaskedCardNumber","cardLastNDigit","substr","isValidCardNumber","isNaN","Name","Street","StreetNumber","City","State","ZipCode","ThreeLetterISORegionName","Phone","color","GooglePayButtonState","CheckoutGooglePay","moduleClassName","zeroAmount","baseRequest","apiVersion","apiVersionMinor","allowedCardNetworks","allowedCardAuthMethods","baseCardPaymentMethod","type","parameters","allowedAuthMethods","paymentsClient","googlePayButton","initialize","script","onload","loadGoogleSdk","async","onerror","isReadyToPayRequest","allowedPaymentMethods","buttonState","NotAvailable","isReadyToPay","googleClient","createButton","buttonColor","buttonType","buttonSizeMode","handlePayButton","Available","loadPaymentData","paymentDataRequest","statusCode","information","statusMessage","onPaymentAuthorized","processPayment","paymentData","transactionState","e","reason","genericErrorMessage","intent","Promise","resolve","reject","_checkout$result","_checkout$result2","checkout","merchantConfiguration","paymentConnectorId","connectorId","paymentToken","paymentMethodData","tokenizationData","token","browserInfo","acceptHeader","colorDepth","screen","language","navigator","javaEnabled","screenHeight","height","screenWidth","width","userAgent","timeZoneOffset","Date","getTimezoneOffset","settings","ReturnUrl","PaymentConnectorId","cardPaymentAcceptResult","AccessCode","btoa","Settings","updateCardPaymentAcceptResult","newCardPaymentAcceptResult","updateIsPaymentSectionContainerReady","newIsPaymentSectionContainerReady","performRedirect","checkoutState","redirectPaymentConnectorId","warning","redirectInfo","redirectAdditionalContext","updatePaymentTenderType","newPaymentTenderType","paymentTenderType","saveDataInStorage","updateIsPaymentVerificationRequired","newIsPaymentVerificationRequired","method","action","propertyName","element","name","submit","handlePaymentVerification","requestFormData","query","redirectResult","checkoutCart","refreshCart","updateShouldCollapsePaymentSection","newShouldCollapsePaymentSection","Unknown","loyaltyAmount","giftCardExtends","reduce","count","giftCard","Balance","_checkoutState$custom","customerAccountAmount","_checkout$result3","AmountDue","max","getGiftCardTotalAmount","getLoyaltyAmount","getCustomerAccountAmount","clientRequest","environment","paymentDataCallbacks","google","payments","api","PaymentsClient","currencyCode","totalPriceStatus","totalPrice","amountDue","cardPaymentMethod","tokenizationSpecification","gateway","gatewayMerchantId","adyenMerchantId","transactionInfo","merchantInfo","merchantId","googleMerchantId","callbackIntents","reaction","_checkout$result4","_checkout$result5","_checkout$result6","_checkout$result7","isPaymentVerificationRedirection","isPlaceOrderEnabledInRedirection","loadPaymentAcceptPage","user","isOBORequest","EnabledPaymentsForOBO","ExpressPayment","viewProps","classNames","paymenTenderType","getCardPaymentAcceptPointAction","GetCardPaymentAcceptPointInput","paymentAcceptPoint","configuration","getMerchantConfiguration","console","AcceptPageContent","Error","createSearchResultModal","modalProps","refineMenu","sortByDropDown","isRecoSearchPage","modalHeader","createModalBody","modalFooter","renderSort","renderRefiner","refiners","RefineMenuContainer","RefinerSectionContainer","submenu","SortingContainer","renderCategoryHierarchy","CategoryHierarchyContainer","categoryHierarchyList","categoryHierarchySeparator","category","renderTitle","TitleContainer","titlePrefix","titleText","titleCount","SearchResultContainerView","_props$context$action","SearchResultContainer","pagination","ProductsContainer","ProductSectionContainer","choiceSummary","modalToggle","searchResultModal","TitleViewProps","categoryHierarchy","sortByOptions","CategoryNavContainer","RefineAndProductSectionContainer","FeatureSearchContainer","similarLookProduct","recommendation","InvoiceListView","invoiceRequestModal","renderAdditionalContent","additionalContent","_additionalContent$ad","additionalContentNode","additionalContentItems","additionalContentItemContainer","additionalContentItemLinks","contentBlockView","contentBlockContainer","imageContainer","detailsContainer","contentBlockAnchorTag","imageLink","imageAriaLabel","imageClass","Tab","tabIndexQuery","handleHeadingChange","_refHandler","activeLink","_onClick","activeTabState","activeContentIndex","tabId","update","createTabStateInput","currentTabIndex","newUrl","_setGetParameter","String","history","pushState","path","_onKeyDown","slots","slotLength","tabItems","defaultTabIndex","initialIndex","queryString","activeTab","queryTabIndex","indexOf","arr","split","parseInt","_getTabHeader","bind","_getTabContent","shouldComponentUpdate","nextProps","nextState","headingComponent","tabViewProps","TabContainer","headerSection","tabsSection","tabItemContainer","tabContents","tabHeaders","params","isEditor","dataActionTabId","selected","contentID","getContentID","onKeyDown","isSelected","itemIndex","paramName","paramValue","isBrowser","URL","requestUrl","URLSearchParams","search","decodeURIComponent","withModuleState","WrappedComponent","_super","ModuleState","_this","call","initializeState","_b","typeName","states","getModuleStates","updateModuleStates","__assign","_a","hasInitialized","hasError","isRequired","isCancellable","isSubmitContainer","childIds","getModuleStateManager","moduleState","validate","isReady","isUpdating","isPending","isSkipped","isDisabled","isCancelAllowed","shouldSubmitContainer","hasExternalSubmitGroup","hasModuleState","setIsRequired","setIsCancellable","setIsSubmitContainer","setHasError","onReady","onUpdating","onPending","onSkip","onDisable","getModule","moduleId","getModuleByTypeName","getModuleStateManagerByTypeName","init","options","moduleStates","values","_moduleState","modules","_validateLeaf","source","module","isMatch","_validateContainer","allMatched","skipSkippableItem","app","shouldEnableSinglePaymentAuthorizationCheckout","childId","_isPaymentSectionContainer","enableControl","__extends","prototype","getCacheKey","buildCacheKey","getCacheObjectType","dataCacheType","showBillingAddress","shouldPassLocaleToiFrame","ctx","_checkoutState$checko","exception","getCheckoutState","isEmptyOrNullObject","CartLines","cardPaymentAcceptSettings","HostPageOrigin","AdaptorPath","CardPaymentEnabled","CardTokenizationEnabled","HideBillingAddress","TenderTypeId","PaymentAmount","Locale","locale","getCardPaymentAcceptPointAsync","callerContext","bypassCache","Id","cardPaymentAcceptPoint","AcceptPageUrl","debug","getCardPaymentAcceptPointActionDataAction","createObservableDataAction","inputData","_inputData$config","getCardPaymentAcceptPointInput","showBillingAddres","CheckoutState","_giftCards","_giftCardExtends","_loyaltyAmount","_guestCheckoutEmail","_isTermsAndConditionAccepted","_customerAccountAmount","defineProperty","_tokenizedPaymentCard","_tenderLine","_billingAddress","_shippingAddress","_cardPrefix","_loyaltyCardNumber","updateTokenizedPaymentCard","newTokenizedPaymentCard","updateTenderLine","newTenderLine","updateShippingAddress","newShippingAddress","updateBillingAddress","newBillingAddress","updateCardPrefix","newCardPrefix","removeGiftCard","giftCardNumber","removeGiftCardExtend","addGiftCard","__spreadArrays","addGiftCardExtend","updateLoyaltyCardNumber","newLoyaltyCardNumber","updateLoyaltyAmount","newAmount","updateGuestCheckoutEmail","newGuestCheckoutEmail","updateTermsAndConditionsAcceptance","newIsTermsAndConditionAccepted","updateCustomerAccountAmount","observable","AsyncResultStatusCode","AccountGenericTileView","AccountGenericTile","SignUpItem","SignUpEmailVerification","email","buttonWrapper","successMessage","SignUpGivenNameVerificationComponent","givenName","SignUpSurnameVerificationComponent","_ref4","surname","SignUpLoading","_ref6","SignUpView","signUp","signUpLocalAccount","_ref5","emailVerification","givenNameVerification","surnameVerification","disclaimer","verificationControlWrapper","AccountProfileEditItem","AccountProfileEditLoading","AccountProfileEditView","accountProfileEdit","accountProfileEditLocalAccount","TabItem","moduleContentClassName","moduleHeaderClassName","_renderTabHeader","activeContentIDResult","shown","tabItemTitle","NavigationMenu","isRetail","isCMS","_setNavigationSource","sourceType","_updateViewport","viewport","device","Type","navigationMenuSource","nameTranslations","nameTranslation","Language","toLowerCase","Text","resizeThrottledEventHandler","_this$props$config$di","_this$props$config$di2","_mapData","displayCategoryImage","displayPromotionalImage","ImageContainer","backButtonAriaLabel","mergedData","categories","_constructMenuItemData","cmsNavItems","idx","_constructTopMenuItemData","_this$props$config$en","_this$props$config$ro","mergedRootMenuData","topMenu","rootMenuNavigation","retailItem","cmsItem","addedAllMenu","categoryPromotionalContent","cmsItemText","menuAriaLabel","promotionalData","promoItem","_promoItem$categoryNa","_retailItem$Name","categoryName","_NavigationMenu$getFr","_NavigationMenu$getFr2","Images","Uri","RSItemIdInit","getFriendlyName","NameTranslations","Url","_getNestedChildren","CMSItemIdInit","imageDestinationURL","_getCMSNestedChildren","Cms","imageSourceUrl","nestedChildren","Children","getCategoryUrl","_getViewport","innerWidth","ErrorComponent","ModuleStatesCacheKey","cacheKey","AccountWishlistTileView","AccountWishlistTile","OPERATIONS","getCardTypeId","cardPrefix","response","resolveCardTypesAsync","CardType","TypeId","findTenderIdTypeByOperationId","tenderTypes","operationId","matchedTenderType","tenderType","OperationId","roundNumber","toFixed","CartCheckout","updatedCartVersion","channelConfiguration","channel","guestCheckoutEmail","isExpressCheckoutApplied","isExpressAddressApplied","Currency","cartTenderLines","getTenderLinePromises","loyaltyCardNumber","LoyaltyCardId","chargedAmount","min","loyaltyTenderLinePromise","Amount","getTenderTypesAsync","queryResultSettings","getLoyaltyTenderLine","customerAccountTenderLinePromise","CustomerId","isAuthenticated","createCustomerAccountTenderLine","some","giftCardExtend","_giftCardExtend$Expir","_giftCardExtend$Expir2","tenderTypeId","giftCardPin","Pin","giftCardExpirationYear","ExpirationDate","giftCardExpirationMonth","creditCardTenderLinePromise","GiftCardId","GiftCardPin","GiftCardExpirationYear","GiftCardExpirationMonth","getGiftCardTenderLine","amount","currency","TokenizedPaymentCard","House","Country","Address1","Zip","cardTenderLine","CardPaymentAcceptResult","getCreditCardTenderLineForSinglePaymentAuth","cartTypeId","TenderType","getCreditCardTenderLine","all","cartVersion","Version","salesOrder","checkoutAsync","_error$data","_error$data2","_cardPaymentAcceptRes","_cardPaymentAcceptRes2","AdditionalContext","updateRedirectAdditionalContext","newRedirectAdditionalContext","updateRedirectPaymentConnectorId","newRedirectPaymentConnectorId","updateIsCheckoutCallFailed","newIsCheckoutCallFailed","updateCheckoutErrorPaymentConnectorId","newCheckoutErrorPaymentConnectorId","updateIsExpressCheckoutApplied","newIsExpressCheckoutApplied","countryPickerView","country","tabView","OrganizationUsersTileView","OrganizationUsersTile","getHostName","Iframe","postMessage","_this$iframeRef$curre","iframeRef","contentWindow","targetOrigin","onEvent","sourceUrl","onIFrameMessage","requestUrlOrigin","messageOrigin","sourceHost","eventHost","requestHost","messageHost","updateContentDocument","displayContent","css","innerDocument","contentDocument","open","write","cssNote","createTextNode","head","close","previousProps","iframeAriaLabel","moduleName","sandbox","AccountPreferencesSection","accountPreferences","personalization","extraPreferences","AccountPreferenceSection","preferenceSecton","accountPreference","buttonYesText","buttonNoText","AccountProfileSection","AccountProfileItem","AccountProfileView","AccountProfile","infoMessageBar","accountProfileWrapper","emailSection","nameSection","preferenceSection","customerAttributesWrapper","customerAttributesSection","withVisibilityObserver","VisibilityObserver","isVisible","selfRef","initMutationObserver","targetNode","getElementsByTagName","MutationObserver","mutationObserver","handleVisibilityChange","observe","childList","subtree","stopMutationObserver","_this$state$observer","disconnect","offsetWidth","offsetHeight","visibilityObserver","TileListItemViewComponent","tileListItem","backgroundImage","thumbnailImage","tileListContainer","tileListImageContainer","tileListThumbnailImageContainer","tileListHeadingContainer","renderTileListItemContent","PaymentConnectorPostMessageType","paymentConnectorMessage","messageType","paymentConnectorExtraContextMessage","ExtraContext","paymentConnectorSubmitMessage","Submit","paymentConnectorAmountMessage","AccountLoyaltyTileView","AccountLoyaltyTile","B2bRequestsTileView","b2bRequestsTile","AccountWelcomeTileView","AccountWelcomeTile","NavigationMenuView","categoryImageSrc","imageSrc","promotionalItemImageSettings","categoryImageAltText","_handleFocusOutside","relatedTarget","_closeSubmenu","_getCategoryImage","_categoryImage$imageS","Image","forEach","i","IsSubMenu","enableMultiSupportMenu","haveSubmenu","onFocus","hoverEffect","isParent","currentItem","categoryImageDisplay","promotionalContentDisplay","DivContainerClass","WaitingComponent","Waiting","AccountInvoiceTile","LoyaltyTermsView","LoyaltyTerms","terms","agreeSection","checkbox","agreeText","submitButton","cancelButton","AddPaymentFormComponent","acceptPageUrl","acceptPageContent","onCancel","canSubmit","canCancel","iFrameHeightOverride","isFetchingPaymentConnector","paymentStyleOverride","cancelButtonText","submitButtonText","defaultPaymentConnectorStyle","TileListLinks","_mapEditableLinks","linkdata","editableLinks","TileListItem","linkIndex","_this$props$config$li","redirectionUrl","tileListLinks","tileListLinkContainer","_createHeading","_createParagraph","_renderBackgroundImage","_renderThumbnailImage","isAriaHiddenAttribute","_item$imageSettings","_this$props$config$ba","verifiedImageSettings","moduleType","imagePropertyName","itemImageSettings","_this$props$config$th","layout","msdyn365__moduleLayout","CheckoutErrors","getCheckoutErrorMessage","errorMessageResource","errorMessageFromAPI","errorResource","resource","ActionError","errorCode","ErrorCode","ErrorMessageResource","checkoutTimeoutErrorMessage","errorLocation","ErrorLocation","Checkout","Microsoft_Dynamics_Commerce_Runtime_BlockedLoyaltyCard","blockedLoyaltyCardErrorMessage","CheckoutLoyalty","Microsoft_Dynamics_Commerce_Runtime_CustomerAccountLimitSignDifferentFromAmountDue","customerAccountLimitSignDifferentFromAmountDueErrorMessage","CheckoutCustomerAccountPayment","Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsAvailableCreditLimit","customerAccountPaymentExceedsAvailableCreditLimitErrorMessage","Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsCustomerAccountFloorLimit","customerAccountPaymentExceedsCustomerAccountFloorLimitErrorMessage","Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsTotalAmountForCarryOutAndReturnItems","customerAccountPaymentExceedsTotalAmountForCarryOutAndReturnItemsErrorMessage","Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentForCustomerWithoutAllowOnAccount","customerAccountPaymentForCustomerWithoutAllowOnAccountErrorMessage","Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentNotAllowedForOpenInvoices","customerAccountPaymentNotAllowedForOpenInvoicesErrorMessage","Microsoft_Dynamics_Commerce_Runtime_FraudRisk","fraudRiskErrorMessage","CheckoutPaymentInstrument","Microsoft_Dynamics_Commerce_Runtime_GiftCardBalanceInquiryFailed","giftCardBalanceInquiryFailedErrorMessage","CheckoutGiftCard","Microsoft_Dynamics_Commerce_Runtime_GiftCardCurrencyMismatch","giftCardCurrencyMismatchErrorMessage","Microsoft_Dynamics_Commerce_Runtime_InvalidCartVersion","invalidCartVersionErrorMessage","Microsoft_Dynamics_Commerce_Runtime_InvalidLoyaltyCardNumber","invalidLoyaltyCardNumberErrorMessage","Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest","invalidPaymentRequestErrorMessage","Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest_Console","invalidPaymentRequestConsoleErrorMessage","Console","Microsoft_Dynamics_Commerce_Runtime_MissingRequiredCartTenderLines","missingRequiredCartTenderLinesErrorMessage","Microsoft_Dynamics_Commerce_Runtime_MultipleCustomerAccountPaymentsNotAllowed","multipleCustomerAccountPaymentsNotAllowedErrorMessage","Microsoft_Dynamics_Commerce_Runtime_NoMoreThanOneLoyaltyTender","noMoreThanOneLoyaltyTenderErrorMessage","Microsoft_Dynamics_Commerce_Runtime_NoResponseFromGatewayForGiftCardBalanceInquiry","noResponseFromGatewayForGiftCardBalanceInquiryErrorMessage","Microsoft_Dynamics_Commerce_Runtime_NoTenderLoyaltyCard","noTenderLoyaltyCardErrorMessage","Microsoft_Dynamics_Commerce_Runtime_NotEnoughRewardPoints","notEnoughRewardPointsErrorMessage","Microsoft_Dynamics_Commerce_Runtime_PaymentAlreadyVoided","paymentAlreadyVoidedErrorMessage","Microsoft_Dynamics_Commerce_Runtime_PaymentAmountExceedsGiftBalance","paymentAmountExceedsGiftBalanceErrorMessage","Microsoft_Dynamics_Commerce_Runtime_PaymentRequiresMerchantProperties","paymentRequiresMerchantPropertiesErrorMessage","Microsoft_Dynamics_Commerce_Runtime_PaymentRequiresMerchantProperties_Console","paymentRequiresMerchantPropertiesConsoleErrorMessage","Microsoft_Dynamics_Commerce_Runtime_PaymentUsingUnauthorizedAccount","paymentUsingUnauthorizedAccountErrorMessage","Microsoft_Dynamics_Commerce_Runtime_RefundAmountMoreThanAllowed","refundAmountMoreThanAllowedErrorMessage","Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePayment","unableToAuthorizePaymentErrorMessage","Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardAdditionalContextRequired","unableToAuthorizePaymentCardAdditionalContextRequiredErrorMessage","Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardTypeMissingOrNotSupported","unableToAuthorizePaymentCardTypeMissingOrNotSupportedErrorMessage","Microsoft_Dynamics_Commerce_Runtime_UnableToCancelPayment","unableToCancelPaymentErrorMessage","Microsoft_Dynamics_Commerce_Runtime_UnableToReadCardTokenInfo","unableToReadCardTokenInfoErrorMessage","Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveCardPaymentAcceptResult","unableToRetrieveCardPaymentAcceptResultErrorMessage","checkoutErrorsList","_this$props$data$card","_this$props$config$pa2","setTerminalError","shouldCheckConnectorId","_this$props$config$pa","express","Height","paymentConnectorHeight","postMessageToIframe","isPrimaryPayment","Result","handlePaymentResult","CardPrefix","handlePaymentCardPrefix","handlePaymentError","Redirect","handlePaymentRedirect","Showoverlay","showOverlayModal","Hideoverlay","resultAccessCode","_cardPaymentAcceptPoi","isRedirectedFromPaymentGateway","termsAndConditionErrorMessage","cartId","_this$props$data$chec","terminalError","isTermsAndConditionChecked","isTermsAndConditionAccepted","setErrorMessage","updatePaymentAcceptPageData","finally","isPaymentProcessing","retrieveCardPaymentAcceptResultAsync","TenderLine","saveBillingAddress","handleAdditionalContext","cardTypeId","_this$props$data$chec2","_handleCheckoutError","redirectData","isPaymentVerificationRequried","paymentVerificationPostData","onContainerReady","isShow","isOverlayModal","redirectToPaymentVerification","_this$props$config$pa3","defaultSubmitErrorMessage","_value","Message","_checkout$result8","_checkout$result9","_checkout$result11","moduleStatusWhenExpressCheckoutApplied","_checkout$result10","shouldPaidByCard","asyncResultStatus","FAILED","_handleExpressCheckout","formData","cardTypeErrorMessage","_checkout$result12","setPending","additionalContext","log","Address2","togglePayment","_this$props$config$pa4","hasSelectedItem","_this$props$config$pa5","_this$props$data$chec3","_this$props$data$chec4","updateIsExpressAddressApplied","newIsExpressAddressApplied","_this$props$config$pa6","_this$props$data$card2","checkoutResult","errorPaymentConnectorId","shouldEnableCheckoutErrorDisplayMessaging","apiError","clientCheckoutError","consoleCheckoutErrors","checkoutError","consoleCheckoutError","updateCheckoutError","newCheckoutError","updateShouldFocusOnCheckoutError","newShouldFocusOnCheckoutError","genericError","setCheckoutErrors","_this$props$data$chec5","_this$props$config$pa7","_this$props$data$chec6","TotalAmount","_config$paymenTenderT","isPaidByOtherPaymentSource","toLocaleLowerCase","_featureState$result","pickupDeliveryModeCode","emailDeliveryModeCode","channelDeliveryOptionConfig","featureState","feature","IsEnabled","cartLine","_channelDeliveryOptio","DeliveryMode","PickupDeliveryModeCodes","deliveryMode","every","LOADING","SUCCESS","_this$props$data$chec10","_this$props$data$chec15","when","_this$props$data$chec7","_this$props$data$chec8","_this$props$config$pa8","shouldReloadAcceptPage","_this$props$data$chec9","_this$props$data$chec11","_this$props$data$card3","_this$props$data$chec12","checkoutErrorPaymentConnectorId","_this$props$data$chec13","checkoutErrorFocus","_this$props$data$card4","_this$props$data$chec14","CheckoutModule","scrollIntoView","updateCheckoutErrorFocus","newCheckoutErrorFocus","None","focusOnCheckoutError","_this$props$data$chec16","_this$props$data$chec17","_this$props$data$chec18","_this$props$data$chec19","_this$props$data$card5","_this$props$data$chec20","_this$props$config$pa9","_this$props$data$chec21","_this$props$data$chec22","_this$props$data$chec23","_this$props$data$card6","_this$props$data$chec24","_this$props$data$chec25","_this$props$config$pa10","_checkout$result13","_cardPaymentAcceptPoi2","isSinglePayment","PaymentInstrument","MessageOrigin","paymentTenderTypeClassName","loadingMessage","errorMessageTitle","PaymentInformationComponent","CheckoutApplePayView","checkoutApplePay","applePayButton","FooterItemView","FooterItem","_renderElement","HeadingContainer","EditableLink","accountSectionHeading","creditSummarySectionHeading","accountLabels","accountValues","creditSummaryLabels","creditSummaryValues","homeButton","actions","requestStatementModal","availableCredit","balanceOwed","creditExcess","CheckoutStateInput","EmptyActiveCart","lineItemIdsToRemove","getCartState","activeCart","activeCartLine","checkoutCartLine","LineId","removeCartLines","cartLineIds","removeAllPromoCodes","removeCheckoutCartId"],"mappings":"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","file":"static/js/2.5e4d68bb1c5687c87ba8.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 { ICookieSetOptions, IImageDimension, ILocaleItems } from '@msdyn365-commerce/core-internal';\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n ITelemetryContent,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICountryPickerData } from './country-picker.data';\nimport { IActionLinkData, ICountryPickerProps } from './country-picker.props.autogenerated';\n\n/**\n * CountryPicker view props interface.\n */\nexport interface ICountryPickerViewProps extends ICountryPickerProps {\n modalContainer: IModuleProps;\n modalHeaderContainer: INodeProps;\n modalFooterContainer: INodeProps;\n modalBodyContainer: INodeProps;\n heading?: React.ReactNode;\n subheading?: React.ReactNode;\n link?: React.ReactNode;\n countryList?: React.ReactNode[];\n isModalOpen?: boolean;\n state?: ICountryPickerState;\n stayOnCurrentSiteButton?: React.ReactNode;\n}\n\n/**\n * ICountryPickerState: Interface for Country picker State.\n */\nexport interface ICountryPickerState {\n isModalOpen: boolean;\n}\n\n/**\n *\n * CountryPicker component.\n * @extends {React.PureComponent>}\n */\nexport class CountryPicker extends React.PureComponent, ICountryPickerState> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n private readonly _preferredSiteStorageKey: string = '_msdyn365___site_';\n\n private readonly _cookieExpirationTime = 5_184_000;\n\n public constructor(props: ICountryPickerProps) {\n super(props);\n let isCookieValueSet: boolean = false;\n if (props.context.request.cookies.get(this._preferredSiteStorageKey).value) {\n isCookieValueSet = true;\n }\n this.state = {\n isModalOpen: !isCookieValueSet && this.props.context.request.marketSettings !== undefined\n };\n }\n\n public render(): JSX.Element | null {\n const { heading, subheading, countryList, actionLink } = this.props.config;\n\n const isConsentGiven = this.props.context.request.cookies.isConsentGiven();\n\n if (!isConsentGiven) {\n return null;\n }\n\n const countryPickerHeading = heading && (\n \n );\n\n const countryPickerSubHeading = subheading && (\n \n );\n\n const countryPickerActionLink = actionLink && this.createLink(actionLink);\n const currentSiteButton = (\n \n );\n\n const viewprops: ICountryPickerViewProps = {\n ...this.props,\n state: this.state,\n isModalOpen: this.state.isModalOpen,\n modalContainer: {\n moduleProps: this.props,\n tag: Modal,\n className: 'ms-country-picker__dialog',\n isOpen: true,\n 'aria-label': 'country-picker',\n toggle: this.closeModal,\n modalTransition: { timeout: 0 },\n shouldUpdateFocusToFirstElement: true\n },\n modalHeaderContainer: {\n tag: ModalHeader,\n className: 'ms-country-picker__modal-header',\n toggle: this.closeModal,\n closeButtonTabIndex: 1\n },\n modalFooterContainer: {\n tag: ModalFooter,\n className: 'ms-countryPicker__modal-footer'\n },\n modalBodyContainer: {\n tag: ModalBody,\n className: 'ms-counrtyPicker__modal-body'\n },\n heading: countryPickerHeading,\n subheading: countryPickerSubHeading,\n link: countryPickerActionLink,\n countryList: countryList && this.renderCountryList(),\n stayOnCurrentSiteButton: currentSiteButton\n };\n\n return this.props.renderView(viewprops);\n }\n\n /**\n * Initiate close modal.\n */\n public readonly closeModal = (): void => {\n this.setState({\n isModalOpen: false\n });\n };\n\n public handleParagraphChange(event: MsDyn365.ContentEditableEvent): void {\n this.props.config.subheading = event.target.value;\n }\n\n public handleTextChange(event: MsDyn365.ContentEditableEvent): void {\n this.props.config.heading!.text = event.target.value;\n }\n\n public handleLinkTextChange(event: MsDyn365.ContentEditableEvent): void {\n if (this.props.config.actionLink?.linkText) {\n this.props.config.actionLink.linkText = event.target.value;\n }\n }\n\n public createLink(link?: IActionLinkData): React.ReactNode | null {\n if (!StringExtensions.isNullOrEmpty(link?.linkUrl.destinationUrl)) {\n const linkText = link?.linkText ?? '';\n const payLoad = getPayloadObject('click', this._telemetryContent, '', '');\n const attributes = getTelemetryAttributes(this._telemetryContent, payLoad);\n const editableLink: MsDyn365.ILinksData = {\n ariaLabel: link?.ariaLabel,\n className: 'ms-countryPicker__link',\n linkText,\n linkUrl: link?.linkUrl.destinationUrl,\n openInNewTab: link?.openInNewTab,\n role: 'link',\n additionalProperties: attributes!,\n onClick: onTelemetryClick(this._telemetryContent, payLoad, linkText)\n };\n return (\n \n );\n }\n return null;\n }\n\n public renderCountryList(): React.ReactNode[] | undefined {\n const marketSettings = this.props.context.request.marketSettings;\n if (!marketSettings) {\n return undefined;\n }\n const localeItems = marketSettings.localeItems;\n const countryLinks = localeItems.map((value: ILocaleItems) => {\n return this.renderCountry(value);\n });\n\n return countryLinks;\n }\n\n public renderCountry(localeItem: ILocaleItems): React.ReactNode | null {\n const countryList = this.props.config.countryList;\n let baseUrl = localeItem.localeBaseUrl;\n baseUrl = this._appendProtocolToUrl(baseUrl);\n const matchedCountryItem = countryList?.find(item => item.url === baseUrl);\n if (!matchedCountryItem) {\n return null;\n }\n const imageSize: IImageDimension = { q: 'w=48&h=48&m=6', w: 0, h: 0 };\n const defaultImageSettings: MsDyn365.IImageSettings = {\n viewports: {\n xs: imageSize,\n lg: imageSize,\n xl: imageSize\n },\n lazyload: true\n };\n const image = matchedCountryItem.image;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings ?? defaultImageSettings\n };\n return (\n \n {image && (\n \n )}\n
\n {matchedCountryItem.displayString}\n {matchedCountryItem.displaySubString}\n
\n \n );\n }\n\n /**\n * Writes the current site base url to cookie and closes the country picker modal dialog.\n */\n private readonly _handleStayOnSiteButtonClick = (): void => {\n const currentBaseUrl = this.props.context.request.marketSettings?.currentBaseUrl;\n if (currentBaseUrl) {\n const urlToStore = this._appendProtocolToUrl(currentBaseUrl);\n this._writeToCookie(this._preferredSiteStorageKey, urlToStore);\n }\n this.closeModal();\n };\n\n /**\n * Handles click event of country selection.\n * @param storageKey - Cookie storage key.\n * @param storageValue - Preffered site url.\n * @returns - This method just writes the cookie to the browser.\n */\n private readonly _handleClick = (storageKey?: string, storageValue?: string) => () => {\n this._writeToCookie(storageKey, storageValue);\n };\n\n /**\n * Handles click event of country selection.\n * @param storageKey - Cookie storage key.\n * @param storageValue - Preffered site url.\n */\n private readonly _writeToCookie = (storageKey?: string, storageValue?: string): void => {\n if (!storageKey || !storageValue) {\n return;\n }\n const cookieOptions: ICookieSetOptions = { secure: true, sameSite: 'none' };\n cookieOptions.maxAge = this._cookieExpirationTime;\n this.props.context.request.cookies.set(storageKey, storageValue, cookieOptions);\n };\n\n /**\n * Appends protocol to an url.\n * @param baseUrl - Url to be formatted.\n * @returns - URL after appending protocol.\n */\n private readonly _appendProtocolToUrl = (baseUrl: string): string => {\n return !baseUrl.includes('https://') ? `https://${baseUrl}` : baseUrl;\n };\n}\n\nexport default CountryPicker;\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 { ITabItemViewProps, TabItemType } from './tab-item';\n\nconst TabItemView: React.FC = props => {\n const { tabItemType, tabSlots, TabContentContainer, TabHeaderContainer, TabItemContent, tabHeader } = props;\n\n switch (tabItemType) {\n case TabItemType.TabContent:\n return (\n \n \n {tabSlots &&\n tabSlots.tabItemContent &&\n tabSlots.tabItemContent.length &&\n _renderTabItemContent(tabSlots.tabItemContent)}\n \n \n );\n case TabItemType.TabHeader:\n return {tabHeader};\n default:\n return null;\n }\n};\n\nconst _renderTabItemContent = (items: React.ReactNode[]): JSX.Element | null => {\n return (\n <>\n {items && items.length > 0\n ? items.map((item: React.ReactNode, index: number) => {\n return {item};\n })\n : null}\n \n );\n};\nexport default TabItemView;\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 { ICheckoutPaymentInstrumentViewProps, ICheckoutPaymentOverlayModal } from './checkout-payment-instrument';\n\nconst OverlayModal: React.FC = ({ modal }) => {\n return ;\n};\n\nconst CheckoutPaymentInstrumentView: React.FC = ({\n checkoutPaymentInstrument,\n checkoutErrorRef,\n className,\n id,\n waiting,\n alert,\n paymentInformation,\n addPaymentForm,\n overlayModal,\n ...restProps\n}) => (\n \n {waiting}\n {alert}\n {paymentInformation}\n {addPaymentForm}\n {overlayModal && }\n \n);\n\nexport default CheckoutPaymentInstrumentView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './payment-information';\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 { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountAddressTileViewProps } from './account-address-tile';\n\nconst AccountAddressTileView: React.FC = props => {\n const { AccountAddressTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountAddressTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActiveTabState } from './data-actions/tab-state';\nimport { createTabStateInput } from './data-actions/tab-state-data-action';\nimport tab from './modules/tab/tab';\nimport tabView from './modules/tab/tab.view';\nimport { getContentID, TabItemType } from './modules/tab-item/tab-item';\n\nexport * from './modules/tab/tab';\nexport * from './modules/tab/tab.view';\nexport { createTabStateInput, getContentID, IActiveTabState, tab, TabItemType, tabView };\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 { BackToTop, getTelemetryObject, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBackTopFooterProps } from './back-top-footer.props.autogenerated';\n\n/**\n *\n * BackTopFooter component.\n * @extends {React.PureComponent>}\n */\nclass BackTopFooter extends React.PureComponent> {\n private readonly editProps: Msdyn365.ITextEditProps = {\n requestContext: this.props.context.request,\n onEdit: (event: Msdyn365.ContentEditableEvent) => (this.props.config.backtoTopText = event.target.value)\n };\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IBackTopFooterProps<{}>) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n if (!this.props.config.destination) {\n this.props.telemetry.error('BackToTop.destination has not been provided, module wont render.');\n return null;\n }\n\n return (\n \n );\n }\n}\n\nexport default BackTopFooter;\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 { IInvoiceDetailsViewProps } from './invoice-details';\n\nexport const InvoiceDetailsView: React.FC = props => {\n const { header, products, paymentDetails, payInvoiceError } = props;\n\n return (\n \n {header}\n {products}\n {paymentDetails}\n {payInvoiceError}\n \n );\n};\n\nexport default InvoiceDetailsView;\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 { IBulkPurchaseViewProps } from './bulk-purchase';\n\n/**\n * Bulk purchase view.\n * @param props - Bulk purchase view props.\n * @returns React node with a module.\n */\nexport const BulkPurchaseViewComponent: React.FC = props => {\n return {props.content};\n};\n\nexport default BulkPurchaseViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext, getUrlSync } from '@msdyn365-commerce/core';\n\nexport const GetCheckoutReturnUrl = (actionContext: IActionContext): string => {\n let returnUrl = getUrlSync('checkout', actionContext) || '';\n const absoluteUrlRegExp = new RegExp('^(?:[a-z]+:)?//', 'i');\n const isAbsoluteUrl = absoluteUrlRegExp.test(returnUrl);\n if (window && !isAbsoluteUrl) {\n returnUrl = `${window.location.origin}${returnUrl}`;\n }\n\n return `${returnUrl}${!returnUrl.includes('?') ? '?' : '&'}pv=1`;\n};\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 { ICartState } from '@msdyn365-commerce/global-state';\nimport { format, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\n/**\n * ICartIconData: Interface for Cart Icon Data.\n */\nexport interface ICartIconData {\n cart?: ICartState;\n}\n\n/**\n * ICartIconComponentProps: Interface for Cart Icon component props.\n */\nexport interface ICartIconComponentProps extends IComponentProps {\n className?: string;\n cartLabel: string;\n cartQtyLabel: string;\n telemetryContent?: ITelemetryContent;\n salesAgreementPricePrompt?: string;\n}\n\n/**\n * ICartIconComponent: Interface for Cart Icon component.\n */\nexport interface ICartIconComponent extends IComponent {}\n\nconst CartIconComponentActions = {};\n\n/**\n *\n * CartIcon component.\n * @extends {React.FC}\n */\nconst CartIcon: React.FC = observer((props: ICartIconComponentProps) => {\n const {\n cartLabel,\n cartQtyLabel,\n data: { cart }\n } = props;\n const defaultCartItemCount: number = 0;\n\n const cartItem = cart ? cart.totalItemsInCart : defaultCartItemCount;\n let qtyLabel: string = '';\n const cartMaxQuantity: number = 99;\n const maxQuantityLabel: string = '99+';\n if (cartItem > cartMaxQuantity) {\n qtyLabel = maxQuantityLabel;\n } else {\n qtyLabel = format(cartQtyLabel, cartItem);\n }\n const label = format(cartLabel, cartItem);\n\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', props.telemetryContent!, 'cart-icon', '');\n const attributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n const style: React.CSSProperties = {\n visibility: cart ? 'visible' : 'hidden'\n };\n return (\n
\n
\n {qtyLabel}\n
\n
\n );\n});\n\nexport const CartIconComponent: React.FunctionComponent = msdyn365Commerce.createComponentOverride<\n // @ts-expect-error -- Compatible issue with the component override.\n ICartIconComponent\n>('CartIcon', { component: CartIcon, ...CartIconComponentActions });\n\nexport default CartIconComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps } from '@msdyn365-commerce/core';\nimport { ICartState } from '@msdyn365-commerce/global-state';\nimport { Coupon } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n IPayLoad,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * IPromoCodeProps: Interface for promo code component.\n */\nexport interface IPromoCodeProps extends IComponentProps<{}> {\n cart: ICartState | undefined;\n promoCodeHeadingText: string;\n appliedPromoCodeHeadingText: string;\n removePromoAriaLabelFormat: string;\n promoPlaceholderText: string;\n promoCodeApplyButtonText: string;\n collapseTimeOut: number;\n removePromoText: string;\n invalidPromoCodeErrorText: string;\n failedToAddPromoCodeErrorText: string;\n duplicatePromoCodeErrorText: string;\n failedToRemovePromoCodeErrorText: string;\n\n /**\n * The telemetry content.\n */\n telemetryContent?: ITelemetryContent;\n promoCodeApplyCallback?(): void;\n}\n\n/**\n * IPromoCodeProps: Interface for promo code component.\n */\nexport interface IPromoCodeComponent extends IComponent {}\n\n/**\n * IPromoCodeProps: Interface for promo code state.\n */\ninterface IPromoCodeState {\n promoCodeInputValue: string;\n error: string;\n canApply: boolean;\n}\n\n/**\n *\n * The PromoCode component renders the promocode section.\n * @extends {React.PureComponent}\n */\nclass PromoCode extends React.PureComponent {\n private readonly payLoad: IPayLoad;\n\n public constructor(props: IPromoCodeProps) {\n super(props);\n this.payLoad = getPayloadObject('click', this.props.telemetryContent!, TelemetryConstant.ApplyPromoCode);\n this.state = {\n promoCodeInputValue: '',\n error: '',\n canApply: false\n };\n }\n\n public render(): JSX.Element {\n return (\n
\n
{this.props.promoCodeHeadingText}
\n {this._renderForm(this.props.promoPlaceholderText, this.props.promoCodeApplyButtonText, this.props.cart)}\n

\n {this.state.error}\n

\n {this._renderAppliedPromoCode(this.props)}\n
\n );\n }\n\n /**\n * On input change method.\n * @param event - Change event.\n */\n private readonly _onInputChangeHandler = (event: React.ChangeEvent) => {\n const error = event.target.value === '' ? '' : this.state.error;\n this.setState({\n promoCodeInputValue: event.target.value.trim(),\n error,\n canApply: !!event.target.value\n });\n };\n\n /**\n * Apply promo code method.\n * @param cartState - Cart state interface.\n */\n private readonly _applyPromotion = (cartState: ICartState | undefined) => {\n if (!cartState) {\n return;\n }\n const appliedPromo = this.state.promoCodeInputValue;\n\n cartState\n .addPromoCode({ promoCode: appliedPromo })\n .then(result => {\n if (result.status === 'SUCCESS') {\n // Show success text\n this.setState({ promoCodeInputValue: '', error: '', canApply: false });\n } else if (result.substatus === 'ALREADYADDED') {\n this.setState({ error: this.props.duplicatePromoCodeErrorText });\n } else {\n this.setState({ error: this.props.invalidPromoCodeErrorText });\n }\n })\n .catch(() => {\n this.setState({ error: this.props.failedToAddPromoCodeErrorText });\n });\n };\n\n /**\n * On submit action.\n * @param cartState - Cart state.\n * @returns Apply promotion.\n */\n private readonly _onSubmitHandler = (cartState: ICartState | undefined) => (event: React.FormEvent) => {\n event.preventDefault();\n this._applyPromotion(cartState);\n };\n\n /**\n * On apply promotion.\n * @param cartState - Cart state.\n * @returns Apply promotion.\n */\n private readonly applyPromotionHandler = (cartState: ICartState | undefined) => () => {\n this._applyPromotion(cartState);\n };\n\n /**\n * Renders promo code form.\n * @param promoPlaceholderText - Promo code input box placeholder string.\n * @param promoCodeApplyButtonText - Promo code button text string.\n * @param cartState - Cart state interface.\n * @returns Promo code form.\n */\n private readonly _renderForm = (promoPlaceholderText: string, promoCodeApplyButtonText: string, cartState: ICartState | undefined) => {\n const attributes = getTelemetryAttributes(this.props.telemetryContent!, this.payLoad);\n\n return (\n
\n
\n \n \n
\n
\n );\n };\n\n /**\n * Remove promo code method.\n * @param cartState - Cart state interface.\n * @param event - Mouse event.\n */\n private readonly _removePromotion = (cartState: ICartState | undefined, event: React.MouseEvent) => {\n if (!cartState) {\n return;\n }\n const code = event.currentTarget.getAttribute('data-value') ?? '';\n cartState\n .removePromoCodes({\n promoCodes: [code]\n })\n .then(result => {\n if (result.status === 'SUCCESS') {\n this.setState({ error: '' });\n }\n })\n .catch(() => {\n this.setState({ error: this.props.failedToRemovePromoCodeErrorText });\n });\n };\n\n /**\n * Renders applied promo code form.\n * @param props - Promo code component props.\n * @returns Applied promo code.\n */\n private readonly _renderAppliedPromoCode = (props: IPromoCodeProps) => {\n if (!props.cart || !props.cart.cart.Coupons || !ArrayExtensions.hasElements(props.cart.cart.Coupons)) {\n return;\n }\n\n /**\n * On remove promotion action.\n * @param event - Mouse event.\n */\n const removePromotionHandler = (event: React.MouseEvent) => {\n this._removePromotion(props.cart, event);\n };\n\n return (\n <>\n {props.cart.cart.Coupons.map((coupon: Coupon) => {\n const ariaLabel = props.removePromoAriaLabelFormat\n ? format(props.removePromoAriaLabelFormat, props.removePromoText, coupon.Code)\n : '';\n\n return (\n
\n
\n {'Code '}\n {coupon.Code}\n {'Applied '}\n
\n \n
\n );\n })}\n \n );\n };\n}\n\nexport default PromoCode;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IProductDimensionConfigureDropdownViewProps, IProductDimensionConfigureViewProps } from '@msdyn365-commerce/components';\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IQuickOrderFormViewProps } from './components';\nimport { IQuickOrderViewProps } from './quick-order';\n\n/**\n * Render product dimension/configure container.\n * @param configure -- Product dimension configuration.\n * @returns Container to have dimension dropdown.\n */\nconst renderConfigure = (configure?: IProductDimensionConfigureViewProps): JSX.Element | null => {\n if (configure !== undefined) {\n const { containerProps, dropdowns } = configure;\n\n return {dropdowns.map(renderConfigureDropdown)};\n }\n return null;\n};\n\n/**\n * Render product dimension/configure dropdown.\n * @param dropdown -- Product dimension drop down.\n * @returns Dropdown.\n */\nconst renderConfigureDropdown = (dropdown: IProductDimensionConfigureDropdownViewProps): JSX.Element => {\n const { containerProps, labelContainerProps, heading, errors, select } = dropdown;\n\n return (\n \n {heading}\n {errors}\n {select}\n \n );\n};\n\nconst renderForm = (\n form: IQuickOrderFormViewProps,\n isMobileView: boolean,\n quickOrderForm: INodeProps,\n quickOrderProductContent: INodeProps,\n quickOrderMsgContent: INodeProps,\n configure?: IProductDimensionConfigureViewProps\n) => {\n return isMobileView ? (\n \n \n {form.product}\n {renderConfigure(configure)}\n {form.quantity}\n {form.userMessage}\n {form.addToCartBtn}\n \n \n ) : (\n \n {form.userMessage}\n \n {form.product}\n {renderConfigure(configure)}\n {form.quantity}\n {form.addToCartBtn}\n \n \n );\n};\n\nconst quickOrderView: React.FC = props => {\n const {\n quickOrderProps,\n contentProps,\n form,\n quickOrderForm,\n drawer,\n configure,\n quickOrderFormProductContent,\n quickOrderFormMsgContent,\n quickOrderList,\n isMobileView\n } = props;\n\n return (\n \n \n \n {renderForm(\n form as IQuickOrderFormViewProps,\n isMobileView,\n quickOrderForm,\n quickOrderFormProductContent,\n quickOrderFormMsgContent,\n configure\n )}\n \n \n\n {quickOrderList}\n \n );\n};\nexport default quickOrderView;\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';\nimport { ICheckoutGooglePayViewProps } from './checkout-google-pay';\n\nconst CheckoutGooglePayView: React.FC = props => {\n const { alert, checkoutGooglePay, checkoutButton } = props;\n return (\n \n {alert}\n
ref?.appendChild(checkoutButton || document.createElement('div'))}>
\n
\n );\n};\n\nexport default CheckoutGooglePayView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAadGenericViewProps } from './aad-generic';\n\nexport default (props: IAadGenericViewProps) => {\n const { aadGeneric, aadConainer, aadAPIConainer, heading } = props;\n\n return (\n \n \n {heading}\n {aadAPIConainer}\n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileViewProps } from './account-customer-balance-tile';\n\nconst AccountCustomerBalanceTileView: React.FC = props => {\n const { AccountCustomerBalanceTile, heading, content, links } = props;\n\n return (\n \n {heading}\n {content}\n {links}\n \n );\n};\n\nexport default AccountCustomerBalanceTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICatalogPickerViewProps } from './catalog-picker';\n\n/**\n * ICatalogPickerViewProps.\n * @param props - ICatalogPickerViewProps.\n * @returns - Render Catalog Picker.\n */\nexport const CatalogPickerViewFunctionComponent: React.FC = props => {\n const { catalogPicker } = props;\n return (\n \n {props.heading}\n {props.paragraph}\n {props.catalogs}\n \n );\n};\n\nexport default CatalogPickerViewFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { INavigationMenuViewProps } from '@msdyn365-commerce-modules/navigation-menu';\nimport { generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\nimport { INavigationMenuProps } from '../../definition-extensions/navigation-menu.ext.props.autogenerated';\n\n/**\n * INavigationMenuViewRootProps.\n */\nexport interface INavigationMenuViewRootProps {\n navProps: INavigationMenuViewProps & INavigationMenuProps<{}>;\n}\n\n/**\n * Represent navigation menu state interface.\n */\nexport interface INavigationState {\n parentMenu?: number;\n activeMenu?: number;\n categoryImage?: Msdyn365.IImageData[] | null;\n mobileViewLabelText?: string;\n drawerKeyValue: Msdyn365.IDictionary;\n isOnlyMobile: boolean;\n isNavOpen: boolean;\n}\n\n/**\n * NavMenuConstants enum.\n */\nexport enum NavMenuConstants {\n zero = 0,\n one = 1,\n two = 2,\n three = 3,\n four = 4,\n escapeKey = 27,\n rootMenu = 1\n}\n\n/**\n * GridSizes.\n */\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n * Get category image.\n * @param props - Navigation menu props.\n * @param categoryImage - Category Image.\n * @param alttext - AltText String.\n * @returns Returns Node.\n */\nexport const getCategoryImage = (props: INavigationMenuViewRootProps, categoryImage: string, alttext: string): React.ReactNode | null => {\n const categoryImageUrl = generateImageUrl(`${categoryImage}`, props.navProps.context.actionContext.requestContext.apiSettings);\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=162&h=162&m=8', w: 0, h: 0 },\n sm: { q: 'w=162&h=162&m=8', w: 0, h: 0 },\n md: { q: 'w=203&h=203&m=8', w: 0, h: 0 },\n lg: { q: 'w=203&h=203&m=8', w: 0, h: 0 }\n },\n lazyload: true\n };\n if (categoryImageUrl !== undefined) {\n const imageData: Msdyn365.IImageData = { src: categoryImageUrl };\n return (\n \n );\n }\n return null;\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 { IMenuItemData, MenuTypeIndexId } from '@msdyn365-commerce-modules/navigation-menu';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n addThrottledEvent,\n Button,\n Collapse,\n Drawer,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n ICollapseProps,\n IPayLoad,\n isMobile,\n ITelemetryContent,\n Module,\n Node,\n onTelemetryClick,\n VariantType\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed } from 'mobx';\nimport * as React from 'react';\n\nimport { getCategoryImage, INavigationMenuViewRootProps, INavigationState, NavMenuConstants } from './navigation-menu-utilities';\n\n/**\n *\n * NavigationMenuRootDisabled component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuRootDisabled extends React.PureComponent {\n private static isBackTrack: boolean = false;\n\n private readonly supportedLevel: number = NavMenuConstants.four;\n\n private currentLevel: number = NavMenuConstants.zero;\n\n private readonly menuNode: React.RefObject;\n\n private readonly menuItemRef: React.RefObject;\n\n private readonly escapeKey: number = NavMenuConstants.escapeKey;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly promotionalImage: Msdyn365.IImageData[] = [];\n\n private readonly payLoad: IPayLoad;\n\n private readonly attributes?: Msdyn365.IDictionary;\n\n private customResizeThrottledEventHandler?: (event: Event) => void;\n\n public constructor(props: INavigationMenuViewRootProps) {\n super(props);\n this.menuNode = React.createRef();\n this.menuItemRef = React.createRef();\n const { menuItemData } = this.props.navProps;\n if (ArrayExtensions.hasElements(menuItemData) && ArrayExtensions.hasElements(menuItemData[0].subMenu)) {\n const imagesource = menuItemData[0].subMenu[0].imageSource ? menuItemData[0].subMenu[0].imageSource : '';\n const linkText = menuItemData[0].subMenu[0].linkText ? menuItemData[0].subMenu[0].linkText : '';\n this.promotionalImage = [{ src: imagesource, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(menuItemData[0].subMenu[0].promotionalContent)) {\n menuItemData[0].subMenu[0].promotionalContent.map(item => {\n const imageSource = item.image.src;\n this.promotionalImage.push({\n src: imageSource,\n altText: item.text,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n return null;\n });\n }\n }\n\n this.state = {\n activeMenu: 1,\n mobileViewLabelText: '',\n parentMenu: undefined,\n drawerKeyValue: {},\n isOnlyMobile: this.isOnlyMobile,\n categoryImage: this.promotionalImage,\n isNavOpen: false\n };\n this.telemetryContent = getTelemetryObject(\n this.props.navProps.context.request.telemetryPageName!,\n this.props.navProps.friendlyName,\n this.props.navProps.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n }\n\n @computed public get isOnlyMobile(): boolean {\n return isMobile({ variant: VariantType.Browser, context: this.props.navProps.context.request }) === 'xs';\n }\n\n public componentDidMount(): void {\n this.customResizeThrottledEventHandler = addThrottledEvent(window, 'resize', this._customUpdateViewport as EventListener);\n document.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n this._customUpdateViewport();\n document.body.addEventListener('mousedown', this._handleClickOutside);\n }\n\n public componentDidUpdate(): void {\n if (this.menuItemRef.current?.children[0] && this.props.navProps.isMobileView) {\n (this.menuItemRef.current.children[0] as HTMLElement).focus();\n }\n }\n\n public componentWillUnmount(): void {\n window.removeEventListener('resize', this.customResizeThrottledEventHandler!, false);\n document.body.removeEventListener('mousedown', this._handleClickOutside, false);\n }\n\n public render(): JSX.Element | null {\n this.currentLevel = 1;\n const navbarKey = 'header-nav-mobile';\n return (\n \n {this.state.isOnlyMobile ? (\n this._renderMobileMenu()\n ) : (\n <>\n \n {this._renderCollapseMenu()}\n \n )}\n \n );\n }\n\n /**\n * Function to handle nav bar toggle.\n */\n private readonly _toggleNavBar = (): void => {\n this.setState(previousState => ({\n activeMenu: 1,\n isNavOpen: !previousState.isNavOpen\n }));\n };\n\n private _renderCollapseMenu(): JSX.Element | null {\n return (\n \n {this.state.isOnlyMobile ? this._renderMobileMenu() : this._renderDesktopMenu()}\n \n );\n }\n\n private _renderMobileMenu(): JSX.Element {\n const { MenuList, MobileBackButton, MobileDescriptionContainer, MobileDescriptionLabel, Navigation } = this.props.navProps;\n\n this.currentLevel = 1;\n return (\n \n \n {this.state.isOnlyMobile && this.state.activeMenu !== undefined && (\n \n \n {this.state.mobileViewLabelText}\n \n )}\n {this._renderDisplay()}\n \n \n );\n }\n\n private _renderDesktopMenu(): JSX.Element {\n const { MenuList, Navigation } = this.props.navProps;\n\n return (\n \n \n {this._renderDisplay()}\n
\n
\n
\n
\n );\n }\n\n private _renderDrawerLink(item: IMenuItemData): JSX.Element | null {\n if (item.linkURL && !StringExtensions.isNullOrWhitespace(item.linkURL)) {\n return this._renderLinkMenuItem(item);\n } else if (!item.linkURL) {\n return this._renderSpanMenuItem(item);\n }\n return null;\n }\n\n private _renderDisplay(): JSX.Element[] {\n const { ListItem } = this.props.navProps;\n const menuItemData: IMenuItemData[] = this.props.navProps.menuItemData;\n const { activeMenu } = this.state;\n const menuItemList: JSX.Element[] = [];\n\n if (ArrayExtensions.hasElements(menuItemData)) {\n menuItemData[0].id = 1;\n }\n\n if (this.state.isOnlyMobile && activeMenu !== undefined && ArrayExtensions.hasElements(menuItemData)) {\n const menuItem = this._getFromSubMenu(undefined, menuItemData);\n\n if (menuItem) {\n menuItemList.push(\n \n {` `}\n {this._createMenuItemList(menuItem)} {` `}\n \n );\n }\n } else {\n for (const [index, item] of menuItemData.entries()) {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n
\n );\n }\n }\n\n return menuItemList;\n }\n\n private _getFromSubMenu(parentMenuId?: number, menu?: IMenuItemData[]): IMenuItemData | null {\n if (!menu) {\n return null;\n }\n\n for (let index = 0; index <= menu.length - NavMenuConstants.one; index++) {\n const item: IMenuItemData = menu[Number(index)];\n\n if (item.id === this.state.activeMenu) {\n if (!NavigationMenuRootDisabled.isBackTrack) {\n this.setState({ parentMenu: parentMenuId });\n } else {\n this.setState({ parentMenu: parentMenuId, mobileViewLabelText: item.linkText });\n }\n return item;\n }\n const found = this._getFromSubMenu(item.id, item.subMenu);\n if (found) {\n return found;\n }\n }\n return null;\n }\n\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\n if (ArrayExtensions.hasElements(menuItemData.subMenu)) {\n if (this.state.isOnlyMobile && this.state.activeMenu !== undefined) {\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false);\n }\n\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id)}\n \n );\n } else if (menuItemData.linkURL && !StringExtensions.isNullOrWhitespace(menuItemData.linkURL)) {\n return this._renderLinkMenuItem(menuItemData, menuItemData.id);\n } else if (!menuItemData.linkURL && !(this.state.isOnlyMobile && this.state.activeMenu !== undefined)) {\n return this._renderSpanMenuItem(menuItemData);\n }\n\n return null;\n }\n\n private _renderSubMenu(subMenuArray?: IMenuItemData[], activeMenu?: number, isSubMenu?: boolean): JSX.Element | null {\n let subMenus: IMenuItemData[] | undefined = subMenuArray;\n if (activeMenu === NavMenuConstants.rootMenu) {\n subMenus = subMenuArray!.filter(subMenuItem => subMenuItem.id && subMenuItem.id >= MenuTypeIndexId.Retail);\n }\n\n const { ListItem } = this.props.navProps;\n const isEnableMultiSupportMenu = this.props.navProps.config.enableMultilevelMenu ?? false;\n const multiLevelSupportedMenu = this.props.navProps.config.menuLevelSupport ?? NavMenuConstants.three;\n\n if (activeMenu && this.state.activeMenu !== activeMenu) {\n this.props.navProps.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\n return null;\n }\n\n if (!subMenus || !ArrayExtensions.hasElements(subMenus)) {\n this.props.navProps.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\n return null;\n }\n\n let levelClassName: string = '';\n const menuOptions = subMenus.map((option: IMenuItemData, index: number) => {\n const hasOptions = option.subMenu && ArrayExtensions.hasElements(option.subMenu);\n let menuItem: JSX.Element | null;\n if (hasOptions && this.state.isOnlyMobile) {\n menuItem = this._renderButtonMenuItem(option, activeMenu, index);\n } else if (this.currentLevel === NavMenuConstants.one || !hasOptions) {\n menuItem = this.getMenuItem(option, index);\n } else {\n menuItem = null;\n }\n let subMenu;\n const isHavingSubmenu =\n hasOptions && isEnableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - NavMenuConstants.one;\n\n if (hasOptions && !this.state.isOnlyMobile) {\n if (this.currentLevel >= NavMenuConstants.two) {\n subMenu = this._renderSubMenuDrawer(option);\n } else if (this.currentLevel <= this.supportedLevel) {\n this.currentLevel++;\n levelClassName = `level-${this.currentLevel.toString()}`;\n subMenu = this._renderSubMenu(option.subMenu, undefined, true);\n }\n }\n\n if (isHavingSubmenu && this.state.isOnlyMobile) {\n this.currentLevel++;\n levelClassName = isEnableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\n subMenu = this._renderSubMenu(option.subMenu, option.id, true);\n }\n const imagesource = option.imageSource ? option.imageSource : '';\n return (\n \n {menuItem}\n {subMenu}\n
\n );\n });\n return this._renderMenu(levelClassName, menuOptions, isSubMenu);\n }\n\n private getMenuItem(option: IMenuItemData, index: number): JSX.Element | null {\n let menuItem: JSX.Element | null;\n if (this.currentLevel === NavMenuConstants.one) {\n menuItem = option.linkURL ? this._renderLinkMenuItemLevelOne(option, index) : this._renderSpanMenuItem(option);\n } else {\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, index) : this._renderSpanMenuItem(option);\n }\n return menuItem;\n }\n\n private _renderSubMenuDrawer(menuItem: IMenuItemData): JSX.Element | null {\n const levelClassName = `level-${this.currentLevel.toString()}`;\n const toggleButtonText = menuItem.linkText;\n const keyValue = this.state.drawerKeyValue;\n const buttonText = toggleButtonText !== undefined ? toggleButtonText : '';\n const keys = keyValue;\n const multiLevelSupportedMenu = this.props.navProps.config.menuLevelSupport ?? NavMenuConstants.three;\n\n let isDrawerOpen = false;\n if (keys[menuItem.id!]) {\n isDrawerOpen = true;\n }\n const colProps: ICollapseProps = { timeout: 0, isOpen: isDrawerOpen };\n\n return (\n \n
\n {menuItem.subMenu!.map((menuSubItem: IMenuItemData) => {\n if (ArrayExtensions.hasElements(menuSubItem.subMenu)) {\n this.currentLevel++;\n if (this.currentLevel < multiLevelSupportedMenu) {\n return this._renderSubMenuDrawer(menuSubItem);\n }\n }\n return this._renderDrawerLink(menuSubItem);\n })}\n
\n \n );\n }\n\n /**\n * Method to handle escape key event.\n * @param menuId -Number.\n * @param isDrawerOpen -Boolean.\n * @returns Void.\n */\n private readonly _bindDesktopCategoryClick = (menuId: number | undefined, isDrawerOpen: boolean) => (): void => {\n const { drawerKeyValue } = this.state;\n const newPair = { [menuId!]: !isDrawerOpen };\n this.setState({ drawerKeyValue: { ...drawerKeyValue, ...newPair } });\n };\n\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\n return (\n \n {option.linkText}\n
\n );\n }\n\n private _renderLinkMenuItem(option: IMenuItemData, index?: number): JSX.Element | null {\n const { Link } = this.props.navProps;\n const linkText = option.linkText ? option.linkText : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderLinkMenuItemLevelOne(option: IMenuItemData, index?: number, isHoverEffect: boolean = true): JSX.Element | null {\n const { Link } = this.props.navProps;\n const linkText = option.linkText ? option.linkText : '';\n const imagesource = option.imageSource ? option.imageSource : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\n const { Link } = this.props.navProps;\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n if (linkText && linkUrl) {\n return (\n \n {linkText}\n \n );\n }\n return null;\n }\n\n private _renderSpanMenuItem(option: IMenuItemData, index?: number): JSX.Element | null {\n const { Span } = this.props.navProps;\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderMenu(level: string, menuOptions: JSX.Element[], isSubmenu?: boolean): JSX.Element | null {\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, showPromotionalContent } = this.props.navProps;\n const isCategoryImageDisplay =\n !this.state.isOnlyMobile &&\n showCategoryImage &&\n this.state.categoryImage !== null &&\n this.state.categoryImage !== undefined &&\n !isSubmenu;\n const isPromotionalContentDisplay =\n !this.state.isOnlyMobile && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !isSubmenu;\n const divContainerClass =\n this.currentLevel > NavMenuConstants.two || isCategoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\n this.currentLevel = NavMenuConstants.one;\n const menuLevelSupportClassName =\n isCategoryImageDisplay &&\n this.props.navProps.config.menuLevelSupport &&\n this.props.navProps.config.menuLevelSupport > NavMenuConstants.two &&\n 'navmenu-multi-level';\n\n const categoryImages = this.state.categoryImage?.filter(image => !StringExtensions.isNullOrWhitespace(image.src));\n const imagesContainerKey = categoryImages?.map(item => item.src).join('-');\n return (\n \n \n {menuOptions}\n \n
\n {isCategoryImageDisplay &&\n ArrayExtensions.hasElements(categoryImages) &&\n categoryImages.map(item => (\n \n {getCategoryImage(this.props, item.src ?? '', item.altText!.toString())}\n {isPromotionalContentDisplay &&\n this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n \n ))}\n
\n \n );\n }\n\n /**\n * Handle Category image update.\n * @param categoryImageSource - Image source.\n * @param option - Menu Item data.\n * @returns Returns empty.\n */\n private readonly _updateCategoryImage = (categoryImageSource: string, option: IMenuItemData) => () => {\n const linkText = option.linkText ? option.linkText : '';\n const promotionalImage: Msdyn365.IImageData[] = [{ src: categoryImageSource, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\n for (const item of option.promotionalContent) {\n const imageSource = item.image.src;\n promotionalImage.push({\n src: imageSource,\n altText: item.text,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n }\n }\n this.setState({\n categoryImage: ArrayExtensions.hasElements(promotionalImage) ? promotionalImage : [{ src: 'empty' }]\n });\n };\n\n /**\n * Handle dropdown toggle.\n * @param data - Menu Item data.\n * @param parentId - Number.\n * @returns Returns empty.\n */\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\n if (!this.state.isOnlyMobile) {\n this.setState({\n activeMenu: data.id,\n parentMenu: parentId\n });\n if (this.props.navProps.showCategoryImage) {\n this._updateCategoryImage(data.imageSource!, data)();\n }\n } else {\n NavigationMenuRootDisabled.isBackTrack = false;\n this.setState({\n activeMenu: data.id,\n mobileViewLabelText: data.linkText!,\n parentMenu: parentId\n });\n }\n };\n\n /**\n * Handle back navigation for menu items for mobile view.\n * @returns Returns empty.\n */\n private readonly _handleGoBack = () => () => {\n NavigationMenuRootDisabled.isBackTrack = true;\n this.setState(previousState => ({ activeMenu: previousState.parentMenu }));\n };\n\n /**\n * Function to close the nav menu on click on body.\n * @param event - MouseEvent.\n */\n private readonly _handleClickOutside = (event: MouseEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\n if (!this.state.isOnlyMobile) {\n this.setState({ activeMenu: 1, mobileViewLabelText: '', isNavOpen: false });\n } else {\n this.setState({ activeMenu: undefined, mobileViewLabelText: '', isNavOpen: false });\n }\n }\n };\n\n /**\n * Checks to assign a ref for focus.\n * @param index -Sub menu list index.\n * @param mobileViewLabelText -Mobile view label text.\n * @param optionLinkText -Sub menu item link text.\n * @returns Boolean.\n */\n private readonly _shouldAddFocusMenuRef = (index: number, mobileViewLabelText?: string, optionLinkText?: string) => {\n const firstIndex: number = 0;\n if (!NavigationMenuRootDisabled.isBackTrack && index === firstIndex) {\n return true;\n }\n if (!optionLinkText || !mobileViewLabelText) {\n return false;\n }\n return mobileViewLabelText === optionLinkText;\n };\n\n /**\n * Function to handle nav menu close.\n */\n private readonly _closeNavMenu = (): void => {\n if (!this.state.isOnlyMobile) {\n this.setState({ activeMenu: 1, mobileViewLabelText: '', isNavOpen: false });\n } else {\n this.setState({ activeMenu: undefined, mobileViewLabelText: '', isNavOpen: false });\n }\n (this.menuNode.current?.children[0] as HTMLElement).focus();\n };\n\n /**\n * Function to close the nav menu on esc key.\n * @param event - Event.\n */\n private readonly _escFunction = (event: React.KeyboardEvent) => {\n if (event.keyCode === this.escapeKey && !this.state.isOnlyMobile && this.state.isNavOpen) {\n this.setState({ activeMenu: 1, mobileViewLabelText: '', isNavOpen: false });\n (this.menuNode.current?.children[0] as HTMLElement).focus();\n }\n };\n\n /**\n * Custom update viewport.\n */\n private readonly _customUpdateViewport = (): void => {\n this.setState({ isOnlyMobile: this.isOnlyMobile });\n };\n}\n\nexport default NavigationMenuRootDisabled;\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 { IMenuItemData, MenuSource, MenuTypeIndexId } from '@msdyn365-commerce-modules/navigation-menu';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n addThrottledEvent,\n Button,\n Collapse,\n Drawer,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n ICollapseProps,\n IPayLoad,\n isMobile,\n ITelemetryContent,\n Module,\n Node,\n onTelemetryClick,\n VariantType\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed } from 'mobx';\nimport * as React from 'react';\n\nimport { getCategoryImage, INavigationMenuViewRootProps, INavigationState, NavMenuConstants } from './navigation-menu-utilities';\n\n/**\n *\n * NavigationMenuRootEnabled component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuRootEnabled extends React.PureComponent {\n private static isBackTrack: boolean = false;\n\n private readonly supportedLevel: number = NavMenuConstants.four;\n\n private currentLevel: number = NavMenuConstants.zero;\n\n private readonly menuNode: React.RefObject;\n\n private readonly menuItemRef: React.RefObject;\n\n private readonly escapeKey: number = NavMenuConstants.escapeKey;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly promotionalImage: Msdyn365.IImageData[] = [];\n\n private menuItemData: IMenuItemData[] = [];\n\n private readonly payLoad: IPayLoad;\n\n private readonly attributes?: Msdyn365.IDictionary;\n\n private customResizeThrottledEventHandler?: (event: Event) => void;\n\n public constructor(props: INavigationMenuViewRootProps) {\n super(props);\n this.menuNode = React.createRef();\n this.menuItemRef = React.createRef();\n const { menuItemData } = this.props.navProps;\n if (ArrayExtensions.hasElements(menuItemData) && ArrayExtensions.hasElements(menuItemData[0].subMenu)) {\n const imagesource = menuItemData[0].subMenu[0].imageSource ? menuItemData[0].subMenu[0].imageSource : '';\n const linkText = menuItemData[0].subMenu[0].linkText ? menuItemData[0].subMenu[0].linkText : '';\n this.promotionalImage = [{ src: imagesource, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(menuItemData[0].subMenu[0].promotionalContent)) {\n menuItemData[0].subMenu[0].promotionalContent.map(item => {\n const imageSource = item.image.src;\n this.promotionalImage.push({\n src: imageSource,\n altText: item.text,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n return null;\n });\n }\n }\n this.state = {\n activeMenu: NavMenuConstants.rootMenu,\n mobileViewLabelText: '',\n parentMenu: undefined,\n drawerKeyValue: {},\n isOnlyMobile: this.isOnlyMobile,\n categoryImage: this.promotionalImage,\n isNavOpen: false\n };\n\n this.telemetryContent = getTelemetryObject(\n this.props.navProps.context.request.telemetryPageName!,\n this.props.navProps.friendlyName,\n this.props.navProps.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n }\n\n @computed public get isOnlyMobile(): boolean {\n return isMobile({ variant: VariantType.Browser, context: this.props.navProps.context.request }) === 'xs';\n }\n\n public componentDidMount(): void {\n this.customResizeThrottledEventHandler = addThrottledEvent(window, 'resize', this._customUpdateViewport as EventListener);\n document.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n this._customUpdateViewport();\n document.body.addEventListener('mousedown', this._handleClickOutside);\n this._addShopAllLink();\n }\n\n public componentDidUpdate(): void {\n if (this.menuItemRef.current?.children[0] && this.props.navProps.isMobileView) {\n (this.menuItemRef.current.children[0] as HTMLElement).focus();\n }\n }\n\n public componentWillUnmount(): void {\n window.removeEventListener('resize', this.customResizeThrottledEventHandler!, false);\n document.body.removeEventListener('mousedown', this._handleClickOutside, false);\n }\n\n public render(): JSX.Element | null {\n this.currentLevel = NavMenuConstants.one;\n const navbarKey = 'header-nav-mobile';\n return (\n \n {this.state.isOnlyMobile ? (\n this._renderMobileMenu()\n ) : (\n <>\n \n {this._renderCollapseMenu()}\n \n )}\n \n );\n }\n\n /**\n * Function to handle nav bar toggle.\n */\n private readonly _toggleNavBar = (): void => {\n this.setState(previousState => ({\n activeMenu: NavMenuConstants.rootMenu,\n isNavOpen: !previousState.isNavOpen\n }));\n };\n\n private _renderCollapseMenu(): JSX.Element | null {\n return (\n \n {this.state.isOnlyMobile ? this._renderMobileMenu() : this._renderDesktopMenu()}\n \n );\n }\n\n private _renderMobileMenu(): JSX.Element {\n const { MobileBackButton, MobileDescriptionContainer, MobileDescriptionLabel, Navigation } = this.props.navProps;\n\n this.currentLevel = NavMenuConstants.one;\n return (\n \n \n {this.state.isOnlyMobile && this.state.activeMenu !== undefined && (\n \n \n {this.state.mobileViewLabelText}\n \n )}\n {this._renderDisplay()}\n \n \n );\n }\n\n private _renderDesktopMenu(): JSX.Element {\n const { Navigation } = this.props.navProps;\n return (\n \n \n {this._renderDisplay()}\n
\n
\n
\n
\n );\n }\n\n private _renderDrawerLink(item: IMenuItemData): JSX.Element | null {\n if (item.linkURL && !StringExtensions.isNullOrWhitespace(item.linkURL)) {\n return this._renderLinkMenuItem(item);\n } else if (!item.linkURL) {\n return this._renderSpanMenuItem(item);\n }\n return null;\n }\n\n private _renderDisplay(): JSX.Element[] {\n const { ListItem } = this.props.navProps;\n let menuItemData: IMenuItemData[] = [];\n if (this.state.isOnlyMobile) {\n menuItemData = this.menuItemData;\n } else {\n menuItemData = this.props.navProps.menuItemData;\n }\n const { activeMenu } = this.state;\n const menuItemList: JSX.Element[] = [];\n let cmsMenuData: IMenuItemData[] | undefined = [];\n let retailMenuItemData: IMenuItemData[] | undefined = [];\n const retailMenuData = JSON.parse(JSON.stringify(menuItemData)) as IMenuItemData[];\n\n for (const item of retailMenuData) {\n retailMenuItemData = item.subMenu!.filter(subMenuItem => subMenuItem.id && subMenuItem.id >= MenuTypeIndexId.Retail);\n item.subMenu = retailMenuItemData;\n }\n\n for (const item of menuItemData) {\n cmsMenuData = item.subMenu!.filter(subMenuItem => subMenuItem.id && subMenuItem.id < MenuTypeIndexId.Retail);\n }\n\n if (this.state.isOnlyMobile && activeMenu !== undefined && ArrayExtensions.hasElements(menuItemData)) {\n let menuItem: IMenuItemData | null = {};\n for (const menuItemDatum of menuItemData) {\n if (menuItemDatum.id === activeMenu) {\n menuItem = menuItemDatum;\n if (!NavigationMenuRootEnabled.isBackTrack) {\n this.setState({\n parentMenu: undefined\n });\n } else {\n this.setState({\n parentMenu: undefined,\n mobileViewLabelText: menuItemDatum.linkText\n });\n }\n break;\n }\n menuItem = this._getFromSubMenu(menuItemDatum);\n if (menuItem && menuItem.id === activeMenu) {\n break;\n }\n }\n\n if (menuItem) {\n menuItemList.push(\n \n {` `}\n {this._createMenuItemList(menuItem)} {` `}\n \n );\n }\n } else {\n for (const [index, item] of retailMenuData.entries()) {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n
\n );\n }\n\n for (const [index, item] of cmsMenuData.entries()) {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n \n );\n }\n }\n\n return menuItemList;\n }\n\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\n const subMenus = item?.subMenu;\n if (subMenus && ArrayExtensions.hasElements(subMenus)) {\n for (let index = 0; index <= subMenus.length - NavMenuConstants.one; index++) {\n const subMenu: IMenuItemData = subMenus[Number(index)];\n let parentMenuId = item?.id;\n\n if (subMenu.id === this.state.activeMenu) {\n if (parentMenuId === NavMenuConstants.rootMenu && subMenu.id! < MenuTypeIndexId.Retail) {\n parentMenuId = undefined;\n }\n\n if (!NavigationMenuRootEnabled.isBackTrack) {\n this.setState({ parentMenu: parentMenuId });\n } else {\n this.setState({ parentMenu: parentMenuId, mobileViewLabelText: subMenu.linkText });\n }\n return subMenu;\n }\n const found = this._getFromSubMenu(subMenu);\n if (found) {\n return found;\n }\n }\n }\n return null;\n }\n\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\n if (ArrayExtensions.hasElements(menuItemData.subMenu)) {\n if (this.state.isOnlyMobile && this.state.activeMenu !== undefined) {\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false);\n }\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id)}\n \n );\n } else if (menuItemData.linkURL && !StringExtensions.isNullOrWhitespace(menuItemData.linkURL)) {\n return this._renderLinkMenuItem(menuItemData, menuItemData.id);\n } else if (!menuItemData.linkURL) {\n return this._renderSpanMenuItem(menuItemData);\n }\n\n return null;\n }\n\n private _renderSubMenu(subMenuArray?: IMenuItemData[], activeMenu?: number, isSubMenu?: boolean): JSX.Element | null {\n let subMenus: IMenuItemData[] | undefined = subMenuArray;\n if (activeMenu === NavMenuConstants.rootMenu) {\n subMenus = subMenuArray!.filter(subMenuItem => subMenuItem.id && subMenuItem.id >= MenuTypeIndexId.Retail);\n }\n\n const { ListItem } = this.props.navProps;\n const isEnableMultiSupportMenu = this.props.navProps.config.enableMultilevelMenu ?? false;\n const multiLevelSupportedMenu = this.props.navProps.config.menuLevelSupport ?? NavMenuConstants.three;\n\n if (activeMenu && this.state.activeMenu !== activeMenu) {\n this.props.navProps.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\n return null;\n }\n\n if (!subMenus || !ArrayExtensions.hasElements(subMenus)) {\n this.props.navProps.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\n return null;\n }\n\n let levelClassName: string = '';\n const menuOptions = subMenus.map((option: IMenuItemData, index: number) => {\n const hasOptions = option.subMenu && ArrayExtensions.hasElements(option.subMenu);\n let menuItem: JSX.Element | null;\n if (hasOptions && this.state.isOnlyMobile) {\n menuItem = this._renderButtonMenuItem(option, activeMenu, index);\n } else if (this.currentLevel === NavMenuConstants.one || !hasOptions) {\n menuItem = this.getMenuItem(option, index);\n } else {\n menuItem = null;\n }\n let subMenu;\n const isHavingSubmenu =\n hasOptions && isEnableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - NavMenuConstants.one;\n\n if (hasOptions && !this.state.isOnlyMobile) {\n if (this.currentLevel >= NavMenuConstants.two) {\n subMenu = this._renderSubMenuDrawer(option);\n } else if (this.currentLevel <= this.supportedLevel - NavMenuConstants.one) {\n this.currentLevel++;\n levelClassName = `level-${this.currentLevel.toString()}`;\n subMenu = this._renderSubMenu(option.subMenu, undefined, true);\n }\n }\n if (isHavingSubmenu && this.state.isOnlyMobile) {\n this.currentLevel++;\n levelClassName = isEnableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\n subMenu = this._renderSubMenu(option.subMenu, option.id, true);\n }\n const imagesource = option.imageSource ? option.imageSource : '';\n return (\n \n {menuItem}\n {subMenu}\n \n );\n });\n return this._renderMenu(levelClassName, menuOptions, isSubMenu);\n }\n\n private getMenuItem(option: IMenuItemData, index: number): JSX.Element | null {\n let menuItem: JSX.Element | null;\n if (this.currentLevel === NavMenuConstants.one) {\n menuItem = option.linkURL ? this._renderLinkMenuItemLevelOne(option, index) : this._renderSpanMenuItem(option);\n } else {\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, index) : this._renderSpanMenuItem(option);\n }\n return menuItem;\n }\n\n private _renderSubMenuDrawer(menuItem: IMenuItemData): JSX.Element | null {\n const levelClassName = `level-${this.currentLevel.toString()}`;\n const toggleButtonText = menuItem.linkText;\n const keyValue = this.state.drawerKeyValue;\n const buttonText = toggleButtonText !== undefined ? toggleButtonText : '';\n const keys = keyValue;\n const multiLevelSupportedMenu = this.props.navProps.config.menuLevelSupport ?? NavMenuConstants.three;\n\n let isDrawerOpen = false;\n if (keys[menuItem.id!]) {\n isDrawerOpen = true;\n }\n const colProps: ICollapseProps = { timeout: 0, isOpen: isDrawerOpen };\n return (\n \n
\n {menuItem.subMenu!.map((menuSubItem: IMenuItemData) => {\n if (ArrayExtensions.hasElements(menuSubItem.subMenu)) {\n this.currentLevel++;\n if (this.currentLevel < multiLevelSupportedMenu) {\n return this._renderSubMenuDrawer(menuSubItem);\n }\n }\n return this._renderDrawerLink(menuSubItem);\n })}\n
\n \n );\n }\n\n /**\n * Method to handle escape key event.\n * @param menuId -Number.\n * @param isDrawerOpen -Boolean.\n * @returns Void.\n */\n private readonly _bindDesktopCategoryClick = (menuId: number | undefined, isDrawerOpen: boolean) => (): void => {\n const { drawerKeyValue } = this.state;\n const newPair = { [menuId!]: !isDrawerOpen };\n this.setState({ drawerKeyValue: { ...drawerKeyValue, ...newPair } });\n };\n\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderLinkMenuItem(option: IMenuItemData, index?: number): JSX.Element | null {\n const { Link } = this.props.navProps;\n const linkText = option.linkText ? option.linkText : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderLinkMenuItemLevelOne(option: IMenuItemData, index?: number, isHoverEffect: boolean = true): JSX.Element | null {\n const { Link } = this.props.navProps;\n const linkText = option.linkText ? option.linkText : '';\n const imagesource = option.imageSource ? option.imageSource : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\n const { Link } = this.props.navProps;\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n if (linkText && linkUrl) {\n return (\n \n {linkText}\n \n );\n }\n return null;\n }\n\n private _renderSpanMenuItem(option: IMenuItemData, index?: number): JSX.Element | null {\n const { Span } = this.props.navProps;\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderMenu(level: string, menuOptions: JSX.Element[], isSubmenu?: boolean): JSX.Element | null {\n const { DivContainer, ImageDivContainer, showCategoryImage, showPromotionalContent } = this.props.navProps;\n const isCategoryImageDisplay =\n !this.state.isOnlyMobile &&\n showCategoryImage &&\n this.state.categoryImage !== null &&\n this.state.categoryImage !== undefined &&\n !isSubmenu;\n const isPromotionalContentDisplay =\n !this.state.isOnlyMobile && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !isSubmenu;\n const divContainerClass =\n this.currentLevel > NavMenuConstants.two || isCategoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\n this.currentLevel = NavMenuConstants.one;\n const menuLevelSupportClassName =\n isCategoryImageDisplay &&\n this.props.navProps.config.menuLevelSupport &&\n this.props.navProps.config.menuLevelSupport > NavMenuConstants.two &&\n 'navmenu-multi-level';\n\n const categoryImages = this.state.categoryImage?.filter(image => !StringExtensions.isNullOrWhitespace(image.src));\n const imagesContainerKey = categoryImages?.map(item => item.src).join('-');\n return (\n \n \n {menuOptions}\n \n
\n {isCategoryImageDisplay &&\n ArrayExtensions.hasElements(categoryImages) &&\n categoryImages.map(item => (\n \n {getCategoryImage(this.props, item.src ?? '', item.altText!.toString())}\n {isPromotionalContentDisplay &&\n this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n \n ))}\n
\n \n );\n }\n\n /**\n * Handle Category image update.\n * @param categoryImageSource - Image source.\n * @param option - Menu Item data.\n * @returns Returns empty.\n */\n private readonly _updateCategoryImage = (categoryImageSource: string, option: IMenuItemData) => () => {\n const linkText = option.linkText ? option.linkText : '';\n const promotionalImage: Msdyn365.IImageData[] = [{ src: categoryImageSource, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\n for (const item of option.promotionalContent) {\n const imageSource = item.image.src;\n promotionalImage.push({\n src: imageSource,\n altText: item.text,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n }\n }\n this.setState({\n categoryImage: ArrayExtensions.hasElements(promotionalImage) ? promotionalImage : [{ src: 'empty' }]\n });\n };\n\n /**\n * Handle dropdown toggle.\n * @param data - Menu Item data.\n * @param parentId - Number.\n * @returns Returns empty.\n */\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\n if (!this.state.isOnlyMobile) {\n this.setState({\n activeMenu: data.id,\n parentMenu: parentId\n });\n if (this.props.navProps.showCategoryImage) {\n this._updateCategoryImage(data.imageSource!, data)();\n }\n } else {\n NavigationMenuRootEnabled.isBackTrack = false;\n this.setState({\n activeMenu: data.id,\n mobileViewLabelText: data.linkText!,\n parentMenu: parentId\n });\n }\n };\n\n /**\n * Handle back navigation for menu items for mobile view.\n * @returns Returns empty.\n */\n private readonly _handleGoBack = () => () => {\n NavigationMenuRootEnabled.isBackTrack = true;\n this.setState(previousState => ({ activeMenu: previousState.parentMenu }));\n };\n\n /**\n * Function to close the nav menu on click on body.\n * @param event - MouseEvent.\n */\n private readonly _handleClickOutside = (event: MouseEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\n if (!this.state.isOnlyMobile) {\n this.setState({ activeMenu: NavMenuConstants.rootMenu, mobileViewLabelText: '', isNavOpen: false });\n } else {\n this.setState({ activeMenu: undefined, mobileViewLabelText: '', isNavOpen: false });\n }\n }\n };\n\n /**\n * Add shop all link for Mobile submenu.\n */\n private readonly _addShopAllLink = (): void => {\n const { menuItemData } = this.props.navProps;\n this.menuItemData = menuItemData;\n if (ArrayExtensions.hasElements(menuItemData) && ArrayExtensions.hasElements(menuItemData[0].subMenu)) {\n this.menuItemData[0].subMenu?.map(item => {\n const shopAllObject = {};\n Object.assign(shopAllObject, { imageSource: item.imageSource });\n Object.assign(shopAllObject, { linkText: this.props.navProps.resources.allCategoryMenuText });\n Object.assign(shopAllObject, { linkURL: item.linkURL });\n if (ArrayExtensions.hasElements(item.subMenu) && item.menuSource === MenuSource.Retail) {\n item.subMenu.unshift(shopAllObject);\n }\n return item;\n });\n }\n };\n\n /**\n * Checks to assign a ref for focus.\n * @param index -Sub menu list index.\n * @param mobileViewLabelText -Mobile view label text.\n * @param optionLinkText -Sub menu item link text.\n * @returns Boolean.\n */\n private readonly _shouldAddFocusMenuRef = (index: number, mobileViewLabelText?: string, optionLinkText?: string) => {\n const firstIndex: number = 0;\n if (!NavigationMenuRootEnabled.isBackTrack && index === firstIndex) {\n return true;\n }\n if (!optionLinkText || !mobileViewLabelText) {\n return false;\n }\n return mobileViewLabelText === optionLinkText;\n };\n\n /**\n * Function to handle nav menu close.\n */\n private readonly _closeNavMenu = (): void => {\n if (!this.state.isOnlyMobile) {\n this.setState({ activeMenu: NavMenuConstants.rootMenu, mobileViewLabelText: '', isNavOpen: false });\n } else {\n this.setState({ activeMenu: undefined, mobileViewLabelText: '', isNavOpen: false });\n }\n };\n\n /**\n * Function to close the nav menu on esc key.\n * @param event - Event.\n */\n private readonly _escFunction = (event: React.KeyboardEvent) => {\n if (event.keyCode === this.escapeKey && !this.state.isOnlyMobile && this.state.isNavOpen) {\n this.setState({ activeMenu: NavMenuConstants.rootMenu, mobileViewLabelText: '', isNavOpen: false });\n }\n };\n\n /**\n * Custom update viewport.\n */\n private readonly _customUpdateViewport = (): void => {\n this.setState({ isOnlyMobile: this.isOnlyMobile });\n };\n}\n\nexport default NavigationMenuRootEnabled;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INavigationMenuViewProps } from '@msdyn365-commerce-modules/navigation-menu';\nimport * as React from 'react';\n\nimport { INavigationMenuProps } from '../definition-extensions/navigation-menu.ext.props.autogenerated';\nimport NavigationMenuRootDisabled from './components/navigation-menu-root-disabled';\nimport NavigationMenuRootEnabled from './components/navigation-menu-root-enabled';\n\n/**\n * Render the Navigation menu.\n * @param props - The navigation menu view props.\n * @returns Return HTML having INavigationMenuViewProps props with navigation menu.\n */\nconst navigationMenuView = (props: INavigationMenuViewProps & INavigationMenuProps<{}>): JSX.Element => {\n if (props.config.enabletopMenu) {\n return ;\n }\n\n return ;\n};\n\nexport default navigationMenuView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { IB2bRequestsStatusViewProps } from './b2b-requests-status';\n\nconst B2bRequestsStatusView: React.FC = props => {\n const { b2bRequestsStatus, heading, table } = props;\n return (\n \n {heading}\n {table}\n \n );\n};\n\nexport default B2bRequestsStatusView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Address, TenderLine, TokenizedPaymentCard } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPaymentInformationProps {\n resources: {\n changePaymentButtonText: string;\n cardTitle: string;\n cardNumberLabel: string;\n expiresDateLabel: string;\n addressTitle: string;\n };\n tokenizedPaymentCard?: TokenizedPaymentCard;\n tenderLine?: TenderLine;\n billingAddress?: Address;\n canEdit?: boolean;\n onEdit?(): void;\n}\n\n/**\n * PaymentInformation SFC.\n * @param root0\n * @param root0.resources\n * @param root0.resources.changePaymentButtonText\n * @param root0.resources.cardTitle\n * @param root0.resources.cardNumberLabel\n * @param root0.resources.expiresDateLabel\n * @param root0.resources.addressTitle\n * @param root0.tokenizedPaymentCard\n * @param root0.tenderLine\n * @param root0.billingAddress\n * @param root0.onEdit\n * @param root0.canEdit\n * @extends {React.SFC}\n */\nconst PaymentInformation: React.SFC = ({\n resources: { changePaymentButtonText, cardTitle, cardNumberLabel, expiresDateLabel, addressTitle },\n tokenizedPaymentCard,\n tenderLine,\n billingAddress,\n onEdit,\n canEdit\n}) => {\n const { NameOnCard = '', CardTypeId, CardTokenInfo = {}, ExpirationMonth = 0, ExpirationYear = 0 } = tokenizedPaymentCard || {};\n const { MaskedCardNumber = '' } = CardTokenInfo || tenderLine || {};\n const cardLastNDigit = MaskedCardNumber.substr(-4);\n\n // @ts-expect-error\n const isValidCardNumber = !isNaN(cardLastNDigit) && cardLastNDigit !== '';\n const { Name, Street, StreetNumber, City, State, ZipCode, ThreeLetterISORegionName, Phone } = billingAddress || {};\n\n return (\n
\n

{cardTitle}

\n

{NameOnCard}

\n {CardTypeId &&

{CardTypeId}

}\n {isValidCardNumber && (\n

\n {cardNumberLabel} {` `} {cardLastNDigit}\n

\n )}\n {(ExpirationMonth > 0 || ExpirationYear > 0) && (\n

\n {expiresDateLabel} {` `} {ExpirationMonth}/{ExpirationYear}\n

\n )}\n {billingAddress && (\n <>\n

{addressTitle}

\n

\n {Name}\n {` `}\n {Street}\n

\n {StreetNumber &&

{StreetNumber}

}\n

\n {City},{State}\n {` `}\n {ZipCode}\n {` `}\n {ThreeLetterISORegionName}\n {` `}\n {Phone}\n

\n \n )}\n {canEdit && (\n \n )}\n
\n );\n};\n\nexport default React.memo(PaymentInformation);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport checkoutStateDataAction from './checkout-state-data-action';\n\nexport * from './checkout-state';\nexport * from './checkout-state-data-action';\nexport * from './module-state-manager';\nexport * from './checkout-utilities.data';\n\nexport { checkoutStateDataAction };\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';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classNames from 'classnames';\nimport { EnabledPaymentsForOBO } from '@msdyn365-commerce-modules/checkout-utilities';\nimport { IGiftCardExtend } from '@msdyn365-commerce/global-state';\nimport { computed, reaction } from 'mobx';\nimport { CardPaymentAcceptPoint, CardPaymentAcceptResult } from '@msdyn365-commerce/retail-proxy';\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { ICheckoutGooglePayProps } from './checkout-google-pay.props.autogenerated';\nimport { ICheckoutGooglePayData } from './checkout-google-pay.data';\nimport { GetCardPaymentAcceptPointInput, getCardPaymentAcceptPointAction } from '../checkout-payment-instrument';\nimport { IPaymentAuthorizationResult, IPaymentData, IPaymentsError, ITransactionInfo } from './checkout-google-pay.model';\nimport { GetCheckoutReturnUrl } from '../../common';\n\nexport interface ICheckoutGooglePayViewProps extends ICheckoutGooglePayProps<{}> {\n alert?: React.ReactNode;\n className?: string;\n checkoutButton?: HTMLDivElement;\n checkoutGooglePay: IModuleProps;\n}\n\nexport interface ICheckoutGooglePayModuleProps extends ICheckoutGooglePayProps {}\n\nexport enum GooglePayButtonState {\n Unknown,\n NotAvailable,\n Available\n}\n\ninterface IMerchantConfiguration {\n adyenMerchantId?: string;\n googleMerchantId?: string;\n currencyCode?: string;\n environment?: string;\n connectorId?: string;\n}\n\ninterface ICheckoutGooglePayState {\n buttonState: GooglePayButtonState;\n merchantConfiguration?: IMerchantConfiguration;\n errorMessage?: string;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ndeclare const window: any;\n\n/**\n *\n * CheckoutGooglePay component\n * @extends {React.Component}\n */\nexport class CheckoutGooglePay extends React.Component {\n private readonly moduleClassName: string = 'ms-checkout-google-pay';\n private readonly zeroAmount: number = 0;\n\n private readonly baseRequest = {\n apiVersion: 2,\n apiVersionMinor: 0\n };\n\n private readonly allowedCardNetworks = ['AMEX', 'DISCOVER', 'INTERAC', 'JCB', 'MASTERCARD', 'VISA'];\n private readonly allowedCardAuthMethods = ['PAN_ONLY', 'CRYPTOGRAM_3DS'];\n\n private readonly baseCardPaymentMethod = {\n type: 'CARD',\n parameters: {\n allowedAuthMethods: this.allowedCardAuthMethods,\n allowedCardNetworks: this.allowedCardNetworks\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private paymentsClient: any = null;\n private googlePayButton: HTMLDivElement = document.createElement('div');\n\n @computed private get getLoyaltyAmount(): number {\n const {\n data: { checkout }\n } = this.props;\n const checkoutState = checkout?.result;\n return checkoutState?.loyaltyAmount ? checkoutState.loyaltyAmount : this.zeroAmount;\n }\n\n @computed private get getGiftCardTotalAmount(): number {\n const {\n data: { checkout }\n } = this.props;\n const checkoutState = checkout?.result;\n if (!checkoutState || !checkoutState.giftCardExtends) {\n return this.zeroAmount;\n }\n return checkoutState.giftCardExtends.reduce((count: number, giftCard: IGiftCardExtend) => {\n return count + (giftCard.Balance || this.zeroAmount);\n }, 0);\n }\n\n @computed private get getCustomerAccountAmount(): number {\n const {\n data: { checkout }\n } = this.props;\n const checkoutState = checkout?.result;\n\n return checkoutState?.customerAccountAmount ?? this.zeroAmount;\n }\n\n @computed private get amountDue(): number {\n const {\n data: { checkout }\n } = this.props;\n\n const cart = checkout?.result?.checkoutCart.cart;\n if (!cart || !cart.AmountDue) {\n return this.zeroAmount;\n }\n\n return Math.max(\n this.zeroAmount,\n cart.AmountDue - this.getGiftCardTotalAmount - this.getLoyaltyAmount - this.getCustomerAccountAmount\n );\n }\n\n @computed private get googleClient() {\n if (this.paymentsClient === null || this.paymentsClient === undefined) {\n const { merchantConfiguration } = this.state;\n const clientRequest = {\n environment: merchantConfiguration?.environment,\n paymentDataCallbacks: {\n onPaymentAuthorized: this.onPaymentAuthorized\n }\n };\n\n this.paymentsClient = new window.google.payments.api.PaymentsClient(clientRequest);\n }\n\n return this.paymentsClient;\n }\n\n @computed private get transactionInfo(): ITransactionInfo {\n const { merchantConfiguration } = this.state;\n return {\n currencyCode: merchantConfiguration?.currencyCode || '',\n totalPriceStatus: 'ESTIMATED',\n totalPrice: `${this.amountDue}`\n };\n }\n\n @computed private get paymentDataRequest() {\n const { merchantConfiguration } = this.state;\n const cardPaymentMethod = {\n ...this.baseCardPaymentMethod,\n tokenizationSpecification: {\n type: 'PAYMENT_GATEWAY',\n parameters: {\n gateway: 'adyen',\n gatewayMerchantId: merchantConfiguration?.adyenMerchantId || ''\n }\n }\n };\n\n const callbackIntents: string[] = ['PAYMENT_AUTHORIZATION'];\n const paymentDataRequest = {\n ...this.baseRequest,\n allowedPaymentMethods: [cardPaymentMethod],\n transactionInfo: this.transactionInfo,\n merchantInfo: {\n merchantId: merchantConfiguration?.googleMerchantId || ''\n },\n callbackIntents: callbackIntents\n };\n\n return paymentDataRequest;\n }\n\n public constructor(props: ICheckoutGooglePayProps) {\n super(props);\n this.state = {\n buttonState: GooglePayButtonState.Unknown\n };\n }\n\n public async componentDidMount() {\n const {\n data: { checkout }\n } = this.props;\n\n reaction(\n () => checkout?.result?.redirectAdditionalContext && checkout?.result?.redirectPaymentConnectorId,\n async () => this.performRedirect()\n );\n\n reaction(\n () => checkout?.result?.isPaymentVerificationRedirection && checkout?.result?.isPlaceOrderEnabledInRedirection,\n async () => this.handlePaymentVerification()\n );\n\n await this.loadPaymentAcceptPage();\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className },\n telemetry\n } = this.props;\n\n if (this.props.context.request.user.isOBORequest && EnabledPaymentsForOBO.ExpressPayment === 0) {\n telemetry.information('isOBORequest is enabled, google pay module wont render');\n return null;\n }\n\n let checkoutButton: HTMLDivElement;\n switch (this.state.buttonState) {\n case GooglePayButtonState.Available:\n checkoutButton = this.googlePayButton;\n break;\n\n case GooglePayButtonState.NotAvailable:\n case GooglePayButtonState.Unknown:\n default:\n checkoutButton = document.createElement('div');\n }\n\n const viewProps: ICheckoutGooglePayViewProps = {\n ...this.props,\n ...this.state,\n className,\n checkoutGooglePay: {\n moduleProps: this.props,\n className: classNames(this.moduleClassName, className)\n },\n checkoutButton\n };\n\n return this.props.renderView(viewProps);\n }\n\n private async loadPaymentAcceptPage() {\n const {\n config,\n context: {\n actionContext,\n request: { apiSettings }\n },\n telemetry\n } = this.props;\n\n const input = {\n amountDue: this.amountDue,\n apiSettings,\n paymenTenderType: config.paymentTenderType\n };\n\n await getCardPaymentAcceptPointAction(new GetCardPaymentAcceptPointInput(input), actionContext)\n .then(paymentAcceptPoint => {\n const configuration = this.getMerchantConfiguration(paymentAcceptPoint);\n if (configuration) {\n this.setState({ merchantConfiguration: configuration });\n this.initialize();\n } else {\n telemetry.error('Unable to initialize Google Pay module');\n this.setState({ buttonState: GooglePayButtonState.NotAvailable });\n }\n })\n .catch((error: Error) => {\n telemetry.error(error.message);\n console.error(`[GooglePay] getCardPaymentAcceptPointAction failed: ${error.message}`);\n });\n }\n\n private getMerchantConfiguration(paymentAcceptPoint: CardPaymentAcceptPoint): IMerchantConfiguration | null {\n const { telemetry } = this.props;\n\n try {\n const configuration: IMerchantConfiguration = JSON.parse(paymentAcceptPoint?.AcceptPageContent || '');\n configuration.connectorId = paymentAcceptPoint?.PaymentConnectorId;\n\n if (StringExtensions.isNullOrWhitespace(configuration.adyenMerchantId)) {\n throw new Error('missing Adyen merchant account identifier');\n } else if (StringExtensions.isNullOrWhitespace(configuration.currencyCode)) {\n throw new Error('missing currency code');\n } else if (StringExtensions.isNullOrWhitespace(configuration.connectorId)) {\n throw new Error('missing connector identifier');\n } else if (StringExtensions.isNullOrWhitespace(configuration.environment)) {\n throw new Error('missing environment property');\n } else if (configuration.environment === 'PRODUCTION' && StringExtensions.isNullOrWhitespace(configuration.googleMerchantId)) {\n throw new Error('missing Google merchant account identifier');\n }\n\n return configuration;\n } catch (error) {\n telemetry.error(`Caught exception during parsing configuration: ${error}`);\n console.error(`[GooglePay] Caught exception during parsing configuration: ${error}`);\n }\n\n return null;\n }\n\n private initialize = () => {\n const { telemetry } = this.props;\n\n const script = document.createElement('script');\n script.onload = this.loadGoogleSdk;\n script.src = 'https://pay.google.com/gp/p/js/pay.js';\n script.async = true;\n script.onerror = () => telemetry.error('unable to load Google Pay SDK');\n document.body.appendChild(script);\n };\n\n /**\n * Load Google Pay JS SDK.\n */\n private loadGoogleSdk = async () => {\n const { telemetry } = this.props;\n const isReadyToPayRequest = {\n ...this.baseRequest,\n allowedPaymentMethods: [this.baseCardPaymentMethod]\n };\n\n let buttonState: GooglePayButtonState = GooglePayButtonState.NotAvailable;\n try {\n const isReadyToPay = await this.googleClient.isReadyToPay(isReadyToPayRequest);\n if (isReadyToPay?.result) {\n this.googlePayButton = this.googleClient.createButton({\n allowedPaymentMethods: [this.baseCardPaymentMethod],\n buttonColor: 'default',\n buttonType: 'buy',\n buttonSizeMode: 'fill',\n onClick: this.handlePayButton\n });\n\n buttonState = GooglePayButtonState.Available;\n } else {\n telemetry.error('[loadGoogleSdk] current browser does not support Google Pay');\n }\n } catch (error) {\n telemetry.error(`[loadGoogleSdk] unexpected error during loading sdk: ${error}`);\n }\n\n return this.setState({\n buttonState\n });\n };\n\n /**\n * Handler for Google Pay button.\n */\n private handlePayButton = () => {\n const { telemetry } = this.props;\n this.googleClient.loadPaymentData(this.paymentDataRequest).catch((error: IPaymentsError) => {\n if (error.statusCode === 'CANCELED') {\n telemetry.information('[CheckoutGooglePay::handlePayButton] popup was canceled');\n } else {\n telemetry.error(\n `[CheckoutGooglePay::handlePayButton] unable to complete Google transaction (${error.statusCode}): ${error.statusMessage}`\n );\n }\n });\n };\n\n private onPaymentAuthorized = async (paymentData: IPaymentData) => {\n const { resources } = this.props;\n let result: IPaymentAuthorizationResult;\n try {\n await this.processPayment(paymentData);\n result = {\n transactionState: 'SUCCESS'\n };\n } catch (e) {\n result = {\n transactionState: 'ERROR',\n error: {\n reason: 'PAYMENT_DATA_INVALID',\n message: resources.genericErrorMessage,\n intent: 'PAYMENT_AUTHORIZATION'\n }\n };\n }\n\n return new Promise((resolve, reject) => {\n resolve(result);\n });\n };\n\n /**\n * Process payment data in CSU.\n * @param paymentData The payment data from Google SDK.\n */\n private processPayment = async (paymentData: IPaymentData) => {\n const {\n data: { checkout },\n context: { actionContext }\n } = this.props;\n const { merchantConfiguration } = this.state;\n const paymentConnectorId: string = merchantConfiguration?.connectorId || '';\n const message = {\n paymentToken: paymentData.paymentMethodData.tokenizationData.token,\n browserInfo: {\n acceptHeader: '*/*',\n colorDepth: window.screen.colorDepth,\n language: window.navigator.language,\n javaEnabled: window.navigator.javaEnabled(),\n screenHeight: window.screen.height,\n screenWidth: window.screen.width,\n userAgent: window.navigator.userAgent,\n timeZoneOffset: new Date().getTimezoneOffset()\n }\n };\n\n const settings = {\n ReturnUrl: GetCheckoutReturnUrl(actionContext),\n ...(paymentConnectorId && { PaymentConnectorId: paymentConnectorId })\n };\n\n const cardPaymentAcceptResult: CardPaymentAcceptResult = {\n AccessCode: btoa(JSON.stringify(message)),\n Settings: settings\n };\n\n await checkout?.result?.updateCardPaymentAcceptResult({ newCardPaymentAcceptResult: cardPaymentAcceptResult });\n await checkout?.result?.updateIsPaymentSectionContainerReady({ newIsPaymentSectionContainerReady: true });\n };\n\n /**\n * Perform redirect\n */\n private performRedirect = async () => {\n const {\n config,\n data: { checkout },\n telemetry\n } = this.props;\n\n const { merchantConfiguration } = this.state;\n const checkoutState = checkout?.result;\n\n if (\n !StringExtensions.isNullOrWhitespace(checkoutState?.redirectPaymentConnectorId) &&\n checkoutState?.redirectPaymentConnectorId === merchantConfiguration?.connectorId\n ) {\n let redirectInfo;\n try {\n redirectInfo = JSON.parse(checkoutState?.redirectAdditionalContext || '');\n } catch (error) {\n telemetry.error(`[CheckoutGooglePay::performRedirect] unable to parse additional context`);\n return;\n }\n\n await checkoutState?.updatePaymentTenderType({ newPaymentTenderType: config.paymentTenderType });\n await checkoutState?.saveDataInStorage({});\n await checkoutState?.updateIsPaymentVerificationRequired({ newIsPaymentVerificationRequired: true });\n\n const { url, data } = redirectInfo;\n const form = document.createElement('form');\n\n form.method = 'POST';\n form.action = url;\n\n for (const propertyName of Object.keys(data)) {\n const element = document.createElement('input');\n element.name = propertyName;\n element.value = data[propertyName];\n form.appendChild(element);\n }\n\n document.body.appendChild(form);\n form.submit();\n } else {\n telemetry.warning(`[CheckoutGooglePay::performRedirect] cannot perform redirect, connector id is not valid or matching`);\n }\n };\n\n /**\n * Handle redirect shopper bank institution.\n */\n private handlePaymentVerification = async () => {\n const {\n config,\n context: { actionContext },\n data: { checkout },\n telemetry\n } = this.props;\n\n const { merchantConfiguration } = this.state;\n const checkoutState = checkout?.result;\n\n if (\n !StringExtensions.isNullOrWhitespace(checkoutState?.paymentTenderType) &&\n checkoutState?.paymentTenderType === config.paymentTenderType\n ) {\n const { requestFormData, query } = this.props.context.request;\n const formData = btoa(JSON.stringify(requestFormData ?? { redirectResult: query?.redirectResult }));\n\n const settings = {\n ReturnUrl: GetCheckoutReturnUrl(actionContext),\n PaymentConnectorId: merchantConfiguration?.connectorId\n };\n\n const cardPaymentAcceptResult: CardPaymentAcceptResult = {\n AccessCode: formData,\n Settings: settings\n };\n\n await checkoutState?.updateCardPaymentAcceptResult({ newCardPaymentAcceptResult: cardPaymentAcceptResult });\n await checkoutState?.checkoutCart.refreshCart({});\n await checkoutState?.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: true });\n await checkoutState?.updateIsPaymentSectionContainerReady({ newIsPaymentSectionContainerReady: true });\n } else {\n telemetry.warning(\n `[CheckoutGooglePay::handlePaymentVerification] ignore payment verification, checkout tender type: '${checkoutState?.paymentTenderType}', config tender type: '${config.paymentTenderType}'`\n );\n }\n };\n}\n\nexport default CheckoutGooglePay;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n ICategoryHierarchyViewProps,\n IRefineMenuViewProps,\n ISearchResultContainerViewProps,\n ISearchResultModalViewProps,\n ISortByViewProps,\n ITitleViewProps\n} from '@msdyn365-commerce-modules/search-result-container';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst SearchResultContainerView: React.FC = props => {\n const {\n SearchResultContainer,\n products,\n pagination,\n ProductsContainer,\n ProductSectionContainer,\n choiceSummary,\n isMobile,\n modalToggle,\n searchResultModal,\n TitleViewProps,\n refineMenu,\n categoryHierarchy,\n sortByOptions,\n CategoryNavContainer,\n RefineAndProductSectionContainer,\n errorMessage,\n FeatureSearchContainer,\n similarLookProduct\n } = props;\n const isRecoSearchPage = props.context.actionContext.requestContext.query?.recommendation;\n if (isMobile) {\n return (\n \n {categoryHierarchy && renderCategoryHierarchy(categoryHierarchy)}\n {renderTitle(TitleViewProps)}\n {choiceSummary}\n {modalToggle}\n {createSearchResultModal(searchResultModal, refineMenu, sortByOptions, isRecoSearchPage)}\n {similarLookProduct}\n \n {errorMessage}\n {products}\n \n {pagination}\n \n );\n }\n return (\n \n {categoryHierarchy && {renderCategoryHierarchy(categoryHierarchy)}}\n \n {refineMenu && renderRefiner(refineMenu)}\n \n {similarLookProduct}\n
\n {TitleViewProps && renderTitle(TitleViewProps)}\n {choiceSummary}\n
\n
\n {sortByOptions && !isRecoSearchPage && renderSort(sortByOptions)}\n
\n \n {errorMessage}\n {products}\n \n {pagination}\n
\n
\n
\n );\n};\n\nconst createSearchResultModal = (\n modalProps: ISearchResultModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element => {\n return React.cloneElement(\n modalProps.modal,\n {},\n modalProps.modalHeader,\n createModalBody(modalProps, refineMenu, sortByDropDown, isRecoSearchPage),\n modalProps.modalFooter\n );\n};\n\nconst createModalBody = (\n props: ISearchResultModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element | null => {\n if (sortByDropDown) {\n return React.cloneElement(props.modalBody, {}, renderSort(sortByDropDown, isRecoSearchPage), renderRefiner(refineMenu));\n }\n return null;\n};\n\nconst renderRefiner = (props: IRefineMenuViewProps): JSX.Element | null => {\n const { refiners, RefineMenuContainer, RefinerSectionContainer } = props;\n if (refiners) {\n return (\n \n \n {refiners.map((submenu, index) => (\n {submenu}\n ))}\n \n \n );\n }\n return null;\n};\n\nconst renderSort = (props: ISortByViewProps, isRecoSearchPage?: string): JSX.Element | null => {\n const { SortingContainer, sortByDropDown } = props;\n if (sortByDropDown && !isRecoSearchPage) {\n return {sortByDropDown};\n }\n return null;\n};\n\nconst renderCategoryHierarchy = (props: ICategoryHierarchyViewProps): JSX.Element | null => {\n const { CategoryHierarchyContainer, categoryHierarchyList, categoryHierarchySeparator } = props;\n if (categoryHierarchyList) {\n return (\n \n {categoryHierarchyList.map((category, index) => (\n \n {category}\n {categoryHierarchyList && categoryHierarchyList[index + 1] && categoryHierarchySeparator}\n \n ))}\n \n );\n }\n\n return null;\n};\n\nconst renderTitle = (props: ITitleViewProps): JSX.Element | null => {\n const { title, TitleContainer } = props;\n if (title) {\n return (\n \n

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

\n
\n );\n }\n return null;\n};\n\nexport default SearchResultContainerView;\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 { IInvoicesListViewProps } from './invoices-list';\n\nexport const InvoiceListView: React.FC = props => {\n const { header, filter, content, invoiceRequestModal, pagination } = props;\n\n return (\n \n {header}\n {invoiceRequestModal}\n {filter}\n {content}\n {pagination}\n \n );\n};\n\nexport default InvoiceListView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IContentBlockAdditionalContentItemViewProps,\n IContentBlockAdditionalContentViewProps,\n IContentBlockViewProps\n} from '@msdyn365-commerce-modules/content-block';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\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\n/**\n * Render View.\n * @param props - The view props.\n * @returns -The JSX Element.\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 // @ts-expect-error HTML element need to be clear on run time.\n const hasImage: boolean = image.props.src;\n const imageClass: string = hasImage ? `${detailsContainer.className} withImage` : `${detailsContainer.className} withoutImage`;\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 { IModuleProps, INodeProps, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createTabStateInput, getContentID, TabItemType } from '../..';\nimport { ITabData } from './tab.data';\nimport { ITabProps } from './tab.props.autogenerated';\n\n/**\n *\n * Tab component.\n * @extends {React.PureComponent>}\n */\n\nexport interface ICallToActionProps {\n link: INodeProps[];\n}\n\nexport interface ITabViewProps extends ITabProps<{}> {\n heading?: React.ReactNode;\n TabContainer: IModuleProps;\n headerSection: INodeProps;\n tabHeaderSection: INodeProps;\n tabsSection: INodeProps;\n tabItemContainer: INodeProps;\n tabHeaders: React.ReactNode;\n tabContents: React.ReactNode;\n}\n\nexport interface ITabViewStates {\n currentTabIndex: number;\n}\n\n/**\n *\n * Tab component.\n * @extends {React.Component>}\n */\n@observer\nclass Tab extends React.Component, ITabViewStates> {\n public readonly tabIndexQuery: string = 'activeTab';\n\n private activeLink: HTMLLIElement | null;\n\n constructor(props: ITabProps) {\n super(props);\n const { defaultTabIndex } = this.props.config;\n const { slots } = this.props;\n const slotLength = (slots && slots.tabItems && slots.tabItems.length) || 0;\n let initialIndex = defaultTabIndex && defaultTabIndex <= slotLength && defaultTabIndex > 0 ? defaultTabIndex - 1 : 0;\n const queryString: string =\n (this.props.context &&\n this.props.context.request &&\n this.props.context.request.query &&\n this.props.context.request.query.activeTab) ||\n '';\n let queryTabIndex: number = 0;\n if (queryString.indexOf(':') > 0) {\n const arr = queryString.split(':');\n const moduleId = arr[0];\n if (moduleId === this.props.id) {\n queryTabIndex = Number.parseInt(arr[1], 10);\n }\n }\n initialIndex = queryTabIndex > 0 && queryTabIndex <= slotLength ? queryTabIndex - 1 : initialIndex;\n this.state = { currentTabIndex: initialIndex };\n\n this._getTabHeader = this._getTabHeader.bind(this);\n this._getTabContent = this._getTabContent.bind(this);\n this._onClick = this._onClick.bind(this);\n this._onKeyDown = this._onKeyDown.bind(this);\n this._setGetParameter = this._setGetParameter.bind(this);\n this.activeLink = null;\n }\n\n public shouldComponentUpdate(nextProps: ITabProps, nextState: ITabViewStates): 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 { slots } = this.props;\n const { heading, className } = this.props.config;\n\n const headingComponent = heading && (\n \n );\n const slotLength = (slots && slots.tabItems && slots.tabItems.length) || 0;\n\n // Const queryTabIndex = this.props.context && this.props.context.request && this.props.context.request.query && +this.props.context.request.query.activeTabIndex || 0;\n // let activeIndex = defaultTabIndex && defaultTabIndex <= slotLength && defaultTabIndex > 0 ? defaultTabIndex - 1 : 0;\n // activeIndex = queryTabIndex > 0 && queryTabIndex <= slotLength ? queryTabIndex - 1 : activeIndex;\n\n const tabViewProps = {\n ...this.props,\n TabContainer: {\n moduleProps: this.props,\n className: classnames('ms-tab', className)\n },\n headerSection: { className: 'ms-tab-header-section' },\n tabsSection: { className: 'ms-tab-tabs-section', tag: 'ul' as NodeTag, role: 'tablist' },\n heading: headingComponent,\n config: this.props && this.props.config,\n tabItemContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-tab-content-section'\n },\n tabContents: slotLength > 0 && slots.tabItems.map((item: React.ReactNode, index: number) => this._getTabContent(item, index)),\n tabHeaders: slotLength > 0 && slots.tabItems.map((item: React.ReactNode, index: number) => this._getTabHeader(item, index))\n };\n return this.props.renderView(tabViewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: MsDyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public componentDidUpdate(): void {\n const { data } = this.props;\n if (!this.props.context.request.params.isEditor) {\n const dataActionTabId = data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.tabId;\n if (dataActionTabId) {\n if (this.props.id === dataActionTabId) {\n this.activeLink && this.activeLink.focus();\n }\n } else {\n const queryString: string =\n (this.props.context &&\n this.props.context.request &&\n this.props.context.request.query &&\n this.props.context.request.query.activeTab) ||\n '';\n if (queryString.indexOf(':') > 0) {\n const arr = queryString.split(':');\n const moduleId = arr[0];\n if (moduleId === this.props.id) {\n this.activeLink && this.activeLink.focus();\n }\n }\n }\n }\n }\n\n /**\n *Set the activate link value on tab click.\n * @param link -Ref link value.\n */\n private readonly _refHandler = (link: HTMLLIElement | null) => {\n this.activeLink = link;\n };\n\n private _getTabHeader(item: React.ReactNode, index: number): React.ReactNode {\n const { data } = this.props;\n const activeContentIndex =\n data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.activeContentIndex;\n const dataActionTabId = data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.tabId;\n const selected =\n activeContentIndex !== undefined && dataActionTabId === this.props.id\n ? activeContentIndex === index\n : this.state.currentTabIndex === index;\n const contentID = getContentID(index, this.props.id);\n\n return (\n \n \n {React.cloneElement(item as React.ReactElement, {\n tabItemType: TabItemType.TabHeader,\n isSelected: index === this.state.currentTabIndex,\n itemIndex: index,\n tabId: this.props.id\n })}\n \n \n );\n }\n\n private readonly _onClick = (index: number, id: string) => (e: React.MouseEvent) => {\n const activeTabState = { activeContentIndex: index, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 1)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n };\n\n private readonly _onKeyDown = (index: number, id: string) => (e: React.KeyboardEvent) => {\n if (e.keyCode === 13) {\n const activeTabState = { activeContentIndex: index, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 1)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n }\n\n if (e.keyCode === 39 || e.keyCode === 37) {\n const { slots } = this.props;\n const slotLength = (slots && slots.tabItems && slots.tabItems.length) || 0;\n\n if (e.keyCode === 39) {\n // If we're at the end, go to the start\n if (index + 1 === slotLength) {\n index = -1;\n }\n const activeTabState = { activeContentIndex: index + 1, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index + 1 });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 2)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n\n // Move left\n } else if (e.keyCode === 37) {\n // If we're at the start, move to the end\n if (index === 0) {\n index = slotLength;\n }\n const activeTabState = { activeContentIndex: index - 1, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index - 1 });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n }\n }\n };\n\n private _getTabContent(item: React.ReactNode, index: number): React.ReactNode {\n return (\n \n {React.cloneElement(item as React.ReactElement, {\n tabItemType: TabItemType.TabContent,\n isSelected: index === this.state.currentTabIndex,\n itemIndex: index,\n tabId: this.props.id\n })}\n \n );\n }\n\n private _setGetParameter(requestContext: MsDyn365.IRequestContext, paramName: string, paramValue: string): string {\n let url;\n\n if (MsDyn365.msdyn365Commerce.isBrowser) {\n url = new URL(window.location.href);\n } else {\n url = new URL(requestContext.url.requestUrl.href);\n }\n\n const params = new window.URLSearchParams(url.search);\n params.set(paramName, paramValue);\n url.search = decodeURIComponent(params.toString());\n return url.toString();\n }\n}\n\nexport default Tab;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IModule } from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport isMatch from 'lodash/isMatch';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { getModuleStates, updateModuleStates } from './module-state';\nimport { IModuleState, IModuleStateManager, IModuleStateProps, IModuleStates } from './module-state.data';\n\nexport interface IProps extends IModule, IModuleStateProps {\n enableControl?: boolean;\n}\n\nconst sectionContainerModuleId = 'section-container';\nconst paymentInstrumentModuleId = 'payment-instrument';\n\nconst withModuleState =

(WrappedComponent: React.ComponentType

): React.ComponentType

=> {\n /**\n *\n * ModuleState component.\n * @extends {React.Component

}\n */\n @observer\n class ModuleState extends React.Component

{\n constructor(props: P) {\n super(props);\n this.initializeState();\n }\n\n public shouldComponentUpdate(nextProps: IModuleStateProps): boolean {\n if (this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const { id } = this.props;\n return ;\n }\n\n private readonly initializeState = (): void => {\n const { id, typeName, context } = this.props;\n const states = getModuleStates(context.actionContext);\n if (!states) {\n this.props.telemetry.error('withModuleState initializeState() - states not found');\n return;\n }\n\n if (states[id]) {\n // State has been initialized\n return;\n }\n\n updateModuleStates(\n {\n ...states,\n [id]: {\n id,\n typeName,\n hasInitialized: false,\n hasError: false,\n isRequired: true,\n isCancellable: true,\n isSubmitContainer: false,\n status: undefined,\n childIds: []\n }\n },\n context.actionContext\n );\n };\n\n /**\n * GetModuleStateManager\n * Get module state manager by id.\n * @param id\n */\n private readonly getModuleStateManager = (id: string): IModuleStateManager => {\n const moduleState = this.get()[id];\n return {\n ...moduleState!,\n hasInitialized: this.validate(id, { hasInitialized: true }, true), // All has initialized is initialized\n hasError: this.validate(id, { hasError: true }), // Partial has error is error\n isReady: this.validate(id, { status: 'ready' }, true, true), // All ready is ready (exclued disabled and skipped)\n isUpdating: this.validate(id, { status: 'updating' }), // Partial updating is updating\n isPending: this.validate(id, { status: 'pending' }), // Partial pending is pending\n isSkipped: this.validate(id, { status: 'skipped' }, true, true), // All skipped is skipped (exclued disabled)\n isDisabled: this.validate(id, { status: 'disabled' }, true), // All disabled is disabled\n isCancelAllowed: this.validate(id, { isCancellable: true }, true, true), // Partial not allowed is not allowed\n shouldSubmitContainer: this.validate(id, { isSubmitContainer: true }), // Partial submit is submit.\n hasExternalSubmitGroup: this.hasExternalSubmitGroup(),\n hasModuleState: this.hasModuleState(id),\n setIsRequired: (value: boolean): void => {\n this.update(id, { isRequired: value });\n },\n setIsCancellable: (value: boolean): void => {\n this.update(id, { isCancellable: value });\n },\n setIsSubmitContainer: (value: boolean): void => {\n this.update(id, { isSubmitContainer: value });\n },\n setHasError: (value: boolean): void => {\n this.update(id, { hasError: value });\n },\n onReady: (): void => {\n this.update(id, { status: 'ready' });\n },\n onUpdating: (): void => {\n this.update(id, { status: 'updating' });\n },\n onPending: (): void => {\n this.update(id, { status: 'pending' });\n },\n onSkip: (): void => {\n this.update(id, { status: 'skipped' });\n },\n onDisable: (): void => {\n this.update(id, { status: 'disabled' });\n },\n getModule: (moduleId: string): IModuleStateManager => this.getModuleStateManager(moduleId),\n getModuleByTypeName: (typeName: string): IModuleStateManager => this.getModuleStateManagerByTypeName(typeName),\n init: (options?: Partial): void => {\n if (moduleState?.hasInitialized) {\n // State has been initialized\n return;\n }\n this.update(id, {\n hasInitialized: true,\n ...options\n });\n }\n };\n };\n\n /**\n * GetModuleStateManagerByTypeName\n * Get module state manager by type name.\n * @param typeName\n */\n private readonly getModuleStateManagerByTypeName = (typeName: string): IModuleStateManager => {\n const moduleStates = getModuleStates(this.props.context.actionContext);\n const moduleState = Object.values(moduleStates).find(_moduleState => _moduleState?.typeName === typeName);\n return this.getModuleStateManager((moduleState && moduleState.id) || '');\n };\n\n /**\n * Get\n * Get all module states.\n */\n private readonly get = (): IModuleStates => {\n return getModuleStates(this.props.context.actionContext);\n };\n\n /**\n * Update\n * Update module state.\n * @param id\n * @param value\n */\n private readonly update = (id: string, value: Partial): void => {\n // Console.log('withModuleState - update', id, value);\n const modules = this.get();\n if (!modules[id]) {\n this.props.telemetry.error(`withModuleState update() - Module state with id ${id} is not found.`);\n return;\n }\n modules[id] = {\n ...modules[id]!,\n ...value\n };\n };\n\n private readonly _validateLeaf = (id: string, source: Partial): boolean => {\n const modules = this.get();\n const module = modules[id];\n if (!module) {\n return false;\n }\n return isMatch(module, source);\n };\n\n private readonly _validateContainer = (\n id: string,\n source: Partial,\n allMatched?: boolean,\n skipSkippableItem?: boolean\n ): boolean => {\n const modules = this.get();\n const module = modules[id];\n if (!module) {\n // Module doesn't has module state\n return !!allMatched;\n }\n\n if (skipSkippableItem && (module.status === 'disabled' || module.status === 'skipped')) {\n // Skip disabled or skipped modules\n return !!allMatched;\n }\n\n // It is leaf module\n if (!module.childIds || module.childIds.length === 0) {\n return this._validateLeaf(id, source);\n }\n\n let childIds = module.childIds;\n\n if (this.props.context.app.config.shouldEnableSinglePaymentAuthorizationCheckout) {\n // For new checkout flow, we bypass the isReady check for payment section container to enable the place order button.\n childIds = childIds.filter(childId => !this._isPaymentSectionContainer(childId));\n }\n\n // It is container module\n const method = allMatched ? 'every' : 'some';\n return childIds[method](childId => this._validateContainer(childId, source, allMatched, skipSkippableItem));\n };\n\n /**\n * Check if it is a section container with payment module.\n * @param moduleId -- The id of the module.\n * @returns If it is a section container with payment module.\n */\n private readonly _isPaymentSectionContainer = (moduleId: string): boolean => {\n if (!moduleId.includes(sectionContainerModuleId)) {\n return false;\n }\n\n const modules = this.get();\n const module = modules[moduleId];\n\n if (module && ArrayExtensions.hasElements(module.childIds.filter(childId => childId.includes(paymentInstrumentModuleId)))) {\n return true;\n }\n\n return false;\n };\n\n /**\n * Validate\n * Validate current module and all its child module match the provided condition.\n * @param id\n * @param source\n * @param allMatched\n * @param skipSkippableItem\n */\n private readonly validate = (\n id: string,\n source: Partial,\n allMatched?: boolean,\n skipSkippableItem?: boolean\n ): boolean => {\n const modules = this.get();\n const module = modules[id];\n if (!module) {\n return false;\n }\n\n // It is leaf module\n if (!module.childIds || module.childIds.length === 0) {\n return this._validateLeaf(id, source);\n }\n\n // It is container module\n return this._validateContainer(id, source, allMatched, skipSkippableItem);\n };\n\n /**\n * HasExternalSubmitGroup\n * Module will use external submit group.\n */\n private readonly hasExternalSubmitGroup = (): boolean => {\n return !!this.props.enableControl;\n };\n\n /**\n * HasModuleState\n * Module is using module state manager.\n * @param id\n */\n private readonly hasModuleState = (id: string): boolean => {\n const modules = this.get();\n const module = modules[id];\n return !!module;\n };\n }\n\n return ModuleState;\n};\n\nexport default withModuleState;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n ICommerceApiSettings,\n ICreateActionContext,\n isEmptyOrNullObject\n} from '@msdyn365-commerce/core';\nimport { getCheckoutState, ICheckoutState } from '@msdyn365-commerce/global-state';\nimport { getCardPaymentAcceptPointAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\nimport { CardPaymentAcceptPoint } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { buildCacheKey } from '@msdyn365-commerce-modules/retail-actions';\nimport get from 'lodash/get';\n\nexport interface IGetCardPaymentAcceptPointInput {\n showBillingAddress?: boolean;\n paymenTenderType?: string;\n apiSettings: ICommerceApiSettings;\n shouldEnableSinglePaymentAuthorizationCheckout?: boolean;\n amountDue?: number;\n shouldPassLocaleToiFrame?: boolean;\n}\n\n/**\n * GetCardPaymentAcceptPointInput - Input for create GetCardPaymentAcceptPoint.\n */\nexport class GetCardPaymentAcceptPointInput implements IActionInput {\n public showBillingAddress?: boolean;\n\n public paymenTenderType?: string;\n\n public shouldEnableSinglePaymentAuthorizationCheckout?: boolean;\n\n public amountDue?: number;\n\n public shouldPassLocaleToiFrame?: boolean;\n\n private readonly apiSettings: ICommerceApiSettings;\n\n constructor(input: IGetCardPaymentAcceptPointInput) {\n this.showBillingAddress = input.showBillingAddress;\n this.paymenTenderType = input.paymenTenderType;\n this.apiSettings = input.apiSettings;\n this.shouldEnableSinglePaymentAuthorizationCheckout = input.shouldEnableSinglePaymentAuthorizationCheckout;\n this.amountDue = input.amountDue;\n this.shouldPassLocaleToiFrame = input.shouldPassLocaleToiFrame;\n }\n\n public getCacheKey = () =>\n buildCacheKey(`CardPaymentAcceptPoint${this.paymenTenderType ? `-${this.paymenTenderType}` : ''}`, this.apiSettings);\n\n public getCacheObjectType = () => 'CardPaymentAcceptPoint';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\nexport const createCheckoutPaymentInstrumentInput = (inputData: ICreateActionContext) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- keep existing name.\n const { showBillingAddress, paymenTenderType, shouldEnableSinglePaymentAuthorizationCheckout, amountDue, shouldPassLocaleToiFrame } =\n inputData.config ?? {};\n const getCardPaymentAcceptPointInput = {\n showBillingAddres: showBillingAddress,\n paymenTenderType,\n apiSettings: inputData.requestContext.apiSettings,\n shouldEnableSinglePaymentAuthorizationCheckout,\n amountDue,\n shouldPassLocaleToiFrame\n };\n\n return new GetCardPaymentAcceptPointInput(getCardPaymentAcceptPointInput);\n};\n\n/**\n * Calls the Retail API and returns a cart object based on the passed GetCartInput.\n * @param input\n * @param ctx\n */\nexport async function getCardPaymentAcceptPointAction(\n input: GetCardPaymentAcceptPointInput,\n ctx: IActionContext\n): Promise {\n // If no cart ID is provided in input, we need to create a cart object\n if (!input) {\n ctx.telemetry.exception(new Error('[getCardPaymentAcceptPointAction] No valid Input was provided, failing'));\n throw new Error('[getCardPaymentAcceptPointAction] No valid Input was provided, failing');\n }\n\n const { showBillingAddress, paymenTenderType, amountDue = 0, shouldPassLocaleToiFrame } = input;\n const checkoutState: ICheckoutState = await getCheckoutState(ctx).catch((error: Error) => {\n ctx.telemetry.exception(error);\n throw error;\n });\n\n if (\n isEmptyOrNullObject(checkoutState) ||\n isEmptyOrNullObject(checkoutState.checkoutCart) ||\n isEmptyOrNullObject(checkoutState.checkoutCart.cart)\n ) {\n ctx.telemetry.exception(new Error('[getCardPaymentAcceptPointAction] Unable to get cart'));\n throw new Error('[getCardPaymentAcceptPointAction] Unable to get cart');\n }\n\n if (!checkoutState.checkoutCart.cart.CartLines || checkoutState.checkoutCart.cart.CartLines.length === 0) {\n ctx.telemetry.exception(new Error('[getCardPaymentAcceptPointAction] Cart is empty'));\n throw new Error('[getCardPaymentAcceptPointAction] Cart is empty');\n }\n\n const requestUrl =\n typeof ctx.requestContext.url.requestUrl === 'string'\n ? new URL(ctx.requestContext.url.requestUrl)\n : ctx.requestContext.url.requestUrl;\n const origin = get(window, 'location.origin') || requestUrl.origin;\n\n const cardPaymentAcceptSettings = {\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CardPaymentAcceptSettings',\n HostPageOrigin: origin,\n AdaptorPath: `${origin}/Connectors/` || origin,\n CardPaymentEnabled: false,\n CardTokenizationEnabled: true,\n ...(!showBillingAddress && { HideBillingAddress: true }),\n ...(paymenTenderType && { TenderTypeId: paymenTenderType }),\n PaymentAmount: amountDue !== 0 ? amountDue : checkoutState.checkoutCart.cart.AmountDue ?? 0,\n Locale: shouldPassLocaleToiFrame ? ctx.requestContext.locale || 'en-us' : undefined\n };\n\n return getCardPaymentAcceptPointAsync(\n { callerContext: ctx, bypassCache: 'get' },\n checkoutState.checkoutCart.cart.Id,\n cardPaymentAcceptSettings,\n []\n )\n .then(cardPaymentAcceptPoint => {\n if (!cardPaymentAcceptPoint.AcceptPageUrl && !cardPaymentAcceptPoint.AcceptPageContent) {\n throw new Error(\n '[getCardPaymentAcceptPointAction] Payment Accept Page has neither return AcceptPageUrl nor AcceptPageContent in updatePaymentAcceptPageData'\n );\n }\n return cardPaymentAcceptPoint;\n })\n .catch(error => {\n ctx.telemetry.exception(error);\n ctx.telemetry.debug('Unable to get Card Payment Accept Point');\n throw error;\n });\n}\n\nexport const getCardPaymentAcceptPointActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce/checkout-payment-instrument/get-card-payment-accept-point',\n action: >getCardPaymentAcceptPointAction,\n input: createCheckoutPaymentInstrumentInput\n});\n\nexport default getCardPaymentAcceptPointActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IGiftCardExtend } from '@msdyn365-commerce/global-state';\nimport { Address, GiftCard, TenderLine, TokenizedPaymentCard } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { action, computed, observable } from 'mobx';\n\n/**\n * State information related to what is needed to succesfully perform a checkout.\n */\nexport class CheckoutState {\n @observable private _tokenizedPaymentCard: TokenizedPaymentCard | undefined;\n\n @computed public get tokenizedPaymentCard(): Readonly | undefined {\n return this._tokenizedPaymentCard;\n }\n\n @observable private _tenderLine: TenderLine | undefined;\n\n @computed public get tenderLine(): Readonly | undefined {\n return this._tenderLine;\n }\n\n @observable private _billingAddress: Address | undefined;\n\n @computed public get billingAddress(): Readonly

| undefined {\n return this._billingAddress;\n }\n\n @observable private _shippingAddress: Address | undefined;\n\n @computed public get shippingAddress(): Readonly
| undefined {\n return this._shippingAddress;\n }\n\n @observable private _cardPrefix: string | undefined;\n\n @computed public get cardPrefix(): Readonly | undefined {\n return this._cardPrefix;\n }\n\n @observable private _giftCards: GiftCard[] = [];\n\n @computed public get giftCards(): readonly GiftCard[] {\n return this._giftCards;\n }\n\n @observable private _giftCardExtends: IGiftCardExtend[] = [];\n\n @computed public get giftCardExtends(): readonly IGiftCardExtend[] {\n return this._giftCardExtends;\n }\n\n @observable private _loyaltyCardNumber?: string;\n\n @computed public get loyaltyCardNumber(): Readonly | undefined {\n return this._loyaltyCardNumber;\n }\n\n @observable private _loyaltyAmount: number = 0;\n\n @computed public get loyaltyAmount(): Readonly | number {\n return this._loyaltyAmount;\n }\n\n @observable private _guestCheckoutEmail: string = '';\n\n @computed public get guestCheckoutEmail(): Readonly | string {\n return this._guestCheckoutEmail;\n }\n\n @observable private _isTermsAndConditionAccepted: boolean = false;\n\n @computed public get isTermsAndConditionAccepted(): Readonly | boolean {\n return this._isTermsAndConditionAccepted;\n }\n\n @observable private _customerAccountAmount: number = 0;\n\n @computed public get customerAccountAmount(): Readonly | number {\n return this._customerAccountAmount;\n }\n\n @action\n public updateTokenizedPaymentCard(newTokenizedPaymentCard: TokenizedPaymentCard): void {\n this._tokenizedPaymentCard = newTokenizedPaymentCard;\n }\n\n @action\n public updateTenderLine(newTenderLine: TenderLine | undefined): void {\n this._tenderLine = newTenderLine;\n }\n\n @action\n public updateShippingAddress(newShippingAddress: Address): void {\n this._shippingAddress = newShippingAddress;\n }\n\n @action\n public updateBillingAddress(newBillingAddress: Address): void {\n this._billingAddress = newBillingAddress;\n }\n\n @action\n public updateCardPrefix(newCardPrefix: string): void {\n this._cardPrefix = newCardPrefix;\n }\n\n @action\n public removeGiftCard(giftCardNumber: string): void {\n this._giftCards = this._giftCards.filter(giftCard => giftCard.Id !== giftCardNumber);\n }\n\n @action\n public removeGiftCardExtend(giftCardNumber: string): void {\n this._giftCardExtends = this._giftCardExtends.filter(giftCard => giftCard.Id !== giftCardNumber);\n }\n\n @action\n public addGiftCard(giftCard: GiftCard): void {\n this._giftCards = [giftCard, ...this._giftCards];\n }\n\n @action\n public addGiftCardExtend(giftCard: IGiftCardExtend): void {\n this._giftCardExtends = [giftCard, ...this._giftCards];\n }\n\n @action\n public updateLoyaltyCardNumber(newLoyaltyCardNumber: string): void {\n this._loyaltyCardNumber = newLoyaltyCardNumber;\n }\n\n @action\n public updateLoyaltyAmount(newAmount: number): void {\n this._loyaltyAmount = newAmount;\n }\n\n @action\n public updateGuestCheckoutEmail(newGuestCheckoutEmail: string): void {\n this._guestCheckoutEmail = newGuestCheckoutEmail;\n }\n\n @action\n public updateTermsAndConditionsAcceptance(newIsTermsAndConditionAccepted: boolean): void {\n this._isTermsAndConditionAccepted = newIsTermsAndConditionAccepted;\n }\n\n @action\n public updateCustomerAccountAmount(newAmount: number): void {\n this._customerAccountAmount = newAmount;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './add-payment-form';\nexport * from './error';\nexport * from './iframe';\nexport * from './payment-instrument-message';\nexport * from './waiting';\nexport * from './with-visibility-observer';\nexport * from './interfaces';\nexport * from './place-order';\nexport * from './empty-active-cart';\nexport * from './country-codes';\nexport { CartCheckout } from './checkout';\nexport * from './get-checkout-return-url';\n\n/**\n * AsyncResultStatusCode.\n */\nexport enum AsyncResultStatusCode {\n LOADING = 'LOADING',\n SUCCESS = 'SUCCESS',\n FAILED = 'FAILED'\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountGenericTileViewProps } from './account-generic-tile';\n\nconst AccountGenericTileView: React.FC = props => {\n const { AccountGenericTile, heading, links } = props;\n\n return (\n \n {heading}\n {links}\n \n );\n};\n\nexport default AccountGenericTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n ISignUpEmailVerification,\n ISignUpGivenNameVerification,\n ISignUpItem,\n ISignUpLoading,\n ISignUpLocalAccount,\n ISignUpSurnameVerification,\n ISignUpViewProps\n} from './sign-up';\n\nconst SignUpItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst SignUpEmailVerification: React.FC = ({ email, buttonWrapper, buttons, successMessage, errorMessage }) => {\n return (\n <>\n {successMessage &&\n successMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {errorMessage &&\n errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode) => {\n return <>{button};\n })}\n \n \n );\n};\n\n/**\n * Handles validation of sign-up givenName.\n * @param event - Content editable event.\n * @param event.givenName - Event Given Name.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for Given Name.\n */\nconst SignUpGivenNameVerificationComponent: React.FC = ({ givenName, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\n/**\n * Handles validation of signUp surname.\n * @param event - Content editable event.\n * @param event.surname - Event surname.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for surname.\n */\nconst SignUpSurnameVerificationComponent: React.FC = ({ surname, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n emailVerification,\n givenNameVerification,\n surnameVerification,\n buttons,\n errorMessage,\n disclaimer\n}) => {\n return (\n \n {items &&\n items.map((item: ISignUpItem) => {\n if (item.key === 'email' && emailVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'givenName' && givenNameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'surname' && surnameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n {disclaimer}\n \n );\n};\n\nconst SignUpLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst SignUpView: React.FC = props => {\n const { signUp, viewState, loading, defaultAADConainer, aadConainer, heading, signUpLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(signUpLocalAccount)}\n \n \n );\n};\n\nexport default SignUpView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IAccountProfileEditItem,\n IAccountProfileEditLoading,\n IAccountProfileEditLocalAccount,\n IAccountProfileEditViewProps\n} from './account-profile-edit';\n\nconst AccountProfileEditItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n {items &&\n items.map((item: IAccountProfileEditItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n );\n};\n\nconst AccountProfileEditLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst AccountProfileEditView: React.FC = props => {\n const { accountProfileEdit, viewState, loading, defaultAADConainer, aadConainer, heading, accountProfileEditLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(accountProfileEditLocalAccount)}\n \n \n );\n};\n\nexport default AccountProfileEditView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IModuleProps, INodeProps, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { ITabItemData } from './tab-item.data';\nimport { ITabItemProps } from './tab-item.props.autogenerated';\n\nexport interface ITabItemViewProps {\n TabContentContainer: IModuleProps;\n TabHeaderContainer: IModuleProps;\n tabSlots: INodeProps;\n TabItemContent: INodeProps;\n tabItemType?: TabItemType;\n tabHeader: React.ReactNode;\n}\n\nexport interface ITabItemExtentedProps extends ITabItemProps {\n tabItemType?: TabItemType;\n isSelected?: boolean;\n itemIndex?: number;\n tabId?: string;\n}\n\nexport enum TabItemType {\n TabHeader,\n TabContent\n}\n\n/**\n *\n * TabItem component.\n * @extends {React.Component}\n */\n@observer\nclass TabItem extends React.PureComponent {\n private readonly moduleContentClassName: string = 'ms-tab-item-content';\n\n private readonly moduleHeaderClassName: string = 'ms-tab-item-header';\n\n constructor(props: ITabItemProps) {\n super(props);\n this._renderTabHeader = this._renderTabHeader.bind(this);\n }\n\n public render(): JSX.Element {\n const { slots, renderView, config, data, isSelected, itemIndex } = this.props;\n const index = itemIndex || 0;\n const contentID = getContentID(index, this.props.tabId || '');\n const activeContentIDResult = data && data.activeTabState && data.activeTabState.result;\n const shown =\n activeContentIDResult &&\n activeContentIDResult.tabId === this.props.tabId &&\n activeContentIDResult.activeContentIndex !== undefined\n ? activeContentIDResult.activeContentIndex === index\n : isSelected || false;\n const viewProps = {\n ...this.props,\n TabContentContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleContentClassName, config.className)\n },\n TabHeaderContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleHeaderClassName, config.className)\n },\n TabItemContent: {\n className: 'ms-tab-item-content__content',\n tag: 'section' as NodeTag,\n 'aria-hidden': !shown,\n role: 'tabpanel',\n tabIndex: shown ? 0 : -1,\n id: contentID\n },\n tabHeader: this._renderTabHeader(),\n tabSlots: slots\n };\n return renderView(viewProps) as React.ReactElement;\n }\n\n private _renderTabHeader(): React.ReactNode {\n return <>{this.props.config.tabItemTitle};\n }\n}\n\nexport const getContentID = (index: number, id: string) => {\n return `tab-item-content-${id}-${index}`;\n};\n\nexport default TabItem;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport { AsyncResult } from '@msdyn365-commerce/retail-proxy';\n\nimport { ICategoryPromotionalContentData } from './navigation-menu.props.autogenerated';\n\nexport interface INavigationMenuData {\n categories: AsyncResult;\n}\n\nexport interface IMenuItemData {\n id?: number;\n linkText?: string;\n linkURL?: string;\n imageSource?: string;\n imageDestinationURL?: string;\n subMenu?: IMenuItemData[];\n promotionalContent?: ICategoryPromotionalContentData[];\n menuSource?: string;\n shouldOpenNewTab?: boolean;\n ariaLabel?: string;\n}\n\n/**\n *\n * Menu type index id.\n */\nexport enum MenuTypeIndexId {\n Cms = 1000,\n Retail = 5000\n}\n\n/**\n *\n * Menu type source.\n */\nexport enum MenuSource {\n Cms = 'Cms',\n Retail = 'Retail'\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport MsDyn365, { IActionContext, IGridSettings, IImageSettings, isEmptyOrNullObject } from '@msdyn365-commerce/core';\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, getCategoryUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { addThrottledEvent, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport * as React from 'react';\n\nimport { IMenuItemData, INavigationMenuData, MenuSource, MenuTypeIndexId } from './navigation-menu.data';\nimport { ICmsNavItemsData, INavigationMenuProps, ISubMenusData, navigationMenuSource } from './navigation-menu.props.autogenerated';\n\nexport interface INavigationMenuViewProps extends INavigationMenuProps {\n className: string;\n menuItemData: IMenuItemData[];\n Navigation: IModuleProps;\n MenuList: INodeProps;\n ListItem: INodeProps;\n Link: INodeProps;\n Button: INodeProps;\n Span: INodeProps;\n ImageContainer: INodeProps;\n MobileDescriptionContainer: INodeProps;\n MobileBackButton: INodeProps;\n MobileDescriptionLabel: INodeProps;\n imageSettings: IImageSettings;\n gridSettings: IGridSettings;\n isMobileView: boolean;\n DivContainer?: INodeProps;\n ImageDivContainer?: INodeProps;\n showCategoryImage?: boolean;\n showPromotionalContent?: boolean;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport interface INavigationMenuState {\n isMobile: boolean;\n}\n\n/**\n *\n * NavigationMenu component.\n * @extends {React.PureComponent>}\n */\nclass NavigationMenu extends React.PureComponent, INavigationMenuState> {\n private static CMSItemIdInit: number = MenuTypeIndexId.Cms;\n\n private static RSItemIdInit: number = MenuTypeIndexId.Retail;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\n private menuItemList: IMenuItemData[];\n\n private isRetail: boolean = true;\n\n private isCMS: boolean = true;\n\n @observable\n private viewport: GridSize;\n\n public static getFriendlyName(locale: string, nameTranslations?: TextValueTranslation[]): string | undefined {\n let nameTranslation: TextValueTranslation | undefined;\n if (locale && nameTranslations && nameTranslations.length > 0) {\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\n }\n\n return nameTranslation && nameTranslation.Text;\n }\n\n constructor(props: INavigationMenuProps) {\n super(props);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._setNavigationSource(this.props.config && this.props.config.navigationMenuSource);\n this.state = { isMobile: this.isMobile };\n this.menuItemList = [];\n }\n\n @computed get isMobile(): boolean {\n return this.viewport === 'xs' || this.viewport === 'sm';\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n this.resizeThrottledEventHandler = addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n }\n this._updateViewport();\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n\n public render(): JSX.Element | null {\n this.menuItemList = this._mapData();\n if (isEmptyOrNullObject(this.props.data)) {\n this.props.telemetry.error('Navigatiomenu returned null');\n return null;\n }\n\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=224&h=300&m=6', w: 0, h: 0 },\n xl: { q: 'w=224&h=300&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n\n const viewProps = {\n ...this.props,\n ...this.state,\n imageSettings: defaultImageSettings,\n gridSettings: this.props.context.request.gridSettings,\n Navigation: {\n moduleProps: this.props,\n className: classnames('ms-nav', this.props.config.className, this.state.isMobile ? 'mobile-vp' : 'desktop-vp'),\n tag: 'nav',\n role: this.isMobile ? 'listbox' : 'navigation'\n },\n MenuList: {\n className: 'ms-nav__list',\n tag: 'ul',\n role: this.isMobile ? 'listbox' : 'menu'\n },\n ListItem: {\n className: 'ms-nav__list__item',\n role: 'presentation',\n tag: 'li'\n },\n showCategoryImage: this.props.config.displayCategoryImage ?? false,\n showPromotionalContent: this.props.config.displayPromotionalImage ?? false,\n Link: {\n tag: 'a',\n className: 'ms-nav__list__item__link',\n role: this.isMobile ? 'option' : 'menuitem'\n },\n DivContainer: {\n tag: 'div',\n className: 'ms-nav__feature'\n },\n ImageDivContainer: {\n tag: 'div',\n className: 'category-image',\n role: 'tabpanel'\n },\n Button: {\n className: 'ms-nav__list__item__button',\n tag: 'button',\n role: this.isMobile ? 'option' : 'menuitem',\n onClick: this.props\n },\n ImageContainer: {\n className: 'ms-nav__list__item__image'\n },\n Span: {\n className: 'ms-nav__list__item__span',\n tag: 'span'\n },\n MobileDescriptionContainer: {\n className: 'ms-nav__list__mobile__container'\n },\n MobileBackButton: {\n className: 'ms-nav__list__mobile__container__button',\n tag: 'button',\n 'aria-label': this.props.resources.backButtonAriaLabel,\n onClick: this.props\n },\n MobileDescriptionLabel: {\n className: 'ms-nav__list__mobile__container__span',\n tag: 'span'\n },\n isMobileView: this.state.isMobile,\n menuItemData: this.menuItemList,\n className: classnames('ms-nav', this.props.config.className)\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _mapData(): IMenuItemData[] {\n const { data, config } = this.props;\n const mergedData: IMenuItemData[] = [];\n if (this.isRetail && data && data.categories && data.categories.result && data.categories.result.length > 0) {\n data.categories.result.map((item: CategoryHierarchy, index) =>\n mergedData.push(this._constructMenuItemData(item, undefined, true, index, true))\n );\n }\n\n if (this.isCMS && config.cmsNavItems && config.cmsNavItems.length > 0) {\n config.cmsNavItems.map((item: ICmsNavItemsData, idx: number) =>\n mergedData.push(this._constructMenuItemData(undefined, item, false, idx + 1))\n );\n }\n return this._constructTopMenuItemData(mergedData);\n }\n\n private _constructTopMenuItemData(mergedData: IMenuItemData[]): IMenuItemData[] {\n const enableTopLevelMenu = this.props.config.enabletopMenu ?? false;\n if (!enableTopLevelMenu) {\n return mergedData;\n }\n const mergedRootMenuData: IMenuItemData[] = [];\n const topMenu = {\n id: 1,\n linkText: this.props.config.rootMenuNavigation ?? '...',\n linkURL: '#',\n imageSource: undefined,\n subMenu: mergedData\n } as IMenuItemData;\n mergedRootMenuData.push(topMenu);\n\n return mergedRootMenuData;\n }\n\n private _constructMenuItemData(\n retailItem?: CategoryHierarchy,\n cmsItem?: ICmsNavItemsData,\n isRetail?: boolean,\n idx?: number,\n addedAllMenu?: boolean\n ): IMenuItemData {\n const locale =\n this.props.context && this.props.context.request && this.props.context.request.locale\n ? this.props.context.request.locale\n : 'en-us';\n const { categoryPromotionalContent } = this.props.config;\n const cmsItemText = (cmsItem && cmsItem.linkText) || '';\n const { menuAriaLabel } = this.props.resources;\n\n // Filter category promotional data based on category name\n const promotionalData =\n retailItem &&\n categoryPromotionalContent?.filter(promoItem => promoItem.categoryName?.toLowerCase() === retailItem?.Name?.toLowerCase());\n\n // First check if image is available from promotional data else read from retail server\n let imageSource: string = 'empty';\n if (ArrayExtensions.hasElements(retailItem?.Images) && retailItem!.Images[0].Uri) {\n imageSource = retailItem!.Images[0].Uri;\n }\n if (isRetail) {\n return {\n id: NavigationMenu.RSItemIdInit++,\n linkText: NavigationMenu.getFriendlyName(locale, retailItem?.NameTranslations) ?? '',\n linkURL: retailItem?.Url,\n imageSource,\n subMenu: this._getNestedChildren(retailItem, imageSource, addedAllMenu),\n promotionalContent: this.props.config.displayPromotionalImage && promotionalData,\n menuSource: MenuSource.Retail,\n ariaLabel: `${NavigationMenu.getFriendlyName(locale, retailItem?.NameTranslations) ?? ''} ${menuAriaLabel}`\n } as IMenuItemData;\n }\n return {\n id: NavigationMenu.CMSItemIdInit++,\n linkText: cmsItemText,\n linkURL: (cmsItem && cmsItem.linkUrl && cmsItem.linkUrl.destinationUrl) || '',\n imageDestinationURL: (cmsItem && cmsItem.imageLink && cmsItem.imageLink.destinationUrl) || '',\n imageSource: (cmsItem && cmsItem.image && cmsItem.image.src) || '',\n subMenu: this._getCMSNestedChildren(cmsItem),\n menuSource: MenuSource.Cms,\n shouldOpenNewTab: cmsItem?.openInNewTab,\n ariaLabel: `${cmsItemText} ${menuAriaLabel}`\n } as IMenuItemData;\n }\n\n private _getNestedChildren(category?: CategoryHierarchy, imageSourceUrl?: string, addedAllMenu: boolean = false): IMenuItemData[] {\n const nestedChildren: IMenuItemData[] = [];\n if (!category || !category.Children || category.Children.length === 0) {\n return [];\n }\n if (!this.props.config.enabletopMenu && addedAllMenu) {\n nestedChildren.push({\n linkText: this.props.resources.allCategoryMenuText,\n imageSource: imageSourceUrl,\n linkURL: getCategoryUrl(category, (this.props.context as unknown) as IActionContext, {})\n });\n }\n category.Children.map((item: CategoryHierarchy, index) => {\n nestedChildren.push(this._constructMenuItemData(item, undefined, true, index, false));\n });\n return nestedChildren;\n }\n\n private _getCMSNestedChildren(category?: ICmsNavItemsData): IMenuItemData[] {\n const nestedChildren: IMenuItemData[] = [];\n\n if (!category || !category.subMenus || category.subMenus.length === 0) {\n return [];\n }\n\n category.subMenus.map((item: ISubMenusData, idx: number) => {\n nestedChildren.push(this._constructMenuItemData(undefined, item, false, idx));\n });\n return nestedChildren;\n }\n\n private readonly _setNavigationSource = (sourceType?: navigationMenuSource): void => {\n switch (sourceType) {\n case navigationMenuSource.retailServerOnly:\n this.isRetail = true;\n this.isCMS = false;\n break;\n case navigationMenuSource.cmsOnly:\n this.isRetail = false;\n this.isCMS = true;\n break;\n case navigationMenuSource.all:\n this.isRetail = true;\n this.isCMS = true;\n break;\n default:\n }\n };\n\n private _updateViewport(): void {\n this.viewport = this._getViewport();\n this.setState({ isMobile: this.isMobile });\n }\n\n private _getViewport(): GridSize {\n const { context } = this.props;\n\n // Always render in mobile viewport on a mobile device\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (MsDyn365.isBrowser && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n\n return 'xs';\n }\n}\n\nexport default NavigationMenu;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\n/**\n * The payment error.\n */\nexport interface IPaymentError {\n title: string;\n message: string;\n className?: string;\n}\n\n/**\n * The payment error.\n * @param param0 - First param.\n * @param param0.title - Title.\n * @param param0.message - Message.\n * @param param0.className - ClassName.\n * @returns React node.\n */\nexport const ErrorComponent: React.FC = ({ title, message, className = 'ms-checkout-payment-instrument' }) => (\n
\n

{title}

\n

{message}

\n
\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CacheType, IActionContext, IActionInput } from '@msdyn365-commerce/core';\n\nimport { IModuleStates } from './module-state.data';\n\n/**\n * GetModulesInput.\n */\nexport class ModuleStatesCacheKey implements IActionInput {\n public getCacheKey = () => 'ModuleState';\n\n public getCacheObjectType = () => 'ModuleState';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\nexport function getModuleStates(ctx: IActionContext): IModuleStates {\n const cacheKey = new ModuleStatesCacheKey();\n\n let moduleStates = ctx.get(cacheKey.getCacheObjectType(), cacheKey.getCacheKey());\n if (moduleStates) {\n return moduleStates;\n }\n ctx.update(cacheKey, {});\n moduleStates = ctx.get(cacheKey.getCacheObjectType(), cacheKey.getCacheKey());\n return moduleStates;\n}\n\nexport function updateModuleStates(value: IModuleStates, ctx: IActionContext): void {\n const cacheKey = new ModuleStatesCacheKey();\n ctx.update(cacheKey, value);\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountWishlistTileViewProps } from './account-wishlist-tile';\n\nconst AccountWishlistTileView: React.FC = props => {\n const { AccountWishlistTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountWishlistTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext } from '@msdyn365-commerce/core';\nimport { getCheckoutState } from '@msdyn365-commerce/global-state';\nimport { checkoutAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\nimport { getTenderTypesAsync, resolveCardTypesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport {\n Address,\n CardPaymentAcceptResult,\n CardType,\n CartTenderLine,\n RetailOperation,\n SalesOrder,\n TenderType,\n TokenizedPaymentCard\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\n\nexport const OPERATIONS = {\n PayCard: 201,\n PayGiftCertificate: 214,\n PayLoyalty: 207,\n PayCustomerAccount: 202\n};\n\nconst getCardTypeId = async (ctx: IActionContext, cardPrefix: string = ''): Promise => {\n try {\n const response = await resolveCardTypesAsync({ callerContext: ctx }, cardPrefix, CardType.Unknown);\n if (response && response.length > 0) {\n return response[0].TypeId;\n }\n } catch (error) {\n ctx.telemetry.error('Call to resolveCardTypesAsync failed.', error);\n }\n return undefined;\n};\n\nconst findTenderIdTypeByOperationId = (tenderTypes: TenderType[], operationId: RetailOperation): string | undefined => {\n const matchedTenderType = tenderTypes.find(tenderType => tenderType.OperationId === operationId);\n if (matchedTenderType) {\n return matchedTenderType.TenderTypeId;\n }\n return;\n};\n\nconst roundNumber = (value: number) => Number(value.toFixed(2));\n\nasync function getLoyaltyTenderLine(\n ctx: IActionContext,\n LoyaltyCardId: string,\n Amount: number = 0,\n Currency: string = 'USD'\n): Promise {\n const tenderTypes = await getTenderTypesAsync({ callerContext: ctx, queryResultSettings: {} }).catch(error => {\n throw error;\n });\n\n if (!tenderTypes) {\n throw new Error('Fail to get gift card tender line');\n }\n\n const TenderTypeId = findTenderIdTypeByOperationId(tenderTypes, OPERATIONS.PayLoyalty);\n return {\n // @ts-expect-error\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CartTenderLine',\n\n 'Amount@odata.type': '#Decimal',\n Currency,\n TenderTypeId,\n Amount,\n LoyaltyCardId\n };\n}\n\nasync function getGiftCardTenderLine(\n ctx: IActionContext,\n GiftCardId: string = '',\n Amount: number = 0,\n Currency: string = 'USD',\n tenderTypeId?: string,\n giftCardPin?: string,\n giftCardExpirationYear?: number,\n giftCardExpirationMonth?: number\n): Promise {\n let TenderTypeId = tenderTypeId;\n\n if (!TenderTypeId) {\n const tenderTypes = await getTenderTypesAsync({ callerContext: ctx, queryResultSettings: {} }).catch(error => {\n throw error;\n });\n if (!tenderTypes) {\n throw new Error('Fail to get gift card tender line');\n }\n TenderTypeId = findTenderIdTypeByOperationId(tenderTypes, OPERATIONS.PayGiftCertificate);\n }\n\n const GiftCardPin = giftCardPin;\n const GiftCardExpirationYear = giftCardExpirationYear;\n const GiftCardExpirationMonth = giftCardExpirationMonth;\n return {\n // @ts-expect-error\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CartTenderLine',\n 'Amount@odata.type': '#Decimal',\n Currency,\n TenderTypeId,\n Amount,\n GiftCardId,\n GiftCardPin,\n GiftCardExpirationYear,\n GiftCardExpirationMonth\n };\n}\n\nasync function getCreditCardTenderLine(\n ctx: IActionContext,\n tokenizedPaymentCard: TokenizedPaymentCard,\n cardPrefix: string = '',\n Amount: number = 0,\n Currency: string = 'USD',\n billingAddress?: Address\n): Promise {\n const tenderTypes = await getTenderTypesAsync({ callerContext: ctx, queryResultSettings: {} }).catch(error => {\n throw error;\n });\n\n let cartTypeId = tokenizedPaymentCard.CardTypeId;\n\n if (!cartTypeId) {\n cartTypeId = await getCardTypeId(ctx, cardPrefix);\n }\n\n if (!tenderTypes) {\n throw new Error('Fail to get card tender type');\n }\n\n if (!cartTypeId) {\n throw new Error('Fail to get card type id');\n }\n\n const TenderTypeId = tokenizedPaymentCard.TenderType ?? findTenderIdTypeByOperationId(tenderTypes, OPERATIONS.PayCard);\n const cardTenderLine: CartTenderLine = {\n // @ts-expect-error\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CartTenderLine',\n 'Amount@odata.type': '#Decimal',\n Currency,\n Amount,\n TenderTypeId,\n CardTypeId: cartTypeId\n };\n cardTenderLine.TokenizedPaymentCard = {\n ...tokenizedPaymentCard,\n CardTypeId: cartTypeId,\n\n // @ts-expect-error\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.TokenizedPaymentCard',\n House: tokenizedPaymentCard.House || 'N/A',\n ...(tokenizedPaymentCard.CardTokenInfo && {\n CardTokenInfo: {\n ...tokenizedPaymentCard.CardTokenInfo,\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CardTokenInfo'\n }\n }),\n ...(billingAddress && {\n Phone: billingAddress.Phone,\n Country: billingAddress.ThreeLetterISORegionName,\n Address1: billingAddress.Street,\n City: billingAddress.City,\n State: billingAddress.State,\n Zip: billingAddress.ZipCode\n })\n };\n\n return cardTenderLine;\n}\n\n/**\n * Get credit card tender line.\n * @param context - Action context.\n * @param amount - Due amount for credit card.\n * @param currency - Currency.\n * @param cardPaymentAcceptResult - CardPaymentAcceptResult.\n * @param billingAddress - BillingAddress.\n * @returns - The credit card tender line.\n */\nasync function getCreditCardTenderLineForSinglePaymentAuth(\n context: IActionContext,\n amount: number = 0,\n currency: string = 'USD',\n cardPaymentAcceptResult?: CardPaymentAcceptResult,\n billingAddress?: Address\n): Promise {\n const tenderTypes = await getTenderTypesAsync({ callerContext: context, queryResultSettings: {} }).catch(error => {\n throw error;\n });\n\n const tenderTypeId = findTenderIdTypeByOperationId(tenderTypes, OPERATIONS.PayCard);\n\n if (cardPaymentAcceptResult) {\n cardPaymentAcceptResult.TokenizedPaymentCard = {\n // @ts-expect-error\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.TokenizedPaymentCard',\n House: 'N/A',\n ...(billingAddress && {\n Phone: billingAddress.Phone,\n Country: billingAddress.ThreeLetterISORegionName,\n Address1: billingAddress.Street,\n City: billingAddress.City,\n State: billingAddress.State,\n Zip: billingAddress.ZipCode\n })\n };\n }\n\n const cardTenderLine: CartTenderLine = {\n // @ts-expect-error -- existing data.\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CartTenderLine',\n 'Amount@odata.type': '#Decimal',\n Currency: currency,\n Amount: amount,\n TenderTypeId: tenderTypeId,\n CardPaymentAcceptResult: cardPaymentAcceptResult\n };\n\n return cardTenderLine;\n}\n\nasync function createCustomerAccountTenderLine(ctx: IActionContext, Amount: number, Currency: string = 'USD'): Promise {\n const CustomerId = null;\n if (!ctx.requestContext.user.isAuthenticated) {\n ctx.telemetry.error('A customer id is required to pay with customer account');\n }\n\n const tenderTypes = await getTenderTypesAsync({ callerContext: ctx, queryResultSettings: {} }).catch(error => {\n throw error;\n });\n\n if (!tenderTypes) {\n ctx.telemetry.error('No tender types found for this channel');\n }\n\n const TenderTypeId = findTenderIdTypeByOperationId(tenderTypes, OPERATIONS.PayCustomerAccount);\n if (!TenderTypeId) {\n ctx.telemetry.error('No customer account tender type');\n }\n return {\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CartTenderLine',\n 'Amount@odata.type': '#Decimal',\n Currency,\n TenderTypeId,\n Amount,\n\n // @ts-expect-error\n CustomerId\n };\n}\n\nexport const CartCheckout = async (\n ctx: IActionContext,\n updatedCartVersion?: number,\n isPaymentVerificationRedirection?: boolean\n): Promise => {\n const checkoutState = await getCheckoutState(ctx).catch(error => {\n throw error;\n });\n\n const cartState = checkoutState.checkoutCart;\n\n const channelConfiguration = ctx.requestContext.channel;\n\n if (!cartState || Object.keys(cartState).length === 0 || !channelConfiguration) {\n throw new Error('Fail to placeOrder');\n }\n\n const {\n giftCardExtends,\n tokenizedPaymentCard,\n cardPrefix,\n guestCheckoutEmail,\n billingAddress,\n loyaltyAmount,\n cardPaymentAcceptResult,\n shouldEnableSinglePaymentAuthorizationCheckout,\n isExpressCheckoutApplied,\n isExpressAddressApplied\n } = checkoutState;\n const { Currency } = channelConfiguration;\n\n let amountDue = cartState.cart.AmountDue || 0;\n let cartTenderLines;\n const getTenderLinePromises = [];\n const loyaltyCardNumber = cartState.cart.LoyaltyCardId;\n\n // Pay by loyalty first\n if (loyaltyAmount && loyaltyCardNumber) {\n const chargedAmount = roundNumber(Math.min(loyaltyAmount, amountDue));\n const loyaltyTenderLinePromise = getLoyaltyTenderLine(ctx, loyaltyCardNumber, chargedAmount, Currency);\n getTenderLinePromises.push(loyaltyTenderLinePromise);\n amountDue = roundNumber(amountDue - chargedAmount);\n\n ctx.telemetry.information('Checkout loyalty tender line is added.');\n } else {\n ctx.telemetry.information('Checkout loyalty tender line is not added when no loyaltyAmount or loyaltyCardNumber.');\n }\n\n // Then by customer account\n if (checkoutState.customerAccountAmount > 0) {\n const chargedAmount = roundNumber(Math.min(checkoutState.customerAccountAmount, amountDue));\n const customerAccountTenderLinePromise = createCustomerAccountTenderLine(ctx, chargedAmount, Currency);\n getTenderLinePromises.push(customerAccountTenderLinePromise);\n amountDue = roundNumber(amountDue - chargedAmount);\n\n ctx.telemetry.information('Checkout customer account amount tender line is added.');\n } else {\n ctx.telemetry.information('Checkout customer account amount tender line is not added when customerAccountAmount is 0.');\n }\n\n // Then by gift card\n if (giftCardExtends && giftCardExtends.length > 0) {\n giftCardExtends.some(giftCardExtend => {\n if (giftCardExtend.Balance && amountDue > 0) {\n const chargedAmount = roundNumber(Math.min(giftCardExtend.Balance, amountDue));\n const tenderTypeId = giftCardExtend.TenderTypeId;\n const giftCardPin = giftCardExtend.Pin;\n const giftCardExpirationYear = giftCardExtend.ExpirationDate\n ? Number.parseInt(giftCardExtend.ExpirationDate?.split('/')[1], 10)\n : undefined;\n const giftCardExpirationMonth = giftCardExtend.ExpirationDate\n ? Number.parseInt(giftCardExtend.ExpirationDate?.split('/')[0], 10)\n : undefined;\n const creditCardTenderLinePromise = getGiftCardTenderLine(\n ctx,\n giftCardExtend.Id,\n chargedAmount,\n Currency,\n tenderTypeId,\n giftCardPin,\n giftCardExpirationYear,\n giftCardExpirationMonth\n );\n getTenderLinePromises.push(creditCardTenderLinePromise);\n amountDue = roundNumber(amountDue - chargedAmount);\n\n ctx.telemetry.information('Checkout gift card tender line is added.');\n } else {\n ctx.telemetry.information('Checkout gift card tender line is not added when no balance or no remaining balance.');\n }\n return amountDue === 0;\n });\n }\n\n // Pay the rest by credit card\n if (amountDue > 0) {\n let creditCardTenderLinePromise: Promise;\n\n if (\n shouldEnableSinglePaymentAuthorizationCheckout &&\n (!(isExpressCheckoutApplied && !isExpressAddressApplied) || (isExpressCheckoutApplied && isPaymentVerificationRedirection))\n ) {\n creditCardTenderLinePromise = getCreditCardTenderLineForSinglePaymentAuth(\n ctx,\n amountDue,\n Currency,\n cardPaymentAcceptResult,\n billingAddress\n );\n } else {\n if (!tokenizedPaymentCard) {\n throw new Error('Fail to placeOrder: no token found');\n }\n creditCardTenderLinePromise = getCreditCardTenderLine(\n ctx,\n tokenizedPaymentCard,\n cardPrefix,\n amountDue,\n Currency,\n billingAddress\n );\n }\n\n getTenderLinePromises.push(creditCardTenderLinePromise);\n\n ctx.telemetry.information('Checkout credit card tender line is added.');\n } else {\n ctx.telemetry.information('Checkout credit card tender line is not added when no remaining balance for credit card.');\n }\n\n if (getTenderLinePromises.length > 0) {\n // When payment methods is required\n cartTenderLines = await Promise.all(getTenderLinePromises).catch(error => {\n throw error;\n });\n\n if (!cartTenderLines || cartTenderLines.length === 0) {\n throw new Error('Fail to placeOrder: fail to get cart tender lines');\n }\n } else {\n ctx.telemetry.information('TenderLinePromises length is 0.');\n }\n\n const cartVersion = updatedCartVersion || cartState.cart.Version;\n\n ctx.telemetry.information('Checkout checkoutAsync is called.');\n\n // Proceed checkout\n const salesOrder = await checkoutAsync(\n { callerContext: ctx, bypassCache: 'get' },\n cartState.cart.Id,\n guestCheckoutEmail,\n undefined,\n undefined,\n cartTenderLines || null,\n cartVersion\n ).catch(async error => {\n if (checkoutState.shouldEnableSinglePaymentAuthorizationCheckout) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- unknown type.\n if (error.data?.AdditionalContext) {\n ctx.telemetry.warning('CheckoutAsync call failed. AdditionalContext is sent for single payment auth.');\n\n await checkoutState.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: true });\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- unknown type.\n await checkoutState.updateRedirectAdditionalContext({\n newRedirectAdditionalContext: error?.data?.AdditionalContext as string\n });\n await checkoutState.updateRedirectPaymentConnectorId({\n newRedirectPaymentConnectorId: cardPaymentAcceptResult?.Settings?.PaymentConnectorId as string\n });\n } else {\n ctx.telemetry.warning('CheckoutAsync call failed. AdditionalContext is not sent for single payment auth.');\n\n await checkoutState.updateIsCheckoutCallFailed({ newIsCheckoutCallFailed: true });\n\n await checkoutState.updateCheckoutErrorPaymentConnectorId({\n newCheckoutErrorPaymentConnectorId: cardPaymentAcceptResult?.Settings?.PaymentConnectorId as string\n });\n\n if (isPaymentVerificationRedirection) {\n ctx.telemetry.warning('RefreshCart when isPaymentVerificationRedirection is true.');\n\n await checkoutState.checkoutCart.refreshCart({});\n await checkoutState.updateIsExpressCheckoutApplied({ newIsExpressCheckoutApplied: false });\n await checkoutState.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: false });\n }\n }\n }\n\n throw error;\n });\n\n if (!salesOrder) {\n ctx.telemetry.error('Failed to placeOrder: fail to checkout.');\n throw new Error('Fail to placeOrder: fail to checkout');\n }\n\n return salesOrder;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICountryPickerViewProps } from './country-picker';\n\n/**\n * Functional component which renders country picker module.\n * @param props - Configuration for the country picker component.\n * @returns React.FC - Functional component of the country picker module.\n */\nexport const countryPickerView: React.FC = (props: ICountryPickerViewProps) => {\n const {\n isModalOpen,\n modalContainer,\n modalHeaderContainer,\n modalBodyContainer,\n heading,\n modalFooterContainer,\n subheading,\n link,\n countryList,\n stayOnCurrentSiteButton\n } = props;\n return isModalOpen && countryList ? (\n \n \n {heading}\n {subheading}\n \n \n {countryList.map(country => (\n <>{country}\n ))}\n \n \n {stayOnCurrentSiteButton}\n {link}\n \n \n ) : null;\n};\n\nexport default countryPickerView;\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 { ITabViewProps } from './tab';\n\nconst tabView: React.FC = props => {\n const { heading, TabContainer, tabHeaders, tabContents } = props;\n if (!props.heading && !props.tabHeaders && !props.tabContents) {\n props.context.telemetry.error('Tab content is empty, module wont render');\n return null;\n }\n return (\n \n {heading}\n {tabHeaders}\n {tabContents}\n \n );\n};\n\nexport default tabView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrganizationUsersTileViewProps } from './organization-users-tile';\n\nconst OrganizationUsersTileView: React.FC = props => {\n const { OrganizationUsersTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default OrganizationUsersTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IPaymentConnectorPostMessage } from './payment-instrument-message';\n\n/**\n * Payment iFrame interface.\n */\nexport interface IPaymentFrameElementProps {\n className?: string;\n moduleName?: string;\n iframeAriaLabel: string;\n displayContent?: string;\n sourceUrl?: string;\n requestUrlOrigin?: string;\n messageOrigin?: string;\n // eslint-disable-next-line @typescript-eslint/naming-convention -- public props.\n css?: string;\n height?: number;\n // eslint-disable-next-line @typescript-eslint/naming-convention -- public event.\n onIFrameMessage?(event: MessageEvent): void;\n}\n\n/**\n * Default post message name.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention -- Existing name.\nexport const POST_MESSAGE_NAME = 'message';\n\n/**\n * Get host name.\n * @param url - The url.\n * @returns The host name.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention -- Public props.\nconst getHostName = (url: string = ''): string => {\n return (url.includes('//') ? url.split('/')[2] : url.split('/')[0]).toLowerCase();\n};\n\n/**\n *\n * IFrameElement component.\n * @extends {React.PureComponent}\n */\nexport class Iframe extends React.PureComponent {\n private readonly iframeRef: React.RefObject;\n\n // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility -- Existing code.\n constructor(props: IPaymentFrameElementProps) {\n super(props);\n this.iframeRef = React.createRef();\n }\n\n public componentDidMount(): void {\n window.addEventListener(POST_MESSAGE_NAME, this.onEvent);\n\n this.updateContentDocument();\n }\n\n public componentDidUpdate(previousProps: IPaymentFrameElementProps): void {\n if (previousProps.displayContent !== this.props.displayContent) {\n this.updateContentDocument();\n }\n }\n\n public componentWillUnmount(): void {\n window.removeEventListener(POST_MESSAGE_NAME, this.onEvent);\n }\n\n public render(): JSX.Element | null {\n const { sourceUrl, className, iframeAriaLabel, height, moduleName = 'checkout-payment-instrument' } = this.props;\n return (\n \n );\n }\n\n /**\n * Post message.\n * @param parameters - Payment connector post message.\n */\n public postMessage = (parameters: IPaymentConnectorPostMessage): void => {\n if (this.iframeRef.current?.contentWindow?.postMessage) {\n this.iframeRef.current.contentWindow.postMessage(parameters.message, parameters.targetOrigin);\n }\n };\n\n /**\n * On event.\n * @param event - The message event.\n */\n private readonly onEvent = (event: MessageEvent) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- IFrame.\n const { sourceUrl, onIFrameMessage, requestUrlOrigin, messageOrigin } = this.props;\n const sourceHost = getHostName(sourceUrl);\n const eventHost = getHostName(event.origin);\n const requestHost = getHostName(requestUrlOrigin);\n const messageHost = getHostName(messageOrigin);\n\n // Important: security check\n // check actual origin matches with expected origin\n if (\n !onIFrameMessage ||\n (sourceUrl && !(sourceHost === eventHost || requestHost === eventHost || messageHost === eventHost)) ||\n (!sourceUrl && !(requestHost === eventHost || messageHost === eventHost))\n ) {\n return;\n }\n\n onIFrameMessage(event);\n };\n\n /**\n * Update content document.\n */\n private readonly updateContentDocument = (): void => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Existing props.\n const { displayContent, sourceUrl, css } = this.props;\n if (!sourceUrl && displayContent && this.iframeRef.current) {\n const innerDocument = this.iframeRef.current.contentDocument;\n\n if (innerDocument) {\n innerDocument.open();\n innerDocument.write(displayContent);\n if (css) {\n // Append custom style\n const style = document.createElement('style');\n const cssNote = document.createTextNode(css);\n style.appendChild(cssNote);\n innerDocument.head.appendChild(style);\n }\n\n innerDocument.close();\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountPreference, IAccountPreferences, IAccountProfileItem, IAccountProfileViewProps } from './account-profile';\n\nconst AccountPreferencesSection: React.FC = ({ accountPreferences, heading, personalization, extraPreferences }) => {\n return (\n \n {heading}\n \n {extraPreferences &&\n extraPreferences.map((preferenceSecton, index) => {\n return ;\n })}\n \n );\n};\n\nconst AccountPreferenceSection: React.FC = ({\n accountPreference,\n heading,\n description,\n buttonWrapper,\n buttonYesText,\n button,\n buttonNoText\n}) => {\n return (\n \n {heading}\n {description}\n \n {buttonNoText}\n {button}\n {buttonYesText}\n \n \n );\n};\n\nconst AccountProfileSection: React.FC = ({ AccountProfileItem, heading, links, description }) => {\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nconst AccountProfileView: React.FC = props => {\n const {\n AccountProfile,\n infoMessageBar,\n accountProfileWrapper,\n heading,\n emailSection,\n nameSection,\n preferenceSection,\n customerAttributesWrapper,\n customerAttributesSection\n } = props;\n\n return (\n \n {infoMessageBar}\n {accountProfileWrapper && (\n \n {heading}\n \n \n \n \n )}\n {customerAttributesWrapper && {customerAttributesSection}}\n \n );\n};\n\nexport default AccountProfileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\n/**\n * Visibility observer state.\n */\ninterface IVisibilityObserverState {\n isVisible?: boolean;\n errorMessage?: string;\n observer?: MutationObserver;\n}\n\n/**\n * Visibility observer props.\n */\nexport interface IVisibilityObserverProps {\n visibilityObserver?: IVisibilityObserverState;\n}\n\n/**\n * With visibility observer.\n * @param WrappedComponent - Wrapped component.\n * @param className - ClassName.\n * @returns React node.\n */\nexport const withVisibilityObserver =

(\n WrappedComponent: React.ComponentType

,\n className = 'ms-checkout-payment-instrument'\n): React.ComponentType

=> {\n /**\n *\n * VisibilityObserver component.\n * @extends {React.Component

}\n */\n class VisibilityObserver extends React.Component

{\n // eslint-disable-next-line react/state-in-constructor -- Existing pattern.\n public state: IVisibilityObserverState = {\n isVisible: false,\n // eslint-disable-next-line react/no-unused-state -- Need show error.\n errorMessage: '',\n observer: undefined\n };\n\n private readonly selfRef: React.RefObject = React.createRef();\n\n public componentDidMount(): void {\n this.initMutationObserver();\n }\n\n public componentWillUnmount(): void {\n this.stopMutationObserver();\n }\n\n public shouldComponentUpdate(nextProps: IVisibilityObserverProps, nextState: IVisibilityObserverState): boolean {\n if (this.state === nextState && this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n return (\n

\n \n
\n );\n }\n\n /**\n * Initial mutation observer.\n */\n private readonly initMutationObserver = (): void => {\n // Select the node that will be observed for mutations\n const targetNode = document.getElementsByTagName('body')[0];\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Better double check.\n if (!targetNode) {\n this.setState({\n // eslint-disable-next-line react/no-unused-state -- Need show error.\n errorMessage: 'No body element found'\n });\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Better double check.\n if (!MutationObserver) {\n this.setState({\n // eslint-disable-next-line react/no-unused-state -- Need show error.\n errorMessage: 'MutationObserver is not supported'\n });\n return;\n }\n\n // Options for the observer (which mutations to observe)\n const config = { attributes: true, childList: true, subtree: true };\n\n // Create an observer instance linked to the callback function\n const mutationObserver = new MutationObserver(() => {\n this.handleVisibilityChange();\n });\n mutationObserver.observe(targetNode, config);\n\n this.setState({\n observer: mutationObserver\n });\n };\n\n /**\n * Stop mutation observer.\n */\n private readonly stopMutationObserver = (): void => {\n this.state.observer?.disconnect();\n };\n\n /**\n * Handle visibility change.\n */\n private readonly handleVisibilityChange = (): void => {\n // If module is visible or not\n const isVisible = !!this.selfRef.current && this.selfRef.current.offsetWidth > 0 && this.selfRef.current.offsetHeight > 0;\n if (!this.state.isVisible && isVisible) {\n this.setState({\n isVisible\n });\n this.stopMutationObserver();\n }\n };\n }\n\n return VisibilityObserver;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ITileListItemViewProps } from './tile-list-item';\n\n/**\n *\n * ITileListItemViewProps component.\n * @param props - Component props.\n * @returns TileListView.\n */\nconst renderTileListItemContent = (props: ITileListItemViewProps): JSX.Element => {\n const {\n heading,\n paragraph,\n backgroundImage,\n links,\n thumbnailImage,\n tileListContainer,\n tileListImageContainer,\n tileListThumbnailImageContainer,\n tileListHeadingContainer\n } = props;\n\n return (\n \n {backgroundImage}\n \n {heading}\n {paragraph}\n {links}\n \n {thumbnailImage}\n \n );\n};\n\n/**\n *\n * TileListItemViewProps component.\n * @param props - Component props.\n * @returns TileListView.\n */\nexport const TileListItemViewComponent: React.FC = props => {\n const { tileListItem } = props;\n return {renderTileListItemContent(props)};\n};\n\nexport default TileListItemViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/**\n * Payment connect post message type.\n */\nexport enum PaymentConnectorPostMessageType {\n CardPrefix = 'msax-cc-cardprefix',\n Error = 'msax-cc-error',\n Height = 'msax-cc-height',\n Result = 'msax-cc-result',\n Submit = 'msax-cc-submit',\n ExtraContext = 'msax-cc-extracontext',\n Redirect = 'msax-cc-redirect',\n Showoverlay = 'msax-cc-showoverlay',\n Hideoverlay = 'msax-cc-hideoverlay',\n ShippingAddress = 'msax-shipping-address',\n Amount = 'msax-cc-amount'\n}\n\n/**\n * Interface for payment connector post message.\n */\nexport interface IPaymentConnectorPostMessage {\n message: string;\n targetOrigin: string;\n}\n\n/**\n * Payment connector message.\n * @param data - Data with message.\n * @param messageType - Message type.\n * @returns Payment connector post message.\n */\nexport function paymentConnectorMessage(data: string, messageType: PaymentConnectorPostMessageType): IPaymentConnectorPostMessage {\n return {\n message: JSON.stringify({\n type: messageType,\n value: data\n }),\n targetOrigin: '*'\n };\n}\n\n/**\n * Payment connector extra context message.\n * @param data - The data.\n * @returns The payment connector post message.\n */\nexport function paymentConnectorExtraContextMessage(data: string): IPaymentConnectorPostMessage {\n return paymentConnectorMessage(data, PaymentConnectorPostMessageType.ExtraContext);\n}\n\n/**\n * Payment connector submit message.\n * @returns The payment connector post message.\n */\nexport function paymentConnectorSubmitMessage(): IPaymentConnectorPostMessage {\n return paymentConnectorMessage('true', PaymentConnectorPostMessageType.Submit);\n}\n\nexport function paymentConnectorAmountMessage(amount: number): IPaymentConnectorPostMessage {\n return paymentConnectorMessage(`${amount}`, PaymentConnectorPostMessageType.Amount);\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyTileViewProps } from './account-loyalty-tile';\n\nconst AccountLoyaltyTileView: React.FC = props => {\n const { AccountLoyaltyTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountLoyaltyTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IB2bRequestsTileViewProps } from './b2b-requests-tile';\n\nconst B2bRequestsTileView: React.FC = props => {\n const { b2bRequestsTile, heading, links } = props;\n\n return (\n \n {heading}\n {links}\n \n );\n};\n\nexport default B2bRequestsTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport withModuleState from './with-module-state';\n\nexport * from './module-state';\nexport * from './module-state.data';\n\nexport { withModuleState };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountWelcomeTileViewProps } from './account-welcome-tile';\n\nconst AccountWelcomeTileView: React.FC = props => {\n const { AccountWelcomeTile, heading } = props;\n\n return {heading};\n};\n\nexport default AccountWelcomeTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IPayLoad,\n ITelemetryContent,\n Module,\n Node,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { INavigationMenuViewProps } from './navigation-menu';\nimport { IMenuItemData } from './navigation-menu.data';\n\ninterface INavigationState {\n parentMenu?: number;\n activeMenu?: number;\n categoryImage?: IImageData[] | null;\n mobileViewLabelText?: string;\n categoryImageAltText: string;\n}\n\n/**\n *\n * NavigationMenuView component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuView extends React.PureComponent {\n private static isBackTrack: boolean = false;\n\n private currentLevel: number = 0;\n\n private readonly menuNode: React.RefObject;\n\n private readonly menuItemRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: INavigationMenuViewProps) {\n super(props);\n this.menuNode = React.createRef();\n this.menuItemRef = React.createRef();\n this.state = { activeMenu: undefined, mobileViewLabelText: '', parentMenu: undefined, categoryImageAltText: '' };\n this._closeSubmenu = this._closeSubmenu.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document.body.addEventListener('mousedown', this._handleClickOutside);\n document.body.addEventListener('focusout', this._handleFocusOutside);\n }\n }\n\n public componentDidUpdate(): void {\n if (this.menuItemRef.current?.children[0] && this.props.isMobileView) {\n (this.menuItemRef.current.children[0] as HTMLElement).focus();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document.body.removeEventListener('mousedown', this._handleClickOutside, false);\n document.body.removeEventListener('focusout', this._handleFocusOutside, false);\n }\n }\n\n public render(): JSX.Element | null {\n const { isMobileView, MenuList, MobileBackButton, MobileDescriptionContainer, MobileDescriptionLabel, Navigation } = this.props;\n\n this.currentLevel = 1;\n return (\n \n \n {isMobileView && this.state.activeMenu !== undefined && (\n \n \n {this.state.mobileViewLabelText}\n \n )}\n {this._renderDisplay()}\n \n \n );\n }\n\n private _renderDisplay(): JSX.Element[] {\n const { ListItem, menuItemData, isMobileView } = this.props;\n const { activeMenu } = this.state;\n const menuItemList: JSX.Element[] = [];\n\n if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\n let menuItem: IMenuItemData = {};\n for (const menuItemDatum of menuItemData) {\n if (menuItemDatum && menuItemDatum.id === activeMenu) {\n menuItem = menuItemDatum;\n !NavigationMenuView.isBackTrack\n ? this.setState({ parentMenu: undefined })\n : this.setState({ parentMenu: undefined, mobileViewLabelText: menuItemDatum.linkText });\n break;\n }\n menuItem = this._getFromSubMenu(menuItemDatum) as IMenuItemData;\n if (menuItem && menuItem.id === activeMenu) {\n break;\n }\n }\n\n menuItem &&\n menuItemList.push(\n \n {' '}\n {this._createMenuItemList(menuItem)}{' '}\n \n );\n } else {\n menuItemData.forEach((item: IMenuItemData, index: number) => {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n \n );\n });\n }\n\n return menuItemList;\n }\n\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\n const subMenus = item && item.subMenu;\n if (subMenus && subMenus.length > 0) {\n for (let i = 0; i <= subMenus.length - 1; i++) {\n if (subMenus[i].id === this.state.activeMenu) {\n !NavigationMenuView.isBackTrack\n ? this.setState({ parentMenu: item?.id })\n : this.setState({ parentMenu: item && item.id, mobileViewLabelText: subMenus[i].linkText });\n return subMenus[i];\n }\n const found = this._getFromSubMenu(subMenus[i]);\n if (found) {\n return found;\n }\n }\n }\n this.props.context.telemetry.error('Submenu content is empty, module wont render.');\n return null;\n }\n\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false);\n }\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false)}\n \n );\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\n return this._renderLinkMenuItem(menuItemData, menuItemData.id, false, true);\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\n return this._renderSpanMenuItem(menuItemData, menuItemData.id, true);\n }\n this.props.context.telemetry.error('Navigation menu content is empty, module wont render.');\n return null;\n }\n\n private _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number, IsSubMenu?: boolean): JSX.Element | null {\n const { isMobileView, ListItem } = this.props;\n const enableMultiSupportMenu = this.props.config.enableMultilevelMenu || false;\n const multiLevelSupportedMenu = this.props.config.menuLevelSupport || 3;\n\n // Const isParentMenu:boolean= false;\n if (activeMenu && this.state.activeMenu !== activeMenu) {\n this.props.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\n return null;\n }\n\n if (!subMenus || subMenus.length === 0) {\n this.props.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\n return null;\n }\n\n let levelClassName: string = '';\n const menuOptions =\n subMenus &&\n subMenus.map((option: IMenuItemData, idx: number) => {\n const hasOptions = option.subMenu && option.subMenu.length > 0;\n let menuItem: JSX.Element | null;\n if (hasOptions && isMobileView) {\n menuItem = this._renderButtonMenuItem(option, activeMenu, idx);\n } else {\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, idx) : this._renderSpanMenuItem(option);\n }\n\n let subMenu;\n const haveSubmenu = hasOptions && enableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - 1;\n if (haveSubmenu) {\n this.currentLevel++;\n levelClassName = enableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined, true);\n }\n return (\n \n {menuItem}\n {subMenu}\n
\n );\n });\n return this._renderMenu(levelClassName, menuOptions, activeMenu, IsSubMenu);\n }\n\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\n const { Button } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderLinkMenuItem(\n option: IMenuItemData,\n index?: number,\n hoverEffect: boolean = true,\n isParent: boolean = false\n ): JSX.Element | null {\n const { Link } = this.props;\n const linkText = option.linkText ? option.linkText : '';\n const imagesource = option.imageSource ? option.imageSource : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\n const { Link } = this.props;\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n if (linkText && linkUrl) {\n return (\n \n {linkText}\n \n );\n }\n return null;\n }\n\n private _renderSpanMenuItem(option: IMenuItemData, index?: number, isParent: boolean = false): JSX.Element | null {\n const { Span } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean): JSX.Element | null {\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, showPromotionalContent, isMobileView } = this.props;\n const categoryImageDisplay =\n !isMobileView &&\n (showCategoryImage || showPromotionalContent) &&\n !ArrayExtensions.hasElements(this.state.categoryImage) &&\n !submenu;\n const promotionalContentDisplay =\n !isMobileView && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !submenu;\n const DivContainerClass = this.currentLevel > 2 || categoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\n this.currentLevel = 1;\n return (\n \n 2 &&\n 'navmenu-multi-level'\n )}\n >\n {menuOptions}\n \n {categoryImageDisplay &&\n this.state.categoryImage &&\n this.state.categoryImage.map(item => (\n \n {this.state.categoryImage && this._getCategoryImage(item)}\n {promotionalContentDisplay && this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n \n ))}\n \n );\n }\n\n private readonly _updateCategoryImage = (categoryImageSrc: string, option: IMenuItemData) => () => {\n const linkText = option && option.linkText ? option.linkText : '';\n const promotionalImage: IImageData[] = [{ src: categoryImageSrc, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\n option.promotionalContent.map(item => {\n if (item && item.image) {\n const imageSrc = item.image.src;\n const promotionalItemImageSettings = item.image.imageSettings;\n promotionalImage.push({\n src: imageSrc,\n altText: item.text,\n imageSettings: promotionalItemImageSettings,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n }\n });\n }\n this.setState({\n categoryImage: promotionalImage.length > 0 ? promotionalImage : [{ src: 'empty' }],\n categoryImageAltText: linkText\n });\n };\n\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\n if (!this.props.isMobileView) {\n this.setState({\n activeMenu: this.state.activeMenu && this.state.activeMenu === data.id! ? undefined : data.id!,\n parentMenu: parentId\n });\n if (this.props.showCategoryImage) {\n this._updateCategoryImage(data.imageSource!, data)();\n }\n } else {\n NavigationMenuView.isBackTrack = false;\n this.setState({\n activeMenu: data.id,\n mobileViewLabelText: data.linkText!,\n parentMenu: parentId\n });\n }\n };\n\n private readonly _handleGoBack = () => () => {\n NavigationMenuView.isBackTrack = true;\n this.setState({ activeMenu: this.state.parentMenu });\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleClickOutside = (event: MouseEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\n this.setState({\n activeMenu: undefined,\n mobileViewLabelText: '',\n categoryImage: null\n });\n }\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleFocusOutside = (event: FocusEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.relatedTarget as Node)) {\n this._closeSubmenu();\n }\n };\n\n /**\n * Checks to assign a ref for focus.\n * @param index -Sub menu list index.\n * @param mobileViewLabelText -Parent user clicked Sub menu list.\n * @param optionLinkText -Sub menu list.\n * @returns Ref.\n */\n private readonly _shouldAddFocusMenuRef = (index: number, mobileViewLabelText?: string, optionLinkText?: string) => {\n if (!NavigationMenuView.isBackTrack && index === 0) {\n return true;\n }\n if (!optionLinkText || !mobileViewLabelText) {\n return false;\n }\n return mobileViewLabelText === optionLinkText;\n };\n\n private _closeSubmenu(): void {\n if (!this.props.isMobileView) {\n this.setState({ activeMenu: undefined, categoryImage: null, mobileViewLabelText: '' });\n }\n }\n\n private readonly _getCategoryImage = (categoryImage?: IImageData): React.ReactNode | null => {\n if (!categoryImage || !categoryImage.src) {\n return null;\n }\n\n const categoryImageUrl = generateImageUrl(`${categoryImage.src}`, this.props.context.actionContext.requestContext.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n sm: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n md: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n lg: { q: 'w=300&h=250&m=8', w: 0, h: 0 }\n },\n lazyload: true\n };\n if (categoryImageUrl !== undefined) {\n return (\n \n );\n }\n return null;\n };\n}\n\nexport default NavigationMenuView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Waiting } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * Payment waiting props.\n */\nexport interface IPaymentWaitingProps {\n message: string;\n className?: string;\n}\n\n/**\n * Payment waiting.\n * @param param0 - First in param.\n * @param param0.message - Message.\n * @param param0.className - ClassName.\n * @returns React node.\n */\nexport const WaitingComponent: React.FC = ({ message, className = 'ms-checkout-payment-instrument' }) => (\n
\n \n {message}\n
\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountInvoiceTileViewProps } from './account-invoice-tile';\n\nexport default (props: IAccountInvoiceTileViewProps) => {\n const { AccountInvoiceTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsViewProps } from './loyalty-terms';\n\nconst LoyaltyTermsView: React.FC = props => {\n const { LoyaltyTerms, modalToggle, modal, loading } = props;\n\n return !loading && modal ? (\n \n {modalToggle}\n \n {modal.heading}\n \n {modal.terms}\n \n {modal.checkbox}\n {modal.agreeText}\n \n \n \n {modal.submitButton}\n {modal.cancelButton}\n \n \n \n ) : null;\n};\n\nexport default LoyaltyTermsView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { Iframe } from './iframe';\nimport defaultPaymentConnectorDropinStyle from './payment-instrument.dropin.style';\nimport defaultPaymentConnectorPaypalStyle from './payment-instrument.paypal.style';\nimport defaultPaymentConnectorStyle from './payment-instrument.style';\n\n/**\n * Interface for add payment form.\n */\nexport interface IAddPaymentFormProps {\n acceptPageUrl?: string;\n acceptPageContent?: string;\n iframeRef?: React.RefObject