{"version":3,"sources":["webpack:///./src/themes/colsolare/views/sign-in.view.tsx?e5a0","webpack:///./src/themes/columbiacrest/views/sign-in.view.tsx?91c9","webpack:///./node_modules/@msdyn365-commerce-modules/chat/node_modules/uuid/dist/esm-browser/rng.js?7d39","webpack:///./node_modules/@msdyn365-commerce-modules/chat/node_modules/uuid/dist/esm-browser/regex.js?255d","webpack:///./node_modules/@msdyn365-commerce-modules/chat/node_modules/uuid/dist/esm-browser/stringify.js?688d","webpack:///./node_modules/@msdyn365-commerce-modules/chat/node_modules/uuid/dist/esm-browser/validate.js?f4cd","webpack:///./node_modules/@msdyn365-commerce-modules/chat/node_modules/uuid/dist/esm-browser/v4.js?0bec","webpack:///src/modules/msdyn365-pva-chat-connector/proactive/triggers/proactive-chat-trigger.ts?53ff","webpack:///src/modules/msdyn365-pva-chat-connector/proactive/triggers/cart-amount-trigger.ts?f249","webpack:///src/modules/msdyn365-pva-chat-connector/proactive/triggers/cart-number-of-items-trigger.ts?6e2a","webpack:///src/modules/msdyn365-pva-chat-connector/proactive/triggers/cart-specific-product-trigger.ts?f770","webpack:///src/modules/msdyn365-pva-chat-connector/helpers/consts.ts?29a6","webpack:///src/modules/msdyn365-pva-chat-connector/proactive/triggers/date-range-trigger.ts?7473","webpack:///src/modules/msdyn365-pva-chat-connector/proactive/triggers/from-specific-page-trigger.ts?c7f8","webpack:///src/modules/msdyn365-pva-chat-connector/proactive/triggers/page-visits-trigger.ts?f742","webpack:///src/modules/msdyn365-pva-chat-connector/proactive/triggers/specific-CountryRegion-trigger.ts?53fd","webpack:///src/modules/msdyn365-pva-chat-connector/proactive/triggers/specific-page-trigger.ts?4028","webpack:///src/modules/msdyn365-pva-chat-connector/proactive/triggers/wait-on-time-trigger.ts?3c0b","webpack:///src/modules/msdyn365-pva-chat-connector/proactive/index.ts?dd07","webpack:///src/modules/msdyn365-pva-chat-connector/helpers/ContextProvider.ts?3993","webpack:///src/modules/msdyn365-pva-chat-connector/helpers/StyleComposers.ts?47f6","webpack:///src/modules/msdyn365-pva-chat-connector/helpers/CommerceChatStore.ts?a21c","webpack:///src/modules/msdyn365-pva-chat-connector/components/ChatCore.tsx?8272","webpack:///src/modules/msdyn365-pva-chat-connector/components/Chat.tsx?d24f","webpack:///src/modules/msdyn365-pva-chat-connector/msdyn365-pva-chat-connector.view.tsx?1da7","webpack:///./src/themes/spring-valley-vineyard/views/sign-in.view.tsx?58e6","webpack:///./src/themes/conn-creek/views/header.view.tsx?1ab9","webpack:///./src/themes/patzhall/views/header.view.tsx?cf8b","webpack:///./src/themes/intrinsic-wine-co/views/sign-in.view.tsx?584b","webpack:///src/modules/account-customer-balance-tile/components/account-customer-balance-tile-info.tsx?a91f","webpack:///src/modules/cookie-compliance/components/accept-button.tsx?1709","webpack:///src/modules/cookie-compliance/components/links.tsx?807e","webpack:///src/modules/cookie-compliance/cookie-compliance.tsx?5f7e","webpack:///./src/themes/north-star/views/sign-in.view.tsx?85ec","webpack:///src/modules/fabrikam/views/navigation-menu.view.tsx?5991","webpack:///./src/themes/fth/views/header.view.tsx?6d7d","webpack:///src/modules/loyalty-sign-up/components/loyalty-sign-up-small-components.tsx?d781","webpack:///src/modules/loyalty-sign-up/loyalty-sign-up.tsx?f29d","webpack:///src/modules/account-customer-balance-tile/account-customer-balance-tile.view.tsx?955a","webpack:///./src/themes/columbiacrest/views/header.view.tsx?4973","webpack:///./src/themes/smwe/views/header.view.tsx?1d70","webpack:///./src/themes/blend/views/header.view.tsx?3e7f","webpack:///./src/themes/colsolare/views/header.view.tsx?ddbc","webpack:///./src/themes/enoteca/views/header.view.tsx?ebc8","webpack:///./src/themes/patzhall/views/sign-in.view.tsx?4dd7","webpack:///./src/modules/mailing-list-redirect-form/mailing-list-redirect-form-input-group.tsx?08ab","webpack:///./src/modules/mailing-list-redirect-form/mailing-list-redirect-form.tsx?7a85","webpack:///./src/themes/generazioni/views/sign-in.view.tsx?5601","webpack:///src/modules/account-customer-balance-tile/components/account-customer-balance-tile-links.tsx?5f47","webpack:///./src/themes/stemichelle-new/views/sign-in.view.tsx?2607","webpack:///./src/themes/emp/views/sign-in.view.tsx?ef45","webpack:///src/modules/account-customer-balance-tile/account-customer-balance-tile.tsx?9383","webpack:///./src/themes/erath/views/header.view.tsx?77c2","webpack:///./src/themes/stemichelle-new/views/header.view.tsx?db07","webpack:///src/modules/loyalty-sign-up/loyalty-sign-up.view.tsx?ed3f","webpack:///./src/themes/emp/views/header.view.tsx?2647","webpack:///./src/themes/fth/views/sign-in.view.tsx?75eb","webpack:///./src/themes/blend/views/sign-in.view.tsx?f3cf","webpack:///./src/themes/generazioni/views/header.view.tsx?61f1","webpack:///./src/themes/lql/views/header.view.tsx?4925","webpack:///./src/themes/elicit/views/header.view.tsx?8cdc","webpack:///./src/themes/stemichelle/views/header.view.tsx?5845","webpack:///./src/themes/stagsleap/views/sign-in.view.tsx?c226","webpack:///src/modules/loyalty-terms/components/loyalty-terms-modal.tsx?c84d","webpack:///./src/themes/conn-creek/views/sign-in.view.tsx?515b","webpack:///./src/themes/erath/views/sign-in.view.tsx?0566","webpack:///src/modules/loyalty-terms/loyalty-terms.tsx?0629","webpack:///src/modules/cookie-compliance/cookie-compliance.view.tsx?b30b","webpack:///./src/themes/h3-theme/views/header.view.tsx?d23e","webpack:///src/modules/product-comparison-button/product-comparison-button.tsx?934c","webpack:///./src/themes/stemichelle/views/sign-in.view.tsx?47a4","webpack:///./src/themes/spring-valley-vineyard/views/header.view.tsx?c28a","webpack:///src/modules/msdyn365-pva-chat-connector/msdyn365-pva-chat-connector.tsx?df0e","webpack:///src/modules/loyalty-terms/loyalty-terms.view.tsx?5155","webpack:///./src/themes/enoteca/views/sign-in.view.tsx?6175","webpack:///src/modules/product-comparison-button/product-comparison-button.view.tsx?68cc","webpack:///./src/themes/north-star/views/header.view.tsx?81b5","webpack:///./src/themes/stagsleap/views/header.view.tsx?4d88","webpack:///./src/themes/intrinsic-wine-co/views/header.view.tsx?9f1b","webpack:///./src/themes/elicit/views/sign-in.view.tsx?254d"],"names":["SignInLoading","_ref3","modal","modalBody","icon","message","React","Node","Object","assign","_showPassword","passwordState","document","getElementById","iconElement","type","className","SignInView","props","signIn","viewState","loading","defaultAADConainer","aadConainer","signInSection","signUpSection","signInSectionHeading","signInLocalAccount","signInSocialAccount","signUpSectionHeading","signUpDescription","signUpLink","Module","isShowLoading","_ref","localAccount","items","forgetPassword","disclaimer","error","signInButton","map","item","key","wrapper","label","input","onClick","id","LocalAccount","_ref2","socialAccounts","button","image","text","SocialAccount","getRandomValues","rnds8","Uint8Array","rng","crypto","bind","msCrypto","Error","validate","uuid","REGEX","test","byteToHex","i","push","toString","substr","stringify","arr","offset","arguments","length","undefined","toLowerCase","TypeError","v4","options","buf","rnds","random","ProactiveChatTrigger","constructor","context","this","CartAmountTrigger","super","totalInCart","min","config","proactiveOnCartAmountMin","max","proactiveOnCartAmountMax","telemetry","debug","name","cart","_getCart","isEmpty","TotalAmount","retVal","getContextProvider","_objectSpread","eCommerceCustIsProactiveChat","eCommerceCustProactiveType","eCommerceCustProactiveShoppingCartAmount","getMessage","proactiveOnCartAmountMessage","proactiveDefaultMessage","getCartState","actionContext","CartNumberOfItemsTrigger","numberOfItems","proactiveOnCartNoOfItemsMin","proactiveOnCartNoOfItemsMax","TotalItems","eCommerceCustProactiveShoppingCartNumberOfItems","proactiveOnCartNoOfItemsMessage","CartSpecificProductTrigger","product","isValid","CartLines","_cart$cart$CartLines","_cart$cart$CartLines2","proactiveOnCartSpecificProductList","_this$props$config$pr","j","_this$props$config$pr2","ItemId","eCommerceCustProactiveShoppingCartSpecificProduct","proactiveOnCartSpecificProductMessage","ProactiveChatNames","DateRangeTrigger","start","_toDate","proactiveOnDateRangeStart","end","proactiveOnDateRangeEnd","now","Date","setHours","getTime","DateRange","eCommerceCustProactiveFromDate","toUTCString","eCommerceCustProactiveToDate","proactiveOnDateRangeMessage","date","dateParts","split","FromSpecificPageTrigger","proactiveOnFromSpecificPageList","fromSpecificPageTrimmed","trim","window","referrer","indexOf","FromSpecificPage","eCommerceCustProactiveCameFromPage","proactiveOnFromSpecificPageMessage","PageVisitTrigger","visits","cookieName","cookies","request","expdate","setTime","isConsentGiven","setConsentCookie","_updateVisitCounter","proactiveOnPageVisitNumber","clear","set","domain","location","hostname","path","pathname","expires","PageVisits","eCommerceCustProactiveNumberOfVisits","proactiveOnPageVisitMessage","get","value","SpecificCountryRegionTrigger","customerCountryCode","suggestedMarket","proactiveOnSpecificLocation","eCommerceCustProactiveCountryCode","SpecificLocation","proactiveOnSpecificCountryRegionMessage","SpecificPageTrigger","proactiveOnSpecificPageList","specificPageTrimmed","href","SpecificPage","proactiveOnSpecificPageMessage","WaitOnTimeTrigger","proactiveOnWaitTimeSeconds","isNaN","waitTimeInMilliseconds","Number","triggerTime","WaitOnTime","eCommerceCustProactiveTimeOnPage","proactiveOnWaitTimeMessage","ProactiveTriggers","ContextProvider","user","userId","uuidv4","_getContext","data","enabled","timeout","_proactiveCheck","e","exception","provider","_getProvider","_this$props$context$r","eCommerceOperatingUnitNumber","apiSettings","oun","eCommerceBaseUrl","baseUrl","eCommerceDataAreaId","channel","InventLocationDataAreaId","UserId","AccountNumber","customerAccountNumber","Email","emailAddress","FirstName","firstName","anonymousUserName","LastName","lastName","Name","eCommerceCustPageURL","eCommerceCustChatType","proactiveChatEnabled","proactive","_isProactive","getChatWrapperStyle","position","top","right","bottom","left","zIndex","display","justifyContent","getMaximizedChatWrapperStyle","isMobileDevice","height","width","padding","chatHeight","chatWidth","getChatButtonStyle","alignItems","backgroundColor","startChatButtonBackgroundColor","color","startChatButtonTextColor","borderColor","startChatButtonBorderColor","borderRadius","startChatButtonBorderRadius","borderStyle","startChatButtonBorderStyle","borderWidth","startChatButtonBorderWidth","storeLogoURL","cursor","outlineStyle","alignSelf","boxShadow","WebkitBoxShadow","MozBoxShadow","getButtonStoreLogoStyle","headerBackgroundColor","headerTextColor","marginRight","boxSizing","getChatStoreLogoStyle","margin","getChatMessagesStyle","minimized","getChatMessageHeader","chatHeaderHeight","backgroundImage","headerBackgroundImageURL","backgroundRepeat","flexDirection","chatBorderStyle","chatBorderWidth","getMinimizeButtonStyle","borderTop","borderLeft","borderRight","borderBottom","marginTop","getCloseButtonStyle","border","getChatMessageContent","chatBorderColor","getProactiveWrapperStyle","getProactiveMessageHeader","getProactiveMessageContent","getProactiveButtonStyle","outline","fontFormat","font","join","CommerceChatStore","setNewMessage","setNewMessageAction","powervaDirectlineTokenURL","botID","tenantID","url","fetch","method","then","r","json","token","app","pvaChatConnectorPowervaDirectlineTokenURL","pvaChatConnectorBotID","pvaChatConnectorTenantID","dispatch","next","action","payload","language","navigator","_activity$from","activity","from","role","triggerQuery","ChatCore","ReactWebChat","WebChat","setUserId","useState","useMemo","ctx","directLine","createDirectLine","directLineToken","commerceChatStore","store","createStore","actionHandler","styleOptions","bubbleStyling","bubbleBackground","bubbleTextColor","bubbleBorderColor","bubbleBorderRadius","bubbleBorderStyle","bubbleBorderWidth","bubbleFromUserBackground","bubbleFromUserTextColor","bubbleFromUserBorderColor","bubbleFromUserBorderRadius","bubbleFromUserBorderStyle","bubbleFromUserBorderWidth","getBubbleStyling","avatarStyling","avatarBorderRadius","avatarSize","botAvatarBackgroundColor","botAvatarImage","botAvatarInitials","userAvatarBackgroundColor","userAvatarImage","userAvatarInitials","showAvatarInGroup","getAvatarStyling","suggestedActionStyling","suggestedActionLayout","suggestedActionBackground","suggestedActionTextColor","suggestedActionBorderColor","suggestedActionBorderRadius","suggestedActionBorderStyle","suggestedActionBorderWidth","suggestedActionDisabledBorderStyle","suggestedActionDisabledBorderWidth","suggestedActionDisabledTextColor","suggestedActionHeight","suggestedActionImageHeight","suggestedActionsCarouselFlipperCursor","suggestedActionsCarouselFlipperBoxWidth","suggestedActionsCarouselFlipperSize","suggestedActionsFlowMaxHeight","suggestedActionsStackedHeight","suggestedActionsStackedOverflow","suggestedActionsStackedLayoutButtonMaxHeight","suggestedActionsStackedLayoutButtonTextWrap","getSuggestedActionStyling","otherStyling","groupTimestamp","sendTimeout","sendTimeoutForAttachments","timestampColor","timestampFormat","notificationDebounceTimeout","hideToaster","toasterHeight","toasterMaxHeight","toasterSingularMaxHeight","toastFontSize","toastIconWidth","toastSeparatorColor","toastTextPadding","toastErrorBackgroundColor","toastErrorColor","toastInfoBackgroundColor","toastInfoColor","toastSuccessBackgroundColor","toastSuccessColor","toastWarnBackgroundColor","toastWarnColor","typingAnimationBackgroundImage","typingAnimationDuration","typingAnimationHeight","typingAnimationWidth","videoHeight","markdownExternalLinkIconImage","markdownRespectCRLF","internalLiveRegionFadeAfter","accent","subtle","getOtherStyling","hideUploadButton","primaryFont","getChatStyleOptions","createElement","userID","Chat","loaded","setLoaded","setMinimized","newMessage","setToken","isProactive","setIsProactive","proactiveMessage","setProactiveMessage","closed","setClosed","setProvider","isMobile","variant","VariantType","Browser","Viewport","chatStyle","getChatStyling","ChatWrapperStyle","MaximizedChatWrapperStyle","ChatButtonStyle","ButtonStoreLogoStyle","ChatStoreLogoStyle","ChatMessagesStyle","ChatMessageHeader","MinimizeButtonStyle","CloseButtonStyle","ChatMessageContent","ProactiveWrapperStyle","ProactiveMessageHeader","ProactiveMessageContent","ProactiveButtonStyle","RedDotStyle","background","handleMaximizeButtonClick","useEffect","getDirectLineToken","catch","contextProvider","prov","init","setTimeout","isValidToken","style","src","alt","fontWeight","fontSize","chatButtonHeader","chatButtonText","flexGrow","handleMinimizeButtonClick","handleCloseButtonClick","version","viewBox","xmlSpace","d","fill","unableToLoadChatMessage","p","interval","setInterval","clearInterval","_renderReactFragment","slot","index","headerView","HeaderTag","HeaderContainer","HeaderTopBarContainer","MobileMenuContainer","MobileMenuBodyContainer","showCartIcon","cartIcon","showAccountBlock","accountBlock","logo","search","slots","smweSearch","AccountInfoDropdownParentContainer","AccountInfoDropdownPopoverConentContainer","accountInfoDropdownButton","signOutLink","signInLink","accountLinks","link","_renderDesktopAccountBlock","MobileMenuHeader","menuBar","smweMenuBar","ErrorComponent","CreditComponent","verbagePrefix","verbagePostfix","CookieComplianceAcceptButton","acceptCookiesButtonText","acceptCookiesButtonAriaLabel","telemetryContent","onClose","payLoad","getPayloadObject","attributes","getTelemetryAttributes","CookieComplianceLinks","_mapEditableLinks","linkdata","editableLinks","forEach","linkText","contentAction","etext","editableLink","ariaLabel","linkUrl","destinationUrl","openInNewTab","additionalProperties","onTelemetryClick","render","links","Msdyn365","editProps","onTextChange","requestContext","CookieCompliance","getTelemetryObject","telemetryPageName","friendlyName","handleLinkTextChange","linkIndex","event","_this$props$config$ac","actionLinks","target","handleContentChange","content","state","visible","cookieRef","_onDismiss","componentDidMount","setState","resources","acceptCookiesAriaLabel","moduleConfig","MsDyn365","isBrowser","viewProps","onDismiss","CookieComplianceBanner","moduleProps","classnames","ref","AlertProps","fade","Content","onEdit","ArrayExtensions","hasElements","acceptButton","renderView","reload","NavigationMenuView","currentLevel","_positionInSetOffset","escapeKey","_updateCategoryImage","categoryImageSrc","option","promotionalImage","altText","promotionalContent","imageSrc","promotionalItemImageSettings","imageSettings","categoryImage","categoryImageAltText","_handleDropdownToggle","parentId","isMobileView","activeMenu","parentMenu","showCategoryImage","imageSource","_resetFocus","menuNode","current","focus","_handleClickOutside","contains","_handleFocusOutside","relatedTarget","_closeSubmenu","_escFunction","keyCode","navDrawerList","Array","childNodes","navDrawerButton","firstChild","getAttribute","_getCategoryImage","categoryImageUrl","generateImageUrl","defaultImageSettings","viewports","xs","q","w","h","sm","md","lg","lazyload","_categoryImage$imageS","ImageData","Image","gridSettings","categoryImageSettings","loadFailureBehavior","_onDrawerChange","drawerState","drawerKeyValue","newPair","buttonText","isOpen","body","addEventListener","componentWillUnmount","removeEventListener","_renderMobileMenu","_renderDesktopMenu","menuItemData","Navigation","menuItem","posinset","_renderDrawerMenu","MenuList","tabIndex","_renderDisplay","setSize","subMenu","_renderDrawer","_renderLinkMenuItem","toggleButtonText","keyValue","keys","isDrawerOpen","colProps","Drawer","toggleButtonProps","openGlyph","onToggle","collapseProps","closeGlyph","glyphPlacement","_renderLinkText","menuSubItem","currentPos","_menuItem$subMenu2","_menuItem$subMenu","_renderDrawerLink","linkURL","_renderSpanMenuItem","ListItem","menuItemList","menuItemDatum","_getFromSubMenu","_createMenuItemList","subMenus","found","_renderSubMenu","_renderButtonMenuItem","IsSubMenu","enableMultiSupportMenu","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","levelClassName","menuOptions","idx","hasOptions","haveSubmenu","Math","round","_renderMenu","Button","onFocus","hoverEffect","isParent","Link","imagesource","shouldOpenNewTab","onMouseOver","_renderPromotionalLink","Span","level","currentItem","submenu","DivContainer","ImageDivContainer","showPromotionalContent","categoryImageDisplay","promotionalContentDisplay","DivContainerClass","_item$additionalPrope","_props$slots","_props$slots2","_props$slots3","smweCartIcon","SignUpText","LoyaltySignUp","handleHeadingChange","heading","handleMemberHeadingChange","memberHeading","_issueLoyalty","isAuthenticated","clicked","IssueLoyaltyInput","issueLoyalty","TelemetryConstant","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","shouldComponentUpdate","nextProps","nextState","_data$customerInforma","_this$props$context$a","signInUrl","termsUrl","loyaltyJoinUrl","origin","signInurl","completeClass","classname","loyaltyCard","hasLoyaltyAccount","result","CardTenderTypeValue","customerInformation","invalidAsyncCustomerState","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","infoMessageBar","accountProcessingPendingInfoMessage","params","isEditor","status","tag","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","disabled","detailsLink","viewLoyaltyPageText","termsLink","loyaltyTermsLinkText","__decorate","observer","AccountCustomerBalanceTileView","AccountCustomerBalanceTile","smweSideBar","MailingInputGroup","_internalValue","initialValue","_onInputChange","_onBlur","onChange","onBlur","placeholder","_renderValidation","onLoseFirstFocus","onValueChange","_validationMessage","validationMessage","errorMessage","observable","MailingListRedirectForm","_email","_emailRegex","_onSubmitForm","_onEmailChange","_lostFocus","title","description","formLabel","formPlaceholder","submitButtonText","Heading","RichTextComponent","mailingListRedirectForm__errorMessage","_isButtonDisabled","email","beenBlurred","_testForRequirement","_testForRegex","console","warn","field","regex","redirectUrl","encodeURIComponent","AccountCustomerBalanceTileLinks","_initState","reaction","hasError","apiGenericErrorMessage","customerResult","allowOnAccountPayment","AllowOnAccountPayment","isB2BSite","isChannelTypeB2B","enableCustomerAccountPayment","isCustomerAccountPaymentEnabled","headingTag","isDetailsLinkDisplayed","LinksComponent","account","Balance","CreditLimit","InvoiceAccountBalance","InvoiceAccountCreditLimit","noCreditErrorMessage","accountCreditVerbagePrefix","accountCreditVerbagePostfix","currencyCode","formatCurrency","customerCredit","customerCreditFormatted","toFixed","computed","LoyaltySignUpView","Fragment","_renderStoreSwitcher","activeStore","activeStoreClass","activeStoreIndex","storeSwitcher","storePopoverOpen","_togglePopover","storePopoverRef","createRef","activeLink","activeLinkIndex","storeSwitcherDesktop","startLinks","slice","endLinks","_insertStoreSwitcher","cartLink","getUrlSync","_renderAccountBlock","innerRef","Popover","placement","toggle","onKeyPress","storeHours","LoyaltyTermsModal","LoyaltyTermsCancel","loyaltyTermCancelAttributes","LoyaltyTermsSubmit","loyaltyTermSubmitAttributes","LoyaltyTermsAgree","loyaltyTermCheckboxAttributes","Modal","applicationNode","returnFocusRef","returnRef","modalHeader","ModalHeader","modalFooter","ModalFooter","ModalBody","cancelButton","cancelLoyaltyTermsText","submitButton","onSubmit","checked","joinLoyaltyTermsText","loyaltyTermsHeading","terms","agreeSection","checkbox","onCheck","agreeText","loyaltyAgreeToTerms","LoyaltyTerms","_toggle","_submit","_checkboxChecked","toggleRef","requestUrl","isJoining","substring","qsps","qsp","splitQsp","isModalOpen","hideToggle","serviceTerms","modalToggle","joinLoyaltytermsToggleText","CardNumber","card","redirectToLoyalty","getLoyaltyCardAsync","callerContext","fullCard","update","GetLoyaltyCardInput","CookieComplianceView","Alert","ProductComparisonButton","PureComponent","_addToProductComparison","_this$props$data$acco","ProductComparisonItem","RecordId","catalogId","ProductComparisonState","instance","accountInformation","addItem","_removeFromProductComparison","_this$props$data$acco2","removeItemById","comparisonItemId","_getNewState","_this$props$data$acco3","getItemId","products","_getProdutComparisonDataByCatalogId","canProductBeAddedToProductComparison","hasItemById","currentProductsCount","_className","_instanceId","Random","Guid","generateGuid","_shouldUsePreview","_productComparisonPreview","_renderProductComparisonPreview","productComparisonPreview","onClickHandler","isDisabled","ObjectExtensions","isNullOrUndefined","_this$props$data$acco4","listModifiedEvent","subscribe","instanceId","handler","getSnapshotBeforeUpdate","previousProps","_this$props$data$acco5","unsubscribe","buttonClassName","shouldDisplayText","removeFromComparisonButtonText","productComparisonButton","_renderProductComparisonButton","productsLimit","_getProductsLimit","addToComparisonLimitReachedButtonText","addToComparisonButtonText","viewport","productComparisonMobileProductsLimit","productComparisonDesktopProductsLimit","_this$props$data$acco6","_items$filter","getCatalogId","filter","PvaChatConnector","isOboRequest","botFrameworkCDNURL","pvaChatConnectorBotFrameworkCDNURL","script","async","crossOrigin","appendChild","LoyaltyTermsView","ProductComparisonButtonViewFunctionalComponent"],"mappings":"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","file":"static/js/20.2d03b1786b5dd1960a3f.chunk.js","sourcesContent":["import * as React from 'react';\r\n\r\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInSocialAccount, ISignInSocialItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {forgetPassword}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n \r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items,\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('sign-in-password-icon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = passwordState.type === 'password' ? 'text' : 'password';\r\n iconElement.className = iconElement.className === 'icon-show-password' ? 'icon-hide-password' :'icon-show-password';\r\n }\r\n};\r\n\r\nexport default SignInView;\r\n","import * as React from 'react';\r\n\r\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInSocialAccount, ISignInSocialItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n
{forgetPassword}
\r\n
\r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items,\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('sign-in-password-icon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = passwordState.type === 'password' ? 'text' : 'password';\r\n iconElement.className = iconElement.className === 'icon-show-password' ? 'icon-hide-password' :'icon-show-password';\r\n }\r\n};\r\n\r\nexport default SignInView;\r\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IProactiveChatTrigger } from '../../interfaces';\nimport { IChatContext, TContextProvider } from '../../../interfaces';\nimport { IPvaChatConnectorViewProps } from '../../msdyn365-pva-chat-connector';\n\n/**\n * ProactiveChatTrigger class - checks if Proactive Chat should be triggered, starts the chat and sets context\n */\nabstract class ProactiveChatTrigger implements IProactiveChatTrigger {\n public props: IPvaChatConnectorViewProps;\n public context: IChatContext;\n constructor(props: IPvaChatConnectorViewProps, context: IChatContext) {\n this.props = props;\n this.context = context;\n }\n\n /**\n * Generates Chat Context with included properties related to Proactive Chat\n * @returns TContextProvider - Chat Context\n */\n public abstract getContextProvider(): TContextProvider;\n\n /**\n * Generates chat welcome message to be used if Proactive Chat is triggered\n * @returns string - chat welcome message\n */\n public abstract getMessage(): string;\n\n /**\n * Validate specific trigger conditions if Proactive Chat should be initiated\n * @returns boolean (TRUE if Proactive Chat should be triggered)\n */\n public abstract validate(): Promise;\n}\n\nexport default ProactiveChatTrigger;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// @ts-ignore\nimport { getCartState, ICartState } from '@msdyn365-commerce/global-state';\nimport { IChatContext, TContextProvider } from '../../../interfaces';\nimport { IPvaChatConnectorViewProps } from '../../msdyn365-pva-chat-connector';\nimport ProactiveChatTrigger from './proactive-chat-trigger';\n\n/**\n * CartAmountTrigger class - proactive chat is triggered if cArt amount is in preset boundaries (config.proactiveOnCartAmountMin, config.proactiveOnCartAmountMax)\n */\nclass CartAmountTrigger extends ProactiveChatTrigger {\n private min?: number;\n private max?: number;\n private totalInCart: number = 0;\n\n constructor(props: IPvaChatConnectorViewProps, context: IChatContext) {\n super(props, context);\n this.min = this.props.config.proactiveOnCartAmountMin;\n this.max = this.props.config.proactiveOnCartAmountMax;\n this.props.context.telemetry.debug(\n `[Chat][${CartAmountTrigger.name}] Cart amount proactive chat initialized with min: '${this.min}'; max: '${this.max}'.`\n );\n }\n\n public async validate(): Promise {\n const cart = await this._getCart();\n if (cart.isEmpty) {\n this.props.context.telemetry.debug(`[Chat][${CartAmountTrigger.name}] Cart was empty. Validation returning 'false'.`);\n return false;\n }\n\n this.totalInCart = cart.cart.TotalAmount || 0;\n let retVal = false;\n if (this.min) {\n if (this.max) {\n retVal = this.min <= this.totalInCart && this.totalInCart <= this.max;\n } else {\n retVal = this.min <= this.totalInCart;\n }\n } else {\n if (this.max) {\n retVal = this.totalInCart <= this.max;\n } else {\n retVal = false;\n }\n }\n this.props.context.telemetry.debug(\n `[Chat][${CartAmountTrigger.name}] Validation result: '${retVal}'; Cart total: '${this.totalInCart}'.`\n );\n return retVal;\n }\n\n public getContextProvider(): TContextProvider {\n return () => {\n return {\n ...this.context,\n eCommerceCustIsProactiveChat: 'True',\n eCommerceCustProactiveType: 'Cart Amount',\n eCommerceCustProactiveShoppingCartAmount: `${this.totalInCart}`\n };\n };\n }\n\n public getMessage(): string {\n // @TODO: Add message processing if needed\n return this.props.config.proactiveOnCartAmountMessage || this.props.config.proactiveDefaultMessage;\n }\n\n private async _getCart(): Promise {\n return getCartState(this.props.context.actionContext);\n }\n}\n\nexport default CartAmountTrigger;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// @ts-ignore\nimport { getCartState, ICartState } from '@msdyn365-commerce/global-state';\nimport { IChatContext, TContextProvider } from '../../../interfaces';\nimport { IPvaChatConnectorViewProps } from '../../msdyn365-pva-chat-connector';\nimport ProactiveChatTrigger from './proactive-chat-trigger';\n\n/**\n * CartNumberOfItemsTrigger class - proactive chat is triggered if Cart Number of Items is in preset boundaries (config.proactiveOnCartNoOfItemsMin, config.proactiveOnCartNoOfItemsMax)\n */\nclass CartNumberOfItemsTrigger extends ProactiveChatTrigger {\n private min?: number;\n private max?: number;\n private numberOfItems: number = 0;\n\n constructor(props: IPvaChatConnectorViewProps, context: IChatContext) {\n super(props, context);\n this.min = this.props.config.proactiveOnCartNoOfItemsMin;\n this.max = this.props.config.proactiveOnCartNoOfItemsMax;\n\n this.props.context.telemetry.debug(\n `[${CartNumberOfItemsTrigger.name}] Cart number of items proactive chat initialized with min: '${this.min}'; max: '${this.max}'.`\n );\n }\n\n public async validate(): Promise {\n const cart = await this._getCart();\n if (cart.isEmpty) {\n this.props.context.telemetry.debug(`[Chat][${CartNumberOfItemsTrigger.name}] Cart was empty. Validation returning 'false'.`);\n return false;\n }\n\n this.numberOfItems = cart.cart.TotalItems || 0;\n\n let retVal = false;\n if (this.min) {\n if (this.max) {\n retVal = this.min <= this.numberOfItems && this.numberOfItems <= this.max;\n } else {\n retVal = this.min <= this.numberOfItems;\n }\n } else {\n if (this.max) {\n retVal = this.numberOfItems <= this.max;\n } else {\n retVal = false;\n }\n }\n this.props.context.telemetry.debug(\n `[${CartNumberOfItemsTrigger.name}] Validation result: '${retVal}'; Number of items in cart: '${this.numberOfItems}'.`\n );\n return retVal;\n }\n\n public getContextProvider(): TContextProvider {\n return () => {\n return {\n ...this.context,\n eCommerceCustIsProactiveChat: 'True',\n eCommerceCustProactiveType: 'Cart Number of Items',\n eCommerceCustProactiveShoppingCartNumberOfItems: `${this.numberOfItems}`\n };\n };\n }\n\n public getMessage(): string {\n // @TODO: Add message processing if needed\n return this.props.config.proactiveOnCartNoOfItemsMessage || this.props.config.proactiveDefaultMessage;\n }\n\n private async _getCart(): Promise {\n return getCartState(this.props.context.actionContext);\n }\n}\n\nexport default CartNumberOfItemsTrigger;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// @ts-ignore\nimport { getCartState, ICartState } from '@msdyn365-commerce/global-state';\nimport { TContextProvider } from '../../../interfaces';\nimport ProactiveChatTrigger from './proactive-chat-trigger';\n\n/**\n * CartSpecificProductTrigger class - proactive chat is triggered if a Product in the Cart is in preset list of products (config.proactiveOnCartSpecificProductList)\n */\nclass CartSpecificProductTrigger extends ProactiveChatTrigger {\n private product: string = '';\n\n public async validate(): Promise {\n let isValid = false;\n const cart = await this._getCart();\n if (!cart.isEmpty) {\n if (cart.cart.CartLines) {\n this.props.context.telemetry.debug(\n `[${CartSpecificProductTrigger.name}] Number of cart line items was '${cart.cart.CartLines?.length}'`\n );\n for (let i = 0; i < cart.cart.CartLines?.length; i++) {\n if (cart.cart.CartLines[i]) {\n if (this.props.config.proactiveOnCartSpecificProductList) {\n this.props.context.telemetry.debug(\n `[${CartSpecificProductTrigger.name}] Number of cart specific products was configured for proactive chat was '${this.props.config.proactiveOnCartSpecificProductList?.length}'`\n );\n // Find first item, from user-defined list of products, that matches the cart lines' itemId in the cart.\n for (let j = 0; j < (this.props.config.proactiveOnCartSpecificProductList?.length || 0); j++) {\n if (\n this.props.config.proactiveOnCartSpecificProductList &&\n cart.cart.CartLines[i].ItemId &&\n this.props.config.proactiveOnCartSpecificProductList[j] === cart.cart.CartLines[i].ItemId\n ) {\n this.props.context.telemetry.debug(\n `[${CartSpecificProductTrigger.name}] Matched cart line item ID '${cart.cart.CartLines[i].ItemId}' against user-defined list of specific products for proactive chat.`\n );\n isValid = true;\n break;\n }\n }\n }\n } else {\n // Rest of the CartLines are undefined\n break;\n }\n }\n } else {\n this.props.context.telemetry.debug(`[Chat][${CartSpecificProductTrigger.name}] Cart did not contain any cart lines.`);\n }\n } else {\n this.props.context.telemetry.debug(`[Chat][${CartSpecificProductTrigger.name}] Cart was empty.`);\n }\n this.props.context.telemetry.debug(`[Chat][${CartSpecificProductTrigger.name}] Validation returning '${isValid}'.`);\n return isValid;\n }\n\n public getContextProvider(): TContextProvider {\n return () => {\n return {\n ...this.context,\n eCommerceCustIsProactiveChat: 'True',\n eCommerceCustProactiveType: 'Cart Specific Product',\n eCommerceCustProactiveShoppingCartSpecificProduct: `${this.product}`\n };\n };\n }\n\n public getMessage(): string {\n // @TODO: Add message processing if needed\n return this.props.config.proactiveOnCartSpecificProductMessage || this.props.config.proactiveDefaultMessage;\n }\n\n private async _getCart(): Promise {\n return getCartState(this.props.context.actionContext);\n }\n}\n\nexport default CartSpecificProductTrigger;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport enum ProactiveChatNames {\n DateRange = 'Date Range',\n FromSpecificPage = 'From Specific Page',\n PageVisits = 'Page Visits',\n SpecificLocation = 'Specific Location',\n SpecificPage = 'Specific Page',\n WaitOnTime = 'Wait On Time'\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ProactiveChatNames } from '../../helpers/consts';\nimport { IChatContext, TContextProvider } from '../../../interfaces';\nimport { IPvaChatConnectorViewProps } from '../../msdyn365-pva-chat-connector';\nimport ProactiveChatTrigger from './proactive-chat-trigger';\n\n/**\n * DateRangeTrigger class - proactive chat is triggered if current date is in preset date boundaries (config.proactiveOnDateRangeStart, config.proactiveOnDateRangeEnd)\n */\nclass DateRangeTrigger extends ProactiveChatTrigger {\n private start?: Date;\n private end?: Date;\n\n constructor(props: IPvaChatConnectorViewProps, context: IChatContext) {\n super(props, context);\n this.start = this._toDate(this.props.config.proactiveOnDateRangeStart);\n this.end = this._toDate(this.props.config.proactiveOnDateRangeEnd);\n\n this.props.context.telemetry.debug(\n `[${DateRangeTrigger.name}] Proactive chat initialized with startDate: '${this.start}'; max: '${this.end}'.`\n );\n }\n\n public async validate(): Promise {\n const now = new Date();\n now.setHours(0, 0, 0, 0);\n\n let retVal = false;\n if (this.start) {\n if (this.end) {\n retVal = this.start.getTime() <= now.getTime() && now.getTime() <= this.end.getTime();\n } else {\n retVal = this.start.getTime() <= now.getTime();\n }\n } else if (this.end) {\n retVal = now.getTime() <= this.end.getTime();\n }\n\n this.props.context.telemetry.debug(\n `[${DateRangeTrigger.name}] Validation result: '${retVal}'; Current date used to compare: '${now}'.`\n );\n return retVal;\n }\n\n public getContextProvider(): TContextProvider {\n return () => {\n return {\n ...this.context,\n eCommerceCustIsProactiveChat: 'True',\n eCommerceCustProactiveType: ProactiveChatNames.DateRange,\n eCommerceCustProactiveFromDate: this.start ? this.start.toUTCString() : '',\n eCommerceCustProactiveToDate: this.end ? this.end.toUTCString() : ''\n };\n };\n }\n\n public getMessage(): string {\n // @TODO: Add message processing if needed\n return this.props.config.proactiveOnDateRangeMessage || this.props.config.proactiveDefaultMessage;\n }\n\n /**\n * Converts string(us-en) to date\n * @param date string (mm/dd/yyyy)\n * @returns Date or undefined\n */\n private _toDate(date?: string): Date | undefined {\n if (date) {\n const dateParts = date.split('/');\n return new Date(+dateParts[2], +dateParts[1] - 1, +dateParts[0]);\n } else {\n return undefined;\n }\n }\n}\n\nexport default DateRangeTrigger;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ProactiveChatNames } from '../../helpers/consts';\nimport { TContextProvider } from '../../../interfaces';\nimport ProactiveChatTrigger from './proactive-chat-trigger';\n\n/**\n * FromSpecificPageTrigger class - proactive chat is triggered if user has come from specific page (the one listed in config.proactiveOnFromSpecificPageList)\n */\nclass FromSpecificPageTrigger extends ProactiveChatTrigger {\n public async validate(): Promise {\n let isValid = false;\n if (this.props.config.proactiveOnFromSpecificPageList) {\n this.props.context.telemetry.debug(\n `[${FromSpecificPageTrigger.name}] Number of items in user-defined list of 'From Specific Page' was '${this.props.config.proactiveOnFromSpecificPageList?.length}'.`\n );\n for (let i = 0; i < (this.props.config.proactiveOnFromSpecificPageList?.length || 0); i++) {\n const fromSpecificPageTrimmed: string = this.props.config.proactiveOnFromSpecificPageList[i].trim();\n this.props.context.telemetry.debug(\n `[Chat][${FromSpecificPageTrigger.name}] Current page URL: '${window.document.referrer}'.`\n );\n this.props.context.telemetry.debug(\n `[${FromSpecificPageTrigger.name}] Current item from user-defined list of 'From Specific Page': '${fromSpecificPageTrimmed}'.`\n );\n\n if (window.document.referrer.indexOf(fromSpecificPageTrimmed) > -1) {\n isValid = true;\n break;\n }\n }\n } else {\n this.props.context.telemetry.debug(\n `[Chat][${FromSpecificPageTrigger.name}] User-defined 'From Specific Page' list was undefined.`\n );\n }\n this.props.context.telemetry.debug(`[Chat][${FromSpecificPageTrigger.name}] Validation returning '${isValid}'.`);\n return isValid;\n }\n public getContextProvider(): TContextProvider {\n return () => {\n return {\n ...this.context,\n eCommerceCustIsProactiveChat: 'True',\n eCommerceCustProactiveType: ProactiveChatNames.FromSpecificPage,\n eCommerceCustProactiveCameFromPage: window.document.referrer\n };\n };\n }\n public getMessage(): string {\n // @TODO: Add message processing if needed\n return this.props.config.proactiveOnFromSpecificPageMessage || this.props.config.proactiveDefaultMessage;\n }\n}\n\nexport default FromSpecificPageTrigger;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ICookieContext } from '@msdyn365-commerce/core-internal/dist/types/interfaces/context/ICookieContext';\nimport { ProactiveChatNames } from '../../helpers/consts';\nimport { IChatContext, TContextProvider } from '../../../interfaces';\nimport { IPvaChatConnectorViewProps } from '../../msdyn365-pva-chat-connector';\nimport ProactiveChatTrigger from './proactive-chat-trigger';\n\n/**\n * PageVisitTrigger class - proactive chat is triggered if user has visited current page for (config.proactiveOnPageVisitNumber) or more times\n */\nclass PageVisitTrigger extends ProactiveChatTrigger {\n public visits: number = 0;\n private cookieName: string = 'TimesPageVisited';\n private expdate: Date;\n private cookies: ICookieContext;\n\n constructor(props: IPvaChatConnectorViewProps, context: IChatContext) {\n super(props, context);\n this.cookies = this.props.context.request.cookies;\n this.expdate = new Date();\n // Set expiry date to 365 days.\n this.expdate.setTime(this.expdate.getTime() + 24 * 60 * 60 * 1000 * 365);\n this.props.context.telemetry.debug(`[Chat][${PageVisitTrigger.name}] Cookie expiry date set to: '${this.expdate}'.`);\n\n this.props.context.telemetry.debug(`[Chat][${PageVisitTrigger.name}] Cookie context is given: '${this.cookies.isConsentGiven()}'.`);\n if (this.cookies.isConsentGiven()) {\n this.cookies.setConsentCookie();\n }\n\n this._updateVisitCounter();\n }\n\n public async validate(): Promise {\n let retVal: boolean = false;\n\n if (this.props.config.proactiveOnPageVisitNumber) {\n retVal = this.visits >= this.props.config.proactiveOnPageVisitNumber;\n }\n\n this.props.context.telemetry.debug(`[Chat][${PageVisitTrigger.name}] Validation result: '${retVal}'.`);\n return retVal;\n }\n\n public clear(): void {\n this.props.context.telemetry.debug(`[Chat][${PageVisitTrigger.name}] Clearing cookie for page visit counter.`);\n this.cookies.set(this.cookieName, 0, {\n domain: window.location.hostname,\n path: window.location.pathname,\n expires: this.expdate\n });\n }\n\n public getContextProvider(): TContextProvider {\n return () => {\n return {\n ...this.context,\n eCommerceCustIsProactiveChat: 'True',\n eCommerceCustProactiveType: ProactiveChatNames.PageVisits,\n eCommerceCustProactiveNumberOfVisits: `${this.visits}`\n };\n };\n }\n\n public getMessage(): string {\n // @TODO: Add message processing if needed\n return this.props.config.proactiveOnPageVisitMessage || this.props.config.proactiveDefaultMessage;\n }\n\n private _updateVisitCounter(): void {\n this.visits = this.cookies.get(this.cookieName).value || 0;\n this.props.context.telemetry.debug(`[Chat][${PageVisitTrigger.name}] Page visit counter BEFORE update: '${this.visits}.`);\n ++this.visits;\n this.props.context.telemetry.debug(`[Chat][${PageVisitTrigger.name}] Page visit counter AFTER update: '${this.visits}.`);\n\n this.cookies.set(this.cookieName, this.visits, {\n domain: window.location.hostname,\n path: window.location.pathname,\n expires: this.expdate\n });\n }\n}\n\nexport default PageVisitTrigger;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ProactiveChatNames } from '../../helpers/consts';\nimport { IExtendedRequest } from '../../interfaces';\nimport { IChatContext, TContextProvider } from '../../../interfaces';\nimport { IPvaChatConnectorViewProps } from '../../msdyn365-pva-chat-connector';\nimport ProactiveChatTrigger from './proactive-chat-trigger';\n\n/**\n * SpecificPageTrigger class - proactive chat is triggered if user geographically uses the website from specific country/regions(config.proactiveOnSpecificCountryRegionCountry)\n */\nclass SpecificCountryRegionTrigger extends ProactiveChatTrigger {\n private customerCountryCode: string;\n constructor(props: IPvaChatConnectorViewProps, context: IChatContext) {\n super(props, context);\n this.customerCountryCode = (this.props.context.request).suggestedMarket || 'n/a';\n this.props.context.telemetry.debug(\n `[${SpecificCountryRegionTrigger.name}] Customer country code set to: '${this.customerCountryCode}.'`\n );\n }\n\n public async validate(): Promise {\n const retVal: boolean = this.props.config.proactiveOnSpecificLocation\n ? this.props.config.proactiveOnSpecificLocation.toLowerCase().indexOf(this.customerCountryCode.toLowerCase()) > -1\n : false;\n this.props.context.telemetry.debug(`[Chat][${SpecificCountryRegionTrigger.name}] Validation returning '${retVal}'.`);\n return retVal;\n }\n public getContextProvider(): TContextProvider {\n return () => {\n return {\n ...this.context,\n eCommerceCustIsProactiveChat: 'True',\n eCommerceCustProactiveCountryCode: this.props.config.proactiveOnSpecificLocation || '',\n eCommerceCustProactiveType: ProactiveChatNames.SpecificLocation\n };\n };\n }\n public getMessage(): string {\n // @TODO: Add message processing if needed\n return this.props.config.proactiveOnSpecificCountryRegionMessage || this.props.config.proactiveDefaultMessage;\n }\n}\n\nexport default SpecificCountryRegionTrigger;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ProactiveChatNames } from '../../helpers/consts';\nimport { TContextProvider } from '../../../interfaces';\nimport ProactiveChatTrigger from './proactive-chat-trigger';\n\n/**\n * SpecificPageTrigger class - proactive chat is triggered if current page is listed in config.proactiveOnSpecificPageList\n */\nclass SpecificPageTrigger extends ProactiveChatTrigger {\n public async validate(): Promise {\n let isValid = false;\n if (this.props.config.proactiveOnSpecificPageList) {\n this.props.context.telemetry.debug(\n `[${SpecificPageTrigger.name}] Number of items in user-defined list of 'Specific Pages' was '${this.props.config.proactiveOnSpecificPageList?.length}'.`\n );\n for (let i = 0; i < (this.props.config.proactiveOnSpecificPageList?.length || 0); i++) {\n const specificPageTrimmed: string = this.props.config.proactiveOnSpecificPageList[i].trim();\n this.props.context.telemetry.debug(`[] Current location URL: ${window.location.href}.`);\n this.props.context.telemetry.debug(`[] Current item from user-defined list of 'Specific Page': ${specificPageTrimmed}.`);\n if (window.location.href.indexOf(specificPageTrimmed) > -1) {\n isValid = true;\n break;\n }\n }\n } else {\n this.props.context.telemetry.debug(`[Chat][${SpecificPageTrigger.name}] User-defined 'Specific Page' list was undefined.`);\n }\n this.props.context.telemetry.debug(`[Chat][${SpecificPageTrigger.name}] Validation returning '${isValid}'.`);\n return isValid;\n }\n\n public getContextProvider(): TContextProvider {\n return () => {\n return {\n ...this.context,\n eCommerceCustIsProactiveChat: 'True',\n eCommerceCustProactiveType: ProactiveChatNames.SpecificPage\n };\n };\n }\n\n public getMessage(): string {\n // @TODO: Add message processing if needed\n return this.props.config.proactiveOnSpecificPageMessage || this.props.config.proactiveDefaultMessage;\n }\n}\n\nexport default SpecificPageTrigger;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ProactiveChatNames } from '../../helpers/consts';\nimport { IChatContext, TContextProvider } from '../../../interfaces';\nimport { IPvaChatConnectorViewProps } from '../../msdyn365-pva-chat-connector';\nimport ProactiveChatTrigger from './proactive-chat-trigger';\n\n/**\n * WaitOnTimeTrigger - proactive chat is triggered if user stays on current page for more than (config.proactiveOnWaitTimeSeconds) seconds\n */\nclass WaitOnTimeTrigger extends ProactiveChatTrigger {\n private waitTimeInMilliseconds: number | undefined;\n\n constructor(props: IPvaChatConnectorViewProps, context: IChatContext) {\n super(props, context);\n if (this.props.config.proactiveOnWaitTimeSeconds && !isNaN(this.props.config.proactiveOnWaitTimeSeconds)) {\n this.waitTimeInMilliseconds = Number(this.props.config.proactiveOnWaitTimeSeconds) * 1000;\n this.props.context.telemetry.debug(\n `[Chat][${WaitOnTimeTrigger.name}] Wait time (ms) set to: '${this.waitTimeInMilliseconds}'.`\n );\n }\n }\n\n public async validate(): Promise {\n const retVal: boolean = this.waitTimeInMilliseconds !== undefined;\n this.props.context.telemetry.debug(`[Chat][${WaitOnTimeTrigger.name}] Validation returning '${retVal}'.`);\n return retVal;\n }\n\n public getContextProvider(): TContextProvider {\n const triggerTime = Date.now() + (this.waitTimeInMilliseconds || 0);\n return () => {\n return triggerTime > Date.now()\n ? this.context\n : {\n ...this.context,\n eCommerceCustIsProactiveChat: 'True',\n eCommerceCustProactiveType: ProactiveChatNames.WaitOnTime,\n eCommerceCustProactiveTimeOnPage: `${this.waitTimeInMilliseconds ? this.waitTimeInMilliseconds : 0}`\n };\n };\n }\n\n public getMessage(): string {\n // @TODO: Add message processing if needed\n return this.props.config.proactiveOnWaitTimeMessage || this.props.config.proactiveDefaultMessage;\n }\n}\n\nexport default WaitOnTimeTrigger;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport CartAmountTrigger from './triggers/cart-amount-trigger';\nimport CartNumberOfItemsTrigger from './triggers/cart-number-of-items-trigger';\nimport CartSpecificProductTrigger from './triggers/cart-specific-product-trigger';\nimport DateRangeTrigger from './triggers/date-range-trigger';\nimport FromSpecificPageTrigger from './triggers/from-specific-page-trigger';\nimport PageVisitTrigger from './triggers/page-visits-trigger';\nimport SpecificCountryRegionTrigger from './triggers/specific-CountryRegion-trigger';\nimport SpecificPageTrigger from './triggers/specific-page-trigger';\nimport WaitOnTimeTrigger from './triggers/wait-on-time-trigger';\n\ntype ProactiveChat =\n | typeof DateRangeTrigger\n | typeof SpecificPageTrigger\n | typeof FromSpecificPageTrigger\n | typeof PageVisitTrigger\n | typeof SpecificCountryRegionTrigger\n | typeof CartAmountTrigger\n | typeof CartNumberOfItemsTrigger\n | typeof CartSpecificProductTrigger\n | typeof WaitOnTimeTrigger;\n\n/**\n * List of Proactive Chat Validators in order of validation (first proactive chat that pass validation is triggered, the rest are ommited)\n */\nexport const ProactiveTriggers: ProactiveChat[] = [\n DateRangeTrigger,\n SpecificPageTrigger,\n FromSpecificPageTrigger,\n PageVisitTrigger,\n SpecificCountryRegionTrigger,\n CartAmountTrigger,\n CartNumberOfItemsTrigger,\n CartSpecificProductTrigger,\n WaitOnTimeTrigger\n];\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IRequestContextUser } from '@msdyn365-commerce/core-internal/dist/types/interfaces/context/IRequestContext';\nimport { v4 as uuidv4 } from 'uuid';\nimport { ProactiveTriggers } from '../proactive';\nimport ProactiveChatTrigger from '../proactive/triggers/proactive-chat-trigger';\nimport { IPvaChatConnectorViewProps } from '../msdyn365-pva-chat-connector';\nimport { IProactiveData } from './../interfaces';\nimport { IChatContext, TContextProvider } from '../../interfaces';\n\n/**\n *\n * ContextProvider class - generates chat context, and checks for proactive triggers\n */\nclass ContextProvider {\n public data: IProactiveData;\n public props: IPvaChatConnectorViewProps;\n private user: IRequestContextUser;\n private userId: string;\n private context: IChatContext;\n private provider: TContextProvider | undefined;\n\n constructor(props: IPvaChatConnectorViewProps) {\n this.props = props;\n this.user = this.props.context.request.user;\n this.userId = `dl_${uuidv4()}`;\n this.context = this._getContext();\n // Proactive Chat related data\n this.data = {\n enabled: false,\n timeout: this.props.config.proactiveOnWaitTimeSeconds || 0,\n message: this.props.config.proactiveDefaultMessage\n };\n }\n\n /**\n * Executes Proactive Chat validation\n * @returns TContextProvider - a function returning IChatContext object\n */\n public async init(): Promise {\n try {\n await this._proactiveCheck();\n } catch (e) {\n // Use ?debug=true to see telemetry\n // If previous block fails, chat will still be available (no need to display any errors to user)\n this.props.telemetry.exception(e);\n }\n return this.provider || this._getProvider();\n }\n\n /**\n * Returns TContextProvider - a function returning IChatContext object\n */\n private _getProvider(): TContextProvider {\n return () => {\n return {\n eCommerceOperatingUnitNumber: this.props.context.request.apiSettings.oun,\n eCommerceBaseUrl: this.props.context.request.apiSettings.baseUrl,\n eCommerceDataAreaId: this.props.context.request.channel?.InventLocationDataAreaId,\n UserId: this.userId,\n // eCommerceCust...\n AccountNumber: this.user.customerAccountNumber ? this.user.customerAccountNumber : 'N/A',\n Email: this.user.emailAddress ? this.user.emailAddress : 'N/A',\n FirstName: this.user.firstName ? this.user.firstName : this.props.config.anonymousUserName,\n LastName: this.user.lastName ? this.user.lastName : 'N/A',\n Name: this.user.name ? this.user.name : this.props.config.anonymousUserName,\n eCommerceCustPageURL: window.location.href,\n eCommerceCustChatType: 'pva',\n // Proactive chat\n eCommerceCustIsProactiveChat: 'False',\n eCommerceCustProactiveType: 'N/A',\n // Date Range\n eCommerceCustProactiveFromDate: 'N/A',\n eCommerceCustProactiveToDate: 'N/A',\n // From Specific Page\n eCommerceCustProactiveCameFromPage: 'N/A',\n // No. Page Visits\n eCommerceCustProactiveNumberOfVisits: 'N/A',\n // Specific CountryRegion\n eCommerceCustProactiveCountryCode: 'N/A',\n // Specific Page => eCommerceCustPageURL\n // eCommerceCustProactiveSpecificPage: 'N/A',\n // Wait On Time\n eCommerceCustProactiveTimeOnPage: 'N/A',\n // Shopping cart amount\n eCommerceCustProactiveShoppingCartAmount: 'N/A',\n // Shopping cart number of items\n eCommerceCustProactiveShoppingCartNumberOfItems: 'N/A',\n // Shopping cart specific product\n eCommerceCustProactiveShoppingCartSpecificProduct: 'N/A'\n };\n };\n }\n\n /**\n * Returns default IChatContext object\n */\n private _getContext(): IChatContext {\n return this._getProvider()();\n }\n\n /**\n * Validates proactive triggers to check if proactive chat should be initialized\n */\n private async _proactiveCheck(): Promise {\n if (this.props.config.proactiveChatEnabled) {\n for (let i = 0; i < ProactiveTriggers.length; i++) {\n const proactive = new ProactiveTriggers[i](this.props, this.context);\n // Only first detected proactive trigger gets executed\n if (await this._isProactive(proactive)) {\n this.props.context.telemetry.debug(`First detected proactive trigger to be executed: ${proactive}`);\n break;\n }\n }\n }\n }\n\n /**\n * Validates if proactive chat should be triggered for given ProactiveTrigger\n * @param proactive ProactiveChatTrigger\n * @returns boolean\n */\n private async _isProactive(proactive: ProactiveChatTrigger): Promise {\n this.data.enabled = await proactive.validate();\n if (this.data.enabled) {\n this.provider = proactive.getContextProvider();\n this.data.message = proactive.getMessage();\n }\n return this.data.enabled;\n }\n}\n\nexport default ContextProvider;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/**\n * Style generating functions\n */\nimport { IAvatarStyling, IBubbleStyling, IChatCustomStyle, IChatStyling, IOtherStyling, ISuggestedActionStyling } from '../interfaces';\nimport { IMsdyn365PvaChatConnectorConfig } from '../msdyn365-pva-chat-connector.props.autogenerated';\n\nconst getChatWrapperStyle = (config: IMsdyn365PvaChatConnectorConfig): React.CSSProperties => {\n return {\n position: config.position || 'inherit',\n top: config.top ? config.top : 'inherit',\n right: config.right ? config.right : 'inherit',\n bottom: config.bottom ? config.bottom : 'inherit',\n left: config.left ? config.left : 'inherit',\n zIndex: 1000,\n display: 'flex',\n justifyContent: 'flex-end'\n };\n};\n\nconst getMaximizedChatWrapperStyle = (config: IMsdyn365PvaChatConnectorConfig, isMobileDevice: boolean): React.CSSProperties => {\n if (isMobileDevice) {\n return {\n height: '90%',\n width: '100%',\n bottom: '0.5em',\n right: '0',\n padding: '5px'\n };\n }\n return {\n height: config.chatHeight ? config.chatHeight : '80%',\n width: config.chatWidth ? config.chatWidth : 'inherit'\n };\n};\n\nconst getChatButtonStyle = (config: IMsdyn365PvaChatConnectorConfig): React.CSSProperties => {\n return {\n display: 'flex',\n alignItems: 'center',\n backgroundColor: config.startChatButtonBackgroundColor || 'white',\n color: config.startChatButtonTextColor || 'inherit',\n borderColor: config.startChatButtonBorderColor || 'inherit',\n borderRadius: config.startChatButtonBorderRadius || '0px',\n borderStyle: config.startChatButtonBorderStyle || 'solid',\n borderWidth: config.startChatButtonBorderWidth ? config.startChatButtonBorderWidth : '0px',\n padding: config.storeLogoURL ? '2px 20px 2px 2px' : '10px 20px 10px 20px',\n cursor: 'pointer',\n outlineStyle: 'none',\n alignSelf: 'flex-end',\n boxShadow: '0 0 4px rgba(102,102,102,.5)',\n WebkitBoxShadow: '0 0 4px rgba(102,102,102,.5)',\n MozBoxShadow: '0 0 4px rgba(102,102,102,.5)'\n };\n};\n\nconst getButtonStoreLogoStyle = (config: IMsdyn365PvaChatConnectorConfig): React.CSSProperties => {\n return {\n backgroundColor: config.headerBackgroundColor || 'inherit',\n color: config.headerTextColor || 'inherit',\n borderRadius: '50%',\n padding: '11px',\n width: '30px',\n height: '30px',\n marginRight: '12px',\n borderStyle: 'solid',\n borderWidth: '1px',\n boxSizing: 'content-box'\n };\n};\n\nconst getChatStoreLogoStyle = (config: IMsdyn365PvaChatConnectorConfig): React.CSSProperties => {\n return {\n backgroundColor: config.headerBackgroundColor || 'inherit',\n color: config.headerTextColor || 'inherit',\n borderRadius: '50%',\n padding: '11px',\n width: '30px',\n height: '30px',\n margin: '5px 12px 5px 5px',\n alignSelf: 'center',\n borderStyle: 'solid',\n borderWidth: '1px',\n boxSizing: 'content-box'\n };\n};\n\nconst getChatMessagesStyle = (config: IMsdyn365PvaChatConnectorConfig, minimized: boolean): React.CSSProperties => {\n return {\n display: minimized ? 'none' : 'block',\n backgroundColor: config.backgroundColor || 'White',\n height: '100%',\n width: '100%',\n boxSizing: 'border-box',\n position: 'relative'\n };\n};\n\nconst getChatMessageHeader = (config: IMsdyn365PvaChatConnectorConfig): React.CSSProperties => {\n config.chatHeaderHeight = config.chatHeaderHeight || '70px';\n return {\n backgroundColor: config.headerBackgroundColor || 'inherit',\n backgroundImage: `url(\"${config.headerBackgroundImageURL}\")` || 'none',\n color: config.headerTextColor || 'inherit',\n backgroundRepeat: 'no-repeat',\n display: 'flex',\n alignItems: 'flex-start',\n flexDirection: 'row',\n width: '100%',\n position: 'absolute',\n top: config.chatHeaderHeight ? `-${config.chatHeaderHeight}` : '',\n height: config.chatHeaderHeight,\n borderColor: config.headerBackgroundColor ? config.headerBackgroundColor : 'inherit',\n borderStyle: config.chatBorderStyle ? config.chatBorderStyle : 'none',\n borderWidth: config.chatBorderWidth ? config.chatBorderWidth : '0px'\n };\n};\n\nconst getMinimizeButtonStyle = (config: IMsdyn365PvaChatConnectorConfig): React.CSSProperties => {\n config.chatHeaderHeight = config.chatHeaderHeight || '70px';\n return {\n borderTop: 'none',\n borderLeft: 'none',\n borderRight: 'none',\n borderBottom: `solid 2px ${config.headerTextColor || 'White'}`,\n backgroundColor: 'transparent',\n padding: '5px 10px 3px 10px',\n cursor: 'pointer',\n outlineStyle: 'none',\n marginTop: '7px',\n marginRight: '7px'\n };\n};\n\nconst getCloseButtonStyle = (config: IMsdyn365PvaChatConnectorConfig): React.CSSProperties => {\n config.chatHeaderHeight = config.chatHeaderHeight || '70px';\n return {\n border: 'none',\n color: config.headerTextColor || 'White',\n backgroundColor: 'transparent',\n padding: '0px 0px 0px 7px',\n cursor: 'pointer',\n outlineStyle: 'none',\n marginTop: '7px',\n marginRight: '7px'\n };\n};\n\nconst getChatMessageContent = (config: IMsdyn365PvaChatConnectorConfig): React.CSSProperties => {\n config.chatHeaderHeight = config.chatHeaderHeight || '70px';\n return {\n height: '100%',\n width: '100%',\n borderColor: config.chatBorderColor ? config.chatBorderColor : 'inherit',\n borderStyle: config.chatBorderStyle ? config.chatBorderStyle : 'none',\n borderWidth: config.chatBorderWidth ? config.chatBorderWidth : '0px'\n };\n};\n\nconst getProactiveWrapperStyle = (config: IMsdyn365PvaChatConnectorConfig): React.CSSProperties => {\n return {\n flexDirection: 'column',\n display: 'flex',\n justifyContent: 'flex-end',\n backgroundColor: config.backgroundColor || 'White'\n };\n};\n\nconst getProactiveMessageHeader = (config: IMsdyn365PvaChatConnectorConfig): React.CSSProperties => {\n config.chatHeaderHeight = config.chatHeaderHeight || '70px';\n return {\n backgroundColor: config.headerBackgroundColor || 'inherit',\n backgroundImage: `url(\"${config.headerBackgroundImageURL}\")` || 'none',\n color: config.headerTextColor || 'inherit',\n backgroundRepeat: 'no-repeat',\n display: 'flex',\n alignItems: 'flex-start',\n flexDirection: 'row',\n boxSizing: 'border-box',\n width: '100%',\n height: config.chatHeaderHeight,\n borderColor: config.headerBackgroundColor ? config.headerBackgroundColor : 'inherit',\n borderStyle: config.chatBorderStyle ? config.chatBorderStyle : 'none',\n borderWidth: config.chatBorderWidth ? config.chatBorderWidth : '0px'\n };\n};\n\nconst getProactiveMessageContent = (config: IMsdyn365PvaChatConnectorConfig): React.CSSProperties => {\n config.chatHeaderHeight = config.chatHeaderHeight || '70px';\n return {\n width: '100%',\n padding: '10px 20px',\n boxSizing: 'border-box',\n borderColor: config.chatBorderColor ? config.chatBorderColor : 'inherit',\n borderStyle: config.chatBorderStyle ? config.chatBorderStyle : 'none',\n borderWidth: config.chatBorderWidth ? config.chatBorderWidth : '0px'\n };\n};\n\nconst getProactiveButtonStyle = (config: IMsdyn365PvaChatConnectorConfig): React.CSSProperties => {\n config.chatHeaderHeight = config.chatHeaderHeight || '70px';\n return {\n color: config.headerTextColor || 'inherit',\n cursor: 'pointer',\n padding: '5px 10px',\n outline: 'none',\n border: 'none',\n backgroundColor: config.headerBackgroundColor || 'inherit',\n borderRadius: '25px'\n };\n};\n\nconst getRedDotStyle = (config: IMsdyn365PvaChatConnectorConfig): React.CSSProperties => {\n return {\n background: 'Red',\n borderRadius: '50%',\n height: '5px',\n width: '5px',\n position: 'absolute',\n right: '10px',\n bottom: '33px'\n };\n};\n\n/**\n * Generates styles for the chat wrapper, and proactive chat parts\n * @param config IMsdyn365PvaChatConnectorConfig\n * @param minimized boolean\n * @returns IChatCustomStyle\n */\nexport const getChatStyling = (config: IMsdyn365PvaChatConnectorConfig, minimized: boolean, isMobileDevice: boolean): IChatCustomStyle => {\n return {\n ChatWrapperStyle: getChatWrapperStyle(config),\n MaximizedChatWrapperStyle: getMaximizedChatWrapperStyle(config, isMobileDevice),\n ChatButtonStyle: getChatButtonStyle(config),\n ButtonStoreLogoStyle: getButtonStoreLogoStyle(config),\n ChatStoreLogoStyle: getChatStoreLogoStyle(config),\n ChatMessagesStyle: getChatMessagesStyle(config, minimized),\n ChatMessageHeader: getChatMessageHeader(config),\n MinimizeButtonStyle: getMinimizeButtonStyle(config),\n CloseButtonStyle: getCloseButtonStyle(config),\n ChatMessageContent: getChatMessageContent(config),\n ProactiveWrapperStyle: getProactiveWrapperStyle(config),\n ProactiveMessageHeader: getProactiveMessageHeader(config),\n ProactiveMessageContent: getProactiveMessageContent(config),\n ProactiveButtonStyle: getProactiveButtonStyle(config),\n RedDotStyle: getRedDotStyle(config)\n };\n};\n\nconst fontFormat = (font?: string): string | undefined => {\n if (font && font.length > 0) {\n const arr = font.split(',');\n for (let i = 0; i < arr.length; i++) {\n arr[i] = `'${arr[i].trim()}'`;\n }\n font = arr.join(', ');\n } else {\n font = \"'Calibri', 'Helvetica Neue', 'Arial', 'sans-serif'\";\n }\n\n return font;\n};\n\nconst getBubbleStyling = (config: IMsdyn365PvaChatConnectorConfig): IBubbleStyling => {\n return {\n bubbleBackground: config.bubbleBackground || 'White',\n bubbleTextColor: config.bubbleTextColor || 'Black',\n bubbleBorderColor: config.bubbleBorderColor || '#e6e6e6',\n bubbleBorderRadius: config.bubbleBorderRadius || '2',\n bubbleBorderStyle: config.bubbleBorderStyle || 'solid',\n bubbleBorderWidth: config.bubbleBorderWidth || '1',\n bubbleFromUserBackground: config.bubbleFromUserBackground || 'White',\n bubbleFromUserTextColor: config.bubbleFromUserTextColor || 'Black',\n bubbleFromUserBorderColor: config.bubbleFromUserBorderColor || '#e6e6e6',\n bubbleFromUserBorderRadius: config.bubbleFromUserBorderRadius || '2',\n bubbleFromUserBorderStyle: config.bubbleFromUserBorderStyle || 'solid',\n bubbleFromUserBorderWidth: config.bubbleFromUserBorderWidth || '1'\n };\n};\n\n// eslint-disable-next-line complexity\nconst getOtherStyling = (config: IMsdyn365PvaChatConnectorConfig): IOtherStyling => {\n return {\n groupTimestamp: config.groupTimestamp || true,\n sendTimeout: config.sendTimeout || '20000',\n sendTimeoutForAttachments: config.sendTimeoutForAttachments || '120000',\n timestampColor: config.timestampColor || 'undefined',\n timestampFormat: config.timestampFormat || 'undefined',\n notificationDebounceTimeout: config.notificationDebounceTimeout || '400',\n hideToaster: config.hideToaster || true,\n toasterHeight: config.toasterHeight || '32',\n toasterMaxHeight: config.toasterMaxHeight || '32 * 5',\n toasterSingularMaxHeight: config.toasterSingularMaxHeight || '50',\n toastFontSize: config.toastFontSize || '87.5%',\n toastIconWidth: config.toastIconWidth || '36',\n toastSeparatorColor: config.toastSeparatorColor || '#E8EAEC',\n toastTextPadding: config.toastTextPadding || '6',\n toastErrorBackgroundColor: config.toastErrorBackgroundColor || '#FDE7E9',\n toastErrorColor: config.toastErrorColor || '#A80000',\n toastInfoBackgroundColor: config.toastInfoBackgroundColor || '#CEF1FF',\n toastInfoColor: config.toastInfoColor || '#105E7D',\n toastSuccessBackgroundColor: config.toastSuccessBackgroundColor || '#DFF6DD',\n toastSuccessColor: config.toastSuccessColor || '#107C10',\n toastWarnBackgroundColor: config.toastWarnBackgroundColor || '#FFF4CE',\n toastWarnColor: config.toastWarnColor || '#3B3A39',\n typingAnimationBackgroundImage: config.typingAnimationBackgroundImage || 'undefined',\n typingAnimationDuration: config.typingAnimationDuration || '5000',\n typingAnimationHeight: config.typingAnimationHeight || '20',\n typingAnimationWidth: config.typingAnimationWidth || '64',\n videoHeight: config.videoHeight || '270',\n markdownExternalLinkIconImage:\n config.markdownExternalLinkIconImage ||\n 'url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIzIDMgMTggMTgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTcuMjUwMSA0LjUwMDE3SDEwLjc0OTVDMTEuMTYzNyA0LjUwMDE3IDExLjQ5OTUgNC44MzU5NiAxMS40OTk1IDUuMjUwMTdDMTEuNDk5NSA1LjYyOTg2IDExLjIxNzMgNS45NDM2NiAxMC44NTEzIDUuOTkzMzJMMTAuNzQ5NSA2LjAwMDE3SDcuMjQ5NzRDNi4wNzA3OSA1Ljk5OTYxIDUuMTAzNDkgNi45MDY1NiA1LjAwNzg2IDguMDYxMTJMNS4wMDAyOCA4LjIyMDAzTDUuMDAzMTIgMTYuNzUwN0M1LjAwMzQzIDE3Ljk0MTUgNS45Mjg4NSAxOC45MTYxIDcuMDk5NjYgMTguOTk0OUw3LjI1MzcxIDE5LjAwMDFMMTUuNzUxOCAxOC45ODg0QzE2Ljk0MTUgMTguOTg2OCAxNy45MTQ1IDE4LjA2MiAxNy45OTM1IDE2Ljg5MjNMMTcuOTk4NyAxNi43Mzg0VjEzLjIzMjFDMTcuOTk4NyAxMi44MTc5IDE4LjMzNDUgMTIuNDgyMSAxOC43NDg3IDEyLjQ4MjFDMTkuMTI4NCAxMi40ODIxIDE5LjQ0MjIgMTIuNzY0MyAxOS40OTE4IDEzLjEzMDNMMTkuNDk4NyAxMy4yMzIxVjE2LjczODRDMTkuNDk4NyAxOC43NDA3IDE3LjkyOTMgMjAuMzc2OSAxNS45NTI4IDIwLjQ4MjlMMTUuNzUzOCAyMC40ODg0TDcuMjU4MjcgMjAuNTAwMUw3LjA1NDk1IDIwLjQ5NDlDNS4xNDIzOSAyMC4zOTU0IDMuNjA4OTUgMTguODYyNyAzLjUwODM3IDE2Ljk1MDJMMy41MDMxMiAxNi43NTExTDMuNTAwODkgOC4yNTI3TDMuNTA1MjkgOC4wNTAyQzMuNjA1MzkgNi4xMzc0OSA1LjEzODY3IDQuNjA0NDkgNy4wNTA5NiA0LjUwNTI3TDcuMjUwMSA0LjUwMDE3SDEwLjc0OTVINy4yNTAxWk0xMy43NDgxIDMuMDAxNDZMMjAuMzAxOCAzLjAwMTk3TDIwLjQwMTQgMy4wMTU3NUwyMC41MDIyIDMuMDQzOTNMMjAuNTU5IDMuMDY4MDNDMjAuNjEyMiAzLjA5MTIyIDIwLjY2MzQgMy4xMjE2MyAyMC43MTExIDMuMTU4ODVMMjAuNzgwNCAzLjIyMTU2TDIwLjg2NDEgMy4zMjAxNEwyMC45MTgzIDMuNDEwMjVMMjAuOTU3IDMuNTAwNTdMMjAuOTc2MiAzLjU2NDc2TDIwLjk4OTggMy42Mjg2MkwyMC45OTkyIDMuNzIyODJMMjAuOTk5NyAxMC4yNTU0QzIwLjk5OTcgMTAuNjY5NiAyMC42NjM5IDExLjAwNTQgMjAuMjQ5NyAxMS4wMDU0QzE5Ljg3IDExLjAwNTQgMTkuNTU2MiAxMC43MjMyIDE5LjUwNjUgMTAuMzU3MUwxOS40OTk3IDEwLjI1NTRMMTkuNDk4OSA1LjU2MTQ3TDEyLjI3OTcgMTIuNzg0N0MxMi4wMTM0IDEzLjA1MSAxMS41OTY4IDEzLjA3NTMgMTEuMzAzMSAxMi44NTc1TDExLjIxOSAxMi43ODQ5QzEwLjk1MjcgMTIuNTE4NyAxMC45Mjg0IDEyLjEwMjEgMTEuMTQ2MiAxMS44MDg0TDExLjIxODggMTEuNzI0M0wxOC40MzY5IDQuNTAxNDZIMTMuNzQ4MUMxMy4zNjg0IDQuNTAxNDYgMTMuMDU0NiA0LjIxOTMxIDEzLjAwNSAzLjg1MzI0TDEyLjk5ODEgMy43NTE0NkMxMi45OTgxIDMuMzcxNzcgMTMuMjgwMyAzLjA1Nzk3IDEzLjY0NjQgMy4wMDgzMUwxMy43NDgxIDMuMDAxNDZaIiBmaWxsPSIjMjEyMTIxIiAvPjwvc3ZnPg==)',\n markdownRespectCRLF: config.markdownRespectCRLF || 'true',\n internalLiveRegionFadeAfter: config.internalLiveRegionFadeAfter || '1000',\n accent: config.accent || '#0063B1',\n subtle: config.subtle || '#767676'\n };\n};\n\nconst getAvatarStyling = (config: IMsdyn365PvaChatConnectorConfig): IAvatarStyling => {\n return {\n avatarBorderRadius: config.avatarBorderRadius || '50%',\n avatarSize: config.avatarSize || '40',\n botAvatarBackgroundColor: config.botAvatarBackgroundColor || 'undefined',\n botAvatarImage: config.botAvatarImage || '',\n botAvatarInitials: config.botAvatarInitials || '',\n userAvatarBackgroundColor: config.userAvatarBackgroundColor || 'undefined',\n userAvatarImage: config.userAvatarImage || '',\n userAvatarInitials: config.userAvatarInitials || '',\n showAvatarInGroup: config.showAvatarInGroup || 'status'\n };\n};\n\nconst getSuggestedActionStyling = (config: IMsdyn365PvaChatConnectorConfig): ISuggestedActionStyling => {\n return {\n suggestedActionLayout: config.suggestedActionLayout || 'carousel',\n suggestedActionBackground: config.suggestedActionBackground || 'White',\n suggestedActionTextColor: config.suggestedActionTextColor || '',\n suggestedActionBorderColor: config.suggestedActionBorderColor || '',\n suggestedActionBorderRadius: config.suggestedActionBorderRadius || '0',\n suggestedActionBorderStyle: config.suggestedActionBorderStyle || 'solid',\n suggestedActionBorderWidth: config.suggestedActionBorderWidth || '2',\n suggestedActionDisabledBorderStyle: config.suggestedActionDisabledBorderStyle || 'solid',\n suggestedActionDisabledBorderWidth: config.suggestedActionDisabledBorderWidth || '2',\n suggestedActionDisabledTextColor: config.suggestedActionDisabledTextColor || '',\n suggestedActionHeight: config.suggestedActionHeight || '40',\n suggestedActionImageHeight: config.suggestedActionImageHeight || '20',\n suggestedActionsCarouselFlipperCursor: config.suggestedActionsCarouselFlipperCursor || '',\n suggestedActionsCarouselFlipperBoxWidth: config.suggestedActionsCarouselFlipperBoxWidth || '40',\n suggestedActionsCarouselFlipperSize: config.suggestedActionsCarouselFlipperSize || '20',\n suggestedActionsFlowMaxHeight: config.suggestedActionsFlowMaxHeight || '',\n suggestedActionsStackedHeight: config.suggestedActionsStackedHeight || '',\n suggestedActionsStackedOverflow: config.suggestedActionsStackedOverflow || '2',\n suggestedActionsStackedLayoutButtonMaxHeight: config.suggestedActionsStackedLayoutButtonMaxHeight || '',\n suggestedActionsStackedLayoutButtonTextWrap: config.suggestedActionsStackedLayoutButtonTextWrap || false\n };\n};\n\n/**\n * Generates style options for the Botframework-WebChat widget\n * @param config IMsdyn365PvaChatConnectorConfig\n * @returns IChatStyling\n */\nexport const getChatStyleOptions = (config: IMsdyn365PvaChatConnectorConfig): IChatStyling => {\n const bubbleStyling = getBubbleStyling(config);\n const avatarStyling = getAvatarStyling(config);\n const suggestedActionStyling = getSuggestedActionStyling(config);\n const otherStyling = getOtherStyling(config);\n return {\n hideUploadButton: true,\n primaryFont: fontFormat(config.primaryFont),\n backgroundColor: config.backgroundColor || 'White',\n ...bubbleStyling,\n ...avatarStyling,\n ...suggestedActionStyling,\n ...otherStyling\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React from 'react';\nimport { IAction, IDispatch, INext } from '../interfaces';\nimport { TContextProvider } from '../../interfaces';\nimport { IPvaChatConnectorViewProps } from '../msdyn365-pva-chat-connector';\n\nexport class CommerceChatStore {\n private props: IPvaChatConnectorViewProps;\n private setNewMessageAction: React.Dispatch>;\n private provider?: TContextProvider;\n\n /**\n * Gets conversation token\n * @param props IPvaChatConnectorViewProps\n */\n public static async getDirectLineToken(props: IPvaChatConnectorViewProps): Promise {\n if (props.config.powervaDirectlineTokenURL && props.config.botID && props.config.tenantID) {\n // use direct line token url, bot id and tenant id from module config to get conversation token\n const url = `${props.config.powervaDirectlineTokenURL}?botId=${props.config.botID}&tenantId=${props.config.tenantID}`;\n const options = { method: 'GET' };\n return fetch(url, options)\n .then(r => r.json())\n .then(r => {\n if (r.token) {\n return r.token;\n } else {\n throw r;\n }\n });\n }\n\n // use direct line token url, bot id and tenant id from app config to get conversation token\n const url = `${props.context.app.config.pvaChatConnectorPowervaDirectlineTokenURL}?botId=${props.context.app.config.pvaChatConnectorBotID}&tenantId=${props.context.app.config.pvaChatConnectorTenantID}`;\n const options = {\n method: 'GET'\n };\n return fetch(url, options)\n .then(r => r.json())\n .then(r => {\n if (r.token) {\n return r.token;\n } else {\n throw r;\n }\n });\n }\n\n /**\n * Creates a new instance of commerce store for WebChat\n * @param props IPvaChatConnectorViewProps\n * @param provider TContextProvider\n * @param setNewMessage React.Dispatch>\n */\n constructor(\n props: IPvaChatConnectorViewProps,\n provider: TContextProvider | undefined,\n setNewMessage: React.Dispatch>\n ) {\n this.props = props;\n this.provider = provider;\n this.setNewMessageAction = setNewMessage;\n }\n\n /**\n * Handles custom chat actions\n * @param param0 {\n * dispatch: IDispatch;\n * next: INext;\n * action: IAction;\n * }\n */\n public async actionHandler({ dispatch, next, action }: { dispatch: IDispatch; next: INext; action: IAction }): Promise {\n const atype = action.type;\n\n switch (atype) {\n case 'DIRECT_LINE/CONNECT_FULFILLED': {\n // sets language\n dispatch({\n type: 'WEB_CHAT/SEND_EVENT',\n payload: {\n name: 'webchat/join',\n value: { language: window.navigator.language }\n }\n });\n break;\n }\n case 'DIRECT_LINE/INCOMING_ACTIVITY': {\n const activity = action.payload.activity;\n if (activity?.from?.role === 'bot') {\n // Sets flag for new message (will be use to indicate new messages from bot when chat is minimized)\n this.setNewMessageAction(true);\n }\n break;\n }\n case 'DIRECT_LINE/POST_ACTIVITY_FULFILLED': {\n switch (action.payload.activity.name) {\n case 'webchat/join':\n {\n if (this.provider !== undefined) {\n // Sets Chat Context\n dispatch({\n type: 'WEB_CHAT/SEND_EVENT',\n payload: {\n name: 'pvaSetContext',\n value: this.provider()\n }\n });\n }\n }\n break;\n case 'pvaSetContext':\n {\n if (this.props.config.triggerQuery) {\n // Initialize chat after Chat Context is set\n dispatch({\n type: 'WEB_CHAT/SEND_MESSAGE_BACK',\n payload: {\n text: this.props.config.triggerQuery\n }\n });\n }\n }\n break;\n default: {\n // default nothing\n }\n }\n break;\n }\n default: {\n // default nothing\n }\n }\n\n return next(action);\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React, { FunctionComponent, useMemo, useState } from 'react';\nimport { getChatStyleOptions } from '../helpers/StyleComposers';\nimport { IChatCoreProps, IAction, IDispatch } from '../interfaces';\nimport { CommerceChatStore } from '../helpers/CommerceChatStore';\n\n/**\n * Just a core Chat component\n * @param props\n */\n\nconst ChatCore: FunctionComponent = (props: IChatCoreProps) => {\n const { ReactWebChat } = window.WebChat;\n\n const [userId, setUserId] = useState('');\n useMemo(() => {\n if (props.provider) {\n const ctx = props.provider();\n if (ctx.UserId) {\n setUserId(typeof ctx.UserId === 'string' ? ctx.UserId : ctx.UserId.value.toString());\n }\n }\n }, [props.provider]);\n\n const directLine = useMemo(() => {\n return window.WebChat.createDirectLine({ token: props.directLineToken });\n }, [props.directLineToken]);\n\n const commerceChatStore = useMemo(() => {\n if (directLine && props.provider) {\n return new CommerceChatStore(props.config, props.provider, props.setNewMessage);\n }\n return undefined;\n }, [props.provider, directLine]);\n\n const store = useMemo(() => {\n return window.WebChat.createStore(\n {},\n ({ dispatch }: { dispatch: IDispatch }) => (next: (action: IAction) => IDispatch) => (action: IAction) => {\n commerceChatStore?.actionHandler({ dispatch, next, action });\n }\n );\n }, [commerceChatStore]);\n const styleOptions = getChatStyleOptions(props.config.config);\n\n return props.directLineToken !== '' ? (\n \n ) : (\n

Please wait while we are connecting.

\n );\n};\n\nexport default ChatCore;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React, { FunctionComponent, useEffect, useState } from 'react';\nimport { isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport ContextProvider from '../helpers/ContextProvider';\nimport { getChatStyling } from '../helpers/StyleComposers';\nimport { TContextProvider } from '../../interfaces';\nimport { IPvaChatConnectorViewProps } from '../msdyn365-pva-chat-connector';\nimport { CommerceChatStore } from '../helpers';\nimport ChatCore from './ChatCore';\n\nconst INVALID_TOKEN = 'INVALID_TOKEN';\nconst CLOSE_IMG_DATA =\n 'M443.6,387.1L312.4,255.4l131.5-130c5.4-5.4,5.4-14.2,0-19.6l-37.4-37.6c-2.6-2.6-6.1-4-9.8-4c-3.7,0-7.2,1.5-9.8,4 L256,197.8L124.9,68.3c-2.6-2.6-6.1-4-9.8-4c-3.7,0-7.2,1.5-9.8,4L68,105.9c-5.4,5.4-5.4,14.2,0,19.6l131.5,130L68.4,387.1 c-2.6,2.6-4.1,6.1-4.1,9.8c0,3.7,1.4,7.2,4.1,9.8l37.4,37.6c2.7,2.7,6.2,4.1,9.8,4.1c3.5,0,7.1-1.3,9.8-4.1L256,313.1l130.7,131.1 c2.7,2.7,6.2,4.1,9.8,4.1c3.5,0,7.1-1.3,9.8-4.1l37.4-37.6c2.6-2.6,4.1-6.1,4.1-9.8C447.7,393.2,446.2,389.7,443.6,387.1z';\n\n/**\n * Outer chat component, displays chat button, and proactive chat, and handles custom actions\n * @param props IPvaChatConnectorViewProps\n */\nconst Chat: FunctionComponent = (props: IPvaChatConnectorViewProps) => {\n const [loaded, setLoaded] = useState(false); // loaded & minimized are needed as ChatWidget should not be removed from DOM (it resets chat)\n const [minimized, setMinimized] = useState(true);\n const [newMessage, setNewMessage] = useState(false); // TODO: use this to indicate new message in minimized chat\n const [token, setToken] = useState(''); // holds conversation token for WebChat\n const [isProactive, setIsProactive] = useState(false); // if proactive chat is triggered\n const [proactiveMessage, setProactiveMessage] = useState(props.config.proactiveDefaultMessage);\n const [closed, setClosed] = useState(false);\n const [provider, setProvider] = useState();\n const isMobileDevice =\n isMobile({ variant: VariantType.Browser, context: props.context.request }) === 'xs' ||\n isMobile({ variant: VariantType.Viewport, context: props.context.request }) === 'xs';\n const chatStyle = getChatStyling(props.config, minimized, isMobileDevice); // generates chat style objects based on configuration\n const handleMaximizeButtonClick = () => {\n setLoaded(true);\n setMinimized(false);\n setNewMessage(false);\n };\n const handleMinimizeButtonClick = () => {\n setMinimized(true);\n setNewMessage(false);\n };\n const handleCloseButtonClick = () => {\n setClosed(true);\n setLoaded(false);\n setMinimized(true);\n setNewMessage(false);\n setIsProactive(false);\n };\n useEffect(() => {\n if (loaded) {\n CommerceChatStore.getDirectLineToken(props)\n .then(directLineToken => {\n setToken(directLineToken);\n })\n .catch(e => {\n setToken(INVALID_TOKEN);\n props.telemetry.exception(e);\n });\n }\n }, [loaded]);\n useEffect(() => {\n (async () => {\n const contextProvider = new ContextProvider(props); // Generates context (provider) and checks for proactive chat triggers\n const prov = await contextProvider.init();\n if (contextProvider.data.enabled) {\n props.context.telemetry.debug(`[Chat] Proactive chat was enabled: '${contextProvider.data.enabled}'.`);\n // if proactive chat is triggered\n const timeout = contextProvider.data.timeout * 1000; // timeout is there only for WaitOnTime trigger\n setTimeout(() => {\n if (!loaded) {\n props.context.telemetry.debug(`[Chat] Proactive chat was loaded: ${loaded}.`);\n setProactiveMessage(contextProvider.data.message);\n setIsProactive(true);\n }\n }, timeout);\n }\n setProvider(() => prov);\n })().catch(e => props.telemetry.exception(e));\n }, []);\n useEffect(() => {\n if (closed) {\n setClosed(false);\n }\n }, [token, provider]);\n const isValidToken = (): boolean => {\n return `${token}` !== INVALID_TOKEN;\n };\n return (\n \n {minimized && (!isProactive || (isProactive && loaded)) && (\n \n )}\n {minimized && isProactive && !loaded && (\n
\n
\n {props.config.storeLogoURL && (\n logo\n )}\n
\n
\n
\n

{proactiveMessage}

\n \n
\n
\n )}\n {loaded && isValidToken() && (\n
\n
\n {props.config.storeLogoURL && (\n logo\n )}\n
\n \n
\n
\n \n
\n
\n )}\n {!isValidToken() &&
{props.config.unableToLoadChatMessage}
}\n
\n );\n};\n\nexport default Chat;\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 Chat from './components/Chat';\nimport { IPvaChatConnectorViewProps } from './msdyn365-pva-chat-connector';\n\nexport default (props: IPvaChatConnectorViewProps) => {\n // Only for CDN loading check, won't be needed with npm package of Botframework-WebChat\n const [loaded, setLoaded] = React.useState(false);\n const p = {\n ...props\n };\n\n // Just to verify that CDN Chat Widget js lib is loaded\n // Remove this block if moving to npm package of Botframework-WebChat\n const interval = setInterval(() => {\n const t = typeof window;\n if (t !== 'undefined' && window.WebChat) {\n setLoaded(true);\n clearInterval(interval);\n }\n }, 100);\n\n return
{loaded && }
;\n};\n","import * as React from 'react';\r\n\r\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInSocialAccount, ISignInSocialItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n
{forgetPassword}
\r\n
\r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items,\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('sign-in-password-icon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = passwordState.type === 'password' ? 'text' : 'password';\r\n iconElement.className = iconElement.className === 'icon-show-password' ? 'icon-hide-password' :'icon-show-password';\r\n }\r\n};\r\n\r\nexport default SignInView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer, MobileMenuContainer, MobileMenuBodyContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n \r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n \r\n \r\n {props.logo}\r\n \r\n \r\n \r\n { props.MobileMenuHeader }\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer, MobileMenuContainer, MobileMenuBodyContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n { props.MobileMenuHeader }\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n {props.logo}\r\n \r\n \r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","import * as React from 'react';\r\n\r\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignInItem,\r\n ISignInLoading,\r\n ISignInLocalAccount,\r\n ISignInSocialAccount,\r\n ISignInSocialItem,\r\n ISignInViewProps,\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton,\r\n}) => {\r\n return (\r\n \r\n {items &&\r\n items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n
\r\n {forgetPassword}\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items,\r\n}) => {\r\n return (\r\n \r\n {items &&\r\n items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = (props) => {\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('sign-in-password-icon');\r\n if (passwordState && iconElement) {\r\n passwordState.type =\r\n passwordState.type === 'password' ? 'text' : 'password';\r\n iconElement.className =\r\n iconElement.className === 'icon-show-password'\r\n ? 'icon-hide-password'\r\n : 'icon-show-password';\r\n }\r\n};\r\n\r\nexport default SignInView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountCustomerBalanceTileInfo {\n label?: string;\n value?: string;\n verbagePrefix?: string;\n verbagePostfix?: string;\n className?: string;\n error?: string;\n}\n\nexport const ErrorComponent: React.FC = ({ error }) => (\n {error}\n);\n\nexport const CreditComponent: React.FC = ({ verbagePrefix, verbagePostfix, value, className }) => {\n return (\n
\n {verbagePrefix}\n {value}\n {verbagePostfix}\n
\n );\n};\n\nexport const InfoComponent: React.FC = ({ label, value, className }) => (\n
\n {label}\n {value}\n
\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, IPayLoad, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ICookieComplianceAcceptButton {\n acceptCookiesButtonText?: string;\n acceptCookiesButtonAriaLabel?: string;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onClose(): void;\n}\n\nexport const CookieComplianceAcceptButton: React.FC = ({\n acceptCookiesButtonText,\n acceptCookiesButtonAriaLabel,\n telemetryContent,\n onClose\n}) => {\n const payLoad: IPayLoad = getPayloadObject('click', telemetryContent!, 'accept cookies');\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n {acceptCookiesButtonText}\n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IActionLinksData } from '../cookie-compliance.props.autogenerated';\n\nexport interface ICookieComplianceLinks {\n links: IActionLinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * ContentCardLinks component.\n * @extends {React.PureComponent}\n */\nexport class CookieComplianceLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n \n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n \n );\n }\n\n private readonly _mapEditableLinks = (linkdata: IActionLinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n linkdata.forEach((link, index) => {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n };\n}\n\nexport default CookieComplianceLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IAlertProps, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { CookieComplianceAcceptButton, CookieComplianceLinks } from './components';\nimport { ICookieComplianceConfig, ICookieComplianceProps } from './cookie-compliance.props.autogenerated';\n\n/**\n * Alert state interface.\n */\nexport interface IAlertState {\n visible: boolean;\n}\n\n/**\n * Cookie compliance view props interface.\n */\nexport interface ICookieComplianceViewProps extends ICookieComplianceProps<{}> {\n CookieComplianceBanner: IModuleProps;\n AlertProps: IAlertProps;\n Content: INodeProps;\n text?: React.ReactNode;\n links?: React.ReactNode;\n acceptButton?: React.ReactNode;\n className: string;\n onDismiss(): void;\n}\n\n/**\n *\n * CookieCompliance component.\n * @extends {React.PureComponent>}\n */\nclass CookieCompliance extends React.PureComponent, IAlertState> {\n private readonly cookieRef: React.RefObject;\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 constructor(props: ICookieComplianceProps) {\n super(props);\n this.state = { visible: false };\n this.cookieRef = React.createRef();\n this._onDismiss = this._onDismiss.bind(this);\n }\n\n public componentDidMount(): void {\n const { context } = this.props;\n\n if (context && context.request && context.request.cookies && !context.request.cookies.isConsentGiven()) {\n this.setState({ visible: true });\n }\n }\n\n public render(): JSX.Element | null {\n const { config, context, resources, telemetry } = this.props;\n const { acceptCookiesButtonText, acceptCookiesAriaLabel } = resources;\n const { visible } = this.state;\n\n const isConsentGiven = context && context.request && context.request.cookies && context.request.cookies.isConsentGiven();\n let moduleConfig: ICookieComplianceConfig;\n\n try {\n moduleConfig = config;\n } catch (error) {\n telemetry.error(`Something went wrong while rendering the alert module ------${error}`);\n return
{error}
;\n }\n\n if (isConsentGiven && !visible) {\n this.props.context.telemetry.error('Cookie Compliance content is empty, module wont render.');\n return null;\n }\n\n if (!MsDyn365.msdyn365Commerce.isBrowser) {\n return <>;\n }\n\n const viewProps = {\n ...this.props,\n onDismiss: this._onDismiss,\n CookieComplianceBanner: {\n moduleProps: this.props,\n className: classnames('ms-cookie-compliance', moduleConfig.className),\n ref: this.cookieRef\n },\n AlertProps: {\n className: 'ms-cookie-compliance__container',\n color: 'white',\n fade: false\n },\n Content: {\n className: 'ms-cookie-compliance__content'\n },\n text: moduleConfig.content && (\n \n ),\n links: ArrayExtensions.hasElements(moduleConfig.actionLinks) && (\n \n ),\n acceptButton: (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles Link content change event.\n * @param linkIndex - Index of link in linkarray.\n * @returns Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: MsDyn365.ContentEditableEvent): void => {\n if (this.props.config.actionLinks?.[linkIndex]) {\n this.props.config.actionLinks[linkIndex].linkText = event.target.value;\n }\n };\n\n /**\n * Handles content change event.\n * @param event - Event.\n */\n public handleContentChange = (event: MsDyn365.ContentEditableEvent): void => {\n this.props.config.content = event.target.value;\n };\n\n private _onDismiss(): void {\n const { context } = this.props;\n\n if (context && context.request && context.request.cookies) {\n context.request.cookies.setConsentCookie();\n location.reload();\n }\n this.setState({ visible: false });\n }\n}\n\nexport default CookieCompliance;\n","import * as React from 'react';\r\n\r\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInSocialAccount, ISignInSocialItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n *\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n *\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n
\r\n {forgetPassword}\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items,\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('sign-in-password-icon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = passwordState.type === 'password' ? 'text' : 'password';\r\n iconElement.className = iconElement.className === 'icon-show-password' ? 'icon-hide-password' : 'icon-show-password';\r\n }\r\n};\r\n\r\nexport default SignInView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IDictionary, IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { IMenuItemData, INavigationMenuViewProps } from '@msdyn365-commerce-modules/navigation-menu';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Drawer,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n ICollapseProps,\n IDrawerState,\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\ninterface INavigationState {\n parentMenu?: number;\n activeMenu?: number;\n categoryImage?: IImageData[] | null;\n categoryImageAltText: string;\n drawerKeyValue: IDictionary;\n}\n\n/**\n *\n * NavigationMenuView component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuView extends React.PureComponent {\n private currentLevel: number = 0;\n\n private readonly _positionInSetOffset: number = 1;\n\n private readonly escapeKey: number = 27;\n\n private readonly menuNode: 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.state = { activeMenu: undefined, parentMenu: undefined, categoryImageAltText: '', drawerKeyValue: {} };\n this._closeSubmenu = this._closeSubmenu.bind(this);\n this._escFunction = this._escFunction.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('keydown', (this._escFunction as unknown) as EventListener, false);\n document.body.addEventListener('mousedown', this._handleClickOutside);\n document.body.addEventListener('focusout', this._handleFocusOutside);\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\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 } = this.props;\n\n this.currentLevel = 1;\n return <>{isMobileView ? this._renderMobileMenu() : this._renderDesktopMenu()};\n }\n\n /**\n * Method to render mobile menu.\n * @returns Jsx element.\n */\n private _renderMobileMenu(): JSX.Element {\n const { isMobileView, menuItemData, Navigation } = this.props;\n return (\n \n {menuItemData.map((menuItem: IMenuItemData, posinset: number) => {\n return this._renderDrawerMenu(menuItem, menuItemData.length, posinset + this._positionInSetOffset);\n })}\n \n );\n }\n\n /**\n * Method to render desktop menu.\n * @returns Jsx element.\n */\n private _renderDesktopMenu(): JSX.Element {\n const { MenuList, Navigation } = this.props;\n return (\n \n \n {this._renderDisplay()}\n \n \n );\n }\n\n /**\n * Method to render drawer menu.\n * @param menuItem -Menuitem data.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawerMenu(menuItem: IMenuItemData, setSize: number, posinset: number): JSX.Element | null {\n if (menuItem && menuItem.subMenu && ArrayExtensions.hasElements(menuItem.subMenu)) {\n return this._renderDrawer(menuItem, setSize, posinset);\n }\n return this._renderLinkMenuItem(menuItem, undefined, true, false, setSize, posinset);\n }\n\n /**\n * Method to render drawer component.\n * @param menuItem -Menuitem data.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawer(menuItem: IMenuItemData, setSize?: number, posinset?: number): JSX.Element | null {\n const toggleButtonText = menuItem.linkText;\n const keyValue = this.state.drawerKeyValue;\n const buttonText = toggleButtonText !== undefined ? toggleButtonText : '';\n const keys = keyValue !== undefined ? keyValue : {};\n const { isMobileView } = this.props;\n\n let isDrawerOpen = false;\n if (keys[buttonText]) {\n isDrawerOpen = true;\n }\n const colProps: ICollapseProps = { isOpen: isDrawerOpen };\n return (\n \n
\n {menuItem.subMenu!.map((menuSubItem: IMenuItemData, currentPos: number) => {\n if (ArrayExtensions.hasElements(menuSubItem.subMenu)) {\n return this._renderDrawer(menuSubItem, menuItem.subMenu?.length, currentPos + this._positionInSetOffset);\n }\n return this._renderDrawerLink(menuSubItem, menuItem.subMenu?.length, currentPos + this._positionInSetOffset);\n })}\n
\n \n );\n }\n\n /**\n * Method to render link.\n * @param linkText -Text on Menu link.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderLinkText(linkText: string | undefined, setSize: number | undefined, posinset: number | undefined): JSX.Element {\n return (\n \n {linkText}\n \n );\n }\n\n /**\n * Method to render drawer link.\n * @param item -Single Menuitem.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawerLink(item: IMenuItemData, setSize: number | undefined, posinset: number): JSX.Element | null {\n if (item && item.linkText && item.linkURL && item.linkURL.length > 0) {\n return this._renderLinkMenuItem(item, undefined, true, false, setSize, posinset);\n } else if (item && item.linkText && !item.linkURL) {\n return this._renderSpanMenuItem(item);\n }\n return null;\n }\n\n /**\n * Method to generate menu.\n * @returns Jsx element.\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 this.setState({ parentMenu: undefined });\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 );\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 /**\n * Method to get data for submenu.\n * @param item -Single Menuitem.\n * @returns IMenuItemData.\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 this.setState({ parentMenu: item?.id });\n return subMenus[i];\n }\n const found = this._getFromSubMenu(subMenus[i]);\n if (found) {\n return found;\n }\n }\n }\n return null;\n }\n\n /**\n * Method to create item list.\n * @param menuItemData -Single Menuitem.\n * @returns Jsx element.\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);\n }\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id)}\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\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 subMenuLevel = 3;\n const multiLevelSupportedMenu = this.props.config.menuLevelSupport || subMenuLevel;\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 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 /**\n * Method to render button menu item.\n * @param option -Single Menuitem.\n * @param activeMenu -Active menu number.\n * @param index -Active menu index.\n * @returns Jsx element.\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 /**\n * Method to render link menu item.\n * @param option -Single Menuitem.\n * @param index -Active menu index.\n * @param hoverEffect -Active menu effect.\n * @param isParent -Is parent menu.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderLinkMenuItem(\n option: IMenuItemData,\n index?: number,\n hoverEffect: boolean = true,\n isParent: boolean = false,\n setSize?: number,\n posinset?: number\n ): JSX.Element | null {\n const { Link, isMobileView } = 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 /**\n * Method to render promotional link.\n * @param linkText -Link text.\n * @param linkUrl -Link url.\n * @returns Jsx element.\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 /**\n * Method to render span menu item.\n * @param option -Single Menu Item.\n * @param index -Index.\n * @param isParent -Is parent menu.\n * @returns Jsx element.\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 /**\n * Method to render menu.\n * @param level -Menu level.\n * @param menuOptions -Menu lists.\n * @param currentItem -Menu current.\n * @param submenu -Mneu has submenu or not.\n * @returns Jsx element.\n */\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean): JSX.Element | null {\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, isMobileView, showPromotionalContent } = this.props;\n const categoryImageDisplay =\n !isMobileView && showCategoryImage && this.state.categoryImage !== null && this.state.categoryImage !== undefined && !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
\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\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 /**\n * Method to handle dropdwon change.\n * @param data -Menuitem data.\n * @param parentId -Menu parent.\n * @returns Jsx element.\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 this.setState({\n activeMenu: data.id,\n parentMenu: parentId\n });\n }\n\n this._resetFocus();\n };\n\n /**\n * Method to call when focus lost from menu.\n */\n private readonly _resetFocus = () => {\n if (this.props.isMobileView) {\n setTimeout(() => {\n this.menuNode && this.menuNode.current && this.menuNode.current.focus();\n }, 0);\n }\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 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 * Method to handle close submenu event.\n */\n private _closeSubmenu(): void {\n if (!this.props.isMobileView) {\n this.setState({ activeMenu: undefined });\n }\n }\n\n /**\n * Method to handle escape key event.\n * @param event -HTML event.\n */\n private readonly _escFunction = (event: React.KeyboardEvent) => {\n if (event.keyCode === this.escapeKey) {\n if (!this.props.isMobileView) {\n const navDrawerList = Array.from(this.menuNode.current!.childNodes);\n for (const item of navDrawerList) {\n const navDrawerButton = item.firstChild as HTMLButtonElement;\n if (navDrawerButton.getAttribute('aria-expanded') === 'true') {\n navDrawerButton.focus();\n }\n }\n }\n this._closeSubmenu();\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 const ImageData: IImageData = { src: categoryImageUrl };\n return (\n \n );\n }\n return null;\n };\n\n /**\n * Method to handle escape key event.\n * @param drawerState -HTML event.\n */\n private readonly _onDrawerChange = (drawerState: IDrawerState) => {\n const { drawerKeyValue } = this.state;\n const drawerText: string = drawerState.buttonText !== undefined ? drawerState.buttonText : '';\n const newPair = { [drawerText]: drawerState.isOpen };\n this.setState({ drawerKeyValue: { ...drawerKeyValue, ...newPair } });\n };\n}\n\nexport default NavigationMenuView;\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header/src/modules/header/./header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n
\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots?.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n {props.logo}\r\n
\r\n {props.logo}\r\n \r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showCartIcon && !props.slots?.smweCartIcon && props.cartIcon}\r\n {showCartIcon && props.slots?.smweCartIcon && props.slots.smweCartIcon}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks,\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n { accountLinks ? accountLinks.map(link => link) : false }\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React from 'react';\n\nexport const SignUpText: React.FC<{ text: string }> = (props: { text: string }) => {\n return

{props.text}

;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, * as Msdyn365 from '@msdyn365-commerce/core';\nimport { issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { SignUpText } from './components/loyalty-sign-up-small-components';\nimport { ILoyaltySignUpData } from './loyalty-sign-up.data';\nimport { ILoyaltySignUpProps } from './loyalty-sign-up.props.autogenerated';\n\nexport interface IAccountLoyaltyJoinState {\n clicked: boolean;\n}\nexport interface ILoyaltySignUpViewProps extends ILoyaltySignUpProps {\n LoyaltySignUp: IModuleProps;\n heading: React.ReactNode;\n memberHeading: React.ReactNode;\n signInLink: React.ReactElement;\n signUpText: React.ReactElement;\n signUpButton: React.ReactElement;\n detailsLink: React.ReactElement;\n termsLink: React.ReactElement;\n loading: boolean;\n infoMessageBar?: React.ReactNode;\n}\n\n/**\n *\n * LoyaltySignUp component.\n * @extends {React.Component>}\n */\n@observer\nclass LoyaltySignUp extends React.Component, IAccountLoyaltyJoinState> {\n private readonly telemetryContent?: ITelemetryContent;\n private readonly loyaltySignInAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltySignUpAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyDetailsLinkAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyTermsLinkAttributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: ILoyaltySignUpProps) {\n super(props);\n this.state = { clicked: false };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.SignIn);\n this.loyaltySignInAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.SignUp;\n this.loyaltySignUpAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyDetailLink;\n this.loyaltyDetailsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsLink;\n this.loyaltyTermsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltySignUpProps, nextState: IAccountLoyaltyJoinState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className, heading, memberHeading },\n resources,\n context: {\n actionContext,\n request: {\n user: { signInUrl, isAuthenticated }\n }\n },\n data\n } = this.props;\n\n const termsUrl = Msdyn365.getUrlSync('loyaltyTerms', actionContext);\n let loyaltyJoinUrl = `${Msdyn365.getUrlSync('loyaltyJoin', actionContext)}?joiningLoyalty=true`;\n if (MsDyn365.isBrowser) {\n loyaltyJoinUrl = `${window.location.origin}${loyaltyJoinUrl}`;\n }\n const signInurl = `${signInUrl}?ru=${loyaltyJoinUrl}`;\n const completeClass = classname('ms-loyalty-signup', className);\n const loyaltyCard = data.loyaltyCard;\n const hasLoyaltyAccount = loyaltyCard.result && loyaltyCard.result.CardTenderTypeValue !== undefined;\n const customerInformation = data.customerInformation?.result;\n\n const invalidAsyncCustomerState: boolean =\n (this.props.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false);\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltySignUp: {\n moduleProps: this.props,\n className: completeClass\n },\n infoMessageBar: invalidAsyncCustomerState && (\n \n ),\n loading: !this.props.context.request.params.isEditor && loyaltyCard?.status === 'LOADING',\n heading: !hasLoyaltyAccount && heading && heading.text && (\n \n ),\n memberHeading: hasLoyaltyAccount && memberHeading && memberHeading.text && (\n \n ),\n signInLink: !isAuthenticated && (\n \n ),\n signUpText: !hasLoyaltyAccount && ,\n signUpButton: !hasLoyaltyAccount && isAuthenticated && (\n \n {this.props.resources.joinLoyaltyButtonText}\n \n ),\n detailsLink: hasLoyaltyAccount && (\n \n {this.props.resources.viewLoyaltyPageText}\n \n ),\n termsLink: !hasLoyaltyAccount && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleMemberHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.memberHeading!.text = event.target.value);\n\n private readonly _issueLoyalty = () => {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(() => {\n if (MsDyn365.isBrowser) {\n window.location.assign(Msdyn365.getUrlSync('loyalty', this.props.context.actionContext) || '');\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n };\n}\n\nexport default LoyaltySignUp;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileViewProps } from './account-customer-balance-tile';\n\nconst AccountCustomerBalanceTileView: React.FC = props => {\n const { AccountCustomerBalanceTile, heading, content, links } = props;\n\n return (\n \n {heading}\n {content}\n {links}\n \n );\n};\n\nexport default AccountCustomerBalanceTileView;\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer, MobileMenuContainer, MobileMenuBodyContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n \r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n \r\n \r\n {props.logo}\r\n \r\n \r\n \r\n { props.MobileMenuHeader }\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\nconst headerView: React.FC> = props => {\r\n const { HeaderTag, HeaderContainer } = props;\r\n\r\n return (\r\n \r\n \r\n {props.logo}\r\n
\r\n
\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n {props.slots && props.slots.smweSideBar && _renderReactFragment(props.slots.smweSideBar)}\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n {props.logo}\r\n
\r\n
\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n
\r\n \r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer, MobileMenuContainer, MobileMenuBodyContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n \r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n \r\n \r\n {props.logo}\r\n \r\n \r\n \r\n { props.MobileMenuHeader }\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer, MobileMenuContainer, MobileMenuBodyContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n \r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n \r\n \r\n {props.logo}\r\n \r\n \r\n \r\n { props.MobileMenuHeader }\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","import * as React from 'react';\r\n\r\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInSocialAccount, ISignInSocialItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n
{forgetPassword}
\r\n
\r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items,\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('sign-in-password-icon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = passwordState.type === 'password' ? 'text' : 'password';\r\n iconElement.className = iconElement.className === 'icon-show-password' ? 'icon-hide-password' :'icon-show-password';\r\n }\r\n};\r\n\r\nexport default SignInView;\r\n","import { observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\n// ==============================================================================\r\n// TYPE DEFINITIONS\r\n// ==============================================================================\r\n\r\ninterface IMailingInputGroupProps {\r\n label?: string;\r\n name: string;\r\n isValid?: boolean;\r\n placeholder?:string;\r\n validationMessage?: string;\r\n initialValue: string;\r\n errorMessage: string;\r\n onValueChange(newValue: string): void;\r\n onLoseFirstFocus(labelBlurred: string): void;\r\n}\r\n\r\n// ==============================================================================\r\n// CLASS DEFINITIONS\r\n// ==============================================================================\r\n\r\n/**\r\n * class definition for a control group for mailing\r\n */\r\n@observer\r\nexport class MailingInputGroup extends React.Component {\r\n\r\n // ==========================================================================\r\n // FIELDS\r\n // ==========================================================================\r\n\r\n @observable private _internalValue: string = '';\r\n\r\n // ==========================================================================\r\n // PUBLIC METHODS\r\n // ==========================================================================\r\n\r\n public constructor(props: IMailingInputGroupProps) {\r\n super(props);\r\n this._internalValue = props.initialValue;\r\n\r\n this._onInputChange = this._onInputChange.bind(this);\r\n this._onBlur = this._onBlur.bind(this);\r\n }\r\n\r\n public render(): JSX.Element {\r\n return (\r\n
\r\n \r\n \r\n {this._renderValidation()}\r\n
\r\n );\r\n }\r\n\r\n // ==========================================================================\r\n // COMPONENT EVENTS\r\n // ==========================================================================\r\n\r\n private _onBlur(): void {\r\n this.props.onLoseFirstFocus(this.props.name);\r\n }\r\n\r\n private _onInputChange(event: React.ChangeEvent): void {\r\n this._internalValue = event.target.value;\r\n this.props.onValueChange(event.target.value);\r\n }\r\n\r\n // ==========================================================================\r\n // PRIVATE METHODS\r\n // ==========================================================================\r\n\r\n private _renderValidation(): JSX.Element | void {\r\n if (!this.props.isValid && this.props.isValid !== undefined) {\r\n return (\r\n

\r\n {this._validationMessage}\r\n

\r\n );\r\n }\r\n }\r\n\r\n private get _validationMessage(): string {\r\n return (this.props.validationMessage) ? this.props.validationMessage : this.props.errorMessage;\r\n }\r\n\r\n}","import { Heading } from '@msdyn365-commerce-modules/utilities';\r\nimport { RichTextComponent } from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport { observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { MailingInputGroup } from './mailing-list-redirect-form-input-group';\r\n\r\nimport { IMailingListRedirectFormProps } from './mailing-list-redirect-form.props.autogenerated';\r\n\r\nexport interface IMailingListRedirectFormViewProps extends IMailingListRedirectFormProps<{}> {\r\n\r\n}\r\n\r\ntype validationField = {\r\n value: string;\r\n label: string;\r\n isValid?: boolean;\r\n errorMessage?: string;\r\n beenBlurred?: boolean;\r\n};\r\n\r\n/**\r\n *\r\n * MailingListRedirectForm component\r\n * @extends {React.Component}\r\n */\r\n@observer\r\nclass MailingListRedirectForm extends React.Component> {\r\n\r\n // ==========================================================================\r\n // FIELDS\r\n // ==========================================================================\r\n\r\n @observable private _email: validationField = {\r\n label: 'Email',\r\n value: ''\r\n };\r\n\r\n private _emailRegex: RegExp = /^[-a-z0-9!#$%&'*+/=?^_`{|}~]+(?:\\.[-a-z0-9!#$%&'*+/=?^_`{|}~]+)*@(?:[a-z0-9]+(?:-+[a-z0-9]+)*\\.)+(?:xn--[a-z0-9]+|[a-z]{2,16})$/i;\r\n\r\n constructor(props: IMailingListRedirectFormProps<{}>) {\r\n super(props);\r\n this._onSubmitForm = this._onSubmitForm.bind(this);\r\n this._onEmailChange = this._onEmailChange.bind(this);\r\n this._lostFocus = this._lostFocus.bind(this);\r\n }\r\n\r\n public render(): JSX.Element {\r\n const {\r\n title,\r\n description,\r\n className,\r\n formLabel,\r\n formPlaceholder,\r\n submitButtonText\r\n } = this.props.config;\r\n\r\n return (\r\n
\r\n {(title || description) &&\r\n
\r\n {title && }\r\n {description && }\r\n
\r\n }\r\n
\r\n \r\n \r\n {(submitButtonText) && submitButtonText}\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n private _onEmailChange(email: string): void {\r\n this._email.value = email;\r\n\r\n if (!this._email.beenBlurred) { return; }\r\n this._testForRequirement(this._email, 'Please enter your email address.');\r\n if (this._email.isValid) {\r\n this._testForRegex(this._email, this._emailRegex, 'Please enter a valid email address.');\r\n }\r\n }\r\n\r\n private _lostFocus(label: string): unknown {\r\n\r\n // also run all change events related to the field so that the proper\r\n // errors propogate on blur\r\n switch (label) {\r\n case this._email.label:\r\n this._email.beenBlurred = true;\r\n return this._onEmailChange(this._email.value);\r\n default:\r\n return console.warn('[mailing-list-redirect-form:MailingFormComponent._lostFocus] failed to link a field');\r\n }\r\n }\r\n\r\n private _testForRequirement(field: validationField, errorMessage: string): void {\r\n if (field.value.length === 0) {\r\n field.isValid = false;\r\n field.errorMessage = errorMessage;\r\n } else {\r\n field.isValid = true;\r\n }\r\n this.setState({});\r\n }\r\n\r\n private _testForRegex(field: validationField, regex: RegExp, errorMessage: string): void {\r\n if (regex.test(field.value)) {\r\n field.isValid = true;\r\n } else {\r\n field.isValid = false;\r\n field.errorMessage = errorMessage;\r\n }\r\n }\r\n\r\n private _isButtonDisabled(): boolean {\r\n\r\n // button will only be disabled if all input fields are considered invalid\r\n // or undefined (meaning not filled out or touched)\r\n return !(this._email.value);\r\n }\r\n\r\n private _onSubmitForm(): void {\r\n if (!this._email.isValid) { return; }\r\n let redirectUrl = this.props.config.redirectUrl.linkUrl.destinationUrl;\r\n redirectUrl = redirectUrl.indexOf('?') === -1 ? `${redirectUrl}?mailFormEmail=${encodeURIComponent(this._email.value)}` : `${redirectUrl}&mailFormEmail=${encodeURIComponent(this._email.value)}`;\r\n window.location.assign(redirectUrl);\r\n }\r\n}\r\n\r\nexport default MailingListRedirectForm;\r\n","import * as React from 'react';\r\n\r\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInSocialAccount, ISignInSocialItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n
\r\n {forgetPassword}\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items,\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('sign-in-password-icon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = passwordState.type === 'password' ? 'text' : 'password';\r\n iconElement.className = iconElement.className === 'icon-show-password' ? 'icon-hide-password' : 'icon-show-password';\r\n }\r\n};\r\n\r\nexport default SignInView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILinksData {\n linkText?: string;\n linkUrl: Msdyn365.ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n}\n\nexport interface IAccountCustomerBalanceTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountCustomerBalanceTileLinks: React.FC = ({\n links,\n telemetryContent,\n onTextChange,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-customer-balance-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountCustomerBalanceTileLinks;\n","\r\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n {forgetPassword}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n \r\n \r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('showPasswordIcon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = (passwordState.type === 'password') ? 'text' : 'password';\r\n iconElement.className = (iconElement.className === 'ms-sign-in__password-icon ms-sign-in__password-icon-show')\r\n ? 'ms-sign-in__password-icon ms-sign-in__password-icon-hide'\r\n : 'ms-sign-in__password-icon ms-sign-in__password-icon-show';\r\n }\r\n};\r\n\r\nexport default SignInView;\r\n","import * as React from 'react';\r\n\r\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInSocialAccount, ISignInSocialItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {forgetPassword}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n \r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items,\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('sign-in-password-icon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = passwordState.type === 'password' ? 'text' : 'password';\r\n iconElement.className = iconElement.className === 'icon-show-password' ? 'icon-hide-password' :'icon-show-password';\r\n }\r\n};\r\n\r\nexport default SignInView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { CustomerBalances } from '@msdyn365-commerce/retail-proxy';\nimport { getTelemetryObject, Heading, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { computed, reaction } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileData } from './account-customer-balance-tile.data';\nimport { IAccountCustomerBalanceTileProps } from './account-customer-balance-tile.props.autogenerated';\nimport { CreditComponent, ErrorComponent } from './components/account-customer-balance-tile-info';\nimport LinksComponent from './components/account-customer-balance-tile-links';\n\nexport interface IAccountCustomerBalanceTileViewProps extends IAccountCustomerBalanceTileProps {\n AccountCustomerBalanceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n content: React.ReactNode;\n links: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceTileViewState {\n isDetailsLinkDisplayed: boolean;\n content: React.ReactNode;\n}\n\n/**\n *\n * AccountCustomerBalanceTile component.\n * @extends {React.Component>}\n */\nclass AccountCustomerBalanceTile extends React.Component<\n IAccountCustomerBalanceTileProps,\n IAccountCustomerBalanceTileViewState\n> {\n @computed get hasError(): boolean {\n return get(this.props, 'data.balance.status') !== 'SUCCESS';\n }\n\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountCustomerBalanceTileProps) {\n super(props);\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n this.state = { ...this._initState() };\n\n reaction(\n () => this.hasError,\n () => {\n this.props.context.telemetry.error('Error retrieving customer account balance');\n this.setState({\n content: \n });\n }\n );\n }\n\n @computed get isCustomerAccountPaymentEnabled(): boolean {\n const customerResult = get(this.props, 'data.customerInformation.result');\n\n const allowOnAccountPayment = customerResult ? customerResult.AllowOnAccountPayment : false;\n const isB2BSite = isChannelTypeB2B(this.props.context.request);\n const enableCustomerAccountPayment = get(this.props, 'context.request.app.platform.enableCustomerAccountPayment');\n\n return (\n allowOnAccountPayment &&\n (enableCustomerAccountPayment === 'all' ||\n (enableCustomerAccountPayment === 'b2b' && isB2BSite) ||\n (enableCustomerAccountPayment === 'b2c' && !isB2BSite))\n );\n }\n\n public shouldComponentUpdate(\n nextProps: IAccountCustomerBalanceTileProps,\n nextState: IAccountCustomerBalanceTileViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n if (!this.isCustomerAccountPaymentEnabled) {\n return <>;\n }\n\n const { className, heading, links } = this.props.config;\n const viewProps = {\n ...this.props,\n AccountCustomerBalanceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-customer-balance-tile', className)\n },\n heading: heading && (\n \n ),\n content: this.state.content,\n links: this.state.isDetailsLinkDisplayed && (\n (event: Msdyn365.ContentEditableEvent) => void 0,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n }}\n />\n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _initState(): IAccountCustomerBalanceTileViewState {\n const account: CustomerBalances = get(this.props, 'data.balance.result');\n\n let content: React.ReactNode;\n let isDetailsLinkDisplayed = false;\n\n if (this.hasError) {\n this.props.telemetry.error('Error retrieving customer account balance');\n content = ;\n } else if (\n account.Balance === 0 &&\n account.CreditLimit === 0 &&\n account.InvoiceAccountBalance === 0 &&\n account.InvoiceAccountCreditLimit === 0\n ) {\n // Non-established credit\n content = ;\n } else {\n // Successfully retrieved balance\n const { accountCreditVerbagePrefix, accountCreditVerbagePostfix } = this.props.resources;\n const currencyCode = get(this.props, 'context.request.channel.Currency');\n const formatCurrency = get(this.props, 'context.cultureFormatter.formatCurrency');\n let customerCredit = 0;\n\n if (account.InvoiceAccountCreditLimit === 0) {\n customerCredit = account.CreditLimit - account.Balance;\n } else {\n customerCredit = account.InvoiceAccountCreditLimit - account.InvoiceAccountBalance;\n }\n\n const customerCreditFormatted = `${formatCurrency(customerCredit.toFixed(2), currencyCode)}`;\n\n isDetailsLinkDisplayed = true;\n content = (\n \n );\n }\n\n return { content, isDetailsLinkDisplayed };\n }\n}\n\nexport default AccountCustomerBalanceTile;\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer, MobileMenuContainer, MobileMenuBodyContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n \r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n \r\n \r\n {props.logo}\r\n \r\n \r\n \r\n { props.MobileMenuHeader }\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header/src/modules/header/./header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n
\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots?.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n {props.logo}\r\n
\r\n {props.logo}\r\n \r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showCartIcon && !props.slots?.smweCartIcon && props.cartIcon}\r\n {showCartIcon && props.slots?.smweCartIcon && props.slots.smweCartIcon}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks,\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n { accountLinks ? accountLinks.map(link => link) : false }\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILoyaltySignUpViewProps } from './loyalty-sign-up';\n\nconst LoyaltySignUpView: React.FC = props => {\n const {\n LoyaltySignUp,\n heading,\n memberHeading,\n signInLink,\n signUpText,\n signUpButton,\n detailsLink,\n termsLink,\n loading,\n infoMessageBar\n } = props;\n\n if (loading) {\n props.context.telemetry.error('LoyaltySignUp data is empty, module wont render');\n return null;\n }\n\n return (\n \n {infoMessageBar}\n {memberHeading}\n {heading}\n {detailsLink}\n {signUpText}\n {termsLink}\n {signUpButton}\n {signInLink}\n \n );\n};\n\nexport default LoyaltySignUpView;\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Button, Module, Node, Popover } from '@msdyn365-commerce-modules/utilities';\r\nimport { getUrlSync } from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport React, {useState} from 'react';\r\nimport { IHeaderProps, IStoreSwitcherData } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n const { activeStore, activeStoreClass, activeStoreIndex, storeSwitcher } = config;\r\n const [storePopoverOpen, _togglePopover] = useState(false);\r\n const storePopoverRef: React.RefObject = React.createRef();\r\n const activeLink = {linkText: activeStore, linkUrl: {destinationUrl: ''}, ariaLabel: 'active'};\r\n const activeLinkIndex = activeStoreIndex || 0;\r\n const storeSwitcherDesktop = storeSwitcher && storeSwitcher.length && _insertStoreSwitcher(storeSwitcher, activeLink, activeLinkIndex);\r\n const storeSwitcherMobileId = 'storeSwitcherDropdown';\r\n const cartLink = getUrlSync('cart', props.context.actionContext);\r\n\r\n return (\r\n \r\n {storeSwitcherDesktop && storeSwitcherDesktop.length &&\r\n
\r\n {_renderStoreSwitcher(storeSwitcherDesktop, 'ms-header__storeswitcher')}\r\n
\r\n }\r\n \r\n {props.logo}\r\n
\r\n \r\n \r\n
\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n
\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showAccountBlock && _renderAccountBlock(props)}\r\n
\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {storeSwitcher && storeSwitcher.length &&\r\n
\r\n _togglePopover(!storePopoverOpen)}\r\n aria-expanded={storePopoverOpen}\r\n >\r\n {activeStore}\r\n \r\n _togglePopover(!storePopoverOpen)}\r\n >\r\n {_renderStoreSwitcher(storeSwitcher, 'ms-header__storeswitcher')}\r\n \r\n
\r\n }\r\n {showCartIcon && props.cartIcon}\r\n
\r\n
\r\n );\r\n};\r\n\r\nfunction _renderAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nfunction _renderStoreSwitcher(links: IStoreSwitcherData[], className: string): JSX.Element | null {\r\n return (\r\n
\r\n
    \r\n {links && links.length ? links.map((link: IStoreSwitcherData, index: number) => {\r\n return (\r\n
  • \r\n \r\n {link.linkText}\r\n \r\n
  • \r\n );\r\n }) : null}\r\n
\r\n
\r\n );\r\n}\r\n\r\nfunction _insertStoreSwitcher(\r\n links: IStoreSwitcherData[],\r\n activeLink: IStoreSwitcherData,\r\n activeLinkIndex: number\r\n): IStoreSwitcherData[] {\r\n // Grabbing links from the start of array to active link index\r\n const startLinks = links.slice(0, activeLinkIndex);\r\n\r\n // Grabbing links from active link index to end of array\r\n const endLinks = links.slice(activeLinkIndex);\r\n\r\n // Making a new array with start links, new active link to be inserted, and end links\r\n return [...startLinks, activeLink, ...endLinks];\r\n}\r\n\r\nexport default headerView;\r\n","\r\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n {forgetPassword}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n \r\n \r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('showPasswordIcon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = (passwordState.type === 'password') ? 'text' : 'password';\r\n iconElement.className = (iconElement.className === 'ms-sign-in__password-icon ms-sign-in__password-icon-show')\r\n ? 'ms-sign-in__password-icon ms-sign-in__password-icon-hide'\r\n : 'ms-sign-in__password-icon ms-sign-in__password-icon-show';\r\n }\r\n};\r\n\r\nexport default SignInView;\r\n","\r\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n {forgetPassword}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n \r\n \r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('showPasswordIcon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = (passwordState.type === 'password') ? 'text' : 'password';\r\n iconElement.className = (iconElement.className === 'ms-sign-in__password-icon ms-sign-in__password-icon-show')\r\n ? 'ms-sign-in__password-icon ms-sign-in__password-icon-hide'\r\n : 'ms-sign-in__password-icon ms-sign-in__password-icon-show';\r\n }\r\n};\r\n\r\nexport default SignInView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer, MobileMenuContainer, MobileMenuBodyContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n \r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n \r\n \r\n {props.logo}\r\n \r\n \r\n \r\n { props.MobileMenuHeader }\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { HeaderTag, HeaderContainer } = props;\r\n\r\n return (\r\n \r\n \r\n {props.logo}\r\n
\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n {props.logo}\r\n
\r\n
\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n
\r\n \r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer, MobileMenuContainer, MobileMenuBodyContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n \r\n {props.logo}\r\n
\r\n {config.storeHours &&
{config.storeHours}
}\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n
\r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n
\r\n \r\n {props.logo}\r\n \r\n \r\n \r\n { props.MobileMenuHeader }\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n
\r\n
\r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","import * as React from 'react';\r\n\r\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInSocialAccount, ISignInSocialItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n
{forgetPassword}
\r\n
\r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items,\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('sign-in-password-icon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = passwordState.type === 'password' ? 'text' : 'password';\r\n iconElement.className = iconElement.className === 'icon-show-password' ? 'icon-hide-password' :'icon-show-password';\r\n }\r\n};\r\n\r\nexport default SignInView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nexport interface ILoyaltyTermsModalProps {\n resources: ILoyaltyTermsModalResources;\n returnRef: React.RefObject | undefined;\n checked: boolean;\n isOpen: boolean;\n terms: React.ReactNode;\n telemetryContent?: ITelemetryContent;\n onToggle(): void;\n onSubmit(): void;\n onCheck(): void;\n}\n\nexport interface ILoyaltyTermsModalResources {\n loyaltyTermsHeading: string;\n loyaltyAgreeToTerms: string;\n joinLoyaltyTermsText: string;\n cancelLoyaltyTermsText: string;\n}\n\nexport interface ILoyaltyTermsModalViewProps {\n modal: INodeProps;\n modalHeader: INodeProps;\n modalFooter: INodeProps;\n modalBody: INodeProps;\n heading: React.ReactElement;\n cancelButton: React.ReactElement;\n submitButton: React.ReactElement;\n terms: React.ReactNode;\n checkbox: React.ReactElement;\n agreeText: React.ReactElement;\n agreeSection: INodeProps;\n}\n\nexport const LoyaltyTermsModal = (props: ILoyaltyTermsModalProps): ILoyaltyTermsModalViewProps => {\n const payLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.LoyaltyTermsCancel);\n const loyaltyTermCancelAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsSubmit;\n const loyaltyTermSubmitAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsAgree;\n const loyaltyTermCheckboxAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n return {\n modal: {\n tag: Modal,\n className: 'ms-loyalty-terms__modal',\n toggle: props.onToggle,\n applicationNode: 'renderPage',\n isOpen: props.isOpen,\n returnFocusRef: props.returnRef\n },\n modalHeader: { tag: ModalHeader, className: 'ms-loyalty-terms__modal-header', toggle: props.onToggle },\n modalFooter: { tag: ModalFooter, className: 'ms-loyalty-terms__modal-footer' },\n modalBody: { tag: ModalBody, className: 'ms-loyalty-terms__modal-body' },\n cancelButton: (\n \n ),\n submitButton: (\n \n {props.resources.joinLoyaltyTermsText}\n \n ),\n heading:

{props.resources.loyaltyTermsHeading}

,\n terms: props.terms,\n agreeSection: { className: 'ms-loyalty-terms__agree-section' },\n checkbox: (\n \n ),\n agreeText:

{props.resources.loyaltyAgreeToTerms}

\n };\n};\n","import * as React from 'react';\r\n\r\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInSocialAccount, ISignInSocialItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n
{forgetPassword}
\r\n
\r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items,\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('sign-in-password-icon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = passwordState.type === 'password' ? 'text' : 'password';\r\n iconElement.className = iconElement.className === 'icon-show-password' ? 'icon-hide-password' :'icon-show-password';\r\n }\r\n};\r\n\r\nexport default SignInView;\r\n","import * as React from 'react';\r\n\r\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInSocialAccount, ISignInSocialItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n
{forgetPassword}
\r\n
\r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items,\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('sign-in-password-icon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = passwordState.type === 'password' ? 'text' : 'password';\r\n iconElement.className = iconElement.className === 'icon-show-password' ? 'icon-hide-password' :'icon-show-password';\r\n }\r\n};\r\n\r\nexport default SignInView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync } from '@msdyn365-commerce/core';\nimport { getLoyaltyCardAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport { GetLoyaltyCardInput, issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsModalViewProps, LoyaltyTermsModal } from './components/loyalty-terms-modal';\nimport { ILoyaltyTermsData } from './loyalty-terms.data';\nimport { ILoyaltyTermsProps } from './loyalty-terms.props.autogenerated';\n\nexport interface ILoyaltyTermsState {\n checked: boolean;\n clicked: boolean;\n isModalOpen: boolean;\n}\nexport interface ILoyaltyTermsViewProps extends ILoyaltyTermsProps {\n LoyaltyTerms: IModuleProps;\n modalToggle: React.ReactElement;\n modal: ILoyaltyTermsModalViewProps;\n loading: boolean;\n}\n\n/**\n *\n * LoyaltyTerms component.\n * @extends {React.Component>}\n */\nclass LoyaltyTerms extends React.Component, ILoyaltyTermsState> {\n private readonly toggleRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n public constructor(props: ILoyaltyTermsProps) {\n super(props);\n this._toggle = this._toggle.bind(this);\n this._submit = this._submit.bind(this);\n this._checkboxChecked = this._checkboxChecked.bind(this);\n this.toggleRef = React.createRef();\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n let search = this.props.context.request.url.requestUrl.search;\n let isJoining = false;\n if (search) {\n search = search.substring(1);\n const qsps = search.split('&');\n for (const qsp of qsps) {\n const splitQsp = qsp.split('=');\n isJoining = splitQsp[0] === 'joiningLoyalty' && splitQsp[1] === 'true';\n if (isJoining) {\n break;\n }\n }\n }\n\n this.state = {\n isModalOpen: isJoining,\n checked: false,\n clicked: false\n };\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltyTermsProps, nextState: ILoyaltyTermsState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className, hideToggle },\n resources,\n slots: { serviceTerms },\n data: { loyaltyCard },\n context: {\n request: {\n user: { isAuthenticated }\n }\n }\n } = this.props;\n const completeClass = classname('ms-loyalty-terms', className);\n\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltyTerms: {\n moduleProps: this.props,\n className: completeClass\n },\n loading: loyaltyCard.status === 'LOADING',\n modalToggle: hideToggle !== true && (\n \n ),\n modal:\n isAuthenticated &&\n loyaltyCard.result &&\n loyaltyCard.result.CardNumber === undefined &&\n LoyaltyTermsModal({\n resources: { ...resources },\n returnRef: this.toggleRef,\n checked: this.state.checked,\n isOpen: this.state.isModalOpen,\n terms: serviceTerms,\n telemetryContent: this.telemetryContent,\n onToggle: this._toggle,\n onSubmit: this._submit,\n onCheck: this._checkboxChecked\n })\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _toggle(): void {\n this.setState({ isModalOpen: !this.state.isModalOpen, checked: false });\n }\n\n private _submit(): void {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(card => {\n if (this.props.config.redirectToLoyalty) {\n window.location.assign(getUrlSync('loyalty', this.props.context.actionContext) || '');\n } else {\n getLoyaltyCardAsync({ callerContext: this.props.context.actionContext }, card.CardNumber || '')\n .then(fullCard => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n fullCard\n );\n })\n .catch((error: Error) => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n card\n );\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to fetch loyalty card');\n });\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n }\n\n private _checkboxChecked(): void {\n this.setState({ checked: !this.state.checked });\n }\n}\n\nexport default LoyaltyTerms;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Alert, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICookieComplianceViewProps } from './cookie-compliance';\n\nconst CookieComplianceView: React.FC = props => {\n const { CookieComplianceBanner, AlertProps, Content, acceptButton, text, links } = props;\n\n return (\n \n \n \n {text}\n {links}\n \n {acceptButton}\n \n \n );\n};\nexport default CookieComplianceView;\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { HeaderTag, HeaderContainer } = props;\r\n\r\n return (\r\n \r\n \r\n {props.logo}\r\n
\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AsyncResult, Customer, ProductSearchResult, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, ObjectExtensions, Random } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps, isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { getCatalogId } from '@msdyn365-commerce/core';\nimport { ProductComparisonItem, ProductComparisonState } from '../product-comparison-state';\nimport { IProductComparisonButtonProps } from './product-comparison-button.props.autogenerated';\n\n/**\n * Represents product comparison view props.\n */\nexport interface IProductComparisonButtonViewProps extends IProductComparisonButtonProps<{}> {\n moduleProps: IModuleProps;\n productComparisonButton?: React.ReactNode;\n productComparisonPreview?: React.ReactNode;\n}\n\n/**\n * Represents the data which is required for the product comparison button to be rendered.\n */\nexport interface IProductComparisonButtonData {\n accountInformation?: AsyncResult;\n}\n\n/**\n * Extended props for the module including info about the product.\n */\nexport interface IProductComparisonButtonFullProps extends IProductComparisonButtonProps {\n product: ProductSearchResult | SimpleProduct;\n catalogId: number;\n}\n\n/**\n * Extended props for the module including info about the product.\n */\nexport interface IProductComparisonButtonState {\n canProductBeAddedToProductComparison: boolean;\n currentProductsCount: number;\n comparisonItemId: string;\n}\n\n/**\n * Represents the component which renders product comparison table.\n */\nexport class ProductComparisonButton extends React.PureComponent {\n private static _productComparisonPreview?: React.ReactNode;\n\n private readonly _className: string;\n\n private readonly _instanceId: string;\n\n private readonly _shouldUsePreview: boolean;\n\n private static _renderProductComparisonPreview(props: IProductComparisonButtonFullProps): React.ReactNode {\n if (!ProductComparisonButton._productComparisonPreview && ArrayExtensions.hasElements(props.slots.productComparisonPreview)) {\n ProductComparisonButton._productComparisonPreview = props.slots.productComparisonPreview[0];\n }\n\n return ProductComparisonButton._productComparisonPreview;\n }\n\n private static _renderProductComparisonButton(\n className: string,\n buttonText: string | undefined,\n title: string,\n onClickHandler?: () => void\n ): React.ReactNode {\n const isDisabled = ObjectExtensions.isNullOrUndefined(onClickHandler);\n let content: React.ReactNode;\n if (buttonText) {\n content = (\n <>\n
\n
{buttonText}
\n \n );\n }\n return (\n \n );\n }\n\n public constructor(props: IProductComparisonButtonFullProps) {\n super(props);\n\n this._className = 'ms-product-comparison-button';\n this._instanceId = `${this._className}-${this.props.id}-${Random.Guid.generateGuid()}`;\n\n this.state = this._getNewState();\n\n this._shouldUsePreview = !ProductComparisonButton._productComparisonPreview;\n ProductComparisonButton._renderProductComparisonPreview(this.props);\n }\n\n public componentDidMount(): void {\n ProductComparisonState.instance(this.props.context.request, this.props.data.accountInformation?.result).listModifiedEvent.subscribe(\n {\n instanceId: this._instanceId,\n\n /**\n * Updates the state in case the state for the particular product was changed.\n */\n handler: () => {\n this.setState(this._getNewState());\n }\n }\n );\n }\n\n public getSnapshotBeforeUpdate(previousProps: Readonly): void {\n if (previousProps.product.RecordId !== this.props.product.RecordId || previousProps.catalogId !== this.props.catalogId) {\n this.setState(this._getNewState());\n }\n }\n\n public componentWillUnmount(): void {\n ProductComparisonState.instance(\n this.props.context.request,\n this.props.data.accountInformation?.result\n ).listModifiedEvent.unsubscribe(this._instanceId);\n }\n\n public render(): React.ReactNode | null {\n const isConsentGiven = this.props.context.request.cookies.isConsentGiven();\n if (!isConsentGiven) {\n return null;\n }\n\n const viewProps: IProductComparisonButtonViewProps = {\n ...this.props,\n moduleProps: {\n moduleProps: this.props,\n className: this._className\n }\n };\n\n if (this._shouldUsePreview) {\n viewProps.productComparisonPreview = ProductComparisonButton._productComparisonPreview;\n }\n\n const buttonClassName = this.props.config.shouldDisplayText ? `${this._className}__button` : `${this._className}__icon`;\n\n if (!this.state.canProductBeAddedToProductComparison) {\n const buttonText = this.props.config.shouldDisplayText ? this.props.resources.removeFromComparisonButtonText : undefined;\n viewProps.productComparisonButton = ProductComparisonButton._renderProductComparisonButton(\n classnames(`${buttonClassName}__removing`, buttonClassName),\n buttonText,\n this.props.resources.removeFromComparisonButtonText,\n this._removeFromProductComparison\n );\n return this.props.renderView(viewProps);\n }\n\n const productsLimit = this._getProductsLimit();\n if (!ObjectExtensions.isNullOrUndefined(productsLimit) && productsLimit <= this.state.currentProductsCount) {\n const buttonText = this.props.config.shouldDisplayText ? this.props.resources.addToComparisonLimitReachedButtonText : undefined;\n viewProps.productComparisonButton = ProductComparisonButton._renderProductComparisonButton(\n buttonClassName,\n buttonText,\n this.props.resources.addToComparisonLimitReachedButtonText\n );\n return this.props.renderView(viewProps);\n }\n\n const buttonText = this.props.config.shouldDisplayText ? this.props.resources.addToComparisonButtonText : undefined;\n viewProps.productComparisonButton = ProductComparisonButton._renderProductComparisonButton(\n buttonClassName,\n buttonText,\n this.props.resources.addToComparisonButtonText,\n this._addToProductComparison\n );\n return this.props.renderView(viewProps);\n }\n\n private _getProductsLimit(): number | undefined | null {\n const viewport = isMobile({ variant: VariantType.Browser, context: this.props.context.request });\n if (viewport === 'xs' || viewport === 'sm') {\n return this.props.context.app.config.productComparisonMobileProductsLimit;\n }\n return this.props.context.app.config.productComparisonDesktopProductsLimit;\n }\n\n /**\n * Adds current product to a product comparison list.\n */\n private readonly _addToProductComparison: () => void = () => {\n const item = new ProductComparisonItem(this.props.product.RecordId, this.props.catalogId);\n ProductComparisonState.instance(this.props.context.request, this.props.data.accountInformation?.result).addItem(item);\n };\n\n /**\n * Removes current product from the product comparison list where it was added earlier.\n */\n private readonly _removeFromProductComparison: () => void = () => {\n ProductComparisonState.instance(this.props.context.request, this.props.data.accountInformation?.result).removeItemById(\n this.state.comparisonItemId\n );\n };\n\n private _getProdutComparisonDataByCatalogId(): ProductComparisonItem[] {\n const items = ProductComparisonState.instance(this.props.context.request, this.props.data.accountInformation?.result).items;\n const catalogId = getCatalogId(this.props.context.request);\n const productByCatalogId = items?.filter(product => product.catalogId === catalogId) ?? [];\n return productByCatalogId;\n }\n\n /**\n * Retrieves the state of the component based on the comparison data.\n * @returns State object for the component.\n */\n private readonly _getNewState: () => IProductComparisonButtonState = () => {\n const comparisonItemId = ProductComparisonItem.getItemId(this.props.product.RecordId, this.props.catalogId);\n const products = this._getProdutComparisonDataByCatalogId();\n return {\n comparisonItemId,\n canProductBeAddedToProductComparison: !ProductComparisonState.instance(\n this.props.context.request,\n this.props.data.accountInformation?.result\n ).hasItemById(comparisonItemId),\n currentProductsCount: products.length\n };\n };\n}\n\nexport default ProductComparisonButton;\n","import * as React from 'react';\r\n\r\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInSocialAccount, ISignInSocialItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n
\r\n {forgetPassword}\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items,\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('sign-in-password-icon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = passwordState.type === 'password' ? 'text' : 'password';\r\n iconElement.className = iconElement.className === 'icon-show-password' ? 'icon-hide-password' :'icon-show-password';\r\n }\r\n};\r\n\r\nexport default SignInView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer, MobileMenuContainer, MobileMenuBodyContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n \r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n \r\n \r\n {props.logo}\r\n \r\n \r\n \r\n { props.MobileMenuHeader }\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\nimport { isOboRequest } from '@msdyn365-commerce/core-internal';\nimport { IMsdyn365PvaChatConnectorData } from './msdyn365-pva-chat-connector.data';\nimport { IMsdyn365PvaChatConnectorConfig, IMsdyn365PvaChatConnectorProps } from './msdyn365-pva-chat-connector.props.autogenerated';\n\nexport interface IPvaChatConnectorViewProps extends IMsdyn365PvaChatConnectorProps {\n config: IMsdyn365PvaChatConnectorConfig;\n}\n\n/**\n * PvaChatConnector component\n * @extends {React.PureComponent>}\n */\nclass PvaChatConnector extends React.PureComponent> {\n // Loads CDN version of Botframework-Webchat library\n public componentDidMount(): void {\n if (isOboRequest(this.props.context.request)) {\n return;\n }\n\n const url = this.props.config.botFrameworkCDNURL || this.props.context.app.config.pvaChatConnectorBotFrameworkCDNURL;\n const script = document.createElement('script');\n script.src = url;\n script.async = true;\n script.crossOrigin = 'anonymous';\n document.body.appendChild(script);\n }\n\n public render(): JSX.Element | null {\n if (isOboRequest(this.props.context.request)) {\n return null;\n }\n\n return this.props.renderView(this.props);\n }\n}\n\nexport default PvaChatConnector;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsViewProps } from './loyalty-terms';\n\nconst LoyaltyTermsView: React.FC = props => {\n const { LoyaltyTerms, modalToggle, modal, loading } = props;\n\n return !loading && modal ? (\n \n {modalToggle}\n \n {modal.heading}\n \n {modal.terms}\n \n {modal.checkbox}\n {modal.agreeText}\n \n \n \n {modal.submitButton}\n {modal.cancelButton}\n \n \n \n ) : null;\n};\n\nexport default LoyaltyTermsView;\n","import * as React from 'react';\r\n\r\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInSocialAccount, ISignInSocialItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n
\r\n {forgetPassword}\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items,\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('sign-in-password-icon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = passwordState.type === 'password' ? 'text' : 'password';\r\n iconElement.className = iconElement.className === 'icon-show-password' ? 'icon-hide-password' :'icon-show-password';\r\n }\r\n};\r\n\r\nexport default SignInView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IProductComparisonButtonViewProps } from './product-comparison-button';\n\n/**\n * Represents product comparison button view.\n * @param props - View props for product comparison button.\n * @returns Functional component of product comparison button.\n */\nexport const ProductComparisonButtonViewFunctionalComponent: React.FC = props => {\n const { productComparisonButton, productComparisonPreview } = props;\n\n return (\n \n {productComparisonButton}\n {productComparisonPreview}\n \n );\n};\n\nexport default ProductComparisonButtonViewFunctionalComponent;\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer, MobileMenuContainer, MobileMenuBodyContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n \r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n \r\n \r\n {props.logo}\r\n \r\n \r\n \r\n { props.MobileMenuHeader }\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer, MobileMenuContainer, MobileMenuBodyContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n \r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n \r\n \r\n \r\n \r\n { props.MobileMenuHeader }\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n \r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n\r\n\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer, MobileMenuContainer, MobileMenuBodyContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n \r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n \r\n \r\n {props.logo}\r\n \r\n \r\n \r\n { props.MobileMenuHeader }\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","\r\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n {forgetPassword}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n \r\n \r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('showPasswordIcon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = (passwordState.type === 'password') ? 'text' : 'password';\r\n iconElement.className = (iconElement.className === 'ms-sign-in__password-icon ms-sign-in__password-icon-show')\r\n ? 'ms-sign-in__password-icon ms-sign-in__password-icon-hide'\r\n : 'ms-sign-in__password-icon ms-sign-in__password-icon-show';\r\n }\r\n};\r\n\r\nexport default SignInView;\r\n"],"sourceRoot":""}