{"version":3,"sources":["webpack:///./src/themes/gardner-theme-b2c/views/order-details.view.tsx?ffea","webpack:///./src/themes/gardner-theme/views/order-template.view.tsx?a850","webpack:///./src/themes/gardner-theme-b2c/views/content-block.view.tsx?3e51","webpack:///src/modules/site-picker/site-picker.view.tsx?dcff","webpack:///src/modules/back-top-footer/back-top-footer.tsx?0e13","webpack:///./src/themes/gardner-theme-b2c/views/order-confirmation.view.tsx?ff4b","webpack:///src/modules/adventureworks/views/checkout-customer-account-payment.view.tsx?fdf3","webpack:///src/modules/adventureworks/views/reviews-list.view.tsx?ebec","webpack:///src/modules/accordion-item/accordion-item.view.tsx?b04f","webpack:///src/modules/accordion-item/accordion-item.tsx?fc54","webpack:///./src/themes/gardner-theme-b2c/views/order-template.view.tsx?56b4","webpack:///src/modules/aad-generic/aad-generic.view.tsx?ecad","webpack:///./src/themes/gardner-theme/views/order-confirmation.view.tsx?fd9b","webpack:///src/modules/accordion/accordion.view.tsx?8c70","webpack:///./src/themes/gardner-theme/views/order-details.view.tsx?dd01","webpack:///./src/themes/gardner-theme/views/content-block.view.tsx?2e10","webpack:///src/modules/aad-generic/aad-generic.tsx?d537","webpack:///./src/themes/gardner-theme-b2c/views/components/search.categorysuggest.tsx?f80a","webpack:///./src/themes/gardner-theme-b2c/views/components/search.mobile.empty.tsx?4f12","webpack:///./src/themes/gardner-theme-b2c/views/components/search.form.tsx?fc01","webpack:///./src/themes/gardner-theme-b2c/views/components/search.keywordsuggest.tsx?3620","webpack:///./src/themes/gardner-theme-b2c/views/components/search.productsuggest.tsx?5486","webpack:///./src/themes/gardner-theme-b2c/views/components/search.arisuggest.tsx?5a62","webpack:///./src/themes/gardner-theme-b2c/views/search.view.tsx?3456","webpack:///./src/themes/gardner-theme/views/components/search.categorysuggest.tsx?89d3","webpack:///./src/themes/gardner-theme/views/components/search.mobile.empty.tsx?dd58","webpack:///./src/themes/gardner-theme/views/components/search.form.tsx?16e9","webpack:///./src/themes/gardner-theme/views/components/search.keywordsuggest.tsx?455e","webpack:///./src/themes/gardner-theme/views/components/search.productsuggest.tsx?daef","webpack:///./src/themes/gardner-theme/views/components/search.arisuggest.tsx?77c0","webpack:///./src/themes/gardner-theme/views/search.view.tsx?13f6","webpack:///./src/utils/getAriModelDetailUrl.ts?ac81","webpack:///src/modules/footer-item/footer-item.tsx?f8b4","webpack:///src/modules/site-picker/site-picker.tsx?35ca","webpack:///src/modules/accordion/accordion.tsx?45c1","webpack:///src/index.ts?c6ae","webpack:///src/modules/footer-item/footer-item.view.tsx?235e","webpack:///src/modules/account-customer-balance/account-customer-balance.view.tsx?35d2"],"names":["OrderInfomation","_ref","orderInformationProps","salesId","receiptId","createdDate","count","amount","channelName","channelAddress","React","Node","Object","assign","SalesLine","_ref2","salesLineProps","salesLine","buyAgainButton","errors","GroupDelivery","_ref3","deliveryProps","heading","Group","_ref4","groupProps","delivery","address","salesLinesProps","salesLines","isCashAndCarryTransaction","className","map","key","data","LineId","deliveryType","shipment","trackingInfo","salesStatus","showTimeslot","pickupProps","pickupDateTimeslot","Groups","_ref5","groupsProps","groups","group","index","OrderSummary","_ref6","orderSummaryProps","subtotal","shipping","tax","totalAmount","earnedPoints","Payment","_ref7","paymentMethodsProps","title","methods","Help","_ref8","helpProps","needHelpLabel","helpLineNumberLabel","contactNumber","OrderDetailsView","_ref9","moduleProps","viewModes","tableViewActions","table","alert","loading","orderInfomation","orderSummary","payment","help","Module","_renderItem","product","quantityLabel","ProductsTableRow","selectLine","productImage","productPrice","productNumber","addToBagButton","removeButton","productInfo","productUnitOfMeasure","productQuantityView","productQuantity","popUp","isMobile","OrderTemplateLinesView","props","OrderTemplateLines","status","statusMessage","ProductsTable","ProductsTableHeading","orderLines","productsStatusMessage","OrderTemplateActions","orderActions","pagination","itemAddedToCartDialog","bulkOrderLineActions","isDetailsDisplayed","detailedProductView","toggleDetailsDisplayed","resources","cancelBtnLabel","productNumberText","productText","productUnitPriceText","productUOMText","productQuantityText","toggleDetails","undefined","addTemplateToBag","renameTemplate","removeTemplate","Modal","wrapClassName","autoFocus","fade","applicationNode","isOpen","toggle","ModalHeader","ModalBody","ModalFooter","Button","onClick","renderAdditionalContent","additionalContent","_additionalContent$ad","additionalContentNode","additionalContentItems","item","additionalContentItemContainer","text","additionalContentItemLinks","links","contentBlockView","contentBlockContainer","imageContainer","detailsContainer","image","contentBlockAnchorTag","imageLink","imageAriaLabel","imageClass","src","href","_renderSitePicker","_renderSiteOptionsList","SitePickerMenuList","SitePickerMenuListItem","SitePickerMenuListItemArray","options","onMouseLeave","resetSiteOptionsState","isMobileView","SitePicker","_props$SitePickerMenu","SitePickerMobileContainer","renderSiteOptions","_renderMobileView","_props$config$heading","SitePickerMenu","SitePickerMenuSpan","config","siteOptionsState","_renderDesktopView","BackTopFooter","constructor","super","editProps","requestContext","this","context","request","onEdit","event","backtoTopText","target","value","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","telemetry","render","destination","BackToTop","ariaLabel","error","OrderConfirmationOrderInfomation","receiptEmail","OrderConfirmationSalesLine","OrderConfirmationGroupDelivery","processing","OrderConfirmationGroup","shippingItemsToYou","OrderConfirmationGroups","OrderConfirmationOrderSummary","OrderConfirmationPayment","totalOnAccount","OrderConfirmationHelp","OrderConfirmationView","_props$data$orderHydr","backToShoppingLink","cultureFormatter","formatCurrency","tenderLines","orderHydration","result","salesOrder","TenderLines","tl","AmountInCompanyCurrency","reduce","num","total","console","log","SummaryForm","formProps","label","addPaymentButton","appliedLine","bottomBorder","paymentAmountInput","EditForm","inputLabel","inputAmount","customerName","customerAccountNumber","customerSince","accountCredit","accountDetails","CheckoutCustomerAccountView","checkoutCustomerAccount","checkoutErrorRef","summaryView","editView","moduleState","ref","isReady","buildReviewCard","isUserReview","cardProps","headerProps","rating","date","name","cardBodyProps","reviewProps","reviewTitle","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","wasReviewHelpfulText","like","dislike","edit","renderProductDescription","_props$data$product$r","primaryImageSource","PrimaryImageUrl","imageUrl","generateImageUrl","apiSettings","Image","gridSettings","imageSettings","viewports","xs","q","w","h","sm","md","lg","xl","lazyload","cropFocalRegion","renderProductImage","Name","ItemId","ReviewsListview","filterByDropdown","noReviewsMessage","noReviewsWithFilterMessage","pageControls","refineReviewsProps","reportReviewModal","reviewsListProps","reviewCards","sortByDropdown","state","userReview","ArrayExtensions","hasElements","isFilterApplied","review","reviewModal","modal","modalHeader","modalBody","form","inputRow","selectRatingLabel","reviewTitleLabel","titleInput","reviewTextLabel","textInput","privacyPolicyUrl","modalFooter","submitButton","cancelButton","createReviewModal","createReportModal","reported","headerSubmitted","header","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton","_renderAccordionItemContent","items","length","AccordionItemView","drawer","accordionSlots","AccordionItemContainer","AccordionItemContent","accordionItemContent","AccordionItem","moduleClassName","handleHeadingChange","accordionItemTitle","_onToggle","bind","shouldComponentUpdate","nextProps","slots","renderView","accordionExpandedStateResult","accordionExpandedState","expanded","isAllExpanded","isExpandedOnInitialLoad","_objectSpread","classnames","tag","ControlledDrawer","toggleButtonText","collapseProps","onToggle","onTextChange","interactionStyle","accordionState","actionContext","update","createAccordionStateInput","__decorate","observer","aadGeneric","aadConainer","aadAPIConainer","_orderHydration$resul","_orderHydration$resul2","_salesOrder$SalesLine","SalesLines","so","Description","Price","Quantity","TotalAmount","accordionView","AccordionContainer","accordionItems","accordionButtons","HeaderSection","HeadingWrapper","accordianButtonsContainer","accordionItemContainer","purchaseOrderNumber","ShipmentTracking","trackingNumber","noTrackingInfo","shipmentTrackingProps","_ref10","trackingNumberHeading","noTrackingInformationText","perCustomerFreightPolicyText","poNumber","setPoNumber","SalesId","getPoNumber","shippingLine","document","querySelector","innerHTML","async","_salesDetails$SalesOr","salesDetails","getSalesOrderDetailsAsync","callerContext","SalesOrderDetails","PoNumber","node","AadGeneric","componentDidMount","$i2e","$element","window","insertServiceContent","getElementContent","initialize","viewProps","id","Msdyn365","renderCategorySuggestionsTitle","inCategoriesHeading","categoryAutoSuggestionHeading","createElement","CategorySuggestionsComponent","searchText","noResultText","isLoadingAutoSuggest","isLoadingNode","autosuggestCategory","CategorySuggest","replace","UlCategory","MobileAutoSuggestEmptyComponent","noSearchResultImage","altText","renderProductNotFoundResultsImage","emptyMobileSearchTextHeading","emptyMobileSearchText","FormComponent","searchForm","formWrapper","clearSearchButtonText","isSearchText","clearSearch","cancelBtn","input","renderClearButton","submitBtn","renderKeywordSuggestionsTitle","keywordsHeading","KeywordSuggestionsComponent","keywordSuggest","ulKeyword","keywordSuggestions","renderProductSuggestionsTitle","productSuggestionsHeading","productAutoSuggestionHeading","renderProductNotFoundResults","noResultContentHeadingText","noResultContentParagraphText","ProductSuggestionsComponent","productSuggest","ulProduct","productSuggestions","productSuggestionHeading","_item$id","LiProduct","AProduct","thumbnail","price","AriSuggestionsComponent","noResultsText","isLoading","searchResults","loadingNode","ariModelResultsHeading","Fragment","r","generateAriModelDetailUrl","Id","toString","BrandCode","renderTitle","searchSuggestionHeading","searchTextString","concat","searchAutoSuggestionHeading","format","SearchView","Search","AutoSuggestAriaLabel","AutoSuggestAriaLabelText","AutoSuggest","KeywordSuggest","ProductSuggest","UlKeyword","UlProduct","autosuggestKeyword","autosuggestProduct","SearchForm","FormWrapper","topResultsCount","categorySuggestionHeading","setSearchTextString","useState","isMobilePort","setIsMobile","ariSearchResults","setAriSearchResults","ariSearchLoading","setAriSearchLoading","debouncedSearchHandler","useMemo","_debounce","search","getAriSearchResults","useEffect","cancel","propsFormInput","propsFormInputCurrent","current","action","isMobileViewport","useCallback","variant","VariantType","Browser","addEventListener","StringExtensions","isNullOrEmpty","queryResultSettings","Paging","Top","SearchModelsInput","SearchModelsAction","Models","cancelBtnAriaLabel","type","isSearchFormExpanded","_appendQueryParams","route","query","qsp","MsDyn365","isBrowser","queryUrl","URL","location","searchParams","set","_generateSeeMoreUrl","app","searchQueryStringParameter","searchQsp","getUrlSync","modelId","brandCode","url","indexOf","FooterItem","handleTextChange","handleLinkTextChange","link","linkText","payLoad","getPayloadObject","footerItemClassName","contentAction","etext","attributes","getTelemetryAttributes","_createHeading","_createImageMarkup","_createText","_createLinkText","EditableLink","_createLink","HeadingContainer","ItemContainer","Link","linkUrl","destinationUrl","role","openInNewTab","onTelemetryClick","editableLink","additionalProperties","ariaHiddenAttr","loadFailureBehavior","shouldSkipToMainImage","PureComponent","_cookieName","_cookieExpirationInSeconds","_escFunction","keyCode","expandSiteOptions","KeyCodes","Escape","setTimeout","_this$_sitePickerMenu","_this$_sitePickerMenu2","nextFocus","activeElement","_this$_sitePickerMenu3","_sitePickerMenuButton","contains","_sitePickerMenuNode","_resetSiteOptionsState","focus","Tab","_this$_sitePickerMenu4","_this$_sitePickerMenu5","_handleOutsideClick","_this$_sitePickerMenu6","_this$_sitePickerMenu7","_handleChange","createRef","_renderSiteOptions","_updateViewport","viewport","device","Type","_document","_document2","body","resizeThrottledEventHandler","addThrottledEvent","componentWillUnmount","_document3","_document4","removeEventListener","_this$props$config$he","_this$props$config$he2","Drawer","openGlyph","closeGlyph","glyphPlacement","_renderSitePickerImage","expandSiteOptionsState","setState","e","preventDefault","currentTarget","cookies","isConsentGiven","cookieConfig","maxAge","defaultImageSettings","siteOptions","_image$imageSettings","_item$siteRedirectUrl","siteImage","imageProps","tabIndex","siteRedirectUrl","siteName","_getViewport","innerWidth","observable","computed","Accordion","expandAllButtonRef","collapseAllButtonRef","_onExpandAll","_onCollapseAll","isDisabled","headingComponent","accordionViewProps","_renderAccordionButton","_getAccordionItem","TelemetryConstant","ExpandAll","attributeExpandAll","CollapseAll","attributeCollapseAll","showToggleAll","disabled","expandAllText","toggleAllSeparator","collapseAllText","_this$collapseAllButt","_this$expandAllButton","FooterItemView","_renderElement","accountSectionHeading","creditSummarySectionHeading","accountLabels","accountValues","creditSummaryLabels","creditSummaryValues","homeButton","actions","requestStatementModal","availableCredit","balanceOwed","creditExcess"],"mappings":"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","file":"static/js/12.950a4287c968ab185026.chunk.js","sourcesContent":["/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport {\r\n IGroup,\r\n IGroupDelivery,\r\n IGroups,\r\n IHelp,\r\n IOrderDetailsViewProps,\r\n IOrderInformation,\r\n IOrderSummary,\r\n IPaymentMethods,\r\n ISalesLine\r\n} from '@msdyn365-commerce-modules/order-management';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport const OrderInfomation: React.FC = ({\r\n orderInformationProps,\r\n salesId,\r\n receiptId,\r\n createdDate,\r\n count,\r\n amount,\r\n // channelReferenceId,\r\n channelName,\r\n channelAddress\r\n}) => (\r\n \r\n {channelName}\r\n {channelAddress}\r\n {salesId}\r\n {receiptId}\r\n {createdDate}\r\n {count}\r\n {amount}\r\n {/* {channelReferenceId} */}\r\n \r\n);\r\n\r\nexport const SalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton, errors }) => (\r\n \r\n {salesLine}\r\n {buyAgainButton}\r\n {errors}\r\n \r\n);\r\n\r\nexport const GroupDelivery: React.FC = ({ deliveryProps, heading, count }) => (\r\n \r\n {heading}\r\n {count}\r\n \r\n);\r\n\r\nexport const Group: React.FC = ({ groupProps, delivery, address, salesLinesProps, salesLines, isCashAndCarryTransaction }) => (\r\n \r\n {delivery && }\r\n \r\n {salesLines && (\r\n \r\n {salesLines.map(salesLine => (\r\n \r\n {salesLine.data.deliveryType === 'ship' && salesLine.data.shipment ? salesLine.trackingInfo : null}\r\n \r\n {!isCashAndCarryTransaction && salesLine.salesStatus}\r\n \r\n ))}\r\n \r\n )}\r\n {!delivery.showTimeslot && address}\r\n {delivery.showTimeslot && (\r\n \r\n {address}\r\n {delivery.pickupDateTimeslot}\r\n \r\n )}\r\n \r\n \r\n);\r\n\r\nexport const Groups: React.FC = ({ groupsProps, groups }) => (\r\n \r\n {groups.map((group, index) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport const OrderSummary: React.FC = ({ orderSummaryProps, heading, subtotal, shipping, tax, totalAmount, earnedPoints }) => (\r\n \r\n {heading}\r\n {subtotal}\r\n {shipping}\r\n {tax}\r\n {totalAmount}\r\n {earnedPoints}\r\n \r\n);\r\n\r\nexport const Payment: React.FC = ({ paymentMethodsProps, title, methods }) => (\r\n \r\n {title}\r\n {methods}\r\n \r\n);\r\n\r\nexport const Help: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\r\n \r\n {needHelpLabel}\r\n {helpLineNumberLabel}\r\n {contactNumber}\r\n \r\n);\r\n\r\nconst OrderDetailsView: React.FC = ({\r\n moduleProps,\r\n viewModes,\r\n tableViewActions,\r\n table,\r\n heading,\r\n alert,\r\n loading,\r\n orderInfomation,\r\n orderSummary,\r\n payment,\r\n help,\r\n groups\r\n}) => {\r\n return (\r\n \r\n {heading}\r\n {alert}\r\n {loading}\r\n {orderInfomation && }\r\n {tableViewActions}\r\n {viewModes}\r\n {table}\r\n {groups && }\r\n \r\n {orderSummary && }\r\n {payment && }\r\n \r\n {help && }\r\n \r\n );\r\n};\r\n\r\nexport default OrderDetailsView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Button, INodeProps, Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IOrderTemplateLineViewProps } from '@msdyn365-commerce-modules/order-template/src/modules/order-template/./components';\r\nimport { IOrderTemplateViewProps } from '@msdyn365-commerce-modules/order-template/src/modules/order-template/./order-template';\r\n\r\nconst OrderTemplateLinesView: React.FC = (props: IOrderTemplateViewProps) => {\r\n const {\r\n OrderTemplateLines,\r\n status,\r\n statusMessage,\r\n heading,\r\n ProductsTable,\r\n ProductsTableHeading,\r\n orderLines,\r\n ProductsTableRow,\r\n productsStatusMessage,\r\n OrderTemplateActions,\r\n orderActions,\r\n pagination,\r\n itemAddedToCartDialog,\r\n bulkOrderLineActions,\r\n isDetailsDisplayed,\r\n detailedProductView,\r\n toggleDetailsDisplayed,\r\n resources: {\r\n cancelBtnLabel,\r\n productNumberText,\r\n productText,\r\n productUnitPriceText,\r\n productUOMText,\r\n productQuantityText\r\n }\r\n } = props;\r\n\r\n const toggleDetails = React.useCallback(() => {\r\n toggleDetailsDisplayed && toggleDetailsDisplayed(undefined);\r\n }, [toggleDetailsDisplayed]);\r\n return (\r\n \r\n {heading}\r\n {OrderTemplateActions && (\r\n \r\n {orderActions?.addTemplateToBag}\r\n {orderActions?.renameTemplate}\r\n {orderActions?.removeTemplate}\r\n {!isDetailsDisplayed && productsStatusMessage}\r\n \r\n )}\r\n {bulkOrderLineActions}\r\n {status !== 'SUCCESS' && statusMessage}\r\n {ProductsTable && (\r\n \r\n \r\n {ProductsTableHeading}\r\n \r\n {orderLines &&\r\n orderLines.map(product => {\r\n return _renderItem(product, productQuantityText, ProductsTableRow);\r\n })}\r\n \r\n \r\n {pagination}\r\n \r\n )}\r\n {itemAddedToCartDialog}\r\n \r\n \r\n Product Details\r\n \r\n \r\n
    \r\n
  • \r\n {detailedProductView?.productImage}\r\n
  • \r\n
  • \r\n \r\n {productText}\r\n :\r\n \r\n {detailedProductView?.productInfo}\r\n
  • \r\n
  • \r\n \r\n {productNumberText}\r\n :\r\n \r\n {detailedProductView?.productNumber}\r\n
  • \r\n
  • \r\n \r\n {productUnitPriceText}\r\n :\r\n \r\n {' '}\r\n {detailedProductView?.productPrice}\r\n
  • \r\n
  • \r\n \r\n {productUOMText}\r\n :\r\n \r\n {' '}\r\n {detailedProductView?.productUnitOfMeasure}\r\n
  • \r\n
  • \r\n \r\n {productQuantityText}\r\n :\r\n \r\n {detailedProductView?.productQuantityView}\r\n
  • \r\n {productsStatusMessage &&
  • \r\n {productsStatusMessage}\r\n
  • }\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nconst _renderItem = (\r\n product: IOrderTemplateLineViewProps,\r\n quantityLabel: string,\r\n ProductsTableRow?: INodeProps\r\n): JSX.Element | null => {\r\n if (!product) {\r\n return null;\r\n }\r\n\r\n const {\r\n key,\r\n selectLine,\r\n productImage,\r\n productPrice,\r\n productNumber,\r\n addToBagButton,\r\n removeButton,\r\n productInfo,\r\n productUnitOfMeasure,\r\n productQuantityView,\r\n productQuantity,\r\n popUp,\r\n isMobile\r\n } = product;\r\n\r\n return (\r\n \r\n \r\n {selectLine}\r\n \r\n \r\n {productImage}\r\n \r\n {isMobile ? \r\n
\r\n {productNumber}\r\n
\r\n
\r\n {quantityLabel}\r\n :\r\n {' '}\r\n {productQuantity}\r\n
\r\n : \r\n {productNumber}\r\n }\r\n {!isMobile && \r\n {productInfo}\r\n }\r\n {!isMobile && \r\n {productPrice}\r\n }\r\n {!isMobile && \r\n {productUnitOfMeasure}\r\n }\r\n {!isMobile && \r\n {productQuantityView}\r\n }\r\n {isMobile && \r\n {popUp}\r\n }\r\n {!isMobile &&\r\n \r\n {addToBagButton}\r\n {removeButton}\r\n }\r\n
\r\n );\r\n};\r\n\r\nexport default OrderTemplateLinesView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IContentBlockAdditionalContentItemViewProps,\r\n IContentBlockAdditionalContentViewProps, IContentBlockViewProps\r\n} from '@msdyn365-commerce-modules/content-block';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Render Additional Content.\r\n * @param additionalContent - Additional content view props.\r\n * @returns JSX Element.\r\n */\r\nconst renderAdditionalContent = (additionalContent: IContentBlockAdditionalContentViewProps) => {\r\n return (\r\n \r\n {additionalContent.additionalContentItems?.map((item: IContentBlockAdditionalContentItemViewProps) => {\r\n return (\r\n <>\r\n {item.heading}\r\n \r\n {item.text}\r\n \r\n {item.links}\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render View.\r\n * @param props - The view props.\r\n * @returns -The JSX Element.\r\n */\r\nconst contentBlockView: React.FC = (props) => {\r\n const {\r\n contentBlockContainer,\r\n imageContainer,\r\n detailsContainer,\r\n title,\r\n text,\r\n links,\r\n image,\r\n contentBlockAnchorTag,\r\n imageLink,\r\n imageAriaLabel,\r\n additionalContent\r\n } = props;\r\n\r\n // @ts-expect-error HTML element need to be clear on run time.\r\n const hasImage: boolean = image.props.src;\r\n const imageClass: string = hasImage ? `${detailsContainer.className} withImage` : `${detailsContainer.className} withoutImage`;\r\n\r\n if (imageLink) {\r\n return (\r\n \r\n \r\n \r\n {image}\r\n \r\n \r\n \r\n {title}\r\n {text}\r\n {links}\r\n {additionalContent && renderAdditionalContent(additionalContent)}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n \r\n {image}\r\n \r\n \r\n {title}\r\n {text}\r\n {links}\r\n {additionalContent && renderAdditionalContent(additionalContent)}\r\n \r\n \r\n );\r\n\r\n};\r\n\r\nexport default contentBlockView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISitePickerViewProps } from './site-picker';\n\nexport default (props: ISitePickerViewProps) => {\n return <>{_renderSitePicker(props)};\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, SitePickerMenuListItem, SitePickerMenuListItemArray } = props;\n const options = SitePickerMenuListItemArray!.map((item, index) => {\n return (\n \n {item}\n \n );\n });\n return (\n \n {options}\n \n );\n};\n\nconst _renderMobileView = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMobileContainer } = props;\n return (\n \n
\n {props.SitePickerMenuListItemArray?.map((item, index) => {\n return
{item}
;\n })}\n
\n
\n );\n};\n\nconst _renderSitePicker = (props: ISitePickerViewProps): React.ReactNode => {\n const { isMobileView, SitePicker } = props;\n return {isMobileView ? _renderMobileView(props) : _renderDesktopView(props)};\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { BackToTop, getTelemetryObject, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBackTopFooterProps } from './back-top-footer.props.autogenerated';\n\n/**\n *\n * BackTopFooter component.\n * @extends {React.PureComponent>}\n */\nclass BackTopFooter extends React.PureComponent> {\n private readonly editProps: Msdyn365.ITextEditProps = {\n requestContext: this.props.context.request,\n onEdit: (event: Msdyn365.ContentEditableEvent) => (this.props.config.backtoTopText = event.target.value)\n };\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IBackTopFooterProps<{}>) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n if (!this.props.config.destination) {\n this.props.telemetry.error('BackToTop.destination has not been provided, module wont render.');\n return null;\n }\n\n return (\n \n );\n }\n}\n\nexport default BackTopFooter;\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IHelp, IOrderSummary, IPaymentMethods } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common';\r\nimport { IGroup, IGroupDelivery, IGroups } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-groups';\r\nimport { IOrderInformation } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-order-information';\r\nimport { ISalesLine } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-sales-line';\r\nimport { IOrderConfirmationViewProps } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/./order-confirmation';\r\n\r\ninterface IPaymentMethodsExt extends IPaymentMethods {\r\n totalOnAccount?: string;\r\n}\r\n\r\n\r\nexport const OrderConfirmationOrderInfomation: React.FC = ({\r\n orderInformationProps,\r\n receiptEmail,\r\n createdDate\r\n // channelReferenceId\r\n}) => (\r\n \r\n {createdDate}\r\n {/* {channelReferenceId} */}\r\n {receiptEmail}\r\n \r\n);\r\n\r\nexport const OrderConfirmationSalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton }) => (\r\n \r\n {salesLine}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroupDelivery: React.FC = ({ deliveryProps, heading, count, processing, address, trackingInfo, pickupDateTimeslot }) => (\r\n \r\n {heading}\r\n {address}\r\n {pickupDateTimeslot}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\r\n \r\n {delivery && }\r\n {delivery && delivery.shippingItemsToYou}\r\n {salesLines && (\r\n \r\n {salesLines.map((salesLine: ISalesLine) => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroups: React.FC = ({ groupsProps, groups }) => (\r\n \r\n {groups.map((group: IGroup, index: number) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport const OrderConfirmationOrderSummary: React.FC = ({ orderSummaryProps, heading, subtotal, shipping, tax, totalAmount, earnedPoints }) => (\r\n \r\n {heading}\r\n {subtotal}\r\n {shipping}\r\n {tax}\r\n {totalAmount}\r\n {earnedPoints}\r\n \r\n);\r\n\r\nexport const OrderConfirmationPayment: React.FC = ({ paymentMethodsProps, title, methods, totalOnAccount }) => \r\n {title}\r\n {totalOnAccount ?

On Account: {totalOnAccount}

: null}\r\n {methods}\r\n
;\r\n\r\nexport const OrderConfirmationHelp: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\r\n \r\n {needHelpLabel}\r\n {helpLineNumberLabel}\r\n {contactNumber}\r\n \r\n);\r\n\r\n\r\nconst OrderConfirmationView: React.FC = (props) => {\r\n const {\r\n moduleProps,\r\n heading,\r\n backToShoppingLink,\r\n alert,\r\n loading,\r\n orderInfomation,\r\n orderSummary,\r\n payment,\r\n help,\r\n groups,\r\n context: { cultureFormatter: { formatCurrency }}\r\n } = props;\r\n const tenderLines = props.data.orderHydration.result?.salesOrder.TenderLines;\r\n let totalOnAccount = 0;\r\n if (tenderLines) {\r\n totalOnAccount = tenderLines.map(tl => tl.AmountInCompanyCurrency || 0).reduce((num, total) => num + total, 0);\r\n }\r\n console.log(totalOnAccount);\r\n return (\r\n \r\n {heading}\r\n {alert}\r\n {loading}\r\n {orderInfomation && }\r\n {backToShoppingLink}\r\n {groups && }\r\n {payment && 0 ? formatCurrency(totalOnAccount) : undefined}\r\n />}\r\n {orderSummary && }\r\n {help && }\r\n \r\n );\r\n};\r\n\r\nexport default OrderConfirmationView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICheckoutCustomerAccountPaymentViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/checkout-customer-account-payment';\nimport { IAccountPaymentEditViewForm } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/components/get-account-payment-form-edit-mode';\nimport { IAccountPaymentSummaryViewForm } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/components/get-account-payment-form-summary-mode';\n\nexport const SummaryForm: React.FC = ({\n formProps,\n label,\n addPaymentButton,\n appliedLine,\n bottomBorder,\n paymentAmountInput\n}) => (\n \n <>\n {label}\n {paymentAmountInput}\n {addPaymentButton}\n {appliedLine}\n {bottomBorder}\n \n \n);\n\nexport const EditForm: React.FC = ({\n formProps,\n inputLabel,\n inputAmount,\n addPaymentButton,\n customerName,\n customerAccountNumber,\n customerSince,\n accountCredit,\n alert,\n accountDetails,\n appliedLine,\n bottomBorder\n}) => (\n \n <>\n {customerName}\n {customerAccountNumber}\n {customerSince}\n {accountCredit}\n {accountDetails}\n {inputLabel}\n {alert}\n {inputAmount}\n {addPaymentButton}\n {appliedLine}\n {bottomBorder}\n \n \n);\n\nconst CheckoutCustomerAccountView: React.FC = props => {\n const { checkoutCustomerAccount, checkoutErrorRef, summaryView, editView, moduleState, alert } = props;\n return (\n \n {alert}\n {moduleState.isReady && summaryView && }\n {!moduleState.isReady && editView && }\n \n );\n};\n\nexport default CheckoutCustomerAccountView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport {\n IReportReviewModalViewProps,\n IReviewCardViewProps,\n IReviewsListData,\n IReviewsListResources,\n IReviewsListState,\n IReviewsListViewProps\n} from '@msdyn365-commerce-modules/ratings-reviews';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IReviewsListProps } from '../definition-extensions/reviews-list.ext.props.autogenerated';\n\n/**\n * Build Review Card.\n * @param props - Review Card ViewProps.\n * @param resources - Resource Strings.\n * @param isUserReview - User review flag.\n * @returns JSX Element.\n */\nconst buildReviewCard = (props: IReviewCardViewProps, resources: IReviewsListResources, isUserReview: boolean) => {\n return (\n \n \n
\n {props.rating}\n {props.date}\n
\n {props.name}\n
\n \n \n {props.reviewTitle}\n {props.reviewText}\n \n \n {props.responseName}\n {props.responseDate}\n {props.responseText}\n \n \n {isUserReview ? undefined :

{resources.wasReviewHelpfulText}

}\n {props.like}\n {props.dislike}\n {props.edit}\n
\n
\n
\n );\n};\n\n/**\n * Render Product Image.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductImage = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const primaryImageSource = props.data.product.result?.PrimaryImageUrl;\n const imageUrl = generateImageUrl(primaryImageSource, props.context.request.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=111&h=111&m=6', w: 111, h: 111 },\n sm: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n md: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n lg: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n xl: { q: 'w=130&h=130&m=6', w: 130, h: 130 }\n },\n lazyload: true,\n cropFocalRegion: true\n };\n\n return (\n \n );\n};\n\n/**\n * Render Product Description.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductDescription = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const product = props.data.product.result;\n return (\n \n
{renderProductImage(props)}
\n
\n
{product?.Name}
\n
{product?.Name}
\n
{product?.ItemId}
\n
\n
\n );\n};\n\n/**\n * Build Review modal.\n * @param props - Review list ViewProps.\n * @returns JSX Element.\n */\nconst createReviewModal = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const { resources, moduleProps, reviewModal } = props;\n return (\n \n {reviewModal.modalHeader}\n \n \n \n {renderProductDescription(props)}\n \n
{resources.selectRatingLabel}
\n {reviewModal.rating}\n
\n
\n \n {resources.reviewTitleLabel}\n {reviewModal.titleInput}\n \n \n {resources.reviewTextLabel}\n {reviewModal.textInput}\n \n {reviewModal.privacyPolicyUrl}\n {reviewModal.error}\n
\n
\n \n {reviewModal.submitButton}\n {reviewModal.cancelButton}\n \n
\n );\n};\n\n/**\n * Build Review modal.\n * @param props - Review modal ViewProps.\n * @param state - Review List State.\n * @returns JSX Element.\n */\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\n return (\n \n {state.reported ? props.headerSubmitted : props.header}\n \n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\n \n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\n \n );\n};\n\n/**\n * ReviewsList view.\n * @param props - Ratings ReviewsList ViewProps.\n * @returns ReviewsList view module.\n */\nconst ReviewsListview: React.FC> = props => {\n const {\n filterByDropdown,\n heading,\n moduleProps,\n noReviewsMessage,\n noReviewsWithFilterMessage,\n pageControls,\n refineReviewsProps,\n reportReviewModal,\n reviewsListProps,\n reviewCards,\n sortByDropdown,\n state,\n userReview,\n resources\n } = props;\n\n if (!userReview && !ArrayExtensions.hasElements(reviewCards) && !state.isFilterApplied) {\n return {noReviewsMessage};\n }\n\n return (\n \n {heading}\n \n {sortByDropdown}\n {filterByDropdown}\n \n \n {userReview && buildReviewCard(userReview, resources, true)}\n {reviewCards.map(review => {\n return buildReviewCard(review, resources, false);\n })}\n \n {!ArrayExtensions.hasElements(reviewCards) && state.isFilterApplied && noReviewsWithFilterMessage}\n {pageControls}\n {createReviewModal(props)}\n {createReportModal(reportReviewModal, state)}\n \n );\n};\n\nexport default ReviewsListview;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccordionItemViewProps } from './accordion-item';\n\nconst AccordionItemView: React.FC = props => {\n const { drawer, accordionSlots, AccordionItemContainer, AccordionItemContent } = props;\n return (\n \n \n \n {accordionSlots &&\n accordionSlots.accordionItemContent &&\n accordionSlots.accordionItemContent.length &&\n _renderAccordionItemContent(accordionSlots.accordionItemContent)}\n \n \n \n );\n};\n\nconst _renderAccordionItemContent = (items: React.ReactNode[]): JSX.Element | null => {\n return (\n <>\n {items && items.length > 0\n ? items.map((item: React.ReactNode, index: number) => {\n return {item};\n })\n : null}\n \n );\n};\nexport default AccordionItemView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ControlledDrawer, getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { IDrawerState } from '@msdyn365-commerce-modules/utilities/dist/types/drawer/Drawer';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createAccordionStateInput, interactionStyle } from '../..';\nimport { IAccordionItemData } from './accordion-item.data';\nimport { IAccordionItemProps } from './accordion-item.props.autogenerated';\n\nexport interface IAccordionItemViewProps {\n AccordionItemContainer: IModuleProps;\n drawer: INodeProps;\n accordionSlots: INodeProps;\n AccordionItemContent: INodeProps;\n className: string;\n}\n\nexport interface IAccordionItemExtentedProps extends IAccordionItemProps {\n interactionStyle?: interactionStyle;\n}\n\n/**\n *\n * AccordionItem component.\n * @extends {React.Component}\n */\n@observer\nclass AccordionItem extends React.Component {\n private readonly moduleClassName: string = 'ms-accordion-item';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IAccordionItemProps) {\n super(props);\n this._onToggle = this._onToggle.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public shouldComponentUpdate(nextProps: IAccordionItemProps): boolean {\n if (this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { slots, renderView, config, data } = this.props;\n const accordionExpandedStateResult = data && data.accordionExpandedState && data.accordionExpandedState.result;\n const expanded =\n accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded === undefined\n ? data && config.isExpandedOnInitialLoad\n : accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded;\n const viewProps = {\n ...this.props,\n AccordionItemContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n AccordionItemContent: {\n className: 'ms-accordion-item-content'\n },\n drawer: {\n tag: ControlledDrawer,\n className: `${this.moduleClassName}__drawer`,\n toggleButtonText: (config.accordionItemTitle && config.accordionItemTitle) || '',\n collapseProps: { isOpen: expanded },\n onToggle: this._onToggle,\n onTextChange: this.handleHeadingChange,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n },\n accordionSlots: slots\n };\n return renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.accordionItemTitle = event.target.value);\n\n private _onToggle(state: IDrawerState): void {\n if (!state.isOpen && this.props.interactionStyle === interactionStyle.ExpandOneItemOnly) {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n }\n }\n}\nexport default AccordionItem;\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Button, INodeProps, Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IOrderTemplateLineViewProps } from '@msdyn365-commerce-modules/order-template/src/modules/order-template/./components';\r\nimport { IOrderTemplateViewProps } from '@msdyn365-commerce-modules/order-template/src/modules/order-template/./order-template';\r\n\r\nconst OrderTemplateLinesView: React.FC = (props: IOrderTemplateViewProps) => {\r\n const {\r\n OrderTemplateLines,\r\n status,\r\n statusMessage,\r\n heading,\r\n ProductsTable,\r\n ProductsTableHeading,\r\n orderLines,\r\n ProductsTableRow,\r\n productsStatusMessage,\r\n OrderTemplateActions,\r\n orderActions,\r\n pagination,\r\n itemAddedToCartDialog,\r\n bulkOrderLineActions,\r\n isDetailsDisplayed,\r\n detailedProductView,\r\n toggleDetailsDisplayed,\r\n resources: {\r\n cancelBtnLabel,\r\n productNumberText,\r\n productText,\r\n productUnitPriceText,\r\n productUOMText,\r\n productQuantityText\r\n }\r\n } = props;\r\n\r\n const toggleDetails = React.useCallback(() => {\r\n toggleDetailsDisplayed && toggleDetailsDisplayed(undefined);\r\n }, [toggleDetailsDisplayed]);\r\n return (\r\n \r\n {heading}\r\n {OrderTemplateActions && (\r\n \r\n {orderActions?.addTemplateToBag}\r\n {orderActions?.renameTemplate}\r\n {orderActions?.removeTemplate}\r\n {!isDetailsDisplayed && productsStatusMessage}\r\n \r\n )}\r\n {bulkOrderLineActions}\r\n {status !== 'SUCCESS' && statusMessage}\r\n {ProductsTable && (\r\n \r\n \r\n {ProductsTableHeading}\r\n \r\n {orderLines &&\r\n orderLines.map(product => {\r\n return _renderItem(product, productQuantityText, ProductsTableRow);\r\n })}\r\n \r\n \r\n {pagination}\r\n \r\n )}\r\n {itemAddedToCartDialog}\r\n \r\n \r\n Product Details\r\n \r\n \r\n
    \r\n
  • \r\n {detailedProductView?.productImage}\r\n
  • \r\n
  • \r\n \r\n {productText}\r\n :\r\n \r\n {detailedProductView?.productInfo}\r\n
  • \r\n
  • \r\n \r\n {productNumberText}\r\n :\r\n \r\n {detailedProductView?.productNumber}\r\n
  • \r\n
  • \r\n \r\n {productUnitPriceText}\r\n :\r\n \r\n {' '}\r\n {detailedProductView?.productPrice}\r\n
  • \r\n
  • \r\n \r\n {productUOMText}\r\n :\r\n \r\n {' '}\r\n {detailedProductView?.productUnitOfMeasure}\r\n
  • \r\n
  • \r\n \r\n {productQuantityText}\r\n :\r\n \r\n {detailedProductView?.productQuantityView}\r\n
  • \r\n {productsStatusMessage &&
  • \r\n {productsStatusMessage}\r\n
  • }\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nconst _renderItem = (\r\n product: IOrderTemplateLineViewProps,\r\n quantityLabel: string,\r\n ProductsTableRow?: INodeProps\r\n): JSX.Element | null => {\r\n if (!product) {\r\n return null;\r\n }\r\n\r\n const {\r\n key,\r\n selectLine,\r\n productImage,\r\n productPrice,\r\n productNumber,\r\n addToBagButton,\r\n removeButton,\r\n productInfo,\r\n productUnitOfMeasure,\r\n productQuantityView,\r\n productQuantity,\r\n popUp,\r\n isMobile\r\n } = product;\r\n\r\n return (\r\n \r\n \r\n {selectLine}\r\n \r\n \r\n {productImage}\r\n \r\n {isMobile ? \r\n
\r\n {productNumber}\r\n
\r\n
\r\n {quantityLabel}\r\n :\r\n {' '}\r\n {productQuantity}\r\n
\r\n : \r\n {productNumber}\r\n }\r\n {!isMobile && \r\n {productInfo}\r\n }\r\n {!isMobile && \r\n {productPrice}\r\n }\r\n {!isMobile && \r\n {productUnitOfMeasure}\r\n }\r\n {!isMobile && \r\n {productQuantityView}\r\n }\r\n {isMobile && \r\n {popUp}\r\n }\r\n {!isMobile &&\r\n \r\n {addToBagButton}\r\n {removeButton}\r\n }\r\n
\r\n );\r\n};\r\n\r\nexport default OrderTemplateLinesView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAadGenericViewProps } from './aad-generic';\n\nexport default (props: IAadGenericViewProps) => {\n const { aadGeneric, aadConainer, aadAPIConainer, heading } = props;\n\n return (\n \n \n {heading}\n {aadAPIConainer}\n \n \n );\n};\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IHelp, IOrderSummary, IPaymentMethods } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common';\r\nimport { IGroup, IGroupDelivery, IGroups } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-groups';\r\nimport { IOrderInformation } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-order-information';\r\nimport { ISalesLine } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-sales-line';\r\nimport { IOrderConfirmationViewProps } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/./order-confirmation';\r\nimport { SalesOrder } from \"@msdyn365-commerce/retail-proxy\";\r\n\r\ninterface IPaymentMethodsExt extends IPaymentMethods {\r\n totalOnAccount?: string;\r\n}\r\n\r\n\r\nexport const OrderConfirmationOrderInfomation: React.FC = ({\r\n orderInformationProps\r\n // receiptEmail,\r\n // createdDate\r\n // channelReferenceId\r\n}) => (\r\n \r\n {/* {createdDate} */}\r\n {/* {channelReferenceId} */}\r\n {/* {receiptEmail} */}\r\n \r\n);\r\n\r\nexport const OrderConfirmationSalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton }) => (\r\n \r\n {salesLine}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroupDelivery: React.FC = ({ deliveryProps, heading, count, processing, address, trackingInfo, pickupDateTimeslot }) => (\r\n \r\n {heading}\r\n {address}\r\n {pickupDateTimeslot}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\r\n \r\n {delivery && }\r\n {delivery && delivery.shippingItemsToYou}\r\n {salesLines && (\r\n \r\n {salesLines.map((salesLine: ISalesLine) => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroups: React.FC = ({ groupsProps, groups }) => (\r\n \r\n {groups.map((group: IGroup, index: number) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport const OrderConfirmationOrderSummary: React.FC = ({ orderSummaryProps, heading, subtotal, shipping, tax, totalAmount, earnedPoints }) => (\r\n \r\n {heading}\r\n {subtotal}\r\n {shipping}\r\n {tax}\r\n {totalAmount}\r\n {earnedPoints}\r\n \r\n);\r\n\r\nexport const OrderConfirmationPayment: React.FC = ({ paymentMethodsProps, title, methods, totalOnAccount }) => \r\n {title}\r\n {totalOnAccount ?

