{"version":3,"sources":["webpack:///src/modules/password-reset/components/password-reset-button.tsx?7c39","webpack:///src/modules/password-reset/components/password-reset-error.tsx?5bd3","webpack:///src/modules/password-reset/components/password-reset-input.tsx?7f32","webpack:///src/modules/password-reset/components/password-reset-label.tsx?2eed","webpack:///src/modules/password-reset/components/password-reset-loading-icon.tsx?29cc","webpack:///src/modules/password-reset/components/password-reset-loading-message.tsx?a735","webpack:///src/modules/password-reset/password-reset.tsx?2fc7","webpack:///src/modules/checkout-shipping-address/checkout-shipping-address.view.tsx?e155","webpack:///src/modules/header/header.view.tsx?40e5","webpack:///src/modules/breadcrumb/breadcrumb.view.tsx?58b4","webpack:///src/modules/checkout-payment-instrument/checkout-payment-instrument.view.tsx?9afd","webpack:///src/modules/sign-in/sign-in.view.tsx?a753","webpack:///src/modules/password-reset/password-reset.view.tsx?f872","webpack:///src/modules/site-picker/site-picker.view.tsx?dcff","webpack:///src/modules/checkout-terms-and-conditions/checkout-terms-and-conditions.view.tsx?0931","webpack:///src/modules/account-invoice-tile/components/account-invoice-tile-description.tsx?0029","webpack:///src/modules/account-invoice-tile/components/account-invoice-tile-links.tsx?d307","webpack:///src/modules/account-invoice-tile/account-invoice-tile.tsx?9a78","webpack:///src/modules/checkout-pickup/checkout-pickup.view.tsx?9210","webpack:///src/modules/aad-generic/aad-generic.view.tsx?ecad","webpack:///src/modules/fabrikam/views/ratings-histogram.view.tsx?96ae","webpack:///src/modules/account-customer-balance-tile/account-customer-balance-tile.view.tsx?955a","webpack:///src/modules/account-wishlist-tile/components/account-wishlist-tile-description.tsx?c387","webpack:///src/modules/account-wishlist-tile/components/account-wishlist-tile-links.tsx?3c8d","webpack:///src/modules/account-wishlist-tile/account-wishlist-tile.tsx?8a2b","webpack:///src/modules/fabrikam/views/search-result-container.view.tsx?f8ea","webpack:///src/modules/product-collection/product-collection.view.tsx?9eb3","webpack:///src/modules/invoices-list/invoices-list.view.tsx?0243","webpack:///src/modules/sign-up/components/sign-up-button.tsx?4a5f","webpack:///src/modules/sign-up/components/sign-up-error.tsx?9100","webpack:///src/modules/sign-up/components/sign-up-input.tsx?49f8","webpack:///src/modules/sign-up/components/sign-up-label.tsx?a805","webpack:///src/modules/sign-up/components/sign-up-loading-icon.tsx?9dc7","webpack:///src/modules/sign-up/components/sign-up-loading-message.tsx?1a3b","webpack:///src/modules/sign-up/components/sign-up-success.tsx?be19","webpack:///src/modules/sign-up/sign-up.tsx?f918","webpack:///src/modules/account-generic-tile/components/account-generic-tile-links.tsx?e4df","webpack:///src/modules/account-generic-tile/account-generic-tile.tsx?4504","webpack:///src/modules/business-sign-up/business-sign-up.view.tsx?578b","webpack:///src/modules/account-address-tile/components/account-address-tile-description.tsx?88b9","webpack:///src/modules/account-address-tile/components/account-address-tile-links.tsx?7e3f","webpack:///src/modules/account-address-tile/account-address-tile.tsx?4565","webpack:///src/modules/footer-category/footer-category.view.tsx?26a5","webpack:///src/modules/search-result-container/search-result-container.view.tsx?3d61","webpack:///src/modules/promo-banner/promo-banner.view.tsx?d069","webpack:///src/modules/business-account-address/business-account-address.view.tsx?dcd1","webpack:///src/modules/checkout-guest-profile/checkout-guest-profile.view.tsx?c89a","webpack:///src/modules/loyalty-sign-up/loyalty-sign-up.view.tsx?ed3f","webpack:///src/modules/cart-icon/cart-icon.view.tsx?d63a","webpack:///src/modules/account-profile-edit/account-profile-edit.view.tsx?72b7","webpack:///src/modules/navigation-menu/navigation-menu.tsx?390c","webpack:///src/modules/fabrikam/views/header.view.tsx?1cde","webpack:///src/modules/search/search.view.tsx?e62d","webpack:///src/modules/media-gallery/media-gallery.view.tsx?6e14","webpack:///src/modules/account-profile/account-profile.view.tsx?b442","webpack:///src/modules/cookie-compliance/cookie-compliance.view.tsx?b30b","webpack:///src/modules/social-share-item/social-share-item.view.tsx?ce9b","webpack:///src/modules/footer-item/footer-item.tsx?f8b4","webpack:///src/modules/site-picker/site-picker.tsx?35ca","webpack:///src/modules/wishlist-items/wishlist-items.view.tsx?caf1","webpack:///src/modules/checkout-gift-card/checkout-gift-card.view.tsx?3424","webpack:///src/modules/order-template/order-template.view.tsx?f2c8","webpack:///src/modules/accordion/accordion.tsx?45c1","webpack:///src/modules/navigation-menu/navigation-menu.view.tsx?df40","webpack:///src/modules/content-block/content-block.view.tsx?a86e","webpack:///src/modules/organization-users-tile/components/account-organization-users-tile-description.tsx?8d2f","webpack:///src/modules/organization-users-tile/components/account-organization-users-tile-links.tsx?2a03","webpack:///src/modules/organization-users-tile/organization-users-tile.tsx?9c60"],"names":["id","className","text","ariaLabel","disabled","telemetryContent","onClick","payLoad","attributes","type","message","errorClassName","role","GetMaxLength","maxLength","parsedMaxLength","parseInt","isNaN","value","pattern","onChange","undefined","forId","htmlFor","props","super","moduleClassName","handleHeadingChange","event","this","config","heading","target","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","setTimeout","clearInterval","window","isInitialized","map","obj","ID","toLowerCase","newPasswordRegex","PAT","reenterPasswordRegex","resources","verifying_blurb","loadingMessage","Object","assign","passwordDefaultRegex","context","request","telemetryPageName","friendlyName","telemetry","viewProps","viewState","isShowLoading","passwordReset","moduleProps","loading","modal","tag","isOpen","modalBody","icon","defaultAADConainer","style","display","aadConainer","editProps","onEdit","requestContext","passwordResetLocalAccount","_renderLocalAccount","renderView","localAccount","items","_renderInput","newPasswordLabelText","confirmPasswordLabelText","errorMessage","key","passwordEntryMismatchError","requiredFieldMissingError","fieldIncorrectError","buttonsWrapper","buttons","saveButtonAriaLabel","saveButtonText","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","labelText","wrapper","label","input","AddressShow","AddressDetail","item","description","AddressSelect","SelectAddress","addButton","isShowSaveButton","saveButton","isShowCancelButton","cancelButton","SelectItem","showItems","AddressAddUpdate","AddressForm","hasError","error","AddressItem","alert","AddressError","title","CheckoutShippingAddress","showAddress","showAddressSelect","showAddOrUpdateAddress","isShowAddress","isShowAddresList","isShowAddOrUpdateAddress","_renderReactFragment","length","slot","index","HeaderTag","HeaderContainer","HeaderTopBarContainer","MobileMenuContainer","MobileMenuBodyContainer","MobileMenuLinksContainer","Divider","navIcon","logo","search","preferredStore","AccountInfoDropdownParentContainer","AccountInfoDropdownPopoverConentContainer","accountInfoDropdownButton","signOutLink","signInLink","accountLinks","link","_renderDesktopAccountBlock","wishListIconDesktop","cartIcon","siteOptions","MobileMenuHeader","menuBar","wishListIconMobile","root","links","backButton","BreadcrumbContainer","BreadcrumbList","BreadcrumbListItem","separator","OverlayModal","checkoutPaymentInstrument","waiting","paymentInformation","addPaymentForm","overlayModal","SignInLoading","signIn","signInSection","signUpSection","signInSectionHeading","signInLocalAccount","signInSocialAccount","signUpSectionHeading","signUpDescription","signUpLink","forgetPassword","disclaimer","signInButton","LocalAccount","socialAccounts","button","image","SocialAccount","PasswordResetItem","PasswordResetLoading","_renderSitePicker","_renderSiteOptionsList","SitePickerMenuList","SitePickerMenuListItem","SitePickerMenuListItemArray","options","onMouseLeave","resetSiteOptionsState","isMobileView","SitePicker","SitePickerMobileContainer","SitePickerMobileMenuList","SitePickerMobileMenuListItem","renderSiteOptions","_renderMobileView","SitePickerMenu","SitePickerMenuSpan","siteOptionsState","_renderDesktopView","TermsAndCondition","termsAndConditionAcceptance","checkBox","ErrorMessage","checkoutTermsAndConditions","termsAndConditionsContent","editButton","isError","isShowEditButton","AccountInvoiceTileDescription","_mapEditableLinks","linkdata","editableLinks","forEach","contentAction","etext","linkText","editableLink","linkUrl","destinationUrl","openInNewTab","additionalProperties","push","onTextChange","handleLinkTextChange","linkIndex","data","cultureFormatter","formatCurrency","currencyCode","accountInvoiceTileDescription","invoiceTotalAmount","openinvoiceAmount","invoices","result","invoiceItem","AmountBalance","toFixed","AccountInvoiceTile","checkoutPickup","headerError","pickupGroups","isLoading","isHeaderError","pickupGroupViewProps","pickupGroupContainer","dateTimeslotContainer","groupDivider","groupHeader","cartLineImages","groupErrorMessage","pickupDateDropdown","pickupTimeslotDropdown","selectedDateTimeslot","pickupAddress","isShowDropdown","isShowSelected","aadGeneric","aadAPIConainer","histogramItem","buttonProps","starLabel","bar","percentage","histogramItems","histogramProps","AccountCustomerBalanceTile","content","accountWishlistTileDescription","wishlists","wishlistsCount","CommerceListLines","AccountWishlistTile","createSearchResultModal","modalProps","refineMenu","sortByDropDown","modalHeader","createModalBody","modalFooter","renderSort","renderRefiner","refiners","RefineMenuContainer","RefinerSectionContainer","submenu","SortingContainer","renderCategoryHierarchy","CategoryHierarchyContainer","categoryHierarchyList","categoryHierarchySeparator","category","renderTitle","TitleContainer","titlePrefix","titleText","titleCount","SearchResultContainer","products","pagination","ProductsContainer","ProductSectionContainer","choiceSummary","isMobile","modalToggle","searchResultModal","TitleViewProps","categoryHierarchy","sortByOptions","CategoryNavContainer","RefineAndProductSectionContainer","FeatureSearchContainer","similarLookProduct","_renderCarousel","carouselContainer","_renderProduct","_renderGrid","gridContainer","product","ProductContainer","productComponent","ProductCollectionContainer","SingleSlideCarouselComponentProps","GridComponentProps","isCarousel","InvoiceListView","header","filter","successClassName","handleParagraphChange","isEmailVerificationRequried","templateVersion","emailRegex","VERIFY","UX_INPUT_TYPE","PAT_DESC","invalidPasswordError","invalidEmailAddressError","errorMessages","required_field","getValue","v1Value","v2Value","signUp","signUpLocalAccount","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","emailAddressLabelText","passwordLabelText","emailVerification","isRequired","email","verificationCodeLabelText","verificationControlWrapper","buttonWrapper","sendCodeButtonAriaLabel","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","successMessage","verificationCodeSendSuccess","emailAddressVerifiedSuccess","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","invalidEmailError","signUpButtonArialabel","signUpButtonText","cancelButtonArialabel","requiredFieldMissingSummaryError","cssClassName","AccountGenericTile","BusinessSignUpItem","isAddressInput","businessSignUp","ContainerWrapper","businessSignUpForm","FormWrapper","accountAddressTileDescriptionForSingleAddress","accountAddressTileDescriptionForMultipleAddresses","address","customerInformation","addressCount","accountAddressTileDescription","AccountAddressTile","IsAsyncCustomer","FooterCategoryView","categories","FooterList","FooterListItem","renderTitleCount","promoBannerProps","contentProps","closeButton","bannerMessages","PromoBannerTextProps","PromoBannerLinksProps","CarouselProps","handleLinks","handleText","slides","BusinessAccountAddress","ShowContactInfo","showInfoProps","AddContactInfo","addFormProps","submitButton","inputGroupProps","showContactInfo","addContactInfo","LoyaltySignUp","memberHeading","signUpText","signUpButton","detailsLink","termsLink","miniCartWrapper","renderModuleAttributes","FlyoutContainer","flyoutTitle","CartlinesWrapper","cartLines","cartLine","miniCartItemWrapper","cartline","storeLocation","remove","_renderCartlines","cartlines","totalPrice","checkoutAsSignInUserButton","goToCartButton","AccountProfileEditItem","AccountProfileEditLoading","accountProfileEdit","accountProfileEditLocalAccount","NavigationMenu","isRetail","isCMS","_setNavigationSource","sourceType","_updateViewport","bind","viewport","device","Type","navigationMenuSource","state","menuItemList","locale","nameTranslations","nameTranslation","find","Language","Text","resizeThrottledEventHandler","removeEventListener","_mapData","defaultImageSettings","viewports","xs","q","w","h","xl","lazyload","imageSettings","gridSettings","Navigation","menuAriaLabel","MenuList","ListItem","showCategoryImage","displayCategoryImage","Link","DivContainer","ImageDivContainer","Button","ImageContainer","Span","MobileDescriptionContainer","MobileBackButton","backButtonAriaLabel","MobileDescriptionLabel","menuItemData","mergedData","_constructMenuItemData","cmsNavItems","idx","_constructTopMenuItemData","enabletopMenu","mergedRootMenuData","topMenu","rootMenuNavigation","linkURL","imageSource","subMenu","retailItem","cmsItem","addedAllMenu","imageSouce","Images","Uri","RSItemIdInit","getFriendlyName","NameTranslations","Url","_getNestedChildren","CMSItemIdInit","imageDestinationURL","imageLink","src","_getCMSNestedChildren","imageSourceUrl","nestedChildren","Children","allCategoryMenuText","subMenus","_getViewport","setState","innerWidth","sm","md","lg","renderCustomerName","accountInformation","customer","FirstName","Name","renderForMobile","accountClassName","_renderAccountBlock","mobileMenuCollapsed","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","_renderMobileAccountBlock","_renderCollapseMenu","_renderForm","form","SearchForm","submitBtn","cancelBtn","_renderKeywordSuggestions","KeywordSuggest","UlKeyword","keywordSuggestions","_renderProductSuggestions","ProductSuggest","UlProduct","productSuggestions","LiProduct","AProduct","thumbnail","price","_renderCategorySuggestions","CategorySuggest","UlCategory","categorySuggestions","Search","AutoSuggestAriaLabel","AutoSuggestAriaLabelText","searchText","AutoSuggest","autosuggestCategory","autosuggestKeyword","autosuggestProduct","_renderThumbnails","thumbnails","ThumbnailsContainerProps","_renderThumbnailItem","ThumbnailItemContainerProps","Picture","Thumbnails","MediaGallery","Modal","AccountPreferencesSection","accountPreferences","personalization","extraPreferences","AccountPreferenceSection","preferenceSecton","accountPreference","buttonYesText","buttonNoText","AccountProfileSection","AccountProfileItem","AccountProfile","accountProfileWrapper","emailSection","nameSection","preferenceSection","customerAttributesWrapper","customerAttributesSection","CookieComplianceBanner","AlertProps","Content","acceptButton","color","fade","SocialShareItemView","SocialShareItem","SocialShareItemElement","FooterItem","handleTextChange","footerItemClassName","_createHeading","_createImageMarkup","_createText","_createLinkText","EditableLink","_createLink","HeadingContainer","ItemContainer","href","ariaHiddenAttr","loadFailureBehavior","PureComponent","_cookieName","_cookieExpirationInSeconds","_escFunction","keyCode","expandSiteOptions","nextFocus","document","activeElement","_sitePickerMenuButton","current","contains","_sitePickerMenuNode","_resetSiteOptionsState","focus","_handleOutsideClick","_handleChange","createRef","_renderSiteOptions","isBrowser","addEventListener","body","ref","_renderSitePickerImage","expandSiteOptionsState","e","preventDefault","currentTarget","cookies","isConsentGiven","cookieConfig","maxAge","set","location","siteImage","imageProps","tabIndex","siteRedirectUrl","siteName","altText","_renderItem","Product","ProductDimensions","ProductDetails","productImage","productLink","productPrice","productDimensions","addToCartButton","removeButton","productStatusMessage","entireProductLink","productName","productAriaLabel","inventoryInformation","productAttributes","dimension","WishlistItems","status","statusMessage","Products","From","formProps","inputPinLabel","inputExpLabel","inputProps","inputNumProps","inputPinProps","inputExpProps","inputNumber","inputPin","inputExp","applyButton","supportExternalGiftCard","showGiftCardPinInput","showGiftCardExpInput","alertFieldLabel","SelectedGiftCard","itemProps","selectedGiftCard","GiftCardList","listProps","list","AddResource","ShowResource","checkoutGiftCardProps","showGiftCard","addGiftCard","quantityLabel","ProductsTableRow","selectLine","productNumber","addToBagButton","productInfo","productUnitOfMeasure","productQuantityView","productQuantity","popUp","OrderTemplateLines","ProductsTable","ProductsTableHeading","orderLines","productsStatusMessage","OrderTemplateActions","orderActions","itemAddedToCartDialog","bulkOrderLineActions","isDetailsDisplayed","detailedProductView","toggleDetailsDisplayed","cancelBtnLabel","productNumberText","productText","productUnitPriceText","productUOMText","productQuantityText","toggleDetails","addTemplateToBag","renameTemplate","removeTemplate","wrapClassName","autoFocus","applicationNode","toggle","Accordion","_onExpandAll","_onCollapseAll","slots","headingComponent","accordionViewProps","AccordionContainer","HeaderSection","HeadingWrapper","accordianButtonsContainer","accordionButtons","_renderAccordionButton","accordionItemContainer","accordionItems","_getAccordionItem","ExpandAll","attributeExpandAll","CollapseAll","attributeCollapseAll","showToggleAll","expandAllText","toggleAllSeparator","collapseAllText","accordionState","isAllExpanded","actionContext","update","interactionStyle","NavigationMenuView","currentLevel","_updateCategoryImage","categoryImageSrc","categoryImage","categoryImageAltText","_handleDropdownToggle","parentId","isBackTrack","activeMenu","mobileViewLabelText","parentMenu","_resetFocus","_handleGoBack","menuNode","_handleClickOutside","_getCategoryImage","alttext","categoryImageUrl","apiSettings","ImageData","categoryImageSettings","_closeSubmenu","_renderDisplay","menuItem","i","_getFromSubMenu","_createMenuItemList","found","_renderSubMenu","_renderButtonMenuItem","_renderLinkMenuItem","_renderSpanMenuItem","IsSubMenu","enableMultiSupportMenu","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","levelClassName","menuOptions","option","hasOptions","haveSubmenu","Math","round","toString","_renderMenu","onFocus","hoverEffect","imagesource","onMouseOver","level","currentItem","categoryImageDisplay","DivContainerClass","contentBlockContainer","imageContainer","detailsContainer","contentBlockAnchorTag","imageAriaLabel","AccountOrganizationUsersTileDescription","AccountOrganizationUsersTileLinks","accountOrganizationUsersTileDescriptionForSingleUser","accountOrganizationUsersTileDescriptionForMultipleUsers","numUsers","users","accountOrganizationUsersTileDescription","OrganizationUsersTile"],"mappings":"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","file":"static/js/2.955823083242f8d2.chunk.js","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst PasswordResetButton: React.FC = ({ id, className, text, ariaLabel, disabled, telemetryContent, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n {text}\n );\n};\n\nexport default PasswordResetButton;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n\n};\n\nexport default PasswordResetError;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as React from 'react';\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\n\nexport interface IPasswordResetInputProps {\n id?: string;\n // tslint:disable-next-line:no-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IPasswordResetInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst PasswordResetInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n onChange }) => (\n \n );\n\nexport default PasswordResetInput;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as React from 'react';\n\nexport interface IPasswordResetLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetLabel;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as React from 'react';\n\nexport interface IPasswordResetLoadingIcon {\n className: string;\n}\n\nconst PasswordResetLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default PasswordResetLoadingIcon;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as React from 'react';\n\nexport interface IPasswordResetLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetLoadingMessage: React.FC = ({ className, message }) => (\n
\n {message}\n
\n);\n\nexport default PasswordResetLoadingMessage;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport {\n getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody\n} from '@msdyn365-commerce-modules/utilities';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\n\nimport PasswordResetButtonComponent from './components/password-reset-button';\nimport PasswordResetErrorComponent from './components/password-reset-error';\nimport PasswordResetInputComponent from './components/password-reset-input';\nimport PasswordResetLabelComponent from './components/password-reset-label';\nimport PasswordResetLoadingIconComponent from './components/password-reset-loading-icon';\nimport PasswordResetLoadingMessageComponent from './components/password-reset-loading-message';\nimport { IPasswordResetConfig, IPasswordResetProps } from './password-reset.props.autogenerated';\n\nexport interface IPasswordResetViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetLocalAccount {\n localAccount: INodeProps;\n items: IPasswordResetItem[];\n errorMessage: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetViewProps {\n className: string;\n viewState: IPasswordResetViewState;\n loading: IPasswordResetLoading;\n passwordReset: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetLocalAccount: IPasswordResetLocalAccount;\n}\n\n/**\n *\n * PasswordReset component\n * @extends {React.Component>}\n */\n@observer\nclass PasswordReset extends React.Component> {\n\n private moduleClassName: string = 'ms-password-reset';\n private telemetryContent?: ITelemetryContent;\n @observable private newPasswordRegex: string;\n @observable private reenterPasswordRegex: string;\n\n @observable private isInitialized: boolean;\n\n // tslint:disable-next-line:no-any\n private initializationTimer: any;\n\n constructor(props: IPasswordResetProps) {\n super(props);\n // tslint:disable-next-line:max-line-length\n const passwordDefaultRegex = '^((?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)|(?=.*[a-z])(?=.*[A-Z])(?=.*[^A-Za-z0-9])|(?=.*[a-z])(?=.*\\\\d)(?=.*[^A-Za-z0-9])|(?=.*[A-Z])(?=.*\\\\d)(?=.*[^A-Za-z0-9]))([A-Za-z\\\\d@#$%^&*\\\\-_+=[\\\\]{}|\\\\\\\\:\\',?/`~\\'();!]|\\\\.(?!@)){8,16}$';\n this.newPasswordRegex = passwordDefaultRegex;\n this.reenterPasswordRegex = passwordDefaultRegex;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // tslint:disable-next-line:no-string-literal\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // tslint:disable-next-line:no-string-literal\n window['$element']['initialize']();\n }\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n passwordReset: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: ,\n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading &&\n ,\n passwordResetLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.heading!.text= event.target.value;\n\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => { this._isInitializationSuccessful(); }, 100);\n setTimeout(() => { clearInterval(this.initializationTimer); }, 10000);\n }\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private _isInitializationSuccessful = () => {\n // tslint:disable-next-line:no-string-literal\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n }\n\n private _prePopulateData = () => {\n // tslint:disable-next-line:no-string-literal\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // tslint:disable-next-line:no-string-literal\n window['SA_FIELDS']['AttributeFields'].map((obj: { ID: string; PAT: string }) => {\n switch (obj.ID.toLowerCase()) {\n case 'newpassword': {\n this.newPasswordRegex = obj.PAT;\n break;\n }\n case 'reenterpassword': {\n this.reenterPasswordRegex = obj.PAT;\n break;\n }\n default:\n }\n });\n }\n }\n\n private _updateErrorMessage = () => {\n const { resources } = this.props;\n\n // tslint:disable-next-line:no-string-literal\n if (window && window['CONTENT']) {\n\n const message = {\n verifying_blurb: resources.loadingMessage\n };\n\n // tslint:disable-next-line:no-string-literal\n Object.assign(window['CONTENT'], message);\n }\n }\n\n private _renderLocalAccount(): IPasswordResetLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('newPassword', 'password', resources.newPasswordLabelText, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, this.reenterPasswordRegex),\n ],\n errorMessage: [\n ,\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`,\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n }\n\n private _renderInput(id: string, type: string, labelText: string, pattern?: string): IPasswordResetItem {\n const className = `${this.moduleClassName}__account-item`;\n return (\n {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n\n }\n );\n }\n\n}\n\nexport default PasswordReset;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as React from 'react';\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\n\nimport { IAddressAddItem, IAddressAddUpdateProps } from '../../common/components/address-add';\nimport { IAddressSelectItem, IAddressSelectProps } from '../../common/components/address-select';\nimport { IAddressShowItem, IAddressShowProps } from '../../common/components/address-show';\nimport { ICheckoutShippingAddressViewProps } from './checkout-shipping-address';\n\nconst AddressShow: React.FC = ({\n AddressDetail,\n items\n}) => {\n\n return (\n \n {items && items.map((item: IAddressShowItem) => {\n return (\n <>\n {item.description}\n \n );\n })}\n \n );\n};\n\nconst AddressSelect: React.FC = ({\n SelectAddress,\n addButton,\n items,\n isShowSaveButton,\n saveButton,\n isShowCancelButton,\n cancelButton,\n}) => {\n\n return (\n \n {addButton}\n {items && items.map((item: IAddressSelectItem) => {\n const SelectItem = item.SelectItem;\n return (\n {item.input}\n \n );\n })}\n {isShowSaveButton && saveButton}\n {isShowCancelButton && cancelButton}\n \n );\n};\n\nconst AddressAddUpdate: React.FC = ({\n AddressForm,\n heading,\n items,\n hasError,\n error,\n isShowSaveButton,\n saveButton,\n isShowCancelButton,\n cancelButton,\n}) => {\n\n return (\n \n {heading}\n {items && items.map((item: IAddressAddItem) => {\n const { AddressItem, key, label, alert, input } = item;\n return (\n {label}\n {alert}\n {input}\n );\n })}\n {hasError && \n {error.title}\n {error.message}\n }\n {isShowSaveButton && saveButton}\n {isShowCancelButton && cancelButton}\n \n );\n};\n\nconst CheckoutShippingAddressView: React.FC = props => {\n const { CheckoutShippingAddress, viewState, showAddress, showAddressSelect, showAddOrUpdateAddress } = props;\n\n return (\n \n {viewState.isShowAddress && }\n {viewState.isShowAddresList && }\n {viewState.isShowAddOrUpdateAddress && }\n \n );\n};\n\nexport default CheckoutShippingAddressView;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\nimport { IHeaderViewProps } from './header';\n\nconst headerView: React.FC = props => {\n const {\n HeaderTag,\n HeaderContainer,\n HeaderTopBarContainer,\n MobileMenuContainer,\n MobileMenuBodyContainer,\n MobileMenuLinksContainer,\n Divider\n } = props;\n return (\n \n \n \n {props.navIcon}\n {props.logo}\n {_renderReactFragment(props.search)}\n {props.preferredStore}\n {_renderDesktopAccountBlock(props)}\n {props.wishListIconDesktop}\n \n {props.cartIcon}\n {_renderReactFragment(props.siteOptions)}\n \n \n \n { props.MobileMenuHeader }\n {_renderReactFragment(props.menuBar)}\n \n { props.accountLinks ? props.accountLinks.map(link => link) : false }\n { props.siteOptions }\n { props.wishListIconMobile }\n { props.signInLink }\n { props.signOutLink }\n \n \n \n {_renderReactFragment(props.menuBar)}\n \n \n );\n};\n\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\n const {\n AccountInfoDropdownParentContainer,\n AccountInfoDropdownPopoverConentContainer,\n accountInfoDropdownButton,\n signOutLink,\n signInLink,\n accountLinks,\n } = props;\n\n if (AccountInfoDropdownParentContainer) {\n if (AccountInfoDropdownPopoverConentContainer) {\n return (\n \n {accountInfoDropdownButton}\n \n { accountLinks ? accountLinks.map(link => link) : false }\n {signOutLink}\n \n \n );\n } else if (signInLink) {\n return (\n \n {signInLink}\n \n );\n }\n }\n props.context.telemetry.error('Header content is empty, module wont render.');\n return null;\n}\n\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\n return (\n \n {items && items.length\n ? items.map((slot: React.ReactNode, index: number) => {\n return {slot};\n })\n : null}\n \n );\n}\n\nexport default headerView;","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport { IBreadcrumbViewProps } from './breadcrumb';\n\nconst BreadCrumbView: React.FC = props => {\n const { root, links, backButton, BreadcrumbContainer, BreadcrumbList, BreadcrumbListItem, separator } = props;\n if (!root && !links && !backButton) {\n props.context.telemetry.error('BreadCrumb content is empty, module wont render');\n return null;\n }\n return (\n \n \n {root &&\n \n {root}\n {links && separator}\n \n }\n {backButton &&\n \n {backButton}\n \n }\n {links && links.map((link, index) => (\n \n \n {link}\n {links[index + 1] && separator}\n \n \n ))}\n \n \n );\n};\n\nexport default BreadCrumbView;","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\nimport { ICheckoutPaymentInstrumentViewProps, ICheckoutPaymentOverlayModal } from './checkout-payment-instrument';\n\nconst OverlayModal: React.FC = ({\n modal\n}) => {\n return (\n \n );\n};\n\nconst CheckoutPaymentInstrumentView: React.FC = ({\n checkoutPaymentInstrument,\n className,\n id,\n waiting,\n alert,\n paymentInformation,\n addPaymentForm,\n overlayModal,\n ...restProps\n}) => (\n \n {waiting}\n {alert}\n {paymentInformation}\n {addPaymentForm}\n {overlayModal && }\n \n );\n\nexport default CheckoutPaymentInstrumentView;\n","import * as React from 'react';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\n\nimport {\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInSocialAccount, ISignInSocialItem,\n ISignInViewProps\n} from './sign-in';\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n forgetPassword,\n disclaimer,\n error,\n signInButton\n}) => {\n\n return (\n \n {items && items.map((item: ISignInItem) => {\n return (\n \n {item.label}\n {item.error}\n {item.input}\n \n );\n })}\n {forgetPassword}\n {disclaimer}\n {error}\n {signInButton}\n \n );\n};\n\nconst SocialAccount: React.FC = ({\n socialAccounts,\n items,\n}) => {\n\n return (\n \n {items && items.map((item: ISignInSocialItem) => {\n return (\n \n {item.image}\n {item.text}\n \n );\n })}\n \n );\n};\n\nconst SignInLoading: React.FC = ({\n modal,\n modalBody,\n icon,\n message,\n}) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst SignInView: React.FC = props => {\n\n const {\n signIn,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n signInSection,\n signUpSection,\n signInSectionHeading,\n signInLocalAccount,\n signInSocialAccount,\n signUpSectionHeading,\n signUpDescription,\n signUpLink\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n \n {signInSectionHeading}\n {LocalAccount(signInLocalAccount)}\n {SocialAccount(signInSocialAccount)}\n \n \n {signUpSectionHeading}\n {signUpDescription}\n {signUpLink}\n \n \n \n );\n};\n\nexport default SignInView;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as React from 'react';\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\n\nimport {\n IPasswordResetItem, IPasswordResetLoading, IPasswordResetLocalAccount, IPasswordResetViewProps\n} from './password-reset';\n\nconst PasswordResetItem: React.FC = ({\n wrapper,\n label,\n errorMessage,\n input\n}) => {\n\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n\n return (\n \n {items && items.map((item: IPasswordResetItem) => {\n return (\n \n );\n })}\n {errorMessage && errorMessage.map((error: React.ReactNode, index: number) => {\n return (\n \n {error}\n \n );\n })}\n \n {buttons && buttons.map((button: React.ReactNode, index: number) => {\n return (\n \n {button}\n \n );\n })}\n \n\n \n \n \n \n );\n};\n\nconst PasswordResetLoading: React.FC = ({\n modal,\n modalBody,\n icon,\n message,\n}) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetView: React.FC = props => {\n\n const {\n passwordReset,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n heading,\n passwordResetLocalAccount\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\nimport { ISitePickerViewProps } from './site-picker';\n\nexport default (props: ISitePickerViewProps) => {\n return (\n \n {_renderSitePicker(props)}\n \n );\n};\n\nconst _renderDesktopView = (props: ISitePickerViewProps) => {\n const { SitePickerMenu, SitePickerMenuSpan } = props;\n return (\n \n \n {props.config.heading?.text}\n \n \n {props.siteOptionsState ? _renderSiteOptionsList(props) : null}\n \n );\n};\n\nconst _renderSiteOptionsList = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMenuList,\n SitePickerMenuListItem,\n SitePickerMenuListItemArray,\n } = props;\n const options = SitePickerMenuListItemArray!.map((item, index) => {\n return (\n \n {item}\n \n );\n }\n );\n return (\n \n {options}\n \n );\n};\n\nconst _renderMobileView = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMobileContainer, SitePickerMobileMenuList, SitePickerMobileMenuListItem } = props;\n return (\n \n \n {props.SitePickerMenuListItemArray?.map((item, index) => {\n return (\n \n {item}\n \n );\n })}\n \n \n );\n};\n\nconst _renderSitePicker = (props: ISitePickerViewProps): React.ReactNode => {\n const { isMobileView, SitePicker } = props;\n return (\n \n {isMobileView ? _renderMobileView(props) : _renderDesktopView(props)}\n \n );\n};","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\nimport { ICheckoutTermsAndConditions, ICheckoutTermsAndConditionsError, ICheckoutTermsAndConditionsViewProps } from './checkout-terms-and-conditions';\n\nconst TermsAndCondition: React.FC = ({\n termsAndConditionAcceptance,\n checkBox,\n description\n}) => {\n\n return (\n \n {checkBox}\n {description}\n \n );\n};\n\nconst ErrorMessage: React.FC = ({\n error,\n title,\n message,\n}) => {\n\n return (\n \n {title}\n {message}\n \n );\n};\n\nconst CheckoutTermsAndConditionsView: React.FC = props => {\n const {\n checkoutTermsAndConditions,\n viewState,\n termsAndConditionsContent,\n errorMessage,\n saveButton,\n editButton,\n cancelButton } = props;\n\n return (\n // TODO: All wrapper div should be provided by viewProps. Once SDK provide the sln, update markup.\n \n {viewState.isError && errorMessage && }\n {}\n {viewState.isShowSaveButton && saveButton}\n {viewState.isShowEditButton && editButton}\n {viewState.isShowCancelButton && cancelButton}\n \n );\n};\n\nexport default CheckoutTermsAndConditionsView;","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as React from 'react';\n\nexport interface IAccountInvoiceTileDescription {\n description: string;\n}\n\nexport const AccountInvoiceTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport * as React from 'react';\nimport { ILinksData } from '../account-invoice-tile.props.autogenerated';\n\nexport interface IAccountInvoiceTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n /** The telemetry content */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountInvoiceTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n { editableLinks && editableLinks.length ?\n \n : null\n }\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if(!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link,index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-invoice-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'button',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountInvoiceTileLinks;","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { IAccountInvoiceTileData } from './account-invoice-tile.data';\nimport { IAccountInvoiceTileProps } from './account-invoice-tile.props.autogenerated';\n\nimport {AccountInvoiceTileDescription} from './components';\nimport LinksComponent from './components/account-invoice-tile-links';\n\nexport interface IAccountInvoiceTileViewProps extends IAccountInvoiceTileProps {\n AccountInvoiceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n\n}\n\n/**\n *\n * AccountInvoiceTile component\n * @extends {React.PureComponent>}\n */\nclass AccountInvoiceTile extends React.PureComponent> {\n private telemetryContent: ITelemetryContent;\n constructor(props: IAccountInvoiceTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\n }\n\n public render(): JSX.Element {\n const {\n config,\n data,\n resources,\n context: {\n cultureFormatter: {\n formatCurrency,\n // @ts-ignore\n currencyCode\n }\n }\n } = this.props;\n const { className, heading, links } = config;\n const { accountInvoiceTileDescription } = resources;\n let openinvoiceAmount = 0;\n let invoiceTotalAmount:string|undefined;\n\n if (data && data.invoices && data.invoices.result) {\n data.invoices.result.forEach(invoiceItem => {\n if (invoiceItem.AmountBalance) {\n openinvoiceAmount += invoiceItem.AmountBalance;\n }\n }\n );\n invoiceTotalAmount = formatCurrency(openinvoiceAmount.toFixed(2), currencyCode);\n }\n const description = invoiceTotalAmount && format(accountInvoiceTileDescription, invoiceTotalAmount);\n\n const viewProps = {\n ...this.props,\n className: className,\n AccountInvoiceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-invoice-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && ,\n description: description && \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.heading.text = event.target.value;\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountInvoiceTile;\n","import { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\nimport { ICheckoutPickupViewProps } from './checkout-pickup';\nimport { ICheckoutPickupGroupViewProps } from './components/checkout-pickup-group';\n\nconst CheckoutPickupView: React.FC = props => {\n const {\n checkoutPickup,\n viewState,\n headerError,\n waiting,\n pickupGroups,\n } = props;\n\n return (\n \n {viewState.isLoading && waiting}\n {viewState.isHeaderError && headerError}\n {pickupGroups.map((pickupGroupViewProps: ICheckoutPickupGroupViewProps, index: number): React.ReactElement => {\n const {\n pickupGroupContainer,\n dateTimeslotContainer,\n groupDivider,\n groupHeader,\n cartLineImages,\n groupErrorMessage,\n pickupDateDropdown,\n pickupTimeslotDropdown,\n selectedDateTimeslot,\n pickupAddress\n } = pickupGroupViewProps;\n\n return (\n \n {groupDivider}\n {groupHeader}\n {cartLineImages}\n {groupErrorMessage}\n {viewState.isShowDropdown &&\n \n {pickupDateDropdown}\n {pickupTimeslotDropdown}\n \n }\n {viewState.isShowSelected && pickupAddress}\n {viewState.isShowSelected && selectedDateTimeslot}\n \n );\n })}\n \n );\n\n};\n\nexport default CheckoutPickupView;","/*!\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\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\n\nimport { IAadGenericViewProps } from './aad-generic';\n\nexport default (props: IAadGenericViewProps) => {\n const {\n aadGeneric,\n aadConainer,\n aadAPIConainer,\n heading\n } = props;\n\n return (\n \n \n {heading}\n {aadAPIConainer}\n \n \n );\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { IHistogramItemViewProps, IRatingsHistogramViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst RatingsHistogramView: React.FC = props => {\n const { heading, histogramItems, histogramProps, moduleProps } = props;\n return (\n \n {heading}\n \n {histogramItems.map(item => {\n return histogramItem(item);\n })}\n \n \n );\n};\n\nconst histogramItem = (props: IHistogramItemViewProps) => {\n return (\n \n {props.starLabel}\n {props.bar}\n {props.percentage}\n \n );\n};\n\nexport default RatingsHistogramView;","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\nimport { IAccountCustomerBalanceTileViewProps } from './account-customer-balance-tile';\n\nconst AccountCustomerBalanceTileView: React.FC = props => {\n const { AccountCustomerBalanceTile, heading, content, links } = props;\n\n return (\n \n {heading}\n {content}\n {links}\n \n );\n};\n\nexport default AccountCustomerBalanceTileView;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as React from 'react';\n\ninterface IAccountWishlistTileDescription {\n description: string;\n}\n\nconst IAccountWishlistTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n\nexport default IAccountWishlistTileDescription;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport * as React from 'react';\nimport { ILinksData } from '../account-wishlist-tile.props.autogenerated';\n\nexport interface IAccountWishlistTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n /** The telemetry content */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountWishlistTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n { editableLinks && editableLinks.length ?\n \n : null\n }\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if(!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link,index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-wishlist-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'button',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountWishlistTileLinks;","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\n\nimport { IAccountWishlistTileData } from './account-wishlist-tile.data';\nimport { IAccountWishlistTileProps } from './account-wishlist-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-wishlist-tile-description';\nimport LinksComponent from './components/account-wishlist-tile-links';\n\nexport interface IAccountWishlistTileViewProps extends IAccountWishlistTileProps {\n AccountWishlistTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountWishlist component\n * @extends {React.PureComponent>}\n */\nclass AccountWishlistTile extends React.PureComponent> {\n\n private telemetryContent?: ITelemetryContent;\n\n constructor(props: IAccountWishlistTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountWishlistTileDescription } = resources;\n const wishlists = data.wishlists.result;\n\n const wishlistsCount = (wishlists && wishlists.length && wishlists[0].CommerceListLines || []).length;\n const description = format(accountWishlistTileDescription || 'You have {0} items in the Wishlist.', wishlistsCount);\n\n const viewProps = {\n ...this.props,\n className: className,\n AccountWishlistTile: {\n moduleProps: this.props,\n className: classnames('ms-account-wishlist-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && ,\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.heading.text= event.target.value;\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if(this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountWishlistTile;\n","\nimport { ICategoryHierarchyViewProps, IRefineMenuViewProps, ISearchResultContainerViewProps, ISearchResultModalViewProps, ISortByViewProps, ITitleViewProps } from '@msdyn365-commerce-modules/search-result-container';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst SearchResultContainerView: React.FC = props => {\n const { SearchResultContainer, products, pagination, ProductsContainer, ProductSectionContainer, choiceSummary, isMobile, modalToggle, searchResultModal, TitleViewProps,\n refineMenu, categoryHierarchy, sortByOptions, CategoryNavContainer, RefineAndProductSectionContainer, errorMessage, FeatureSearchContainer, similarLookProduct } = props;\n if (isMobile) {\n return (\n \n {categoryHierarchy && renderCategoryHierarchy(categoryHierarchy)}\n {renderTitle(TitleViewProps)}\n {choiceSummary}\n {modalToggle}\n {createSearchResultModal(searchResultModal, refineMenu, sortByOptions)}\n \n {similarLookProduct}\n \n \n {errorMessage}\n {products}\n \n {pagination}\n \n );\n }\n return (\n \n {categoryHierarchy &&\n \n {renderCategoryHierarchy(categoryHierarchy)}\n \n }\n \n {refineMenu && renderRefiner(refineMenu)}\n \n \n {similarLookProduct}\n \n
\n {TitleViewProps && renderTitle(TitleViewProps)}\n {choiceSummary}\n
\n
\n {sortByOptions && renderSort(sortByOptions)}\n
\n \n {errorMessage}\n {products}\n \n {pagination}\n
\n
\n
\n );\n\n};\n\nconst createSearchResultModal = (modalProps: ISearchResultModalViewProps, refineMenu: IRefineMenuViewProps, sortByDropDown: ISortByViewProps): JSX.Element => {\n return React.cloneElement(modalProps.modal, {}, modalProps.modalHeader, createModalBody(modalProps, refineMenu, sortByDropDown), modalProps.modalFooter);\n};\n\nconst createModalBody = (props: ISearchResultModalViewProps, refineMenu: IRefineMenuViewProps, sortByDropDown: ISortByViewProps): JSX.Element | null => {\n if (sortByDropDown) {\n return React.cloneElement(props.modalBody, {}, renderSort(sortByDropDown), renderRefiner(refineMenu));\n }\n return null;\n};\n\nconst renderRefiner = (props: IRefineMenuViewProps): JSX.Element | null => {\n const { refiners, RefineMenuContainer, RefinerSectionContainer } = props;\n if (refiners) {\n return (\n \n \n {refiners.map((submenu, index) => (\n \n {submenu}\n \n ))}\n \n \n );\n }\n return null;\n};\n\nconst renderSort = (props: ISortByViewProps): JSX.Element | null => {\n const { SortingContainer, sortByDropDown } = props;\n if (sortByDropDown) {\n return (\n \n {sortByDropDown}\n \n );\n }\n return null;\n};\n\nconst renderCategoryHierarchy = (props: ICategoryHierarchyViewProps): JSX.Element | null => {\n const { CategoryHierarchyContainer, categoryHierarchyList, categoryHierarchySeparator } = props;\n if (categoryHierarchyList) {\n return (\n \n {categoryHierarchyList.map((category, index) => (\n \n {category}\n {categoryHierarchyList && categoryHierarchyList[index + 1] && categoryHierarchySeparator}\n \n ))}\n \n );\n }\n\n return null;\n};\n\nconst renderTitle = (props: ITitleViewProps): JSX.Element | null => {\n const { title, TitleContainer } = props;\n if (title) {\n return (\n \n

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

\n
\n );\n }\n return null;\n};\n\nexport default SearchResultContainerView;","import { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\nimport { IProductCollectionViewProps, IProductComponentViewProps } from './product-collection';\n\nconst ProductCollectionView: React.FC = props => {\n const { heading, ProductCollectionContainer, products, SingleSlideCarouselComponentProps, GridComponentProps, isCarousel } = props;\n if (products) {\n return (\n \n {heading}\n {\n isCarousel ? _renderCarousel(SingleSlideCarouselComponentProps, products) : _renderGrid(GridComponentProps, products)\n }\n \n );\n }\n props.context.telemetry.error('Product collection content is empty, module wont render.');\n return null;\n};\n\nconst _renderCarousel = (carouselContainer: INodeProps, items: IProductComponentViewProps[]): JSX.Element => {\n return (\n \n {items && items.map(_renderProduct)}\n \n );\n};\n\nconst _renderGrid = (gridContainer: INodeProps, items: IProductComponentViewProps[]): JSX.Element => {\n return (\n \n {items && items.map(_renderProduct)}\n \n );\n};\n\nconst _renderProduct = (product: IProductComponentViewProps): JSX.Element => {\n const { ProductContainer, productComponent } = product;\n\n return (\n \n {productComponent}\n \n );\n};\n\nexport default ProductCollectionView;","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\nimport { IInvoicesListViewProps } from './invoices-list';\n\nexport const InvoiceListView: React.FC = props => {\n const { header, filter, content } = props;\n\n return (\n \n {header}\n {filter}\n {content}\n \n );\n};\n\nexport default InvoiceListView;","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignUpButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst SignUpButton: React.FC = ({ id, className, text, ariaLabel, disabled, onClick }) => (\n \n {text}\n \n);\n\nexport default SignUpButton;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignUpErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignUpError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n\n};\n\nexport default SignUpError;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as React from 'react';\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\n\nexport interface ISignUpInputProps {\n id?: string;\n // tslint:disable-next-line:no-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface ISignUpInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst SignUpInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n onChange }) => (\n \n );\n\nexport default SignUpInput;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as React from 'react';\n\nexport interface ISignUpLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst SignUpLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default SignUpLabel;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as React from 'react';\n\nexport interface ISignUpLoadingIcon {\n className: string;\n}\n\nconst SignUpLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default SignUpLoadingIcon;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as React from 'react';\n\nexport interface ISignUpLoadingMessage {\n className: string;\n message: string;\n}\n\nconst SignUpLoadingMessage: React.FC = ({ className, message }) => (\n
\n {message}\n
\n);\n\nexport default SignUpLoadingMessage;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignUpSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignUpSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default SignUpSuccess;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IModuleProps, INodeProps, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\n\nimport SignUpButtonComponent from './components/sign-up-button';\nimport SignUpErrorComponent from './components/sign-up-error';\nimport SignUpInputComponent from './components/sign-up-input';\nimport SignUpLabelComponent from './components/sign-up-label';\nimport SignUpLoadingIconComponent from './components/sign-up-loading-icon';\nimport SignUpLoadingMessageComponent from './components/sign-up-loading-message';\nimport SignUpSuccessComponent from './components/sign-up-success';\nimport { ISignUpConfig, ISignUpProps, ISignUpResources } from './sign-up.props.autogenerated';\n\nexport interface ISignUpViewState {\n isShowLoading: boolean;\n}\n\nexport interface ISignUpItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface ISignUpEmailVerification {\n isRequired: boolean;\n email: ISignUpItem;\n buttonWrapper: INodeProps;\n buttons: React.ReactNode[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\nexport interface ISignUpLocalAccount {\n localAccount: INodeProps;\n items: ISignUpItem[];\n emailVerification: ISignUpEmailVerification;\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n disclaimer: React.ReactNode;\n}\n\nexport interface ISignUpLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface ISignUpViewProps {\n className: string;\n viewState: ISignUpViewState;\n loading: ISignUpLoading;\n signUp: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n signUpLocalAccount: ISignUpLocalAccount;\n}\n\n/**\n *\n * SignUp component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass SignUp extends React.Component> {\n private moduleClassName: string = 'ms-sign-up';\n @observable private emailRegex: string;\n @observable private newPasswordRegex: string;\n @observable private reenterPasswordRegex: string;\n @observable private isEmailVerificationRequried: boolean;\n @observable private isInitialized: boolean;\n @observable private templateVersion: string;\n\n // tslint:disable-next-line:no-any\n private initializationTimer: any;\n\n constructor(props: ISignUpProps) {\n super(props);\n // tslint:disable-next-line:max-line-length\n const passwordDefaultRegex = '^((?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)|(?=.*[a-z])(?=.*[A-Z])(?=.*[^A-Za-z0-9])|(?=.*[a-z])(?=.*\\\\d)(?=.*[^A-Za-z0-9])|(?=.*[A-Z])(?=.*\\\\d)(?=.*[^A-Za-z0-9]))([A-Za-z\\\\d@#$%^&*\\\\-_+=[\\\\]{}|\\\\\\\\:\\',?/`~\\'();!]|\\\\.(?!@)){8,16}$';\n this.emailRegex = '^[a-zA-Z0-9!#$%&'+^_`{}~-]+(?:\\.[a-zA-Z0-9!#$%&'+^_`{}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$';\n this.newPasswordRegex = passwordDefaultRegex;\n this.reenterPasswordRegex = passwordDefaultRegex;\n this.isEmailVerificationRequried = false;\n this.isInitialized = false;\n this.templateVersion = '';\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // tslint:disable-next-line:no-string-literal\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // tslint:disable-next-line:no-string-literal\n window['$element']['initialize']();\n }\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n signUp: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: ,\n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: ,\n signUpLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.heading.text = event.target.value;\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.disclaimer = event.target.value;\n\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => { this._isInitializationSuccessful(); }, 100);\n setTimeout(() => { clearInterval(this.initializationTimer); }, 10000);\n }\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private _isInitializationSuccessful = () => {\n // tslint:disable-next-line:no-string-literal\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n }\n\n private _prePopulateData = () => {\n const resources: ISignUpResources = this.props.resources || {};\n\n // tslint:disable-next-line:no-string-literal\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // tslint:disable-next-line:no-string-literal\n window['SA_FIELDS']['AttributeFields'].map((obj: { ID: string; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string; VERIFY: boolean }) => {\n switch (obj.ID.toLowerCase()) {\n case 'emailverificationcontrol': {\n this.isEmailVerificationRequried = true;\n this.templateVersion = 'v2';\n break;\n }\n case 'email': {\n this.emailRegex = obj.PAT;\n this.isEmailVerificationRequried = obj.VERIFY;\n this.templateVersion = 'v1';\n break;\n }\n case 'newpassword': {\n this.newPasswordRegex = obj.PAT;\n break;\n }\n case 'reenterpassword': {\n this.reenterPasswordRegex = obj.PAT;\n break;\n }\n default:\n }\n\n switch (obj.UX_INPUT_TYPE.toLowerCase()) {\n case 'password': {\n obj.PAT_DESC = resources.invalidPasswordError;\n break;\n }\n case 'emailbox': {\n obj.PAT_DESC = resources.invalidEmailAddressError;\n break;\n }\n default:\n }\n });\n }\n }\n\n private _updateErrorMessage = () => {\n const resources: ISignUpResources = this.props.resources || {};\n\n // tslint:disable-next-line:no-string-literal\n if (window && window['CONTENT']) {\n const errorMessages = {\n required_field: resources.requiredFieldMissingError\n };\n\n // tslint:disable-next-line:no-string-literal\n Object.assign(window['CONTENT'], errorMessages);\n }\n }\n\n private getValue = (v1Value: string, v2Value: string): string => {\n if (this.templateVersion) {\n return this.templateVersion === 'v1' ? v1Value : v2Value;\n }\n return '';\n }\n\n private _renderLocalAccount(): ISignUpLocalAccount {\n const { config, resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('givenName', 'text', resources.firstNameLabelText, resources.firstNameMaxLength),\n this._renderInput('surname', 'text', resources.lastNameLabelText, resources.lastNameMaxLength),\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput('newPassword', 'password', resources.passwordLabelText, undefined, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, undefined, this.reenterPasswordRegex)\n ],\n emailVerification: {\n isRequired: this.isEmailVerificationRequried,\n email: this._renderInput(this.getValue('email_ver_input', 'emailVerificationCode'), 'text', resources.verificationCodeLabelText, undefined, undefined, 'VerificationCode'),\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n buttonWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n buttons: [\n (\n \n ),\n (\n \n ),\n (\n \n ),\n (\n \n )\n ],\n successMessage: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n \n ]\n },\n buttons: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n \n ],\n disclaimer: config.disclaimer && (\n \n ),\n };\n }\n\n private _renderInput(id: string, type: string, labelText: string, maxLength?: string, pattern?: string, cssClassName?: string): ISignUpItem {\n const className = `${this.moduleClassName}__account-item`;\n return (\n {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n\n }\n );\n }\n}\n\nexport default SignUp;","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport * as React from 'react';\nimport { ILinksData } from '../account-generic-tile.props.autogenerated';\n\nexport interface IAccountGenericTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n /** The telemetry content */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountGenericTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n { editableLinks && editableLinks.length ?\n \n : null\n }\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if(!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link,index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-generic-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'button',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountGenericTileLinks;","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\n\nimport {\n IAccountGenericTileConfig, IAccountGenericTileProps\n} from './account-generic-tile.props.autogenerated';\nimport LinksComponent from './components/account-generic-tile-links';\n\nexport interface IAccountGenericTileViewProps extends IAccountGenericTileProps {\n AccountGenericTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n}\n\n/**\n *\n * AccountGeneric component\n * @extends {React.PureComponent>}\n */\nclass AccountGenericTile extends React.PureComponent> {\n\n private telemetryContent: ITelemetryContent;\n constructor(props: IAccountGenericTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\n }\n\n public render(): JSX.Element {\n const { config } = this.props;\n const { className, heading, links } = config;\n\n const viewProps = {\n ...this.props,\n className: className,\n AccountGenericTile: {\n moduleProps: this.props,\n className: classnames('ms-account-generic-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && \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 public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if(this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountGenericTile;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as React from 'react';\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport { IBusinessSignUpItem, IBusinessSignUpViewProps } from './business-sign-up';\n\nconst BusinessSignUpItem: React.FC = ({\n wrapper,\n label,\n errorMessage,\n input,\n isAddressInput\n}) => {\n\n // hide label and error message if rendering address section\n return (\n \n {!isAddressInput && label}\n {!isAddressInput && errorMessage}\n {input}\n \n );\n};\n\nconst BusinesSignUpView: React.FC = props => {\n\n const { businessSignUp, ContainerWrapper, heading, businessSignUpForm } = props;\n\n const { FormWrapper, buttons, items, errorMessage, disclaimer } = businessSignUpForm;\n\n return (\n \n \n {heading}\n \n {items && items.map((item: IBusinessSignUpItem) => {\n return (\n \n );\n })}\n {errorMessage && errorMessage.map((error: React.ReactNode, index: number) => {\n return (\n \n {error}\n \n );\n })}\n {buttons && buttons.map((button: React.ReactNode, index: number) => {\n return (\n \n {button}\n \n );\n })}\n {disclaimer}\n \n \n \n );\n};\n\nexport default BusinesSignUpView;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as React from 'react';\n\ninterface IAccountAddressTileDescription {\n description: string;\n}\n\nconst IAccountAddressTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n\nexport default IAccountAddressTileDescription;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport * as React from 'react';\nimport { ILinksData } from '../account-address-tile.props.autogenerated';\n\nexport interface IAccountAddressTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n /** The telemetry content */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountAddressTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n\n return (\n
\n { editableLinks && editableLinks.length ?\n \n : null\n }\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if(!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link,index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-address-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'button',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountAddressTileLinks;","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { IAccountAddressTileData } from './account-address-tile.data';\nimport { IAccountAddressTileProps } from './account-address-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-address-tile-description';\nimport LinksComponent from './components/account-address-tile-links';\n\nexport interface IAccountAddressTileViewProps extends IAccountAddressTileProps {\n AccountAddressTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountAddress component\n * @extends {React.PureComponent>}\n */\nclass AccountAddressTile extends React.PureComponent> {\n\n private telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountAddressTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountAddressTileDescriptionForSingleAddress, accountAddressTileDescriptionForMultipleAddresses } = resources;\n const { address } = data;\n const customerInformation = data.customerInformation.result;\n const addressCount = (address && address.result && address.result.length) || 0;\n const accountAddressTileDescription = addressCount === 1 ? accountAddressTileDescriptionForSingleAddress : accountAddressTileDescriptionForMultipleAddresses;\n const description = format(accountAddressTileDescription, addressCount);\n\n const viewProps = {\n ...this.props,\n className: className,\n AccountAddressTile: {\n moduleProps: this.props,\n className: classnames('ms-account-address-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && customerInformation?.IsAsyncCustomer !== true &&\n ,\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.heading.text = event.target.value;\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if(this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountAddressTile;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n*--------------------------------------------------------------------------------------------*/\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\nimport { IFooterCategoryViewProps } from './footer-category';\n\nexport const FooterCategoryView: React.FC = props => {\n const {categories, FooterList, FooterListItem} = props;\n if(!categories || !categories.length) {\n props.context.telemetry.error('Footer content is empty, module wont render');\n return null;\n }\n return(\n \n { categories.map((category: ReactNode, index: number) => {\n return (\n \n {category}\n \n );\n })\n }\n \n );\n};\n\nexport default FooterCategoryView;","import { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\nimport { ISearchResultModalViewProps } from './components';\nimport { ICategoryHierarchyViewProps, IRefineMenuViewProps, ISearchResultContainerViewProps, ISortByViewProps, ITitleViewProps } from './search-result-container';\n\nconst SearchResultContainerView: React.FC = props => {\n const { SearchResultContainer, products, pagination, ProductsContainer, ProductSectionContainer, choiceSummary, isMobile, modalToggle, searchResultModal, TitleViewProps,\n refineMenu, categoryHierarchy, sortByOptions, CategoryNavContainer, RefineAndProductSectionContainer, errorMessage, FeatureSearchContainer, similarLookProduct } = props;\n if (isMobile) {\n return (\n \n {renderCategoryHierarchy(categoryHierarchy)}\n {renderTitle(TitleViewProps)}\n {choiceSummary}\n {modalToggle}\n {createSearchResultModal(searchResultModal, refineMenu, sortByOptions)}\n \n {similarLookProduct}\n \n \n {errorMessage}\n {products}\n \n {pagination}\n \n );\n }\n return (\n \n \n {categoryHierarchy && renderCategoryHierarchy(categoryHierarchy)}\n {TitleViewProps && renderTitleCount(TitleViewProps)}\n \n \n {refineMenu && renderRefiner(refineMenu)}\n \n {TitleViewProps && renderTitle(TitleViewProps)}\n {choiceSummary}\n {sortByOptions && renderSort(sortByOptions)}\n \n {similarLookProduct}\n \n \n {errorMessage}\n {products}\n \n {pagination}\n \n \n \n );\n\n};\n\nconst createSearchResultModal = (modalProps: ISearchResultModalViewProps, refineMenu: IRefineMenuViewProps, sortByDropDown: ISortByViewProps): JSX.Element => {\n return React.cloneElement(modalProps.modal, {}, modalProps.modalHeader, createModalBody(modalProps, refineMenu, sortByDropDown), modalProps.modalFooter);\n};\n\nconst createModalBody = (props: ISearchResultModalViewProps, refineMenu: IRefineMenuViewProps, sortByDropDown: ISortByViewProps): JSX.Element | null => {\n if (sortByDropDown) {\n return React.cloneElement(props.modalBody, {}, renderSort(sortByDropDown), renderRefiner(refineMenu));\n }\n return null;\n};\n\nconst renderRefiner = (props: IRefineMenuViewProps): JSX.Element | null => {\n const { refiners, RefineMenuContainer, RefinerSectionContainer } = props;\n if (refiners) {\n return (\n \n \n {refiners.map((submenu, index) => (\n \n {submenu}\n \n ))}\n \n \n );\n }\n return null;\n};\n\nconst renderSort = (props: ISortByViewProps): JSX.Element | null => {\n const { SortingContainer, sortByDropDown } = props;\n if (sortByDropDown) {\n return (\n \n {sortByDropDown}\n \n );\n }\n return null;\n};\n\nconst renderCategoryHierarchy = (props: ICategoryHierarchyViewProps): JSX.Element | null => {\n const { CategoryHierarchyContainer, categoryHierarchyList, categoryHierarchySeparator } = props;\n if (categoryHierarchyList) {\n return (\n \n {categoryHierarchyList.map((category, index) => (\n \n {category}\n {categoryHierarchyList && categoryHierarchyList[index + 1] && categoryHierarchySeparator}\n \n ))}\n \n );\n }\n\n return null;\n};\n\nconst renderTitle = (props: ITitleViewProps): JSX.Element | null => {\n const { title, TitleContainer } = props;\n if (title) {\n return (\n \n

\n {title.titlePrefix}\n {title.titleText}\n

\n
\n );\n }\n return null;\n};\n\nconst renderTitleCount = (props: ITitleViewProps): JSX.Element | null => {\n const { title, TitleContainer } = props;\n if (title) {\n return (\n \n
\n {title.titleCount}\n
\n
\n );\n }\n return null;\n};\n\nexport default SearchResultContainerView;","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\nimport { IPromoBannerViewProps } from './promo-banner';\n\nconst PromoBannerView: React.FC = props => {\n const {\n promoBannerProps,\n contentProps,\n closeButton,\n bannerMessages,\n PromoBannerTextProps,\n PromoBannerLinksProps,\n CarouselProps,\n handleLinks,\n handleText\n } = props;\n\n const slides = bannerMessages && bannerMessages.map((message, index) => {\n return (\n \n {message.text && }\n {message.links && message.links.length > 0 && }\n \n );\n });\n\n return (\n \n \n {closeButton}\n \n );\n};\nexport default PromoBannerView;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as React from 'react';\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport { IAddressAddItem, IAddressAddUpdateProps } from '../../common/components/address-add';\nimport { IBusinessAccountAddressViewProps } from './business-account-address';\n\nconst AddressAddUpdate: React.FC = ({\n AddressForm,\n heading,\n items,\n hasError,\n error,\n isShowSaveButton,\n saveButton,\n isShowCancelButton,\n cancelButton,\n}) => {\n\n return (\n \n {heading}\n {items && items.map((item: IAddressAddItem) => {\n const { AddressItem, key, label, alert, input } = item;\n return (\n \n {label}\n {hasError && alert}\n {input}\n \n );\n })}\n {hasError &&\n \n {error.title}\n {error.message}\n \n }\n {isShowSaveButton && saveButton}\n {isShowCancelButton && cancelButton}\n \n );\n};\n\nconst BusinessAccountAddressView: React.FC = props => {\n const { BusinessAccountAddress, showAddOrUpdateAddress } = props;\n\n return (\n \n {}\n \n );\n};\n\nexport default BusinessAccountAddressView;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\nimport { IAddContactInfo, ICheckoutGuestProfileViewProps, IShowContactInfo } from './checkout-guest-profile';\n\nexport const ShowContactInfo: React.FC = ({ showInfoProps, email, editButton }) => (\n \n {email}\n {editButton}\n \n);\n\nexport const AddContactInfo: React.FC = ({\n addFormProps,\n submitButton,\n cancelButton,\n inputGroupProps,\n label,\n error,\n input\n}) => (\n \n \n {label}\n {error}\n {input}\n \n {submitButton}\n {cancelButton}\n \n);\n\nconst CheckoutGuestProfileView: React.FC = ({ moduleProps, showContactInfo, addContactInfo }) => {\n return (\n \n {showContactInfo && }\n {addContactInfo && }\n \n );\n};\n\nexport default CheckoutGuestProfileView;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as React from 'react';\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\n\nimport { ILoyaltySignUpViewProps } from './loyalty-sign-up';\n\nconst LoyaltySignUpView: React.FC = props => {\n const {LoyaltySignUp, heading, memberHeading, signInLink, signUpText, signUpButton, detailsLink, termsLink, loading} = 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 {memberHeading}\n {heading}\n {detailsLink}\n {signUpText}\n {termsLink}\n {signUpButton}\n {signInLink}\n \n );\n};\n\nexport default LoyaltySignUpView;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\nimport { ICartIconViewProps } from './cart-icon';\nimport { IFlyoutCartLineItemViewProps } from './components/flyout-cart-line-items';\n\nconst _renderCartlines = (cartLines: IFlyoutCartLineItemViewProps[] | undefined, props: ICartIconViewProps): JSX.Element[] | null => {\n if (!cartLines) {\n props.context.telemetry.error('Cartlines content is empty, module wont render');\n return null;\n }\n return cartLines.map((cartLine, index) => {\n return (\n \n {cartLine.cartline}\n {cartLine.storeLocation}\n {cartLine.remove}\n \n );\n });\n};\n\nconst CartIconView: React.FC = (props: ICartIconViewProps) => (\n \n {props.cartIcon}\n {props.FlyoutContainer ? (\n \n {props.flyoutTitle}\n \n {_renderCartlines(props.cartlines, props)}\n \n {props.totalPrice}\n {props.checkoutAsSignInUserButton}\n {props.goToCartButton}\n \n ) : false }\n \n);\n\nexport default CartIconView;","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as React from 'react';\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\n\nimport {\n IAccountProfileEditItem, IAccountProfileEditLoading, IAccountProfileEditLocalAccount,\n IAccountProfileEditViewProps\n} from './account-profile-edit';\n\nconst AccountProfileEditItem: React.FC = ({\n wrapper,\n label,\n errorMessage,\n input\n}) => {\n\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n\n return (\n \n {items && items.map((item: IAccountProfileEditItem) => {\n return (\n \n );\n })}\n {errorMessage && errorMessage.map((error: React.ReactNode, index: number) => {\n return (\n \n {error}\n \n );\n })}\n \n {buttons && buttons.map((button: React.ReactNode, index: number) => {\n return (\n \n {button}\n \n );\n })}\n \n\n \n \n \n \n );\n};\n\nconst AccountProfileEditLoading: React.FC = ({\n modal,\n modalBody,\n icon,\n message,\n}) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst AccountProfileEditView: React.FC = props => {\n\n const {\n accountProfileEdit,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n heading,\n accountProfileEditLocalAccount\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(accountProfileEditLocalAccount)}\n \n \n );\n};\n\nexport default AccountProfileEditView;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { getCategoryUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { addThrottledEvent, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport { IActionContext, IGridSettings, IImageSettings, isEmptyOrNullObject} from '@msdyn365-commerce/core';\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport * as React from 'react';\nimport { IMenuItemData, INavigationMenuData } from './navigation-menu.data';\nimport { ICmsNavItemsData, INavigationMenuProps, ISubMenusData, navigationMenuSource } from './navigation-menu.props.autogenerated';\n\nexport interface INavigationMenuViewProps extends INavigationMenuProps {\n className: string;\n menuItemData: IMenuItemData[];\n Navigation: IModuleProps;\n MenuList: INodeProps;\n ListItem: INodeProps;\n Link: INodeProps;\n Button: INodeProps;\n Span: INodeProps;\n ImageContainer:INodeProps;\n MobileDescriptionContainer:INodeProps;\n MobileBackButton:INodeProps;\n MobileDescriptionLabel:INodeProps;\n imageSettings: IImageSettings;\n gridSettings: IGridSettings;\n isMobileView: boolean;\n DivContainer?:INodeProps;\n ImageDivContainer?:INodeProps;\n showCategoryImage?:boolean;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport interface INavigationMenuState {\n isMobile: boolean;\n}\n\n/**\n *\n * NavigationMenu component\n * @extends {React.PureComponent>}\n */\nclass NavigationMenu extends React.PureComponent, INavigationMenuState> {\n private static CMSItemIdInit: number = 1000;\n private static RSItemIdInit: number = 5000;\n private resizeThrottledEventHandler?: (event: Event) => void;\n private menuItemList: IMenuItemData[];\n private isRetail: boolean = true;\n private isCMS: boolean = true;\n @observable\n private viewport: GridSize;\n public static getFriendlyName(locale: string, nameTranslations?: TextValueTranslation[]): string | undefined {\n let nameTranslation: TextValueTranslation | undefined;\n if (locale && nameTranslations && nameTranslations.length > 0) {\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\n }\n\n return nameTranslation && nameTranslation.Text;\n }\n\n constructor(props: INavigationMenuProps) {\n super(props);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport = props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._setNavigationSource(this.props.config && this.props.config.navigationMenuSource);\n this.state = {isMobile: this.isMobile};\n this.menuItemList = [];\n }\n\n @computed get isMobile(): boolean {\n return (this.viewport === 'xs' || this.viewport === 'sm');\n }\n\n public componentDidMount(): void {\n this.resizeThrottledEventHandler =\n window && addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n this._updateViewport();\n }\n\n public componentWillUnmount(): void {\n window && window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n\n public render(): JSX.Element | null {\n this.menuItemList = this._mapData();\n if (isEmptyOrNullObject(this.props.data)) {\n this.props.telemetry.error('Navigatiomenu returned null');\n return null;\n }\n\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: `w=224&h=300&m=6`, w: 0, h: 0 },\n xl: { q: `w=224&h=300&m=6`, w: 0, h: 0 }\n },\n lazyload: true\n };\n\n const viewProps = {\n ...this.props,\n ...this.state,\n imageSettings: defaultImageSettings,\n gridSettings: this.props.context.request.gridSettings,\n Navigation: {\n moduleProps: this.props,\n className: classnames('ms-nav', this.props.config.className, this.state.isMobile ? 'mobile-vp' : 'desktop-vp'),\n tag:'nav',\n role:'navigation',\n 'aria-label': this.props.resources.menuAriaLabel\n },\n MenuList: {\n className: 'ms-nav__list',\n tag:'ul',\n role: 'menu'\n },\n ListItem: {\n className: 'ms-nav__list__item',\n role: 'presentation',\n tag:'li'\n },\n showCategoryImage:this.props.config.displayCategoryImage||false,\n Link: {\n tag: 'a',\n className: 'ms-nav__list__item__link',\n role: 'menuitem'\n },\n DivContainer:\n {\n tag: 'div',\n className:'ms-nav__feature',\n role:'menuitem'\n },\n ImageDivContainer:\n {\n tag:'div',\n className:'category-image',\n role:'tabpanel'\n },\n Button: {\n className: 'ms-nav__list__item__button',\n tag:'button',\n role:'menuitem',\n onClick:this.props\n },\n ImageContainer: {\n className: 'ms-nav__list__item__image'\n },\n Span: {\n className: 'ms-nav__list__item__span',\n tag:'span'\n },\n MobileDescriptionContainer: {\n className: 'ms-nav__list__mobile__container'\n },\n MobileBackButton: {\n className: 'ms-nav__list__mobile__container__button',\n tag:'button',\n 'aria-label': this.props.resources.backButtonAriaLabel,\n onClick:this.props\n },\n MobileDescriptionLabel: {\n className: 'ms-nav__list__mobile__container__span',\n tag:'span'\n },\n isMobileView: this.state.isMobile,\n menuItemData: this.menuItemList,\n className: classnames('ms-nav', this.props.config.className)\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _mapData(): IMenuItemData[] {\n const { data, config } = this.props;\n const mergedData: IMenuItemData[] = [];\n if (this.isRetail && data && data.categories && data.categories.result && data.categories.result.length > 0) {\n data.categories.result.map((item: CategoryHierarchy,index) => (\n mergedData.push(this._constructMenuItemData(item, undefined, true,index,true))\n ));\n }\n\n if (this.isCMS && config.cmsNavItems && config.cmsNavItems.length > 0) {\n config.cmsNavItems.map((item: ICmsNavItemsData, idx: number) => (\n mergedData.push(this._constructMenuItemData(undefined, item, false, idx+1))\n ));\n }\n return this._constructTopMenuItemData(mergedData);\n }\n private _constructTopMenuItemData(mergedData:IMenuItemData[]):IMenuItemData[] {\n const enableTopLevelMenu = this.props.config.enabletopMenu||false;\n if(!enableTopLevelMenu) {\n return mergedData;\n }\n const mergedRootMenuData: IMenuItemData[] = [];\n const topMenu = {\n id:1,\n linkText:this.props.config.rootMenuNavigation||'...',\n linkURL:'#',\n imageSource:undefined,\n subMenu: mergedData\n } as IMenuItemData;\n mergedRootMenuData.push(topMenu);\n\n return mergedRootMenuData;\n }\n // tslint:disable-next-line: cyclomatic-complexity\n private _constructMenuItemData(retailItem?: CategoryHierarchy, cmsItem?: ICmsNavItemsData, isRetail?: boolean, idx?: number,addedAllMenu?:boolean): IMenuItemData {\n const locale = this.props.context && this.props.context.request && this.props.context.request.locale ? this.props.context.request.locale : 'en-us';\n const imageSouce = retailItem && retailItem.Images && retailItem.Images[0].Uri ? retailItem.Images[0].Uri: 'empty';\n if (isRetail) {\n return {\n id: NavigationMenu.RSItemIdInit++,\n linkText: NavigationMenu.getFriendlyName(locale, retailItem && retailItem.NameTranslations) || '',\n linkURL: retailItem && retailItem.Url,\n imageSource: imageSouce,\n subMenu: this._getNestedChildren(retailItem,imageSouce,addedAllMenu)\n } as IMenuItemData;\n } else {\n return {\n id: NavigationMenu.CMSItemIdInit++,\n linkText: cmsItem && cmsItem.linkText || '',\n linkURL: cmsItem && cmsItem.linkUrl && cmsItem.linkUrl.destinationUrl || '',\n imageDestinationURL: cmsItem && cmsItem.imageLink && cmsItem.imageLink.destinationUrl || '',\n imageSource: cmsItem && cmsItem.image && cmsItem.image.src || '',\n subMenu: this._getCMSNestedChildren(cmsItem)\n } as IMenuItemData;\n }\n }\n private _getNestedChildren(category?: CategoryHierarchy,imageSourceUrl?:string,addedAllMenu:boolean=false): IMenuItemData[] {\n const nestedChildren: IMenuItemData[] = [];\n if (!category || !category.Children || !category.Children.length) {\n return [];\n }\n if(!this.props.config.enabletopMenu && addedAllMenu) {\n nestedChildren.push({linkText: this.props.resources.allCategoryMenuText,imageSource:imageSourceUrl,linkURL: getCategoryUrl(category, this.props.context as unknown as IActionContext, {}) });\n }\n category.Children.map((item: CategoryHierarchy,index) => {\n nestedChildren.push(this._constructMenuItemData(item, undefined, true,index,false));\n });\n return nestedChildren;\n }\n\n private _getCMSNestedChildren(category?: ICmsNavItemsData): IMenuItemData[] {\n const nestedChildren: IMenuItemData[] = [];\n\n if (!category || !category.subMenus || !category.subMenus.length) {\n return [];\n }\n\n category.subMenus.map((item: ISubMenusData, idx: number) => {\n nestedChildren.push(this._constructMenuItemData(undefined, item, false, idx));\n });\n return nestedChildren;\n }\n\n private _setNavigationSource = (sourceType?: navigationMenuSource): void => {\n switch(sourceType) {\n case navigationMenuSource.retailServerOnly:\n this.isRetail = true;\n this.isCMS = false;\n break;\n case navigationMenuSource.cmsOnly:\n this.isRetail = false;\n this.isCMS = true;\n break;\n case navigationMenuSource.all:\n this.isRetail = true;\n this.isCMS = true;\n break;\n default:\n }\n }\n\n private _updateViewport(): void {\n this.viewport = this._getViewport();\n this.setState({ isMobile: this.isMobile });\n }\n\n private _getViewport(): GridSize {\n const { context } = this.props;\n\n // always render in mobile viewport on a mobile device\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (typeof window !== undefined && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n } else {\n return 'xl';\n }\n }\n }\n\n return 'xs';\n }\n}\n\nexport default NavigationMenu;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header';\nimport { Collapse, Drawer, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport { AsyncResult } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\n\nconst headerView: React.FC = props => {\n const {\n HeaderTag,\n HeaderContainer,\n HeaderTopBarContainer,\n Divider,\n } = props;\n return (\n \n \n \n {props.navIcon}\n {props.logo}\n {_renderReactFragment(props.search)}\n {props.preferredStore}\n {_renderAccountBlock(props, false)}\n {props.wishListIconDesktop}\n \n {props.cartIcon}\n {_renderReactFragment(props.siteOptions)}\n \n {_renderCollapseMenu(props)}\n \n {_renderReactFragment(props.menuBar)}\n \n \n \n );\n};\n\nfunction _renderCollapseMenu(props: IHeaderViewProps): JSX.Element | null {\n const {Divider, MobileMenuLinksContainer, mobileMenuCollapsed} = props;\n return (\n \n \n {_renderReactFragment(props.search)}\n {_renderMobileAccountBlock(props, true)}\n { props.wishListIconMobile }\n {props.siteOptions}\n \n \n {_renderReactFragment(props.menuBar)}\n \n );\n}\n\nconst renderCustomerName = (accountInformation: AsyncResult): React.ReactChild => {\n const customer = accountInformation && accountInformation.result;\n return (\n <>{customer ? customer.FirstName || customer.Name : ''}\n );\n};\n\nfunction _renderMobileAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\n const {\n AccountInfoDropdownParentContainer,\n signOutLink,\n signInLink,\n data,\n accountLinks} = props;\n\n if (AccountInfoDropdownParentContainer) {\n const accountClassName = classnames('ms-header__drawer', AccountInfoDropdownParentContainer.className, renderForMobile ? 'account-mobile' : 'account-desktop');\n\n if (accountLinks) {\n return (\n \n
\n { accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false }\n {signOutLink}\n
\n
\n );\n } else if (signInLink) {\n return (\n \n {signInLink}\n \n );\n }\n }\n return null;\n}\n\nfunction _renderAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\n const {\n AccountInfoDropdownParentContainer,\n AccountInfoDropdownPopoverConentContainer,\n accountInfoDropdownButton,\n signOutLink,\n signInLink,\n accountLinks,\n } = props;\n\n if (AccountInfoDropdownParentContainer) {\n const accountClassName = classnames(AccountInfoDropdownParentContainer.className, renderForMobile ? 'account-mobile' : 'account-desktop');\n if (AccountInfoDropdownPopoverConentContainer) {\n return (\n \n {accountInfoDropdownButton}\n \n { accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false }\n {signOutLink}\n \n \n );\n } else if (signInLink) {\n return (\n \n {signInLink}\n \n );\n }\n }\n\n return null;\n}\n\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\n return (\n \n {items && items.length\n ? items.map((slot: React.ReactNode, index: number) => {\n return {slot};\n })\n : null}\n \n );\n}\n\nexport default headerView;","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\nimport { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps } from './components';\nimport { ISearchViewProps } from './search';\n\nconst SearchView: React.FC = props => {\n const {\n Search,\n AutoSuggestAriaLabel,\n AutoSuggestAriaLabelText,\n searchText,\n AutoSuggest,\n KeywordSuggest,\n ProductSuggest,\n CategorySuggest,\n UlKeyword,\n UlProduct,\n UlCategory,\n form,\n autosuggestCategory,\n autosuggestKeyword,\n autosuggestProduct,\n SearchForm,\n FormWrapper,\n label\n } = props;\n\n return (\n \n {label}\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\n \n {searchText && searchText.length > 0 ?\n {AutoSuggestAriaLabelText} : ''\n }\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\n \n \n );\n};\n\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\n return (\n \n \n {form.submitBtn}\n {form.input}\n {form.cancelBtn}\n \n \n );\n};\n\nconst _renderKeywordSuggestions = (\n KeywordSuggest: INodeProps,\n UlKeyword: INodeProps,\n keywordSuggestions?: ISearchKeywordViewProps\n) => {\n return (\n keywordSuggestions && (\n \n \n {keywordSuggestions.text.map(text => {\n return text;\n })}\n \n \n )\n );\n};\n\nconst _renderProductSuggestions = (\n ProductSuggest: INodeProps,\n UlProduct: INodeProps,\n productSuggestions?: ISearchProductViewProps\n) => {\n return (\n productSuggestions && (\n \n \n {productSuggestions.title}\n {productSuggestions.items.map((item, index) => {\n return (\n \n \n {item.thumbnail}\n {item.text}\n {item.price}\n \n \n );\n })}\n \n \n )\n );\n};\n\nconst _renderCategorySuggestions = (\n CategorySuggest: INodeProps,\n UlCategory: INodeProps,\n categorySuggestions?: ISearchCategoryViewProps\n) => {\n return (\n categorySuggestions && (\n \n \n {categorySuggestions.title}\n {categorySuggestions.text.map(text => {\n return text;\n })}\n \n \n )\n );\n};\n\nexport default SearchView;","import { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\nimport { IMediaGalleryThumbnailItemViewProps, IMediaGalleryThumbnailsViewProps, IMediaGalleryViewProps } from '../..';\n\nconst MediaGalleryView: React.FC = props => {\n const {CarouselProps, Thumbnails, MediaGallery, Modal} = props;\n\n return (\n \n \n {Modal}\n {_renderThumbnails(Thumbnails)}\n \n );\n};\n\nconst _renderThumbnails = (thumbnails: IMediaGalleryThumbnailsViewProps): JSX.Element => {\n const { ThumbnailsContainerProps, SingleSlideCarouselComponentProps, items } = thumbnails;\n\n return (\n \n \n {items && items.map(_renderThumbnailItem)}\n \n \n );\n};\n\nconst _renderThumbnailItem = (thumbnail: IMediaGalleryThumbnailItemViewProps): JSX.Element => {\n const { ThumbnailItemContainerProps, Picture } = thumbnail;\n\n return (\n \n {Picture}\n \n );\n};\n\nexport default MediaGalleryView;","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as React from 'react';\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\n\nimport {\n IAccountPreference, IAccountPreferences, IAccountProfileItem, IAccountProfileViewProps\n} from './account-profile';\n\nconst AccountPreferencesSection: React.FC = ({\n accountPreferences,\n heading,\n personalization,\n extraPreferences\n}) => {\n\n return (\n \n {heading}\n \n {\n extraPreferences && extraPreferences.map((preferenceSecton, index) => {\n return ;\n })\n }\n \n );\n};\n\nconst AccountPreferenceSection: React.FC = ({\n accountPreference,\n heading,\n description,\n buttonWrapper,\n buttonYesText,\n button,\n buttonNoText,\n}) => {\n\n return (\n \n {heading}\n {description}\n \n {buttonNoText}\n {button}\n {buttonYesText}\n \n \n );\n};\n\nconst AccountProfileSection: React.FC = ({\n AccountProfileItem,\n heading,\n links,\n description\n}) => {\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nconst AccountProfileView: React.FC = props => {\n const { AccountProfile, accountProfileWrapper, heading, emailSection, nameSection, preferenceSection, customerAttributesWrapper, customerAttributesSection } = props;\n\n return (\n \n {accountProfileWrapper && (\n {heading}\n \n \n \n \n )}\n {customerAttributesWrapper && (\n {customerAttributesSection}\n \n )}\n \n );\n};\n\nexport default AccountProfileView;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Alert, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\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 * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n*--------------------------------------------------------------------------------------------*/\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\nimport { ISocialShareItemViewProps } from './social-share-item';\n\nexport const SocialShareItemView: React.FC = props => {\n const { SocialShareItem, SocialShareItemElement } = props;\n\n if (!SocialShareItemElement) {\n props.context.telemetry.error('Social media is not valid, module wont render');\n return null;\n }\n return (\n \n {SocialShareItemElement}\n \n );\n};\n\nexport default SocialShareItemView;","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { getPayloadObject, getTelemetryAttributes, getTelemetryObject, IModuleProps, INodeProps, IPayLoad, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport { IFooterItemConfig, IFooterItemProps, IHeadingData, ILinkData } from './footer-item.props.autogenerated';\n\nexport interface IFooterViewProps extends IFooterItemProps {\n heading: React.ReactNode;\n image: React.ReactNode;\n text: React.ReactNode;\n linkText: React.ReactNode;\n className?:string;\n FooterItem: IModuleProps;\n HeadingContainer: INodeProps;\n ItemContainer: INodeProps;\n Link: INodeProps;\n EditableLink: React.ReactNode;\n}\n\n/**\n *\n * FooterItem component\n * @extends {React.PureComponent>}\n */\nexport class FooterItem extends React.PureComponent> {\n private telemetryContent: ITelemetryContent;\n private payLoad: IPayLoad;\n private attributes: Msdyn365.IDictionary | undefined;\n constructor(props: IFooterItemProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry);\n // Construct telemetry attribute to render\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public render(): JSX.Element {\n const {heading, image, link, text} = this.props.config;\n const footerItemClassName = classnames('ms-footer__item', this.props.config.className);\n const linkText = link && link.linkText ? link.linkText : '';\n this.payLoad.contentAction.etext = linkText;\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n const viewProps: IFooterViewProps = {\n ... this.props,\n heading: this._createHeading(heading!),\n image: this._createImageMarkup(image!),\n text:this._createText(text!),\n linkText: this._createLinkText(link!),\n EditableLink: this._createLink(link!),\n // @ts-ignore\n FooterItem: {\n moduleProps: this.props,\n className: footerItemClassName\n },\n // @ts-ignore\n HeadingContainer: {\n className: 'ms-footer__heading'\n },\n // @ts-ignore\n ItemContainer: {\n className: 'ms-footer__link__container'\n },\n // @ts-ignore\n Link: link && link.linkUrl && link.linkUrl.destinationUrl && {\n tag: 'a',\n className: 'ms-footer__link',\n href: link.linkUrl.destinationUrl,\n title:linkText,\n target: link.openInNewTab ? '_blank' : undefined,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText),\n ...this.attributes\n },\n className:footerItemClassName\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 handleTextChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.text = event.target.value;\n\n public handleLinkTextChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.link!.linkText = event.target.value;\n\n private _createLink(link: ILinkData): React.ReactNode | null {\n if(link) {\n const linkText = link.linkText ? link.linkText : '';\n // TODO: Update the inner tag in the anchor link to span\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-footer__link',\n linkText: linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'button',\n additionalProperties: this.attributes!,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText)\n };\n return(\n \n );\n\n }\n return null;\n }\n\n private _createLinkText(link: ILinkData): React.ReactNode | null {\n if(!link || !link.linkText) {\n return null;\n }\n\n return ({link.linkText});\n }\n\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\n if(!heading || !heading.text || !heading.text.length) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _createText(text: string): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createImageMarkup(item: Msdyn365.IImageData, ariaHiddenAttr?: boolean): React.ReactNode | null {\n if(!item || !item.src || !item.src.length) {\n return null;\n }\n\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: `w=24&h=24&m=6`, w: 0, h: 0 },\n lg: { q: `w=24&h=24&m=6`, w: 0, h: 0 }\n },\n lazyload: true\n };\n return (\n \n );\n }\n}\n\nexport default FooterItem;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { addThrottledEvent,Drawer, IModuleProps, INodeProps, KeyCodes, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport MsDyn365, { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport classnames from 'classnames';\nimport { computed,observable } from 'mobx';\nimport React from 'react';\nimport { ISitePickerConfig,ISitePickerProps } from './site-picker.props.autogenerated';\n\nexport interface ISitePickerViewProps extends ISitePickerProps {\n SitePicker:IModuleProps;\n SitePickerMenu:INodeProps;\n SitePickerMenuSpan:INodeProps;\n SitePickerMenuList:INodeProps;\n SitePickerMenuListItem:INodeProps;\n SitePickerMenuListItemArray:React.ReactNode[] | undefined;\n siteOptionsState:boolean;\n SitePickerMobileContainer: INodeProps;\n SitePickerMobileMenuList:INodeProps;\n SitePickerMobileMenuListItem:INodeProps;\n isMobileView: boolean;\n renderSiteOptions():void;\n resetSiteOptionsState():void;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\ninterface ISitePickerState {\n expandSiteOptions: boolean;\n isMobile: boolean;\n}\n\n/**\n *\n * SitePicker component\n * @extends {React.PureComponent>}\n */\nclass SitePicker extends React.PureComponent,ISitePickerState> {\n private _cookieName: string = '_msdyn365___site_';\n private _cookieExpirationInSeconds: number = 5184000;\n private _sitePickerMenuNode: React.RefObject;\n private _sitePickerMenuButton: React.RefObject;\n private resizeThrottledEventHandler?: (event: Event) => void;\n @observable\n private viewport: GridSize;\n\n public constructor(props:ISitePickerViewProps) {\n super(props);\n this._handleChange = this._handleChange.bind(this);\n this._sitePickerMenuNode = React.createRef();\n this._sitePickerMenuButton = React.createRef();\n this._renderSiteOptions=this._renderSiteOptions.bind(this);\n this._resetSiteOptionsState=this._resetSiteOptionsState.bind(this);\n this._escFunction=this._escFunction.bind(this);\n this._handleOutsideClick=this._handleOutsideClick.bind(this);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport = props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this.state= {\n expandSiteOptions:false,\n isMobile: this.isMobile\n };\n }\n @computed get isMobile(): boolean {\n return (this.viewport === 'xs' || this.viewport === 'sm');\n }\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document?.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.addEventListener('mousedown', this._handleOutsideClick);\n this.resizeThrottledEventHandler = window && addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n this._updateViewport();\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._handleOutsideClick, false);\n window && window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n public render(): JSX.Element | null {\n const viewProps: ISitePickerViewProps = {\n ...this.props as ISitePickerProps,\n SitePicker:{\n moduleProps: this.props,\n className: classnames('ms-site-picker',this.props.config.className, this.state.isMobile? 'mobile-view': 'desktop-view'),\n tag:'div'\n },\n SitePickerMenu:{\n tag: 'button' as NodeTag,\n className: 'ms-site-picker__button',\n 'aria-label': this.props.config.heading?.text,\n 'aria-expanded' : this.state.expandSiteOptions,\n onClick:this.props,\n ref :this._sitePickerMenuButton\n },\n SitePickerMenuSpan:{\n className:'ms-site-picker__span',\n tag:'span'\n },\n SitePickerMenuList: {\n className:'ms-site-picker__list',\n role:'menu',\n tag:'ul',\n ref:this._sitePickerMenuNode\n },\n SitePickerMenuListItem: {\n className:'ms-site-picker__list__item',\n role:'presentation',\n tag:'li',\n },\n SitePickerMobileContainer: {\n tag: Drawer,\n className: 'ms-site-picker__drawer',\n toggleButtonText: this.props.config.heading?.text,\n openGlyph: 'ms-site-picker__drawer-open',\n closeGlyph: 'ms-site-picker__drawer-close',\n glyphPlacement: 'end',\n },\n SitePickerMobileMenuList:{\n className:'ms-site-picker__drawer__list',\n tag:'div'\n },\n SitePickerMobileMenuListItem:{\n className:'ms-site-picker__drawer__list__item',\n tag:'div'\n },\n isMobileView: this.state.isMobile,\n SitePickerMenuListItemArray:this._renderSitePickerImage(),\n renderSiteOptions:this._renderSiteOptions,\n resetSiteOptionsState:this._resetSiteOptionsState,\n siteOptionsState:this.state.expandSiteOptions,\n };\n return this.props.renderView(viewProps);\n }\n private _renderSiteOptions():void {\n const expandSiteOptionsState=this.state.expandSiteOptions;\n this.setState({\n expandSiteOptions: !expandSiteOptionsState\n });\n }\n private _resetSiteOptionsState():void {\n this.setState({\n expandSiteOptions: false\n });\n }\n // tslint:disable-next-line: no-any\n private _escFunction = (event: any) => {\n const key = event.keyCode;\n if(this.state.expandSiteOptions) {\n switch (key) {\n case KeyCodes.Escape: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if ((this._sitePickerMenuButton?.current?.contains(nextFocus) || this._sitePickerMenuNode?.current?.contains(nextFocus))) {\n this._resetSiteOptionsState();\n this._sitePickerMenuButton?.current?.focus();\n }\n }, 50);\n break;\n }\n case KeyCodes.Tab: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if ((!this._sitePickerMenuButton?.current?.contains(nextFocus) && !this._sitePickerMenuNode?.current?.contains(nextFocus))) {\n this._resetSiteOptionsState();\n }\n }, 50);\n break;\n }\n default:\n return;\n }\n }\n }\n // tslint:disable-next-line: no-any\n private _handleOutsideClick = (event:any) => {\n if((this._sitePickerMenuButton.current?.contains(event.target) && this.state.expandSiteOptions) ||\n (this._sitePickerMenuNode.current?.contains(event.target) && this.state.expandSiteOptions)) {\n return;\n } else {\n this._resetSiteOptionsState();\n }\n };\n private _handleChange(e: React.MouseEvent): void {\n e.preventDefault();\n if(e.currentTarget.href && e.currentTarget.href.length > 0 && window) {\n if (this.props.context.request.cookies.isConsentGiven()) {\n const cookieConfig = {maxAge:this._cookieExpirationInSeconds};\n this.props.context.request.cookies.set(this._cookieName,e.currentTarget.href,cookieConfig);\n }\n window.location.assign(e.currentTarget.href);\n }\n }\n private _renderSitePickerImage():React.ReactNode[] | undefined {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: `w=48&h=48&m=6`, w: 0, h: 0 },\n lg: { q: `w=48&h=48&m=6`, w: 0, h: 0 },\n xl: { q: `w=48&h=48&m=6`, w: 0, h: 0 }\n },\n lazyload: true\n };\n const siteOptions=this.props.config.siteOptions && this.props.config.siteOptions ;\n return siteOptions && siteOptions.map((item, index) => {\n const image = item?.siteImage;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings || defaultImageSettings\n };\n return (\n \n \n {item?.siteName}\n \n \n \n );\n }\n );\n }\n private _updateViewport(): void {\n this.viewport = this._getViewport();\n this.setState({ isMobile: this.isMobile });\n }\n private _getViewport(): GridSize {\n const { context } = this.props;\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (MsDyn365.isBrowser && typeof window !== undefined && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n } else {\n return 'xl';\n }\n }\n }\n return 'xs';\n }\n}\n\nexport default SitePicker;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as React from 'react';\n\nimport {getPayloadObject, getTelemetryAttributes, INodeProps, ITelemetryContent, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { IWishlistItemViewProps } from '../..';\nimport { IWishlistItemsViewProps } from './wishlist-items';\n\nconst WishlistItemsView: React.FC = props => {\n const { WishlistItems, status, statusMessage, heading, Products, products, Product, ProductDetails, ProductDimensions, telemetryContent } = props;\n\n return (\n \n {heading}\n {status !== 'SUCCESS' && statusMessage}\n { Products && products && products.length > 0 &&\n \n {products && products.map((product) => {\n return _renderItem(product, Product, ProductDimensions, ProductDetails, telemetryContent);\n })}\n \n }\n \n );\n};\n\nconst _renderItem = (product: IWishlistItemViewProps, Product?: INodeProps, ProductDimensions?: INodeProps, ProductDetails?: INodeProps, telemetryContent?: ITelemetryContent): JSX.Element | null => {\n\n const { key, productImage, productLink, productPrice, productDimensions, addToCartButton, removeButton, productStatusMessage, entireProductLink, productName, productAriaLabel, inventoryInformation } = product;\n const payLoad = getPayloadObject('click', telemetryContent!, '', key);\n const productAttributes = getTelemetryAttributes(telemetryContent!, payLoad);\n if (entireProductLink) {\n return (\n \n \n {productImage}\n {productName}\n {productDimensions && ProductDimensions &&\n \n {\n productDimensions.map((dimension) => {\n return dimension;\n })\n }\n \n }\n {productPrice}\n \n {inventoryInformation}\n {addToCartButton}\n {removeButton}\n {productStatusMessage}\n \n );\n } else {\n return (\n \n { productImage }\n { productLink }\n { productDimensions && ProductDimensions &&\n \n {\n productDimensions.map((dimension) => {\n return dimension;\n })\n }\n \n }\n { productPrice }\n { addToCartButton }\n { removeButton }\n { productStatusMessage }\n \n );\n }\n};\n\nexport default WishlistItemsView;","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\nimport { IAddResource, ICheckoutGiftCardViewProps, IForm, IItem, IList, IShowResource } from './checkout-gift-card';\n\nexport const From: React.FC = ({ formProps, label, inputPinLabel, inputExpLabel, alert, inputProps, inputNumProps,\n inputPinProps, inputExpProps, inputNumber, inputPin, inputExp, applyButton, supportExternalGiftCard, showGiftCardPinInput, showGiftCardExpInput, alertFieldLabel }) => (\n \n {alert}\n {supportExternalGiftCard ?\n \n \n {label}\n {inputNumber}\n \n {showGiftCardPinInput &&\n \n {inputPinLabel}\n {inputPin}\n \n }\n {showGiftCardExpInput &&\n \n {inputExpLabel}\n {inputExp}\n \n }\n {(showGiftCardPinInput || showGiftCardExpInput) && alertFieldLabel}\n \n : <>{label}{inputNumber}\n }\n {applyButton}\n \n);\n\nexport const SelectedGiftCard: React.FC = ({ itemProps, selectedGiftCard, removeButton }) => (\n \n {selectedGiftCard}\n {removeButton}\n \n);\n\nexport const GiftCardList: React.FC = ({ listProps, list }) => (\n \n {list.map(({ id, ...item }) => (\n \n ))}\n \n);\n\nexport const AddResource: React.FC = ({ form, list }) => (\n <>\n {form && }\n {list && }\n \n);\n\nexport const ShowResource: React.FC = ({ title, list }) => (\n <>\n {title}\n {list && }\n \n);\n\nconst CheckoutGiftCardView: React.FC = props => {\n const { checkoutGiftCardProps, showGiftCard, addGiftCard } = props;\n return (\n \n {showGiftCard && }\n {addGiftCard && }\n \n );\n};\n\nexport default CheckoutGiftCardView;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Button, INodeProps, Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\nimport { IOrderTemplateLineViewProps } from './components';\nimport { IOrderTemplateViewProps } from './order-template';\n\nconst OrderTemplateLinesView: React.FC = (props: IOrderTemplateViewProps) => {\n const {\n OrderTemplateLines,\n status,\n statusMessage,\n heading,\n ProductsTable,\n ProductsTableHeading,\n orderLines,\n ProductsTableRow,\n productsStatusMessage,\n OrderTemplateActions,\n orderActions,\n pagination,\n itemAddedToCartDialog,\n bulkOrderLineActions,\n isDetailsDisplayed,\n detailedProductView,\n toggleDetailsDisplayed,\n resources: {\n cancelBtnLabel,\n productNumberText,\n productText,\n productUnitPriceText,\n productUOMText,\n productQuantityText\n }\n } = props;\n\n const toggleDetails = () => {\n toggleDetailsDisplayed && toggleDetailsDisplayed(undefined);\n };\n\n return (\n \n {heading}\n {OrderTemplateActions && (\n \n {orderActions?.addTemplateToBag}\n {orderActions?.renameTemplate}\n {orderActions?.removeTemplate}\n {!isDetailsDisplayed && productsStatusMessage}\n \n )}\n {bulkOrderLineActions}\n {status !== 'SUCCESS' && statusMessage}\n {ProductsTable && orderLines && orderLines.length > 0 && (\n \n \n {ProductsTableHeading}\n \n {orderLines &&\n orderLines.map(product => {\n return _renderItem(product, productQuantityText, ProductsTableRow);\n })}\n \n \n {pagination}\n \n )}\n {itemAddedToCartDialog}\n \n \n Product Details\n \n \n
    \n
  • {detailedProductView?.productImage}
  • \n
  • {productText}:{detailedProductView?.productInfo}
  • \n
  • {productNumberText}:{detailedProductView?.productNumber}
  • \n
  • {productUnitPriceText}: {detailedProductView?.productPrice}
  • \n
  • {productUOMText}: {detailedProductView?.productUnitOfMeasure}
  • \n
  • {productQuantityText}:{detailedProductView?.productQuantityView}
  • \n {productsStatusMessage &&
  • {productsStatusMessage}
  • }\n
\n
\n \n \n \n \n
\n );\n};\n\nconst _renderItem = (\n product: IOrderTemplateLineViewProps,\n quantityLabel: string,\n ProductsTableRow?: INodeProps\n): JSX.Element | null => {\n if (!product) {\n return null;\n }\n\n const {\n key,\n selectLine,\n productImage,\n productPrice,\n productNumber,\n addToBagButton,\n removeButton,\n productInfo,\n productUnitOfMeasure,\n productQuantityView,\n productQuantity,\n popUp,\n isMobile\n } = product;\n\n return (\n \n {selectLine}\n {productImage}\n {isMobile ?
{productNumber}
{quantityLabel}: {productQuantity}
: {productNumber}}\n {!isMobile && {productInfo}}\n {!isMobile && {productPrice}}\n {!isMobile && {productUnitOfMeasure}}\n {!isMobile && {productQuantityView}}\n {isMobile && {popUp} }\n {!isMobile &&\n \n {addToBagButton}\n {removeButton}\n }\n
\n );\n};\n\nexport default OrderTemplateLinesView;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { getPayloadObject, getTelemetryAttributes, getTelemetryObject, IModuleProps, INodeProps, IPayLoad, ITelemetryContent, NodeTag, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { createAccordionStateInput } from '../../data-actions/accordion-state-data-action';\nimport { IAccordionData } from './accordion.data';\nimport { IAccordionProps } from './accordion.props.autogenerated';\n\n/**\n *\n * Accordion component\n * @extends {React.PureComponent>}\n */\n\nexport interface ICallToActionProps {\n link: INodeProps[];\n}\n\nexport interface IAccordionViewProps extends IAccordionProps<{}> {\n heading?: React.ReactNode;\n AccordionContainer: IModuleProps;\n HeaderSection: INodeProps;\n HeadingWrapper: INodeProps;\n accordianButtonsContainer: INodeProps;\n accordionButtons: React.ReactNode;\n accordionItemContainer: INodeProps;\n accordionItems: React.ReactNode;\n}\n\n/**\n *\n * Accordion component\n * @extends {React.Component>}\n */\n@observer\nclass Accordion extends React.Component> {\n\n private telemetryContent?: ITelemetryContent;\n private payLoad: IPayLoad;\n\n constructor(props: IAccordionProps) {\n super(props);\n this._onExpandAll = this._onExpandAll.bind(this);\n this._onCollapseAll = this._onCollapseAll.bind(this);\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n }\n public render(): JSX.Element {\n\n const { slots } = this.props;\n const { heading, className } = this.props.config;\n const headingComponent = heading && heading.text && (\n \n );\n\n const accordionViewProps = {\n ...this.props,\n AccordionContainer: {\n moduleProps: this.props,\n className: classnames('ms-accordion', className)\n },\n HeaderSection: { className: 'ms-accordion-header-section' },\n HeadingWrapper: { className: 'ms-accordion-header-section-container' },\n heading: headingComponent,\n config: this.props && this.props.config,\n accordianButtonsContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-accordion-header-section-toggle-button-container',\n },\n accordionButtons: this._renderAccordionButton(),\n accordionItemContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-accordion-item-section',\n },\n accordionItems: slots && slots.accordionItems && slots.accordionItems.length > 0 && slots.accordionItems.map((item: React.ReactNode, index: number) => this._getAccordionItem(item, index))\n };\n return this.props.renderView(accordionViewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.heading!.text = event.target.value;\n\n private _renderAccordionButton(): React.ReactNode | null {\n const { config, resources } = this.props;\n this.payLoad.contentAction.etext = TelemetryConstant.ExpandAll;\n const attributeExpandAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = TelemetryConstant.CollapseAll;\n const attributeCollapseAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n if (!config.showToggleAll) {\n this.props.context.telemetry.error('Accordian button content is empty, module wont render');\n return null;\n }\n return (\n <>\n \n  { resources.toggleAllSeparator} \n \n \n );\n }\n\n private _onExpandAll(): void {\n const accordionState = { isAllExpanded: true };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n }\n\n private _onCollapseAll(): void {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n }\n\n private _getAccordionItem(item: React.ReactNode, index: number): React.ReactNode {\n return (\n \n {React.cloneElement(item as React.ReactElement, { interactionStyle: this.props.config.interactionStyle })}\n \n );\n }\n\n}\n\nexport default Accordion;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, getTelemetryObject, IPayLoad, ITelemetryContent, Module, Node, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport { IImageData, IImageSettings, Image} from '@msdyn365-commerce/core';\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport { INavigationMenuViewProps } from './navigation-menu';\nimport { IMenuItemData } from './navigation-menu.data';\n\ninterface INavigationState {\n parentMenu?: number;\n activeMenu?: number;\n categoryImage?:string|null;\n mobileViewLabelText?: string;\n categoryImageAltText:string;\n}\n\n/**\n *\n * NavigationMenuView component\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuView extends React.PureComponent {\n private static isBackTrack: boolean = false;\n private currentLevel: number = 0;\n private menuNode: React.RefObject;\n private telemetryContent: ITelemetryContent;\n private payLoad: IPayLoad;\n constructor(props: INavigationMenuViewProps) {\n super(props);\n this.menuNode = React.createRef();\n this.state = {activeMenu: undefined, mobileViewLabelText: '', parentMenu: undefined,categoryImageAltText:''};\n this._closeSubmenu =this._closeSubmenu.bind(this);\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry);\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public componentDidMount(): void {\n document.body && document.body.addEventListener('mousedown', this._handleClickOutside);\n }\n\n public componentWillUnmount(): void {\n document.body && document.body.removeEventListener('mousedown', this._handleClickOutside, false);\n }\n\n public render(): JSX.Element | null {\n const { isMobileView, MenuList, MobileBackButton, MobileDescriptionContainer, MobileDescriptionLabel, Navigation} = this.props;\n\n this.currentLevel = 1;\n return(\n \n \n {isMobileView && this.state.activeMenu !== undefined &&\n \n \n {this.state.mobileViewLabelText}\n }\n {this._renderDisplay()}\n \n \n );\n }\n\n private _renderDisplay(): JSX.Element[] {\n const {ListItem, menuItemData, isMobileView} = this.props;\n const {activeMenu} = this.state;\n const menuItemList: JSX.Element[] = [];\n\n if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\n let menuItem: IMenuItemData = {};\n for(let i = 0; i < menuItemData.length; i++) {\n if (menuItemData[i] && menuItemData[i].id === activeMenu) {\n menuItem = menuItemData[i];\n !NavigationMenuView.isBackTrack ? this.setState({parentMenu: undefined}) : this.setState({parentMenu: undefined, mobileViewLabelText: menuItemData[i].linkText});\n break;\n }\n menuItem = this._getFromSubMenu(menuItemData[i]) as IMenuItemData;\n if (menuItem && menuItem.id === activeMenu) {\n break;\n }\n }\n\n menuItem && menuItemList.push (\n {this._createMenuItemList(menuItem)} \n );\n } else {\n menuItemData.forEach((item: IMenuItemData, index: number) => {\n menuItemList.push (\n \n {this._createMenuItemList(item)}\n \n );\n });\n }\n\n return menuItemList;\n }\n\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\n const subMenus = item && item.subMenu;\n if (subMenus && subMenus.length > 0) {\n for(let i = 0; i <= subMenus.length-1; i++) {\n if (subMenus[i].id === this.state.activeMenu) {\n !NavigationMenuView.isBackTrack ? this.setState({parentMenu: item && item.id}) : this.setState({parentMenu: item && item.id, mobileViewLabelText: subMenus[i].linkText});\n return subMenus[i];\n }\n const found = this._getFromSubMenu(subMenus[i]);\n if (found) {\n return found;\n }\n }\n }\n this.props.context.telemetry.error('Submenu content is empty, module wont render.');\n return null;\n }\n\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\n return (this._renderSubMenu(menuItemData.subMenu, menuItemData.id,false));\n } else {\n return (\n \n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id,false)}\n \n );\n }\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\n return (this._renderLinkMenuItem(menuItemData,menuItemData.id,false));\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\n return (this._renderSpanMenuItem(menuItemData));\n }\n this.props.context.telemetry.error('Navigation menu content is empty, module wont render.');\n return null;\n }\n\n private _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number,IsSubMenu?:boolean): JSX.Element | null {\n const {isMobileView, ListItem} = this.props;\n const enableMultiSupportMenu = this.props.config.enableMultilevelMenu || false;\n const multiLevelSupportedMenu = this.props.config.menuLevelSupport || 3;\n // 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 = subMenus && 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\n ? this._renderLinkMenuItem(option, idx)\n : this._renderSpanMenuItem(option)\n );\n }\n\n let subMenu;\n const haveSubmenu = hasOptions && enableMultiSupportMenu && (this.currentLevel <= Math.round(multiLevelSupportedMenu)-1);\n if (haveSubmenu) {\n this.currentLevel++;\n levelClassName = enableMultiSupportMenu?`level-${this.currentLevel.toString()}`:'';\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined,true);\n }\n return (\n \n { menuItem }\n { subMenu }\n \n );\n });\n return (this._renderMenu(levelClassName, menuOptions, activeMenu,IsSubMenu));\n }\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\n const {Button} = this.props;\n return (\n \n { option.linkText }\n
\n );\n }\n\n private _renderLinkMenuItem(option: IMenuItemData, index?: number,hoverEffect:boolean=true): JSX.Element | null {\n const {Link} = this.props;\n const linkText = option.linkText ? option.linkText : '';\n const imagesource= option.imageSource ? option.imageSource :'';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n { option.linkText }\n \n );\n }\n\n private _renderSpanMenuItem(option: IMenuItemData, index?: number): JSX.Element | null {\n const {Span} = this.props;\n return (\n { option.linkText }\n );\n }\n\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number,submenu?:boolean): JSX.Element | null {\n\n const {DivContainer, MenuList,ImageDivContainer,showCategoryImage,isMobileView} = this.props;\n const categoryImageDisplay = !isMobileView && showCategoryImage && this.state.categoryImage !==null && this.state.categoryImage !==undefined && !submenu;\n const DivContainerClass = this.currentLevel > 2 || categoryImageDisplay ? DivContainer!.className:'ms-nav__deafult';\n this.currentLevel = 1;\n return (\n \n 2 && 'navmenu-multi-level') }>\n { menuOptions }\n \n {\n categoryImageDisplay && this.state.categoryImage && (\n \n { this.state.categoryImage && this._getCategoryImage(this.state.categoryImage,this.state.categoryImageAltText) }\n )\n }\n \n );\n }\n private _updateCategoryImage=(categoryImageSrc:string,linkText:string) => ()=> {\n this.setState({\n categoryImage: categoryImageSrc !==''? categoryImageSrc :'empty',\n categoryImageAltText:linkText\n });\n }\n private _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.linkText!)();\n }\n } else {\n NavigationMenuView.isBackTrack = false;\n this.setState({\n activeMenu: data.id,\n mobileViewLabelText: data.linkText!,\n parentMenu: parentId\n });\n }\n\n this._resetFocus();\n };\n\n private _handleGoBack = () => () => {\n NavigationMenuView.isBackTrack = true;\n this.setState({ activeMenu: this.state.parentMenu});\n\n this._resetFocus();\n };\n\n private _resetFocus = () => {\n if (this.props.isMobileView) {\n setTimeout(() => {\n this.menuNode && this.menuNode.current && this.menuNode.current.focus();\n }, 0);\n }\n }\n\n // tslint:disable-next-line:no-any\n private _handleClickOutside = (event: any) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target)) {\n this.setState(\n {\n activeMenu:undefined,\n mobileViewLabelText: '',\n categoryImage:null\n }\n );\n }\n };\n\n private _closeSubmenu():void {\n if (!this.props.isMobileView) {\n this.setState({activeMenu:undefined,categoryImage:null,mobileViewLabelText: ''});\n }\n }\n private _getCategoryImage=(categoryImage:string,alttext:string):React.ReactNode|null => {\n\n const categoryImageUrl = generateImageUrl(`${categoryImage}`, 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\nexport default NavigationMenuView;","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\nimport { IContentBlockViewProps } from './content-block';\n\nconst ContentBlockView: React.FC = (props) => {\n const {\n contentBlockContainer,\n imageContainer,\n detailsContainer,\n title,\n text,\n links,\n image,\n contentBlockAnchorTag,\n imageLink,\n imageAriaLabel\n } = props;\n\n if (imageLink) {\n return (\n \n \n {image}\n
\n \n {title}\n {text}\n {links}\n \n \n );\n } else {\n return (\n \n {image}\n \n {title}\n {text}\n {links}\n \n \n );\n }\n};\n\nexport default ContentBlockView;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as React from 'react';\n\nexport interface IAccountOrganizationUsersTileDescription {\n description: string;\n}\n\nexport const AccountOrganizationUsersTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport * as React from 'react';\nimport { ILinksData } from '../organization-users-tile.props.autogenerated';\n\nexport interface IAccountOrganizationUsersTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n /** The telemetry content */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nexport const AccountOrganizationUsersTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n { editableLinks && editableLinks.length ?\n \n : null\n }\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if(!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link,index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-organization-users-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'button',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as React from 'react';\n\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport classnames from 'classnames';\nimport { AccountOrganizationUsersTileDescription, AccountOrganizationUsersTileLinks } from './components';\nimport { IOrganizationUsersTileData } from './organization-users-tile.data';\nimport { IOrganizationUsersTileProps } from './organization-users-tile.props.autogenerated';\n\nexport interface IOrganizationUsersTileViewProps extends IOrganizationUsersTileProps {\n OrganizationUsersTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * OrganizationUsersTile component\n * @extends {React.PureComponent>}\n */\nclass OrganizationUsersTile extends React.PureComponent> {\n\n private telemetryContent?: ITelemetryContent;\n\n constructor(props: IOrganizationUsersTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\n }\n\n public render(): JSX.Element | null {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountOrganizationUsersTileDescriptionForSingleUser, accountOrganizationUsersTileDescriptionForMultipleUsers } = resources;\n const numUsers = data.users && data.users.result;\n const accountOrganizationUsersTileDescription = numUsers === 1 ? accountOrganizationUsersTileDescriptionForSingleUser : accountOrganizationUsersTileDescriptionForMultipleUsers;\n\n const viewProps = {\n ...this.props,\n className: className,\n OrganizationUsersTile: {\n moduleProps: this.props,\n className: classnames('ms-account-organization-users-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && ,\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n this.props.config.heading.text = event.target.value;\n };\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if(this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default OrganizationUsersTile;\n"],"sourceRoot":""}