{"version":3,"sources":["webpack:///src/modules/checkout-shipping-address/checkout-shipping-address.view.tsx?e155","webpack:///src/modules/country-picker/country-picker.tsx?051f","webpack:///src/modules/breadcrumb/breadcrumb.view.tsx?58b4","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/fabrikam/views/buybox.view.tsx?68a7","webpack:///src/modules/sign-in/sign-in.view.tsx?a753","webpack:///src/modules/account-address-tile/account-address-tile.view.tsx?0b73","webpack:///src/index.ts?c6ae","webpack:///src/common/get-checkout-return-url.tsx?942d","webpack:///src/modules/footer-category/footer-category.tsx?b7b8","webpack:///src/modules/adventureworks/views/components/carticon.component.tsx?3d75","webpack:///src/modules/breadcrumb/components/link.tsx?b7b8","webpack:///src/modules/breadcrumb/components/separator.tsx?7c35","webpack:///src/modules/breadcrumb/breadcrumb.tsx?3387","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/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/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/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/modules/footer-category/footer-category.view.tsx?26a5","webpack:///src/common/index.ts?ee63","webpack:///src/modules/business-account-address/business-account-address.view.tsx?dcd1","webpack:///src/modules/account-order-templates-tile/account-order-templates-tile.view.tsx?90af","webpack:///src/modules/cart-icon/cart-icon.view.tsx?d63a","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/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/module-state-manager/index.ts?8e3a","webpack:///src/modules/navigation-menu/navigation-menu.view.tsx?df40","webpack:///src/common/waiting.tsx?8365","webpack:///./src/themes/leblanc/views/search-result-container.view.tsx?1e7e","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/modules/product-comparison-button/product-comparison-button.view.tsx?68cc","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-payment-instrument/index.ts?4b7c","webpack:///../../src/checkout-state-data-action.ts?8344","webpack:///src/common/empty-active-cart.tsx?80fa","webpack:///./src/themes/connselmer2/views/search-result-container.view.tsx?ec53","webpack:///./src/themes/connselmer/views/search-result-container.view.tsx?9850","webpack:///src/modules/adventureworks/views/order-template-list.view.tsx?86a3"],"names":["AddressShow","_ref","AddressDetail","items","React","Node","Object","assign","map","item","description","AddressSelect","_ref2","SelectAddress","addButton","isShowSaveButton","saveButton","isShowCancelButton","cancelButton","SelectItem","key","input","showItems","AddressAddUpdate","_ref3","AddressForm","heading","hasError","error","AddressItem","label","alert","AddressError","title","message","CheckoutShippingAddressView","props","CheckoutShippingAddress","checkoutErrorRef","viewState","showAddress","showAddressSelect","showAddOrUpdateAddress","cartLineImages","Module","ref","isShowAddress","isShowAddresList","isShowAddOrUpdateAddress","CountryPicker","constructor","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","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","renderCountry","localeItem","_image$imageSettings","_image$src","localeBaseUrl","matchedCountryItem","find","url","imageSize","q","w","h","defaultImageSettings","viewports","xs","lg","xl","lazyload","image","imageProps","gridSettings","imageSettings","displayString","href","src","altText","loadFailureBehavior","shouldSkipToMainImage","displaySubString","BreadCrumbView","root","links","backButton","BreadcrumbContainer","BreadcrumbList","BreadcrumbListItem","separator","index","classnames","length","OverlayModal","modal","CheckoutPaymentInstrumentView","checkoutPaymentInstrument","id","waiting","paymentInformation","addPaymentForm","overlayModal","_objectWithoutProperties","_excluded","_renderTextBlock","textBlocks","_renderSocialShare","socialShare","_renderCartAndActions","addToCart","addToOrderTemplate","addToWishlist","errorBlock","button","_renderConfigure","configure","ContainerProps","dropdowns","_renderConfigureDropdown","dropdown","LabelContainerProps","errors","select","_renderFindInStore","findInStore","storeSelector","productPickupOptionList","onChangeHandler","callbacks","newValue","updateQuantity","_renderQuantity","quantityComponent","extentionResources","quantityLimitsMessages","max","telemetryContent","quantity","IncrementalQuantity","currentCount","onChange","inputQuantityAriaLabel","decrementButtonAriaLabel","incrementButtonAriaLabel","minQuantityText","maxQuantityText","_renderKeyInPrice","keyInPrice","_renderShopSimilarItem","shopSimilarItem","BuyboxView","ModuleProps","MediaGalleryContainerProps","ProductInfoContainerProps","price","rating","inventoryLabel","shopSimilarLook","shopSimilarDescription","unitOfMeasure","mediaGallery","bulkPurchaseLink","slots","SignInLoading","_ref4","modalBody","icon","SignInView","signIn","loading","defaultAADConainer","aadConainer","signInSection","signUpSection","signInSectionHeading","signInLocalAccount","signInSocialAccount","signUpSectionHeading","signInB2BAccount","signUpDescription","signUpLink","isShowLoading","localAccount","forgetPassword","disclaimer","signInButton","wrapper","LocalAccount","socialAccounts","SocialAccount","B2BAccount","AccountAddressTileView","AccountAddressTile","GetCheckoutReturnUrl","actionContext","returnUrl","getUrlSync","isAbsoluteUrl","RegExp","test","window","location","origin","FooterCategory","content","categories","FooterList","FooterListItem","CartIcon","observer","cartLabel","cartQtyLabel","data","cart","cartItem","totalItemsInCart","qtyLabel","format","style","visibility","CartIconComponent","msdyn365Commerce","createComponentOverride","component","Link","noclick","contentAction","etext","attribute","itemProp","Separator","Breadcrumb","_pageType","urlTokens","pageType","_getRootLink","_getCustomBreadcrumbLinks","itemPosition","keyIndex","toString","_getCategoryHierarchy","categoryHierarchy","result","_getFriendlyName","locale","NameTranslations","Url","nameTranslations","_nameTranslation","nameTranslation","ArrayExtensions","hasElements","Language","toLowerCase","Text","_getPDPLinks","categoryPaths","product","requestUrl","push","Name","hideProductName","_goBack","history","back","_getPDPBackButton","query","isBrowser","document","referrer","backToResultsText","rootLink","breadcrumbLinks","backButtonComponent","breaCrumbType","app","breadcrumbType","linkSeparator","breadcrumbViewProps","renderConfigure","containerProps","renderConfigureDropdown","labelContainerProps","quickOrderView","quickOrderProps","contentProps","form","quickOrderForm","drawer","quickOrderFormProductContent","quickOrderFormMsgContent","quickOrderList","isMobileView","renderForm","quickOrderProductContent","quickOrderMsgContent","userMessage","addToCartBtn","CheckoutGooglePayView","checkoutGooglePay","checkoutButton","appendChild","createElement","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","_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","_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","onMouseOver","_renderMenu","_renderLinkMenuItemLevelOne","_this$props$navProps$3","toggleButtonText","buttonText","keys","colProps","Drawer","collapseProps","openGlyph","closeGlyph","glyphPlacement","onToggle","menuSubItem","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","PaymentInformation","changePaymentButtonText","cardTitle","cardNumberLabel","expiresDateLabel","addressTitle","tokenizedPaymentCard","tenderLine","billingAddress","canEdit","NameOnCard","CardTypeId","CardTokenInfo","ExpirationMonth","ExpirationYear","MaskedCardNumber","cardLastNDigit","substr","isValidCardNumber","isNaN","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","catch","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","redirectResult","checkoutCart","refreshCart","updateShouldCollapsePaymentSection","newShouldCollapsePaymentSection","Unknown","loyaltyAmount","giftCardExtends","reduce","count","giftCard","Balance","_checkoutState$custom","customerAccountAmount","_checkout$result3","AmountDue","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","then","paymentAcceptPoint","configuration","getMerchantConfiguration","console","AcceptPageContent","Error","withModuleState","WrappedComponent","_super","ModuleState","_this","call","initializeState","_b","typeName","states","getModuleStates","updateModuleStates","__assign","_a","hasInitialized","isRequired","isCancellable","isSubmitContainer","status","childIds","getModuleStateManager","moduleState","validate","isReady","isUpdating","isPending","isSkipped","isDisabled","isCancelAllowed","shouldSubmitContainer","hasExternalSubmitGroup","hasModuleState","setIsRequired","update","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","shouldEnableSinglePaymentAuthorizationCheckout","childId","_isPaymentSectionContainer","enableControl","__extends","prototype","shouldComponentUpdate","nextProps","getCacheKey","buildCacheKey","getCacheObjectType","dataCacheType","showBillingAddress","shouldPassLocaleToiFrame","ctx","_checkoutState$checko","exception","getCheckoutState","isEmptyOrNullObject","CartLines","URL","cardPaymentAcceptSettings","HostPageOrigin","AdaptorPath","CardPaymentEnabled","CardTokenizationEnabled","HideBillingAddress","TenderTypeId","PaymentAmount","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","FooterCategoryView","category","AsyncResultStatusCode","BusinessAccountAddressView","BusinessAccountAddress","AccountOrderTemplatesTileView","AccountOrderTemplatesTile","CartIconView","miniCartWrapper","renderModuleAttributes","cartIcon","FlyoutContainer","flyoutTitle","checkoutBlockedDueToUnavailableFunds","CartlinesWrapper","_renderCartlines","cartLines","cartLine","miniCartItemWrapper","cartline","storeLocation","remove","cartlines","checkoutAsSignInUserButton","checkoutAsGuestButton","goToCartButton","NavigationMenu","isRetail","isCMS","_setNavigationSource","sourceType","_updateViewport","bind","viewport","device","Type","navigationMenuSource","resizeThrottledEventHandler","_this$props$config$di","_this$props$config$di2","_mapData","displayCategoryImage","displayPromotionalImage","ImageContainer","backButtonAriaLabel","mergedData","_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","_getNestedChildren","CMSItemIdInit","imageDestinationURL","imageLink","_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","cartState","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","parseInt","split","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","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","buttonWrapper","buttonYesText","buttonNoText","AccountProfileSection","AccountProfileItem","AccountProfileView","AccountProfile","infoMessageBar","accountProfileWrapper","emailSection","nameSection","preferenceSection","customerAttributesWrapper","customerAttributesSection","withVisibilityObserver","VisibilityObserver","isVisible","errorMessage","selfRef","initMutationObserver","targetNode","getElementsByTagName","MutationObserver","mutationObserver","handleVisibilityChange","observe","childList","subtree","stopMutationObserver","_this$state$observer","disconnect","offsetWidth","offsetHeight","nextState","visibilityObserver","TileListItemViewComponent","tileListItem","paragraph","backgroundImage","thumbnailImage","tileListContainer","tileListImageContainer","tileListThumbnailImageContainer","tileListHeadingContainer","renderTileListItemContent","PaymentConnectorPostMessageType","paymentConnectorMessage","messageType","paymentConnectorExtraContextMessage","ExtraContext","paymentConnectorSubmitMessage","Submit","paymentConnectorAmountMessage","AccountLoyaltyTileView","AccountLoyaltyTile","NavigationMenuView","categoryImageSrc","imageSrc","promotionalItemImageSettings","categoryImageAltText","_handleFocusOutside","relatedTarget","_closeSubmenu","_getCategoryImage","_categoryImage$imageS","Image","forEach","i","IsSubMenu","enableMultiSupportMenu","haveSubmenu","onFocus","hoverEffect","isParent","currentItem","submenu","categoryImageDisplay","promotionalContentDisplay","DivContainerClass","WaitingComponent","Waiting","createSearchResultModal","modalProps","refineMenu","sortByDropDown","isRecoSearchPage","modalHeader","createModalBody","modalFooter","renderSort","renderRefiner","refiners","RefineMenuContainer","RefinerSectionContainer","SortingContainer","renderCategoryHierarchy","categoryHierarchyList","categoryHierarchySeparator","xmlns","fill","viewBox","d","substring","slice","renderTitle","TitleContainer","titleText","renderTitleCount","titleCount","SearchResultContainerView","_props$context$action","SearchResultContainer","products","pagination","ProductSectionContainer","choiceSummary","modalToggle","searchResultModal","TitleViewProps","sortByOptions","CategoryNavContainer","RefineAndProductSectionContainer","FeatureSearchContainer","similarLookProduct","recommendation","AddPaymentFormComponent","acceptPageUrl","acceptPageContent","onSubmit","onCancel","canSubmit","canCancel","iFrameHeightOverride","isFetchingPaymentConnector","paymentStyleOverride","cancelButtonText","submitButtonText","defaultPaymentConnectorStyle","TileListLinks","_mapEditableLinks","linkdata","editableLinks","TileListItem","handleHeadingChange","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","ProductComparisonButtonViewFunctionalComponent","productComparisonButton","productComparisonPreview","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","_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","CheckoutStateInput","EmptyActiveCart","lineItemIdsToRemove","getCartState","activeCart","activeCartLine","checkoutCartLine","LineId","removeCartLines","cartLineIds","removeAllPromoCodes","removeCheckoutCartId","OrderTemplateListViewComponent","OrderTemplateList","OrderTemplates","OrderTemplate","orderTemplates","createOrderTemplateButton","templateHeaderStatusMessage","headingForEmptyOrderTemplateList","textForEmptyOrderTemplateList","orderTemplate","renderOrderTemplate","orderTemplateNodeProps","addToCartButton","orderTemplateImage","orderTemplateStatusMessage","removeButton","orderTemplateName","orderTemplateImageElement","currentImageListLength"],"mappings":"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","file":"static/js/6.1d73e5ff0c93115d7c96.chunk.js","sourcesContent":["/*!\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 { IAddressAddItem, IAddressAddUpdateProps } from '../../common/components/address-add';\nimport { IAddressSelectItem, IAddressSelectProps } from '../../common/components/address-select';\nimport { IAddressShowItem, IAddressShowProps } from '../../common/components/address-show';\nimport { ICheckoutShippingAddressViewProps } from './checkout-shipping-address';\n\n/**\n * Address show component.\n * @param param0 - Root param.\n * @param param0.AddressDetail - Address detail.\n * @param param0.items - IAddressShowItem[].\n * @returns - Address Node.\n */\nconst AddressShow: React.FC = ({ AddressDetail, items }) => {\n return (\n \n {items.map((item: IAddressShowItem) => {\n return <>{item.description};\n })}\n \n );\n};\n\n/**\n * Address Select Component.\n * @param param0 - Root param.\n * @param param0.SelectAddress - Select address.\n * @param param0.addButton - Add button.\n * @param param0.items - IAddressSelectItem[].\n * @param param0.isShowSaveButton - Boolean.\n * @param param0.saveButton - Save button.\n * @param param0.isShowCancelButton - Boolean.\n * @param param0.cancelButton - Cancel button.\n * @returns - SelectAddress Node.\n */\nconst AddressSelect: React.FC = ({\n SelectAddress,\n addButton,\n items,\n isShowSaveButton,\n saveButton,\n isShowCancelButton,\n cancelButton\n}) => {\n return (\n \n {addButton}\n {items.map((item: IAddressSelectItem) => {\n const SelectItem = item.SelectItem;\n return (\n \n {item.input}\n \n \n );\n })}\n {isShowSaveButton && saveButton}\n {isShowCancelButton && cancelButton}\n \n );\n};\n\n/**\n * Address Add Update Component.\n * @param param0 - Root param.\n * @param param0.AddressForm - Address form.\n * @param param0.heading - Address heading.\n * @param param0.items - IAddressAddItem[].\n * @param param0.hasError - Boolean.\n * @param param0.error - Error message.\n * @param param0.isShowSaveButton - Boolean.\n * @param param0.saveButton - Save button.\n * @param param0.isShowCancelButton - Boolean.\n * @param param0.cancelButton - Cancel button.\n * @returns Address add update component node.\n */\nconst AddressAddUpdate: React.FC = ({\n AddressForm,\n heading,\n items,\n hasError,\n error,\n isShowSaveButton,\n saveButton,\n isShowCancelButton,\n cancelButton\n}) => {\n return (\n \n {heading}\n {items.map((item: IAddressAddItem) => {\n const { AddressItem, key, label, alert, input } = item;\n return (\n \n {label}\n {alert}\n {input}\n \n );\n })}\n {hasError && (\n \n {error.title}\n {error.message}\n \n )}\n {isShowSaveButton && saveButton}\n {isShowCancelButton && cancelButton}\n \n );\n};\n\n/**\n * Checkout Shipping Address View Component.\n * @param props - Props.\n * @returns - CheckoutShippingAddress Module.\n */\nconst CheckoutShippingAddressView: React.FC = props => {\n const {\n CheckoutShippingAddress,\n checkoutErrorRef,\n alert,\n viewState,\n showAddress,\n showAddressSelect,\n showAddOrUpdateAddress,\n cartLineImages\n } = props;\n\n return (\n \n {alert}\n {cartLineImages}\n {viewState.isShowAddress && }\n {viewState.isShowAddresList && }\n {viewState.isShowAddOrUpdateAddress && }\n \n );\n};\n\nexport default CheckoutShippingAddressView;\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 { 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 classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbViewProps } from './breadcrumb';\n\nconst BreadCrumbView: React.FC = props => {\n const { root, links, backButton, BreadcrumbContainer, BreadcrumbList, BreadcrumbListItem, separator } = props;\n if (!root && !links && !backButton) {\n props.context.telemetry.error('BreadCrumb content is empty, module wont render');\n return null;\n }\n return (\n \n \n {root && (\n \n {root}\n {links && separator}\n \n )}\n {backButton && {backButton}}\n {links &&\n links.map((link, index) => (\n \n \n {link}\n {links[index + 1] && separator}\n \n \n ))}\n \n \n );\n};\n\nexport default BreadCrumbView;\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 {\n IBuyboxAddToCartViewProps,\n IBuyboxAddToOrderTemplateViewProps,\n IBuyboxAddToWishlistViewProps,\n IBuyboxCallbacks,\n IBuyboxData,\n IBuyboxFindInStoreViewProps,\n IBuyboxKeyInPriceViewProps,\n IBuyboxProductConfigureDropdownViewProps,\n IBuyboxProductConfigureViewProps,\n IBuyboxProductQuantityViewProps,\n IBuyboxProps,\n IBuyboxShopSimilarLookViewProps,\n IBuyboxState,\n IBuyboxViewProps\n} from '@msdyn365-commerce-modules/buybox';\nimport { IncrementalQuantity, ITelemetryContent, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBuyboxProps as IBuyboxExtentionProps,\n IBuyboxResources as IBuyboxExtentionResources\n} from '../definition-extensions/buybox.ext.props.autogenerated';\n\nconst BuyboxView: React.FC> = props => {\n const {\n ModuleProps,\n MediaGalleryContainerProps,\n ProductInfoContainerProps,\n addToCart,\n addToOrderTemplate,\n addToWishlist,\n telemetryContent,\n configure,\n description,\n findInStore,\n quantity,\n price,\n title,\n rating,\n callbacks,\n state,\n resources,\n inventoryLabel,\n shopSimilarLook,\n keyInPrice,\n quantityLimitsMessages,\n max,\n shopSimilarDescription,\n unitOfMeasure\n } = props;\n\n return (\n \n {props.mediaGallery}\n \n {title}\n {price}\n {unitOfMeasure}\n {props.bulkPurchaseLink}\n {description}\n {_renderTextBlock(props.slots.textBlocks)}\n {rating}\n {configure && _renderConfigure(configure)}\n {keyInPrice && _renderKeyInPrice(keyInPrice)}\n {quantity && _renderQuantity(quantity, callbacks, props, state, resources, quantityLimitsMessages, max, telemetryContent)}\n {inventoryLabel}\n {_renderCartAndActions(addToCart, addToOrderTemplate, addToWishlist)}\n {findInStore && _renderFindInStore(findInStore)}\n {_renderSocialShare(props.slots && props.slots.socialShare)}\n {shopSimilarLook && _renderShopSimilarItem(shopSimilarLook)}\n {shopSimilarDescription && _renderShopSimilarItem(shopSimilarDescription)}\n \n \n );\n};\n\nconst _renderTextBlock = (textBlocks: React.ReactNode[]): JSX.Element | undefined => {\n if (!textBlocks || textBlocks.length === 0) {\n return undefined;\n }\n\n return <>{textBlocks[0]};\n};\n\nconst _renderSocialShare = (socialShare: React.ReactNode[]): JSX.Element | undefined => {\n if (!socialShare || socialShare.length === 0) {\n return undefined;\n }\n\n return <>{socialShare[0]};\n};\n\nconst _renderCartAndActions = (\n addToCart?: IBuyboxAddToCartViewProps,\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps,\n addToWishlist?: IBuyboxAddToWishlistViewProps\n): JSX.Element | undefined => {\n if (!addToCart && !addToWishlist) {\n return undefined;\n }\n\n return (\n
\n {addToCart && addToCart.errorBlock}\n {addToOrderTemplate && addToOrderTemplate.errorBlock}\n {addToWishlist && addToWishlist.errorBlock}\n
\n {addToCart && addToCart.button}\n {addToOrderTemplate && addToOrderTemplate.button}\n {addToWishlist && addToWishlist.button}\n
\n
\n );\n};\n\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\n const { ContainerProps, dropdowns } = configure;\n\n return {dropdowns.map(_renderConfigureDropdown)};\n};\n\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\n\n return (\n \n \n {heading}\n {errors}\n \n {select}\n \n );\n};\n\nconst _renderFindInStore = (findInStore: IBuyboxFindInStoreViewProps): JSX.Element => {\n const { ContainerProps, storeSelector, heading, description, errors, button, modal, productPickupOptionList } = findInStore;\n\n return (\n \n {storeSelector}\n {heading}\n {productPickupOptionList}\n {description}\n {errors}\n {button}\n {modal}\n \n );\n};\n\n/**\n * On Change function.\n * @param callbacks -Callbacks.\n * @returns Update quantity.\n */\nconst onChangeHandler = (callbacks: IBuyboxCallbacks) => (newValue: number): boolean => {\n if (callbacks.updateQuantity) {\n return callbacks.updateQuantity(newValue);\n }\n return true;\n};\n\nconst _renderQuantity = (\n quantityComponent: IBuyboxProductQuantityViewProps,\n callbacks: IBuyboxCallbacks,\n props: IBuyboxProps,\n state: IBuyboxState,\n extentionResources: IBuyboxExtentionResources,\n quantityLimitsMessages: React.ReactNode,\n max: number | undefined,\n telemetryContent?: ITelemetryContent\n): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors } = quantityComponent;\n\n const { resources } = props;\n\n const { quantity } = state;\n\n return (\n \n \n {heading}\n {errors}\n \n\n \n {quantityLimitsMessages}\n \n );\n};\n\nconst _renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\n\n return (\n \n {heading}\n {input}\n \n );\n};\n\nconst _renderShopSimilarItem = (shopSimilarItem: IBuyboxShopSimilarLookViewProps): JSX.Element => {\n const { ContainerProps, errors, input } = shopSimilarItem;\n\n return (\n \n {errors}\n {input}\n \n );\n};\n\nexport default BuyboxView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n ISignInItem,\n ISignInLoading,\n ISignInLocalAccount,\n ISignInSocialAccount,\n ISignInSocialItem,\n ISignInB2BAccount,\n ISignInB2BItem,\n ISignInViewProps\n} from './sign-in';\n\nconst LocalAccount: React.FC = ({ localAccount, items, forgetPassword, disclaimer, error, signInButton }) => {\n return (\n \n {items &&\n items.map((item: ISignInItem) => {\n return (\n \n {item.label}\n {item.error}\n {item.input}\n \n );\n })}\n {forgetPassword}\n {disclaimer}\n {error}\n {signInButton}\n \n );\n};\n\nconst SocialAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInSocialItem) => {\n return (\n \n {item.image}\n {item.text}\n \n );\n })}\n \n );\n};\n\nconst B2BAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInB2BItem) => {\n return (\n item && (\n \n {item.text}\n \n )\n );\n })}\n \n );\n};\n\nconst SignInLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst SignInView: React.FC = props => {\n const {\n signIn,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n signInSection,\n signUpSection,\n signInSectionHeading,\n signInLocalAccount,\n signInSocialAccount,\n signUpSectionHeading,\n signInB2BAccount,\n signUpDescription,\n signUpLink\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n \n {signInSectionHeading}\n {LocalAccount(signInLocalAccount)}\n {SocialAccount(signInSocialAccount)}\n {B2BAccount(signInB2BAccount)}\n \n \n {signUpSectionHeading}\n {signUpDescription}\n {signUpLink}\n \n \n \n );\n};\n\nexport default SignInView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } 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 NavigationMenu from './modules/navigation-menu/navigation-menu';\nimport NavigationMenuView from './modules/navigation-menu/navigation-menu.view';\n\nexport * from './modules/navigation-menu/navigation-menu';\nexport * from './modules/navigation-menu/navigation-menu.data';\nexport * from './modules/navigation-menu/navigation-menu.props.autogenerated';\nexport * from './modules/navigation-menu/navigation-menu.view';\n\nexport { NavigationMenu, NavigationMenuView };\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 { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterCategoryConfig, IFooterCategoryProps } from './footer-category.props.autogenerated';\n\nexport interface IFooterCategoryViewProps extends IFooterCategoryProps {\n categories: React.ReactNode[];\n FooterList: IModuleProps;\n FooterListItem: INodeProps;\n}\n\n/**\n *\n * FooterCategory component.\n * @extends {React.PureComponent>}\n */\nclass FooterCategory extends React.PureComponent> {\n public render(): JSX.Element | null {\n if (!this.props.slots || !this.props.slots.content || this.props.slots.content.length === 0) {\n this.props.context.telemetry.error('footer slots content is empty, module wont render');\n return null;\n }\n const viewprops = {\n ...this.props,\n categories: this.props.slots.content,\n FooterList: {\n moduleProps: this.props,\n className: classnames('ms-footer__list', this.props.config.className),\n tag: 'ul'\n },\n FooterListItem: {\n className: classnames('ms-footer__list-item', this.props.config.className),\n tag: 'li'\n }\n };\n\n return this.props.renderView(viewprops) as React.ReactElement;\n }\n}\n\nexport default FooterCategory;\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 { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILink {\n className?: string;\n text?: string;\n href?: string;\n ariaLabel?: string;\n index: string;\n noclick?: boolean;\n telemetryContent: ITelemetryContent;\n}\n\nexport const Link: React.FC = ({ text, className, href, ariaLabel, index, noclick, telemetryContent }) => {\n const payLoad = getPayloadObject('click', telemetryContent, '', '');\n\n const linkText = text !== undefined ? text : '';\n payLoad.contentAction.etext = linkText;\n\n // Construct telemetry attribute to render\n const attribute = getTelemetryAttributes(telemetryContent, payLoad);\n\n return (\n \n {linkText}\n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface ISeparator {\n separator: string;\n}\n\nexport const Separator: React.FC = ({ separator }) => (\n \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 from '@msdyn365-commerce/core';\nimport { ICategoryUrl } from '@msdyn365-commerce/core-internal/dist/types/interfaces/ICategoryPathInterfaces';\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbData } from './breadcrumb.data';\nimport { IBreadcrumbProps, ILinksData } from './breadcrumb.props.autogenerated';\nimport { Link } from './components/link';\nimport { Separator } from './components/separator';\n\nexport interface IBreadcrumbViewProps extends IBreadcrumbProps {\n root?: React.ReactNode;\n links?: React.ReactNode[];\n backButton?: React.ReactNode;\n separator?: React.ReactNode;\n BreadcrumbContainer: IModuleProps;\n BreadcrumbList: INodeProps;\n BreadcrumbListItem: INodeProps;\n}\n\n/**\n *\n * Breadcrumb component.\n * @extends {React.PureComponent>}\n */\nclass Breadcrumb extends React.PureComponent> {\n private readonly _pageType: string | undefined = this.props.context.request.urlTokens.pageType;\n\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public render(): JSX.Element | null {\n const { className } = this.props.config;\n let rootLink = null;\n let breadcrumbLinks = null;\n let backButtonComponent = null;\n rootLink = this._getRootLink();\n const itemPosition = rootLink ? 1 : 0;\n if (this._pageType === 'Category') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n breadcrumbLinks = this._getCategoryHierarchy(itemPosition);\n }\n } else if (this._pageType === 'Product') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n const breaCrumbType = this.props.context.app.config.breadcrumbType;\n if (breaCrumbType === 'category') {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'categoryAndBack') {\n backButtonComponent = this._getPDPBackButton();\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'back') {\n backButtonComponent = this._getPDPBackButton();\n if (backButtonComponent === null) {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n }\n }\n } else {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n }\n const linkSeparator = ;\n\n const breadcrumbViewProps = {\n ...this.props,\n BreadcrumbContainer: {\n moduleProps: this.props,\n className: classnames('ms-breadcrumb', className),\n tag: 'nav',\n role: 'navigation'\n },\n BreadcrumbList: {\n tag: 'ol' as NodeTag,\n className: 'ms-breadcrumb_list'\n },\n BreadcrumbListItem: {\n tag: 'li',\n className: 'ms-breadcrumb_item'\n },\n root: rootLink,\n links: breadcrumbLinks,\n backButton: backButtonComponent,\n separator: linkSeparator\n };\n return this.props.renderView(breadcrumbViewProps) as React.ReactElement;\n }\n\n private readonly _getRootLink = (): JSX.Element | null => {\n const { root } = this.props.config;\n if (!root || !root.linkUrl || !root.linkUrl.destinationUrl) {\n this.props.context.telemetry.error('BreadCrumb link url content is empty, link wont render');\n return null;\n }\n return (\n \n );\n };\n\n private readonly _getCustomBreadcrumbLinks = (itemPosition: number): JSX.Element[] | null => {\n const { links } = this.props.config;\n\n if (!links || links.length === 0) {\n this.props.context.telemetry.error('BreadCrumb links content is empty, links wont render');\n return null;\n }\n const defaultValueToSubtract = 1;\n return links.map((value: ILinksData, index: number) => {\n itemPosition++;\n const keyIndex = index;\n return index !== links.length - defaultValueToSubtract ? (\n \n ) : (\n
\n {value.linkText}\n
\n );\n });\n };\n\n private readonly _getCategoryHierarchy = (itemPosition: number): JSX.Element[] | null => {\n const { data } = this.props;\n const categoryHierarchy = data.categoryHierarchy.result;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category Hierarchy content is empty, module wont render');\n return null;\n }\n return categoryHierarchy.map((value: CategoryHierarchy, index: number) => {\n itemPosition++;\n\n const friendlyName = this._getFriendlyName(this.props.context.request.locale, value.NameTranslations);\n\n return (\n \n );\n });\n };\n\n /**\n * The function to get translation name for the locale.\n * @param locale - The locale information.\n * @param nameTranslations - The name translations names.\n * @returns - The translation name for the locale.\n */\n private readonly _getFriendlyName = (locale: string, nameTranslations?: TextValueTranslation[]): string | undefined => {\n let nameTranslation: TextValueTranslation | undefined;\n if (locale && nameTranslations && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\n }\n\n // If friendly name for current locale is null, should use default locale.\n if (nameTranslation === undefined && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations[0];\n }\n\n return nameTranslation?.Text;\n };\n\n private readonly _getPDPLinks = (itemPosition: number): JSX.Element[] | null => {\n const { data, config } = this.props;\n const categoryHierarchy = data.categoryPaths.result;\n const product = data.product.result;\n const url = this.props.context.request.url.requestUrl.href;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category path content is empty for the product');\n return null;\n }\n const links: JSX.Element[] = [];\n\n categoryHierarchy.map((value: ICategoryUrl, index: number) => {\n itemPosition++;\n links.push(\n \n );\n });\n if (product && !config.hideProductName) {\n itemPosition++;\n links.push(\n \n );\n }\n return links;\n };\n\n private readonly _goBack = (): void => {\n window.history.back();\n };\n\n private readonly _getPDPBackButton = (): JSX.Element | null => {\n const isBackAllowed =\n this.props.context && this.props.context.request && this.props.context.request.query && this.props.context.request.query.back;\n if (!isBackAllowed) {\n return null;\n }\n if (MsDyn365.isBrowser && (document.referrer === '' || window.history.length < 2)) {\n return null;\n }\n return (\n \n {this.props.resources.backToResultsText}\n \n );\n };\n}\n\nexport default Breadcrumb;\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 * 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 { 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 { 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\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { IFooterCategoryViewProps } from './footer-category';\n\nexport const FooterCategoryView: React.FC = props => {\n const { categories, FooterList, FooterListItem } = props;\n if (!categories || categories.length === 0) {\n props.context.telemetry.error('Footer content is empty, module wont render');\n return null;\n }\n return (\n \n {categories.map((category: ReactNode, index: number) => {\n return (\n \n {category}\n \n );\n })}\n \n );\n};\n\nexport default FooterCategoryView;\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, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAddressAddItem, IAddressAddUpdateProps } from '../../common/components/address-add';\nimport { IBusinessAccountAddressViewProps } from './business-account-address';\n\n/**\n * Address Add Update Component.\n * @param param0 - Root param.\n * @param param0.AddressForm - Address form.\n * @param param0.heading - Address Heading.\n * @param param0.items - IAddressAddItem[].\n * @param param0.hasError - Boolean.\n * @param param0.error - IAddressError.\n * @param param0.isShowSaveButton - Boolean.\n * @param param0.saveButton - Save button.\n * @param param0.isShowCancelButton - Boolean.\n * @param param0.cancelButton - Cancel button.\n * @returns - AddressForm Node.\n */\nconst AddressAddUpdate: React.FC = ({\n AddressForm,\n heading,\n items,\n hasError,\n error,\n isShowSaveButton,\n saveButton,\n isShowCancelButton,\n cancelButton\n}) => {\n return (\n \n {heading}\n {items.map((item: IAddressAddItem) => {\n const { AddressItem, key, label, alert, input } = item;\n return (\n \n {label}\n {hasError && alert}\n {input}\n \n );\n })}\n {hasError && (\n \n {error.title}\n {error.message}\n \n )}\n {isShowSaveButton && saveButton}\n {isShowCancelButton && cancelButton}\n \n );\n};\n\n/**\n * Business Account Address View Component.\n * @param props - Props.\n * @returns - BusinessAccountAddress Module.\n */\nconst BusinessAccountAddressView: React.FC = props => {\n const { BusinessAccountAddress, showAddOrUpdateAddress } = props;\n\n return (\n \n \n \n );\n};\n\nexport default BusinessAccountAddressView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountOrderTemplatesTileViewProps } from './account-order-templates-tile';\n\nconst AccountOrderTemplatesTileView: React.FC = props => {\n const { AccountOrderTemplatesTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountOrderTemplatesTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICartIconViewProps } from './cart-icon';\nimport { IFlyoutCartLineItemViewProps } from './components/flyout-cart-line-items';\n\nconst _renderCartlines = (cartLines: IFlyoutCartLineItemViewProps[] | undefined, props: ICartIconViewProps): JSX.Element[] | null => {\n if (!cartLines) {\n props.context.telemetry.error('Cartlines content is empty, module wont render');\n return null;\n }\n return cartLines.map((cartLine, index) => {\n return (\n \n {cartLine.cartline}\n {cartLine.storeLocation}\n {cartLine.remove}\n \n );\n });\n};\n\nconst CartIconView: React.FC = (props: ICartIconViewProps) => (\n \n {props.cartIcon}\n {props.FlyoutContainer ? (\n \n {props.flyoutTitle}\n {props.checkoutBlockedDueToUnavailableFunds}\n {_renderCartlines(props.cartlines, props)}\n {props.totalPrice}\n {props.checkoutAsSignInUserButton}\n {props.checkoutAsGuestButton}\n {props.goToCartButton}\n \n ) : (\n false\n )}\n \n);\n\nexport default CartIconView;\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 } 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 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 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","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ISearchResultModalViewProps } from '@msdyn365-commerce-modules/search-result-container/src/modules/search-result-container/./components';\r\nimport { ICategoryHierarchyViewProps, IRefineMenuViewProps, ISearchResultContainerViewProps, ISortByViewProps, ITitleViewProps } from '@msdyn365-commerce-modules/search-result-container/src/modules/search-result-container/./search-result-container';\r\n\r\nconst SearchResultContainerView: React.FC = props => {\r\n\tconst { SearchResultContainer, products, pagination, ProductSectionContainer, choiceSummary, isMobile, modalToggle, searchResultModal, TitleViewProps, refineMenu, categoryHierarchy, sortByOptions, CategoryNavContainer, RefineAndProductSectionContainer, errorMessage, FeatureSearchContainer, similarLookProduct } = props;\r\n\tconst isRecoSearchPage = props.context.actionContext.requestContext.query?.recommendation;\r\n\tif(isMobile){\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{renderCategoryHierarchy(categoryHierarchy)}\r\n\t\t\t\t{renderTitle(TitleViewProps)}\r\n\t\t\t\t{choiceSummary}\r\n\t\t\t\t{modalToggle}\r\n\t\t\t\t{createSearchResultModal(searchResultModal, refineMenu, sortByOptions, isRecoSearchPage)}\r\n\t\t\t\t\r\n\t\t\t\t\t{similarLookProduct}\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t{errorMessage}\r\n\t\t\t\t\t{products}\r\n\t\t\t\t
\r\n\t\t\t\t{pagination}\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n\treturn (\r\n\t\t\r\n\t\t\t{TitleViewProps && renderTitle(TitleViewProps)}\r\n\t\t\t\r\n\t\t\t\t{categoryHierarchy && renderCategoryHierarchy(categoryHierarchy)}\r\n\t\t\t\t{TitleViewProps && renderTitleCount(TitleViewProps)}\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t{sortByOptions && !isRecoSearchPage && renderSort(sortByOptions)}\r\n\t\t\t\t\t{refineMenu && renderRefiner(refineMenu)}\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t{choiceSummary}\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{errorMessage}\r\n\t\t\t\t\t\t{products}\r\n\t\t\t\t\t
\r\n\t\t\t\t\t{pagination}\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{similarLookProduct}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nconst createSearchResultModal = (modalProps: ISearchResultModalViewProps, refineMenu: IRefineMenuViewProps, sortByDropDown: ISortByViewProps, isRecoSearchPage?: string): JSX.Element => {\r\n\treturn React.cloneElement(modalProps.modal, {}, modalProps.modalHeader,\r\n\t\tcreateModalBody(modalProps, refineMenu, sortByDropDown, isRecoSearchPage), modalProps.modalFooter);\r\n};\r\n\r\nconst createModalBody = (props: ISearchResultModalViewProps, refineMenu: IRefineMenuViewProps, sortByDropDown: ISortByViewProps, isRecoSearchPage?: string): JSX.Element | null => {\r\n\tif (sortByDropDown) {\r\n\t\treturn React.cloneElement(props.modalBody, {}, renderSort(sortByDropDown, isRecoSearchPage), renderRefiner(refineMenu));\r\n\t}\r\n\treturn null;\r\n};\r\n\r\nconst renderRefiner = (props: IRefineMenuViewProps): JSX.Element | null => {\r\n\tconst { refiners, RefineMenuContainer, RefinerSectionContainer } = props;\r\n\tif (refiners){\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{refiners.map((submenu, index) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{submenu}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\treturn null;\r\n};\r\n\r\nconst renderSort = (props: ISortByViewProps, isRecoSearchPage?: string): JSX.Element | null => {\r\n\tconst { SortingContainer, sortByDropDown } = props;\r\n\r\n\tif (sortByDropDown && !isRecoSearchPage) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{sortByDropDown}\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\treturn null;\r\n};\r\n\r\nconst renderCategoryHierarchy = (props: ICategoryHierarchyViewProps): JSX.Element | null => {\r\n\tconst { categoryHierarchyList, categoryHierarchySeparator } = props;\r\n\tif (categoryHierarchyList && categoryHierarchyList.length > 0) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\treturn ;\t//not a good way to fix, but keeps the flex: space-between working when empty\r\n};\r\n\r\nconst renderTitle = (props: ITitleViewProps): JSX.Element | null => {\r\n\tconst { title, TitleContainer } = props;\r\n\tif (title) {\r\n\t\treturn (

{title.titleText}

);\r\n\t}\r\n\treturn null;\r\n};\r\n\r\nconst renderTitleCount = (props: ITitleViewProps): JSX.Element | null => {\r\n\tconst { title } = props;\r\n\tif (title) {\r\n\t\treturn (\r\n\t\t\t
{title.titleCount}
\r\n\t\t);\r\n\t}\r\n\treturn null;\r\n};\r\n\r\nexport default SearchResultContainerView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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