On Account: {totalOnAccount}

: null}\r\n {methods}\r\n
;\r\n\r\nexport const OrderConfirmationHelp: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\r\n \r\n {needHelpLabel}\r\n {helpLineNumberLabel}\r\n {contactNumber}\r\n \r\n);\r\n\r\nconst _renderOrderTable = (salesOrder: SalesOrder) => {\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {salesOrder.SalesLines?.map(so => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
Item IdDescriptionPriceQuantityTotal
{so.ItemId}{so.Description}{so.Price}{so.Quantity}{so.TotalAmount}
\r\n )\r\n}\r\n\r\n\r\nconst OrderConfirmationView: React.FC = (props) => {\r\n const {\r\n moduleProps,\r\n heading,\r\n backToShoppingLink,\r\n alert,\r\n loading,\r\n orderInfomation,\r\n orderSummary,\r\n payment,\r\n help,\r\n groups,\r\n data: { orderHydration },\r\n context: { cultureFormatter: { formatCurrency }}\r\n } = props;\r\n const tenderLines = props.data.orderHydration.result?.salesOrder.TenderLines;\r\n let totalOnAccount = 0;\r\n if (tenderLines) {\r\n totalOnAccount = tenderLines.map(tl => tl.AmountInCompanyCurrency || 0).reduce((num, total) => num + total, 0);\r\n }\r\n\r\n\r\n return (\r\n \r\n {heading}\r\n {alert}\r\n {loading}\r\n {orderInfomation && }\r\n {orderHydration?.result?.salesOrder && _renderOrderTable(orderHydration?.result?.salesOrder)}\r\n {backToShoppingLink}\r\n {groups && }\r\n {payment && 0 ? formatCurrency(totalOnAccount) : undefined}\r\n />}\r\n {orderSummary && }\r\n {help && }\r\n \r\n );\r\n};\r\n\r\nexport default OrderConfirmationView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccordionViewProps } from './accordion';\n\nconst accordionView: React.FC = props => {\n const { heading, AccordionContainer, accordionItems } = props;\n if (!props.heading && !props.accordionButtons && !props.accordionItems) {\n props.context.telemetry.error('Accordion content is empty, module wont render');\n return null;\n }\n return (\n \n \n {heading}\n {props.accordionButtons && {props.accordionButtons}}\n \n {accordionItems}\n \n );\n};\n\nexport default accordionView;\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport {\r\n IGroup,\r\n IGroupDelivery,\r\n IGroups,\r\n IHelp,\r\n IOrderDetailsViewProps,\r\n IOrderInformation,\r\n IOrderSummary,\r\n IPaymentMethods,\r\n ISalesLine\r\n} from '@msdyn365-commerce-modules/order-management';\r\nimport { INodeProps, Module, Node } from \"@msdyn365-commerce-modules/utilities\";\r\nimport * as React from 'react';\r\nimport { IOrderDetailsProps } from \"../definition-extensions/order-details.ext.props.autogenerated\";\r\nimport { IOrderDetailsExtData } from \"../definition-extensions/order-details.data\";\r\nimport { getSalesOrderDetailsAsync } from \"../../../actions/DataActionExtension.g\";\r\n\r\ninterface IShipmentTrackingProps {\r\n heading: string;\r\n noTrackingInfo: string;\r\n trackingNumber: string;\r\n shipmentTrackingProps: INodeProps;\r\n}\r\n\r\ninterface IExtendedOrderInformation extends IOrderInformation {\r\n purchaseOrderNumber: React.ReactNode;\r\n}\r\n\r\n\r\nexport const OrderInfomation: React.FC = ({\r\n orderInformationProps,\r\n salesId,\r\n receiptId,\r\n createdDate,\r\n count,\r\n amount,\r\n // channelReferenceId,\r\n channelName,\r\n channelAddress,\r\n purchaseOrderNumber\r\n}) => (\r\n \r\n {channelName}\r\n {channelAddress}\r\n {salesId}\r\n {purchaseOrderNumber}\r\n {receiptId}\r\n {createdDate}\r\n {count}\r\n {amount}\r\n {/* {channelReferenceId} */}\r\n \r\n);\r\n\r\nexport const SalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton, errors }) => (\r\n \r\n {salesLine}\r\n {buyAgainButton}\r\n {errors}\r\n \r\n);\r\n\r\nexport const GroupDelivery: React.FC = ({ deliveryProps, heading, count }) => (\r\n \r\n {heading}\r\n {count}\r\n \r\n);\r\n\r\nexport const Group: React.FC = ({ groupProps, delivery, address, salesLinesProps, salesLines, isCashAndCarryTransaction }) => (\r\n \r\n {delivery && }\r\n \r\n {salesLines && (\r\n \r\n {salesLines.map(salesLine => (\r\n \r\n {salesLine.data.deliveryType === 'ship' && salesLine.data.shipment ? salesLine.trackingInfo : null}\r\n \r\n {!isCashAndCarryTransaction && salesLine.salesStatus}\r\n \r\n ))}\r\n \r\n )}\r\n {!delivery.showTimeslot && address}\r\n {delivery.showTimeslot && (\r\n \r\n {address}\r\n {delivery.pickupDateTimeslot}\r\n \r\n )}\r\n \r\n \r\n);\r\n\r\nexport const Groups: React.FC = ({ groupsProps, groups }) => (\r\n \r\n {groups.map((group, index) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport const OrderSummary: React.FC = ({ orderSummaryProps, heading, subtotal, shipping, tax, totalAmount, earnedPoints }) => (\r\n \r\n {heading}\r\n {subtotal}\r\n {shipping}\r\n {tax}\r\n {totalAmount}\r\n {earnedPoints}\r\n \r\n);\r\n\r\nexport const Payment: React.FC = ({ paymentMethodsProps, title, methods }) => (\r\n \r\n {title}\r\n {methods}\r\n \r\n);\r\n\r\nexport const Help: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\r\n \r\n {needHelpLabel}\r\n {helpLineNumberLabel}\r\n {contactNumber}\r\n \r\n);\r\n\r\nconst ShipmentTracking: React.FC = ({ trackingNumber, noTrackingInfo, heading, shipmentTrackingProps }) => (\r\n \r\n {trackingNumber?.length ? `${heading}: ${trackingNumber}` : noTrackingInfo }\r\n \r\n)\r\n\r\nconst OrderDetailsView: React.FC> = ({\r\n moduleProps,\r\n viewModes,\r\n tableViewActions,\r\n table,\r\n heading,\r\n alert,\r\n loading,\r\n orderInfomation,\r\n orderSummary,\r\n payment,\r\n help,\r\n groups,\r\n data: {\r\n trackingNumber, \r\n },\r\n resources: {\r\n trackingNumberHeading,\r\n noTrackingInformationText,\r\n perCustomerFreightPolicyText\r\n },\r\n context: { actionContext },\r\n salesOrder\r\n}) => {\r\n const [poNumber, setPoNumber] = React.useState(null);\r\n\r\n React.useEffect(() => {\r\n if (!poNumber) {\r\n const salesId = salesOrder?.SalesId || '';\r\n void getPoNumber(salesId);\r\n }\r\n },[])\r\n\r\n React.useEffect(() => {\r\n const shippingLine = document.querySelector('.ms-order-details__order-summary-line-shipping .msc-price__actual');\r\n if (shippingLine) {\r\n shippingLine.innerHTML = perCustomerFreightPolicyText;\r\n }\r\n }, []);\r\n\r\n const getPoNumber = async (salesId: string) => {\r\n const salesDetails = await getSalesOrderDetailsAsync({callerContext: actionContext}, [salesId])\r\n if (salesDetails?.SalesOrderDetails?.length && salesDetails?.SalesOrderDetails[0].PoNumber) {\r\n const node = Purchase Order# {salesDetails?.SalesOrderDetails[0].PoNumber}\r\n setPoNumber(node);\r\n }\r\n }\r\n return (\r\n \r\n {heading}\r\n {alert}\r\n {loading}\r\n {orderInfomation && }\r\n {tableViewActions}\r\n {viewModes}\r\n {table}\r\n \r\n {groups && }\r\n \r\n {orderSummary && }\r\n {payment && }\r\n \r\n {help && }\r\n \r\n );\r\n};\r\n\r\nexport default OrderDetailsView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IContentBlockAdditionalContentItemViewProps,\r\n IContentBlockAdditionalContentViewProps, IContentBlockViewProps\r\n} from '@msdyn365-commerce-modules/content-block';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Render Additional Content.\r\n * @param additionalContent - Additional content view props.\r\n * @returns JSX Element.\r\n */\r\nconst renderAdditionalContent = (additionalContent: IContentBlockAdditionalContentViewProps) => {\r\n return (\r\n \r\n {additionalContent.additionalContentItems?.map((item: IContentBlockAdditionalContentItemViewProps) => {\r\n return (\r\n <>\r\n {item.heading}\r\n \r\n {item.text}\r\n \r\n {item.links}\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render View.\r\n * @param props - The view props.\r\n * @returns -The JSX Element.\r\n */\r\nconst contentBlockView: React.FC = (props) => {\r\n const {\r\n contentBlockContainer,\r\n imageContainer,\r\n detailsContainer,\r\n title,\r\n text,\r\n links,\r\n image,\r\n contentBlockAnchorTag,\r\n imageLink,\r\n imageAriaLabel,\r\n additionalContent\r\n } = props;\r\n\r\n // @ts-expect-error HTML element need to be clear on run time.\r\n const hasImage: boolean = image.props.src;\r\n const imageClass: string = hasImage ? `${detailsContainer.className} withImage` : `${detailsContainer.className} withoutImage`;\r\n\r\n if (imageLink) {\r\n return (\r\n \r\n \r\n \r\n {image}\r\n \r\n
\r\n \r\n {title}\r\n {text}\r\n {links}\r\n {additionalContent && renderAdditionalContent(additionalContent)}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n \r\n {image}\r\n \r\n \r\n {title}\r\n {text}\r\n {links}\r\n {additionalContent && renderAdditionalContent(additionalContent)}\r\n \r\n \r\n );\r\n\r\n};\r\n\r\nexport default contentBlockView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAadGenericData } from './aad-generic.data';\nimport { IAadGenericProps } from './aad-generic.props.autogenerated';\n\nexport interface IAadGenericViewProps extends IAadGenericProps {\n aadGeneric: IModuleProps;\n aadConainer: INodeProps;\n aadAPIConainer: React.ReactNode;\n heading?: React.ReactNode;\n}\n\n/**\n *\n * AadGeneric component.\n * @extends {React.Component>}\n */\nclass AadGeneric extends React.Component> {\n private readonly moduleClassName: string = 'ms-aad-generic';\n\n public componentDidMount(): void {\n // @ts-expect-error\n const { $i2e, $element } = window || {};\n\n if ($i2e && $element) {\n $i2e.insertServiceContent($element.getElementContent());\n $element.initialize();\n }\n }\n\n public shouldComponentUpdate(nextProps: IAadGenericViewProps): boolean {\n if (nextProps.config.heading !== this.props.config.heading) {\n return true;\n }\n return false;\n }\n\n public render(): JSX.Element | null {\n const { className, heading } = this.props.config;\n\n const viewProps = {\n ...this.props,\n aadGeneric: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n aadConainer: {\n className: `${this.moduleClassName}__container`\n },\n aadAPIConainer:
,\n heading: heading && (\n \n )\n };\n\n return this.props.renderView(viewProps);\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.heading) {\n this.props.config.heading.text = event.target.value;\n }\n };\n}\n\nexport default AadGeneric;\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { ISearchData, ISearchViewProps } from '@msdyn365-commerce-modules/search';\r\nimport { Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\r\n\r\n/**\r\n * Render Categories heading.\r\n * @param inCategoriesHeading - The Keywords result heading.\r\n * @returns The JSX Element.\r\n */\r\nconst renderCategorySuggestionsTitle = (inCategoriesHeading: string): JSX.Element => {\r\n const categoryAutoSuggestionHeading = inCategoriesHeading ? inCategoriesHeading : 'In categories';\r\n\r\n return (\r\n
\r\n {categoryAutoSuggestionHeading}\r\n
\r\n );\r\n};\r\n\r\n/**\r\n * Render Categories suggestion result.\r\n * @param searchText search text\r\n * @param inCategoriesHeading - The Categories result heading.\r\n * @param noResultText - The \"No Result\" text.\r\n * @param props - The Categories suggestion result.\r\n * @param isLoadingAutoSuggest - The autosuggestion loading flag.\r\n * @param isLoadingNode - The autosuggestion loading node.\r\n * @returns The JSX Element.\r\n */\r\nexport const CategorySuggestionsComponent = (\r\n searchText: string | undefined,\r\n inCategoriesHeading: string,\r\n noResultText: string,\r\n props: ISearchViewProps & ISearchProps,\r\n isLoadingAutoSuggest?: boolean,\r\n isLoadingNode?: React.ReactNode\r\n): JSX.Element => {\r\n return props.autosuggestCategory ? (\r\n \r\n {renderCategorySuggestionsTitle(inCategoriesHeading.replace('{0}', searchText || ''))}\r\n \r\n {isLoadingAutoSuggest && isLoadingNode}\r\n {!isLoadingAutoSuggest && props.autosuggestCategory.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n ) : (\r\n \r\n {renderCategorySuggestionsTitle(inCategoriesHeading.replace('{0}', searchText || ''))}\r\n \r\n
  • \r\n {noResultText}\r\n
  • \r\n
    \r\n
    \r\n );\r\n};\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IImageData, Image } from '@msdyn365-commerce/core';\r\nimport { ISearchData } from '@msdyn365-commerce-modules/search';\r\nimport { Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\r\n\r\n/**\r\n * Render Products Suggestion result heading.\r\n * @param props -The props.\r\n * @returns The JSX Element.\r\n */\r\nconst renderProductNotFoundResultsImage = (props: ISearchProps): JSX.Element | null => {\r\n const noSearchResultImage: IImageData | undefined = props.config.noSearchResultImage;\r\n if (!noSearchResultImage || !noSearchResultImage.src) {\r\n return null;\r\n }\r\n const imageSettings = {\r\n lazyload: true,\r\n viewports: {\r\n xs: { w: 100, h: 100, q: 'w=100&h=100&q=60&m=6' }\r\n }\r\n };\r\n return (\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render Product suggestion result.\r\n * @param props -The props.\r\n * @returns The JSX Element.\r\n */\r\nexport const MobileAutoSuggestEmptyComponent = (\r\n props: ISearchProps\r\n): JSX.Element => {\r\n return (\r\n \r\n
    \r\n {renderProductNotFoundResultsImage(props)}\r\n
    \r\n
    \r\n
    \r\n {props.resources.emptyMobileSearchTextHeading}\r\n
    \r\n
    \r\n {props.resources.emptyMobileSearchText}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { ISearchData, ISearchFormViewProps } from '@msdyn365-commerce-modules/search';\r\nimport { Button, INodeProps, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\r\nimport { MobileAutoSuggestEmptyComponent } from './search.mobile.empty';\r\n\r\n/**\r\n * Render Clear button for mobile viewport.\r\n * @param clearSearchButtonText -The Clear button text.\r\n * @param clearSearch -Clear Search callback.\r\n * @returns -The JSX Element.\r\n */\r\nconst renderClearButton = (clearSearchButtonText: string, clearSearch: () => void): JSX.Element => {\r\n return (\r\n \r\n {clearSearchButtonText || 'Clear'}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render Search form.\r\n * @param form -Form view props.\r\n * @param searchForm -Search Form props.\r\n * @param formWrapper -Form Wrapper props.\r\n * @param isMobile -Is mobile viewport flag.\r\n * @param clearSearchButtonText -The Clear button text.\r\n * @param props -The props for resource.\r\n * @param isSearchText -Is SearchText flag for input text.\r\n * @param clearSearch -Clear Search callback.\r\n * @returns -The JSX Element.\r\n */\r\nexport const FormComponent = (\r\n form: ISearchFormViewProps,\r\n searchForm: INodeProps,\r\n formWrapper: INodeProps,\r\n isMobile: boolean,\r\n clearSearchButtonText: string,\r\n props: ISearchProps,\r\n isSearchText: boolean,\r\n clearSearch: () => void): JSX.Element => {\r\n\r\n // const cancelButtonNode = (\r\n // \r\n // );\r\n\r\n return (\r\n isMobile ? (\r\n \r\n {form.cancelBtn}\r\n \r\n {form.input}\r\n {isSearchText && renderClearButton(clearSearchButtonText, clearSearch)}\r\n {!isSearchText ? MobileAutoSuggestEmptyComponent(props) : null}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {form.input}\r\n {form.submitBtn}\r\n {/*{isSearchText && cancelButtonNode}*/}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { ISearchKeywordViewProps } from '@msdyn365-commerce-modules/search';\r\nimport { INodeProps, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\n/**\r\n * Render keywords heading.\r\n * @param keywordsHeading -The Keywords result heading.\r\n * @returns The JSX Element.\r\n */\r\nconst renderKeywordSuggestionsTitle = (keywordsHeading: string): JSX.Element => {\r\n const categoryAutoSuggestionHeading = keywordsHeading ? keywordsHeading : 'Keywords';\r\n\r\n return (\r\n
    \r\n {categoryAutoSuggestionHeading}\r\n
    \r\n );\r\n};\r\n\r\n/**\r\n * Render keywords reults.\r\n * @param keywordSuggest -The Keywords suggest Node props.\r\n * @param ulKeyword -The List Node props.\r\n * @param keywordsHeading -The Keywords result heading.\r\n * @param noResultText -The \"No Result\" text.\r\n * @param keywordSuggestions -The Keywords suggestion result.\r\n * @param isLoadingAutoSuggest - The autosuggestion loading flag.\r\n * @param isLoadingNode - The autosuggestion loading node.\r\n * @returns -The JSX Element.\r\n */\r\nexport const KeywordSuggestionsComponent = (\r\n keywordSuggest: INodeProps,\r\n ulKeyword: INodeProps,\r\n keywordsHeading: string,\r\n noResultText: string,\r\n keywordSuggestions?: ISearchKeywordViewProps,\r\n isLoadingAutoSuggest?: boolean,\r\n isLoadingNode?: React.ReactNode\r\n): JSX.Element => {\r\n return (\r\n keywordSuggestions ? (\r\n \r\n {renderKeywordSuggestionsTitle(keywordsHeading)}\r\n \r\n {isLoadingAutoSuggest && isLoadingNode}\r\n {!isLoadingAutoSuggest && keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n ) : (\r\n \r\n {renderKeywordSuggestionsTitle(keywordsHeading)}\r\n \r\n
  • \r\n {noResultText}\r\n
  • \r\n
    \r\n
    \r\n )\r\n );\r\n};\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IImageData, Image } from '@msdyn365-commerce/core';\r\nimport { ISearchData, ISearchProductViewProps } from '@msdyn365-commerce-modules/search';\r\nimport { INodeProps, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\r\n\r\n/**\r\n * Render Products Suggestion result heading.\r\n * @param productSuggestionsHeading -The products suggestion result heading.\r\n * @returns The JSX Element.\r\n */\r\nconst renderProductSuggestionsTitle = (productSuggestionsHeading: string): JSX.Element => {\r\n const productAutoSuggestionHeading = productSuggestionsHeading ? productSuggestionsHeading : 'Products';\r\n\r\n return (\r\n
    \r\n {productAutoSuggestionHeading}\r\n
    \r\n );\r\n};\r\n\r\n/**\r\n * Render Products Suggestion result heading.\r\n * @param props -The props.\r\n * @returns The JSX Element.\r\n */\r\nconst renderProductNotFoundResultsImage = (props: ISearchProps): JSX.Element | null => {\r\n const noSearchResultImage: IImageData | undefined = props.config.noSearchResultImage;\r\n if (!noSearchResultImage || !noSearchResultImage.src) {\r\n return null;\r\n }\r\n return (\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render Products No result section.\r\n * @param props -The props.\r\n * @returns The JSX Element.\r\n */\r\nconst renderProductNotFoundResults = (props: ISearchProps): JSX.Element => {\r\n return (\r\n \r\n
    \r\n {renderProductNotFoundResultsImage(props)}\r\n
    \r\n
    \r\n {props.resources.noResultContentHeadingText}\r\n
    \r\n
    \r\n {props.resources.noResultContentParagraphText}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\n/**\r\n * Render Product suggestion result.\r\n * @param productSuggest -The product suggest Node props.\r\n * @param ulProduct -The List Node props.\r\n * @param props -The props.\r\n * @param productSuggestions -The Product suggestion result.\r\n * @param isLoadingAutoSuggest - The autosuggestion loading flag.\r\n * @param isLoadingNode - The autosuggestion loading node.\r\n * @returns The JSX Element.\r\n */\r\nexport const ProductSuggestionsComponent = (\r\n productSuggest: INodeProps,\r\n ulProduct: INodeProps,\r\n props: ISearchProps,\r\n productSuggestions?: ISearchProductViewProps,\r\n isLoadingAutoSuggest?: boolean,\r\n isLoadingNode?: React.ReactNode\r\n): JSX.Element => {\r\n const liProduct: INodeProps = {\r\n tag: 'li',\r\n className: 'msc-no-result-content'\r\n };\r\n return productSuggestions ? (\r\n \r\n {renderProductSuggestionsTitle(props.resources.productSuggestionHeading)}\r\n \r\n {isLoadingAutoSuggest && isLoadingNode}\r\n {!isLoadingAutoSuggest && productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price}\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n ) : (\r\n \r\n {renderProductSuggestionsTitle(props.resources.productSuggestionHeading)}\r\n \r\n \r\n {renderProductNotFoundResults(props)}\r\n \r\n \r\n \r\n );\r\n};\r\n","import { ISearchData, ISearchViewProps } from '@msdyn365-commerce-modules/search';\r\nimport { Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\r\nimport { IAriServiceModelExtension } from \"../../../../actions/DataServiceEntities.g\";\r\nimport generateAriModelDetailUrl from \"../../../../utils/getAriModelDetailUrl\";\r\n\r\nconst renderAriSuggestionsTitle = (heading: string): JSX.Element =>\r\n (\r\n
    \r\n {heading}\r\n
    \r\n )\r\n\r\n\r\nexport const AriSuggestionsComponent = (\r\n noResultsText: string,\r\n props: ISearchViewProps & ISearchProps,\r\n isLoading: boolean,\r\n searchResults: IAriServiceModelExtension[],\r\n loadingNode: React.ReactNode\r\n): JSX.Element => {\r\n const { resources: { ariModelResultsHeading }, UlCategory } = props;\r\n return (\r\n
    \r\n {renderAriSuggestionsTitle(ariModelResultsHeading)}\r\n \r\n {isLoading? (\r\n loadingNode\r\n ) : (\r\n searchResults?.length ? (\r\n <>\r\n {searchResults.map(r => (
  • \r\n \r\n {r.Name}\r\n \r\n
  • ))}\r\n \r\n\r\n ) : (
  • \r\n {noResultsText}\r\n
  • )\r\n )}\r\n\r\n
    \r\n
    \r\n )\r\n}\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { ISearchData, ISearchFormViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search';\r\nimport { Button, format, isMobile, Module, Node, VariantType } from '@msdyn365-commerce-modules/utilities';\r\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\n\r\nimport { ISearchProps } from '../definition-extensions/search.ext.props.autogenerated';\r\nimport { CategorySuggestionsComponent } from './components/search.categorysuggest';\r\nimport { FormComponent } from './components/search.form';\r\nimport { KeywordSuggestionsComponent } from './components/search.keywordsuggest';\r\nimport { ProductSuggestionsComponent } from './components/search.productsuggest';\r\nimport SearchModelsAction, { SearchModelsInput } from \"../../../actions/search-models.action\";\r\nimport { QueryResultSettings } from \"@msdyn365-commerce/retail-proxy\";\r\nimport { IAriServiceModelExtension } from \"../../../actions/DataServiceEntities.g\";\r\nimport * as _ from 'lodash';\r\nimport { AriSuggestionsComponent } from \"./components/search.arisuggest\";\r\n// import MsDyn365, { getUrlSync } from \"@msdyn365-commerce/core\";\r\n/**\r\n * Render Title for AutoSuggest.\r\n * @param searchSuggestionHeading -The heading resource string.\r\n * @param searchText -The search string.\r\n * @returns -The JSX Element.\r\n */\r\nconst renderTitle = (searchSuggestionHeading: string, searchText: string): JSX.Element => {\r\n const searchTextString = '\"'.concat(searchText.concat('\"'));\r\n const searchAutoSuggestionHeading = searchSuggestionHeading ? format(searchSuggestionHeading, searchTextString) : `Search for ${searchTextString}`;\r\n\r\n return (\r\n \r\n {searchAutoSuggestionHeading}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Search View.\r\n * @param props - The view props.\r\n * @returns The JSX Element.\r\n */\r\nconst SearchView: React.FC> = (props: ISearchViewProps & ISearchProps): JSX.Element => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n UlKeyword,\r\n UlProduct,\r\n form,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label,\r\n context,\r\n isLoadingAutoSuggest,\r\n isLoadingNode,\r\n context: {\r\n request: {\r\n apiSettings\r\n },\r\n actionContext\r\n },\r\n config: {\r\n topResultsCount\r\n }\r\n } = props;\r\n\r\n const { searchSuggestionHeading, categorySuggestionHeading, keywordsHeading, noResultText, clearSearchButtonText } = props.resources;\r\n\r\n const [searchTextString, setSearchTextString] = useState();\r\n const [isMobilePort, setIsMobile] = useState(false);\r\n const [ ariSearchResults, setAriSearchResults ] = useState< IAriServiceModelExtension[]>([]);\r\n const [ ariSearchLoading , setAriSearchLoading ] = useState(false);\r\n\r\n const debouncedSearchHandler = useMemo(() =>\r\n _.debounce((search: string) => getAriSearchResults(search), 500),\r\n []\r\n )\r\n\r\n useEffect(() => {\r\n setSearchTextString(searchText);\r\n if (searchText.length > 0)\r\n debouncedSearchHandler(searchText);\r\n }, [searchText]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n debouncedSearchHandler.cancel();\r\n }\r\n }, [debouncedSearchHandler])\r\n\r\n /**\r\n * ClearSearch callback method to clear search string.\r\n */\r\n const clearSearch = (): void => {\r\n setSearchTextString('');\r\n\r\n const propsForm = props.form as ISearchFormViewProps;\r\n const propsFormInput = propsForm.input as React.DetailedHTMLProps, HTMLInputElement>;\r\n const propsFormInputCurrent = (propsFormInput.ref as React.RefObject).current;\r\n\r\n if (propsFormInputCurrent) {\r\n propsFormInputCurrent.value = '';\r\n }\r\n\r\n propsFormInput.value = '';\r\n props.searchText = '';\r\n props.FormWrapper.action = '';\r\n };\r\n\r\n const isMobileViewport = useCallback(() => {\r\n const isMobileView = isMobile({ variant: VariantType.Browser, context: context.request }) === 'xs';\r\n setIsMobile(isMobileView);\r\n }, [context]);\r\n\r\n useEffect(() => {\r\n window.addEventListener('resize', isMobileViewport);\r\n isMobileViewport();\r\n }, [isMobileViewport]);\r\n\r\n const viewport = isMobile({ variant: VariantType.Browser, context: context.request });\r\n\r\n const isMobileView = (viewport === 'xs');\r\n\r\n AutoSuggest.className = !StringExtensions.isNullOrEmpty(searchTextString) ? `${AutoSuggest.className} show` : `${AutoSuggest.className} hide`;\r\n const isSearchText: boolean = !StringExtensions.isNullOrEmpty(searchTextString);\r\n\r\n const getAriSearchResults = async (search: string) => {\r\n setAriSearchLoading(true);\r\n const queryResultSettings: QueryResultSettings = {\r\n Paging: {\r\n Top: topResultsCount || 5\r\n }\r\n }\r\n const input = new SearchModelsInput(search,\r\n queryResultSettings,\r\n 'Search',\r\n apiSettings);\r\n\r\n const data = await SearchModelsAction(input, actionContext);\r\n setAriSearchResults(data.ariSearchResults.Models || []);\r\n setAriSearchLoading(false);\r\n }\r\n\r\n // const _generateSeeMoreUrl = (): string => {\r\n // const {\r\n // context: {\r\n // actionContext,\r\n // app: {\r\n // config: { searchQueryStringParameter }\r\n // }\r\n // }\r\n // } = props;\r\n\r\n // const query = props.searchText;\r\n // const searchQsp = searchQueryStringParameter || 'q';\r\n // const searchURL = _appendQueryParams(getUrlSync('search', actionContext) || '', query, searchQsp);\r\n // return searchURL;\r\n // };\r\n\r\n // const _appendQueryParams = (route: string, query: string, qsp: string): string => {\r\n // if (!MsDyn365.isBrowser) {\r\n // return '';\r\n // }\r\n // const queryUrl = new URL(route, window.location.href);\r\n // if (qsp && query) {\r\n // queryUrl.searchParams.set(qsp, query);\r\n // }\r\n\r\n // return queryUrl.href;\r\n // };\r\n\r\n\r\n\r\n return (\r\n \r\n {label}\r\n {FormComponent(form as ISearchFormViewProps, SearchForm, FormWrapper, isMobilePort, clearSearchButtonText, props, isSearchText, clearSearch)}\r\n { !isMobileView && \r\n {!StringExtensions.isNullOrEmpty(searchTextString) ? \r\n {AutoSuggestAriaLabelText}\r\n : ''}\r\n {!StringExtensions.isNullOrEmpty(searchTextString) ? (\r\n <>\r\n \r\n \r\n {renderTitle(searchSuggestionHeading, searchText)}\r\n \r\n \r\n \r\n {ProductSuggestionsComponent(ProductSuggest, UlProduct, props, autosuggestProduct,\r\n isLoadingAutoSuggest, isLoadingNode)}\r\n\r\n {CategorySuggestionsComponent(searchTextString, categorySuggestionHeading, noResultText,\r\n props, isLoadingAutoSuggest, isLoadingNode)}\r\n {AriSuggestionsComponent(noResultText, props, ariSearchLoading, ariSearchResults, isLoadingNode)}\r\n {KeywordSuggestionsComponent(KeywordSuggest, UlKeyword, keywordsHeading, noResultText, autosuggestKeyword,\r\n isLoadingAutoSuggest, isLoadingNode)}\r\n \r\n \r\n {/* See More */}\r\n \r\n ) : null}\r\n }\r\n { isMobileView && props.isSearchFormExpanded && \r\n {!StringExtensions.isNullOrEmpty(searchTextString) ? \r\n {AutoSuggestAriaLabelText}\r\n : ''}\r\n {!StringExtensions.isNullOrEmpty(searchTextString) ? (\r\n <>\r\n \r\n {(form as ISearchFormViewProps).cancelBtn}\r\n {renderTitle(searchSuggestionHeading, searchText)}\r\n \r\n \r\n \r\n {CategorySuggestionsComponent(searchTextString, categorySuggestionHeading, noResultText,\r\n props, isLoadingAutoSuggest, isLoadingNode)}\r\n {AriSuggestionsComponent(noResultText, props, ariSearchLoading, ariSearchResults, isLoadingNode)}\r\n {KeywordSuggestionsComponent(KeywordSuggest, UlKeyword, keywordsHeading, noResultText, autosuggestKeyword,\r\n isLoadingAutoSuggest, isLoadingNode)}\r\n \r\n {ProductSuggestionsComponent(ProductSuggest, UlProduct, props, autosuggestProduct,\r\n isLoadingAutoSuggest, isLoadingNode)}\r\n \r\n \r\n ) : null}\r\n }\r\n \r\n );\r\n};\r\nexport default SearchView;","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { ISearchData, ISearchViewProps } from '@msdyn365-commerce-modules/search';\r\nimport { Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\r\n\r\n/**\r\n * Render Categories heading.\r\n * @param inCategoriesHeading - The Keywords result heading.\r\n * @returns The JSX Element.\r\n */\r\nconst renderCategorySuggestionsTitle = (inCategoriesHeading: string): JSX.Element => {\r\n const categoryAutoSuggestionHeading = inCategoriesHeading ? inCategoriesHeading : 'In categories';\r\n\r\n return (\r\n
    \r\n {categoryAutoSuggestionHeading}\r\n
    \r\n );\r\n};\r\n\r\n/**\r\n * Render Categories suggestion result.\r\n * @param searchText search text\r\n * @param inCategoriesHeading - The Categories result heading.\r\n * @param noResultText - The \"No Result\" text.\r\n * @param props - The Categories suggestion result.\r\n * @param isLoadingAutoSuggest - The autosuggestion loading flag.\r\n * @param isLoadingNode - The autosuggestion loading node.\r\n * @returns The JSX Element.\r\n */\r\nexport const CategorySuggestionsComponent = (\r\n searchText: string | undefined,\r\n inCategoriesHeading: string,\r\n noResultText: string,\r\n props: ISearchViewProps & ISearchProps,\r\n isLoadingAutoSuggest?: boolean,\r\n isLoadingNode?: React.ReactNode\r\n): JSX.Element => {\r\n return props.autosuggestCategory ? (\r\n \r\n {renderCategorySuggestionsTitle(inCategoriesHeading.replace('{0}', searchText || ''))}\r\n \r\n {isLoadingAutoSuggest && isLoadingNode}\r\n {!isLoadingAutoSuggest && props.autosuggestCategory.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n ) : (\r\n \r\n {renderCategorySuggestionsTitle(inCategoriesHeading.replace('{0}', searchText || ''))}\r\n \r\n
  • \r\n {noResultText}\r\n
  • \r\n
    \r\n
    \r\n );\r\n};\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IImageData, Image } from '@msdyn365-commerce/core';\r\nimport { ISearchData } from '@msdyn365-commerce-modules/search';\r\nimport { Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\r\n\r\n/**\r\n * Render Products Suggestion result heading.\r\n * @param props -The props.\r\n * @returns The JSX Element.\r\n */\r\nconst renderProductNotFoundResultsImage = (props: ISearchProps): JSX.Element | null => {\r\n const noSearchResultImage: IImageData | undefined = props.config.noSearchResultImage;\r\n if (!noSearchResultImage || !noSearchResultImage.src) {\r\n return null;\r\n }\r\n const imageSettings = {\r\n lazyload: true,\r\n viewports: {\r\n xs: { w: 100, h: 100, q: 'w=100&h=100&q=60&m=6' }\r\n }\r\n };\r\n return (\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render Product suggestion result.\r\n * @param props -The props.\r\n * @returns The JSX Element.\r\n */\r\nexport const MobileAutoSuggestEmptyComponent = (\r\n props: ISearchProps\r\n): JSX.Element => {\r\n return (\r\n \r\n
    \r\n {renderProductNotFoundResultsImage(props)}\r\n
    \r\n
    \r\n
    \r\n {props.resources.emptyMobileSearchTextHeading}\r\n
    \r\n
    \r\n {props.resources.emptyMobileSearchText}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { ISearchData, ISearchFormViewProps } from '@msdyn365-commerce-modules/search';\r\nimport { Button, INodeProps, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\r\nimport { MobileAutoSuggestEmptyComponent } from './search.mobile.empty';\r\n\r\n/**\r\n * Render Clear button for mobile viewport.\r\n * @param clearSearchButtonText -The Clear button text.\r\n * @param clearSearch -Clear Search callback.\r\n * @returns -The JSX Element.\r\n */\r\nconst renderClearButton = (clearSearchButtonText: string, clearSearch: () => void): JSX.Element => {\r\n return (\r\n \r\n {clearSearchButtonText || 'Clear'}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render Search form.\r\n * @param form -Form view props.\r\n * @param searchForm -Search Form props.\r\n * @param formWrapper -Form Wrapper props.\r\n * @param isMobile -Is mobile viewport flag.\r\n * @param clearSearchButtonText -The Clear button text.\r\n * @param props -The props for resource.\r\n * @param isSearchText -Is SearchText flag for input text.\r\n * @param clearSearch -Clear Search callback.\r\n * @returns -The JSX Element.\r\n */\r\nexport const FormComponent = (\r\n form: ISearchFormViewProps,\r\n searchForm: INodeProps,\r\n formWrapper: INodeProps,\r\n isMobile: boolean,\r\n clearSearchButtonText: string,\r\n props: ISearchProps,\r\n isSearchText: boolean,\r\n clearSearch: () => void): JSX.Element => {\r\n\r\n // const cancelButtonNode = (\r\n // \r\n // );\r\n\r\n return (\r\n isMobile ? (\r\n \r\n {form.cancelBtn}\r\n \r\n {form.input}\r\n {isSearchText && renderClearButton(clearSearchButtonText, clearSearch)}\r\n {!isSearchText ? MobileAutoSuggestEmptyComponent(props) : null}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {form.input}\r\n {form.submitBtn}\r\n {/*{isSearchText && cancelButtonNode}*/}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { ISearchKeywordViewProps } from '@msdyn365-commerce-modules/search';\r\nimport { INodeProps, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\n/**\r\n * Render keywords heading.\r\n * @param keywordsHeading -The Keywords result heading.\r\n * @returns The JSX Element.\r\n */\r\nconst renderKeywordSuggestionsTitle = (keywordsHeading: string): JSX.Element => {\r\n const categoryAutoSuggestionHeading = keywordsHeading ? keywordsHeading : 'Keywords';\r\n\r\n return (\r\n
    \r\n {categoryAutoSuggestionHeading}\r\n
    \r\n );\r\n};\r\n\r\n/**\r\n * Render keywords reults.\r\n * @param keywordSuggest -The Keywords suggest Node props.\r\n * @param ulKeyword -The List Node props.\r\n * @param keywordsHeading -The Keywords result heading.\r\n * @param noResultText -The \"No Result\" text.\r\n * @param keywordSuggestions -The Keywords suggestion result.\r\n * @param isLoadingAutoSuggest - The autosuggestion loading flag.\r\n * @param isLoadingNode - The autosuggestion loading node.\r\n * @returns -The JSX Element.\r\n */\r\nexport const KeywordSuggestionsComponent = (\r\n keywordSuggest: INodeProps,\r\n ulKeyword: INodeProps,\r\n keywordsHeading: string,\r\n noResultText: string,\r\n keywordSuggestions?: ISearchKeywordViewProps,\r\n isLoadingAutoSuggest?: boolean,\r\n isLoadingNode?: React.ReactNode\r\n): JSX.Element => {\r\n return (\r\n keywordSuggestions ? (\r\n \r\n {renderKeywordSuggestionsTitle(keywordsHeading)}\r\n \r\n {isLoadingAutoSuggest && isLoadingNode}\r\n {!isLoadingAutoSuggest && keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n ) : (\r\n \r\n {renderKeywordSuggestionsTitle(keywordsHeading)}\r\n \r\n
  • \r\n {noResultText}\r\n
  • \r\n
    \r\n
    \r\n )\r\n );\r\n};\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IImageData, Image } from '@msdyn365-commerce/core';\r\nimport { ISearchData, ISearchProductViewProps } from '@msdyn365-commerce-modules/search';\r\nimport { INodeProps, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\r\n\r\n/**\r\n * Render Products Suggestion result heading.\r\n * @param productSuggestionsHeading -The products suggestion result heading.\r\n * @returns The JSX Element.\r\n */\r\nconst renderProductSuggestionsTitle = (productSuggestionsHeading: string): JSX.Element => {\r\n const productAutoSuggestionHeading = productSuggestionsHeading ? productSuggestionsHeading : 'Products';\r\n\r\n return (\r\n
    \r\n {productAutoSuggestionHeading}\r\n
    \r\n );\r\n};\r\n\r\n/**\r\n * Render Products Suggestion result heading.\r\n * @param props -The props.\r\n * @returns The JSX Element.\r\n */\r\nconst renderProductNotFoundResultsImage = (props: ISearchProps): JSX.Element | null => {\r\n const noSearchResultImage: IImageData | undefined = props.config.noSearchResultImage;\r\n if (!noSearchResultImage || !noSearchResultImage.src) {\r\n return null;\r\n }\r\n return (\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render Products No result section.\r\n * @param props -The props.\r\n * @returns The JSX Element.\r\n */\r\nconst renderProductNotFoundResults = (props: ISearchProps): JSX.Element => {\r\n return (\r\n \r\n
    \r\n {renderProductNotFoundResultsImage(props)}\r\n
    \r\n
    \r\n {props.resources.noResultContentHeadingText}\r\n
    \r\n
    \r\n {props.resources.noResultContentParagraphText}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\n/**\r\n * Render Product suggestion result.\r\n * @param productSuggest -The product suggest Node props.\r\n * @param ulProduct -The List Node props.\r\n * @param props -The props.\r\n * @param productSuggestions -The Product suggestion result.\r\n * @param isLoadingAutoSuggest - The autosuggestion loading flag.\r\n * @param isLoadingNode - The autosuggestion loading node.\r\n * @returns The JSX Element.\r\n */\r\nexport const ProductSuggestionsComponent = (\r\n productSuggest: INodeProps,\r\n ulProduct: INodeProps,\r\n props: ISearchProps,\r\n productSuggestions?: ISearchProductViewProps,\r\n isLoadingAutoSuggest?: boolean,\r\n isLoadingNode?: React.ReactNode\r\n): JSX.Element => {\r\n const liProduct: INodeProps = {\r\n tag: 'li',\r\n className: 'msc-no-result-content'\r\n };\r\n return productSuggestions ? (\r\n \r\n {renderProductSuggestionsTitle(props.resources.productSuggestionHeading)}\r\n \r\n {isLoadingAutoSuggest && isLoadingNode}\r\n {!isLoadingAutoSuggest && productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price}\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n ) : (\r\n \r\n {renderProductSuggestionsTitle(props.resources.productSuggestionHeading)}\r\n \r\n \r\n {renderProductNotFoundResults(props)}\r\n \r\n \r\n \r\n );\r\n};\r\n","import { ISearchData, ISearchViewProps } from '@msdyn365-commerce-modules/search';\r\nimport { Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\r\nimport { IAriServiceModelExtension } from \"../../../../actions/DataServiceEntities.g\";\r\nimport generateAriModelDetailUrl from \"../../../../utils/getAriModelDetailUrl\";\r\n\r\nconst renderAriSuggestionsTitle = (heading: string): JSX.Element =>\r\n (\r\n
    \r\n {heading}\r\n
    \r\n )\r\n\r\n\r\nexport const AriSuggestionsComponent = (\r\n noResultsText: string,\r\n props: ISearchViewProps & ISearchProps,\r\n isLoading: boolean,\r\n searchResults: IAriServiceModelExtension[],\r\n loadingNode: React.ReactNode\r\n): JSX.Element => {\r\n const { resources: { ariModelResultsHeading }, UlCategory } = props;\r\n return (\r\n
    \r\n {renderAriSuggestionsTitle(ariModelResultsHeading)}\r\n \r\n {isLoading? (\r\n loadingNode\r\n ) : (\r\n searchResults?.length ? (\r\n <>\r\n {searchResults.map(r => (
  • \r\n \r\n {r.Name}\r\n \r\n
  • ))}\r\n \r\n\r\n ) : (
  • \r\n {noResultsText}\r\n
  • )\r\n )}\r\n\r\n
    \r\n
    \r\n )\r\n}\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { ISearchData, ISearchFormViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search';\r\nimport { Button, format, isMobile, Module, Node, VariantType } from '@msdyn365-commerce-modules/utilities';\r\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\n\r\nimport { ISearchProps } from '../definition-extensions/search.ext.props.autogenerated';\r\nimport { CategorySuggestionsComponent } from './components/search.categorysuggest';\r\nimport { FormComponent } from './components/search.form';\r\nimport { KeywordSuggestionsComponent } from './components/search.keywordsuggest';\r\nimport { ProductSuggestionsComponent } from './components/search.productsuggest';\r\nimport SearchModelsAction, { SearchModelsInput } from \"../../../actions/search-models.action\";\r\nimport { QueryResultSettings } from \"@msdyn365-commerce/retail-proxy\";\r\nimport { IAriServiceModelExtension } from \"../../../actions/DataServiceEntities.g\";\r\nimport * as _ from 'lodash';\r\nimport { AriSuggestionsComponent } from \"./components/search.arisuggest\";\r\nimport MsDyn365, { getUrlSync } from \"@msdyn365-commerce/core\";\r\n/**\r\n * Render Title for AutoSuggest.\r\n * @param searchSuggestionHeading -The heading resource string.\r\n * @param searchText -The search string.\r\n * @returns -The JSX Element.\r\n */\r\nconst renderTitle = (searchSuggestionHeading: string, searchText: string): JSX.Element => {\r\n const searchTextString = '\"'.concat(searchText.concat('\"'));\r\n const searchAutoSuggestionHeading = searchSuggestionHeading ? format(searchSuggestionHeading, searchTextString) : `Search for ${searchTextString}`;\r\n\r\n return (\r\n \r\n {searchAutoSuggestionHeading}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Search View.\r\n * @param props - The view props.\r\n * @returns The JSX Element.\r\n */\r\nconst SearchView: React.FC> = (props: ISearchViewProps & ISearchProps): JSX.Element => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n UlKeyword,\r\n UlProduct,\r\n form,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label,\r\n context,\r\n isLoadingAutoSuggest,\r\n isLoadingNode,\r\n context: {\r\n request: {\r\n apiSettings\r\n },\r\n actionContext\r\n },\r\n config: {\r\n topResultsCount\r\n }\r\n } = props;\r\n\r\n const { searchSuggestionHeading, categorySuggestionHeading, keywordsHeading, noResultText, clearSearchButtonText } = props.resources;\r\n\r\n const [searchTextString, setSearchTextString] = useState();\r\n const [isMobilePort, setIsMobile] = useState(false);\r\n const [ ariSearchResults, setAriSearchResults ] = useState< IAriServiceModelExtension[]>([]);\r\n const [ ariSearchLoading , setAriSearchLoading ] = useState(false);\r\n\r\n const debouncedSearchHandler = useMemo(() =>\r\n _.debounce((search: string) => getAriSearchResults(search), 500),\r\n []\r\n )\r\n\r\n useEffect(() => {\r\n setSearchTextString(searchText);\r\n if (searchText.length > 0)\r\n debouncedSearchHandler(searchText);\r\n }, [searchText]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n debouncedSearchHandler.cancel();\r\n }\r\n }, [debouncedSearchHandler])\r\n\r\n /**\r\n * ClearSearch callback method to clear search string.\r\n */\r\n const clearSearch = (): void => {\r\n setSearchTextString('');\r\n\r\n const propsForm = props.form as ISearchFormViewProps;\r\n const propsFormInput = propsForm.input as React.DetailedHTMLProps, HTMLInputElement>;\r\n const propsFormInputCurrent = (propsFormInput.ref as React.RefObject).current;\r\n\r\n if (propsFormInputCurrent) {\r\n propsFormInputCurrent.value = '';\r\n }\r\n\r\n propsFormInput.value = '';\r\n props.searchText = '';\r\n props.FormWrapper.action = '';\r\n };\r\n\r\n const isMobileViewport = useCallback(() => {\r\n const isMobileView = isMobile({ variant: VariantType.Browser, context: context.request }) === 'xs';\r\n setIsMobile(isMobileView);\r\n }, [context]);\r\n\r\n useEffect(() => {\r\n window.addEventListener('resize', isMobileViewport);\r\n isMobileViewport();\r\n }, [isMobileViewport]);\r\n\r\n const viewport = isMobile({ variant: VariantType.Browser, context: context.request });\r\n\r\n const isMobileView = (viewport === 'xs');\r\n\r\n AutoSuggest.className = !StringExtensions.isNullOrEmpty(searchTextString) ? `${AutoSuggest.className} show` : `${AutoSuggest.className} hide`;\r\n const isSearchText: boolean = !StringExtensions.isNullOrEmpty(searchTextString);\r\n\r\n const getAriSearchResults = async (search: string) => {\r\n setAriSearchLoading(true);\r\n const queryResultSettings: QueryResultSettings = {\r\n Paging: {\r\n Top: topResultsCount || 5\r\n }\r\n }\r\n const input = new SearchModelsInput(search,\r\n queryResultSettings,\r\n 'Search',\r\n apiSettings);\r\n\r\n const data = await SearchModelsAction(input, actionContext);\r\n setAriSearchResults(data.ariSearchResults.Models || []);\r\n setAriSearchLoading(false);\r\n }\r\n\r\n const _generateSeeMoreUrl = (): string => {\r\n const {\r\n context: {\r\n actionContext,\r\n app: {\r\n config: { searchQueryStringParameter }\r\n }\r\n }\r\n } = props;\r\n\r\n const query = props.searchText;\r\n const searchQsp = searchQueryStringParameter || 'q';\r\n const searchURL = _appendQueryParams(getUrlSync('search', actionContext) || '', query, searchQsp);\r\n return searchURL;\r\n };\r\n\r\n const _appendQueryParams = (route: string, query: string, qsp: string): string => {\r\n if (!MsDyn365.isBrowser) {\r\n return '';\r\n }\r\n const queryUrl = new URL(route, window.location.href);\r\n if (qsp && query) {\r\n queryUrl.searchParams.set(qsp, query);\r\n }\r\n\r\n return queryUrl.href;\r\n };\r\n\r\n\r\n\r\n return (\r\n \r\n {label}\r\n {FormComponent(form as ISearchFormViewProps, SearchForm, FormWrapper, isMobilePort, clearSearchButtonText, props, isSearchText, clearSearch)}\r\n { !isMobileView && \r\n {!StringExtensions.isNullOrEmpty(searchTextString) ? \r\n {AutoSuggestAriaLabelText}\r\n : ''}\r\n {!StringExtensions.isNullOrEmpty(searchTextString) ? (\r\n <>\r\n \r\n \r\n {renderTitle(searchSuggestionHeading, searchText)}\r\n \r\n \r\n \r\n {ProductSuggestionsComponent(ProductSuggest, UlProduct, props, autosuggestProduct,\r\n isLoadingAutoSuggest, isLoadingNode)}\r\n\r\n {CategorySuggestionsComponent(searchTextString, categorySuggestionHeading, noResultText,\r\n props, isLoadingAutoSuggest, isLoadingNode)}\r\n {AriSuggestionsComponent(noResultText, props, ariSearchLoading, ariSearchResults, isLoadingNode)}\r\n {KeywordSuggestionsComponent(KeywordSuggest, UlKeyword, keywordsHeading, noResultText, autosuggestKeyword,\r\n isLoadingAutoSuggest, isLoadingNode)}\r\n \r\n \r\n See More\r\n \r\n ) : null}\r\n }\r\n { isMobileView && props.isSearchFormExpanded && \r\n {!StringExtensions.isNullOrEmpty(searchTextString) ? \r\n {AutoSuggestAriaLabelText}\r\n : ''}\r\n {!StringExtensions.isNullOrEmpty(searchTextString) ? (\r\n <>\r\n \r\n {(form as ISearchFormViewProps).cancelBtn}\r\n {renderTitle(searchSuggestionHeading, searchText)}\r\n \r\n \r\n \r\n {CategorySuggestionsComponent(searchTextString, categorySuggestionHeading, noResultText,\r\n props, isLoadingAutoSuggest, isLoadingNode)}\r\n {AriSuggestionsComponent(noResultText, props, ariSearchLoading, ariSearchResults, isLoadingNode)}\r\n {KeywordSuggestionsComponent(KeywordSuggest, UlKeyword, keywordsHeading, noResultText, autosuggestKeyword,\r\n isLoadingAutoSuggest, isLoadingNode)}\r\n \r\n {ProductSuggestionsComponent(ProductSuggest, UlProduct, props, autosuggestProduct,\r\n isLoadingAutoSuggest, isLoadingNode)}\r\n \r\n \r\n ) : null}\r\n }\r\n \r\n );\r\n};\r\nexport default SearchView;\r\n","import { IActionContext } from '@msdyn365-commerce/core-internal';\r\nimport { getUrlSync } from '@msdyn365-commerce/core';\r\n\r\nexport default function generateAriModelDetailUrl(modelId: string, brandCode: string, actionContext: IActionContext): string {\r\n const _modelDetailModelIdQueryParamKey = 'modelId';\r\n const _modelDetailBrandCodeQueryParamKey = 'brandCode';\r\n const _modelDetailSlug = 'model';\r\n let url = getUrlSync(_modelDetailSlug, actionContext);\r\n if (url) {\r\n url += `${\r\n url.indexOf('?') > -1 ? '&' : '?'\r\n }${_modelDetailModelIdQueryParamKey}=${modelId}&${_modelDetailBrandCodeQueryParamKey}=${brandCode}`;\r\n }\r\n\r\n return url || '';\r\n}\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\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 readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private attributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: IFooterItemProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\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\n FooterItem: {\n moduleProps: this.props,\n className: footerItemClassName\n },\n\n HeadingContainer: {\n className: 'ms-footer__heading'\n },\n\n ItemContainer: {\n className: 'ms-footer__link__container'\n },\n\n // @ts-expect-error\n Link: link &&\n link.linkUrl &&\n link.linkUrl.destinationUrl && {\n tag: 'a',\n role: 'link',\n className: 'ms-footer__link',\n href: link.linkUrl.destinationUrl,\n title: linkText,\n 'aria-label': link.ariaLabel,\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\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,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: this.attributes!,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText)\n };\n return (\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 === 0) {\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 === 0) {\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.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { addThrottledEvent, Drawer, IModuleProps, INodeProps, KeyCodes, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport React from 'react';\n\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 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 readonly _cookieName: string = '_msdyn365___site_';\n\n private readonly _cookieExpirationInSeconds: number = 5_184_000;\n\n private readonly _sitePickerMenuNode: React.RefObject;\n\n private readonly _sitePickerMenuButton: React.RefObject;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\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 =\n 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\n @computed get isMobile(): boolean {\n return this.viewport === 'xs' || this.viewport === 'sm';\n }\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\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\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 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\n private _renderSiteOptions(): void {\n const expandSiteOptionsState = this.state.expandSiteOptions;\n this.setState({\n expandSiteOptions: !expandSiteOptionsState\n });\n }\n\n private _resetSiteOptionsState(): void {\n this.setState({\n expandSiteOptions: false\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _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 (\n this._sitePickerMenuButton?.current?.contains(nextFocus) ||\n this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\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 (\n !this._sitePickerMenuButton?.current?.contains(nextFocus) &&\n !this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n }\n }, 50);\n break;\n }\n default:\n return;\n }\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _handleOutsideClick = (event: any) => {\n if (\n (this._sitePickerMenuButton.current?.contains(event.target) && this.state.expandSiteOptions) ||\n (this._sitePickerMenuNode.current?.contains(event.target) && this.state.expandSiteOptions)\n ) {\n return;\n }\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\n private _renderSitePickerImage(): React.ReactNode[] | undefined {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n sm: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n md: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n lg: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n xl: { q: 'w=40&h=20&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n const siteOptions = this.props.config.siteOptions && this.props.config.siteOptions;\n return (\n siteOptions &&\n siteOptions.map((item, index) => {\n const image = item?.siteImage;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings?.viewports ? image.imageSettings : defaultImageSettings\n };\n return (\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\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 (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 }\n return 'xl';\n }\n }\n return 'xs';\n }\n}\n\nexport default SitePicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n NodeTag,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createAccordionStateInput } from '../..';\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\n/**\n * Added interface for state management.\n */\nexport interface IAccordianState {\n isDisabled: boolean;\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.PureComponent, IAccordianState> {\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private readonly expandAllButtonRef: React.RefObject = React.createRef();\n\n private readonly collapseAllButtonRef: React.RefObject = React.createRef();\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(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n this.state = { isDisabled: false };\n }\n\n public render(): JSX.Element {\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:\n slots &&\n slots.accordionItems &&\n slots.accordionItems.length > 0 &&\n 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 const { heading } = config;\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('Accordion button content is empty, module wont render');\n return null;\n }\n return (\n <>\n \n {resources.expandAllText}\n \n  \n {resources.toggleAllSeparator}\n  \n \n {resources.collapseAllText}\n \n \n );\n }\n\n private _onExpandAll(): void {\n const accordionState = { isAllExpanded: true };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (accordionState.isAllExpanded) {\n this.setState({\n isDisabled: true\n });\n setTimeout(() => {\n this.collapseAllButtonRef.current?.focus();\n }, 50);\n }\n }\n\n private _onCollapseAll(): void {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (!accordionState.isAllExpanded) {\n this.setState({\n isDisabled: false\n });\n setTimeout(() => {\n this.expandAllButtonRef.current?.focus();\n }, 50);\n }\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\nexport default Accordion;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IAccordionExpandedState } from './data-actions/accordion-state';\nimport { createAccordionStateInput } from './data-actions/accordion-state-data-action';\nimport accordion from './modules/accordion/accordion';\nimport { interactionStyle } from './modules/accordion/accordion.props.autogenerated';\nimport accordionView from './modules/accordion/accordion.view';\n\nexport * from './modules/accordion/accordion';\nexport * from './modules/accordion/accordion.view';\n\nexport { accordion, accordionView, createAccordionStateInput, IAccordionExpandedState, interactionStyle };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IFooterViewProps } from './footer-item';\n\n/**\n *\n * FooterItemView component.\n * @extends {React.PureComponent}\n */\nexport class FooterItemView extends React.PureComponent {\n public render(): JSX.Element | null {\n const { FooterItem } = this.props;\n return {this._renderElement(this.props)};\n }\n\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\n if (heading) {\n return {heading} ;\n } else if (Link && image) {\n return (\n \n {linkText}\n {image}\n \n );\n } else if (Link) {\n return EditableLink;\n }\n return (\n <>\n {text}\n {image}\n \n );\n }\n}\n\nexport default FooterItemView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceViewProps } from './account-customer-balance';\n\nexport default (props: IAccountCustomerBalanceViewProps) => {\n const {\n heading,\n accountSectionHeading,\n creditSummarySectionHeading,\n accountLabels,\n accountValues,\n creditSummaryLabels,\n creditSummaryValues,\n homeButton,\n actions,\n requestStatementModal,\n availableCredit,\n balanceOwed,\n creditExcess\n } = props;\n\n return (\n \n {heading}\n {requestStatementModal}\n {actions}\n {accountSectionHeading}\n
    \n {accountLabels}\n {accountValues}\n
    \n {creditSummarySectionHeading}\n
    \n {creditSummaryLabels}\n {creditSummaryValues}\n {availableCredit}\n {balanceOwed}\n {creditExcess}\n
    \n {homeButton}\n
    \n );\n};\n"],"sourceRoot":""}