{"version":3,"sources":["webpack:///src/modules/invoices-list/index.ts?0857","webpack:///src/modules/tab-item/tab-item.view.tsx?76f0","webpack:///src/modules/invoices-list/components/request-invoice-button.tsx?b5d9","webpack:///./src/modules/farmlands-pdp-store-selector/components/store-selector-location-line-item/date-time-helpers.ts?4126","webpack:///./src/modules/farmlands-pdp-store-selector/components/store-selector-location-line-item/store-selector-location-line-item.components.tsx?bf3b","webpack:///./src/modules/farmlands-pdp-store-selector/components/store-selector-location-lines.tsx?af31","webpack:///./src/modules/farmlands-pdp-store-selector/components/store-selector-search-form.tsx?69fb","webpack:///./src/modules/farmlands-pdp-store-selector/components/store-selector-small-components.tsx?1b40","webpack:///./src/modules/farmlands-pdp-store-selector/farmlands-pdp-store-selector.props.autogenerated.ts?d17c","webpack:///./src/modules/farmlands-pdp-store-selector/farmlands-pdp-store-selector.tsx?03d1","webpack:///./src/themes/farmlandstheme/views/order-history.view.tsx?455b","webpack:///src/modules/invoice-details/invoice-details.view.tsx?5ebe","webpack:///src/modules/invoices-list/components/pay-invoice-component.tsx?41f4","webpack:///src/index.ts?c6ae","webpack:///src/modules/invoices-list/components/invoices-table/invoices-table-component.tsx?9105","webpack:///src/modules/fabrikam/views/navigation-menu.view.tsx?5991","webpack:///src/modules/fabrikam/views/search-result-container.view.tsx?f8ea","webpack:///src/modules/invoices-list/invoices-list.view.tsx?0243","webpack:///src/modules/tab/tab.tsx?d713","webpack:///src/modules/invoices-list/components/make-payment-component.tsx?c79a","webpack:///src/modules/invoices-list/components/invoice-error-component.tsx?2e12","webpack:///src/modules/invoices-list/helpers/pay-invoices.ts?f98a","webpack:///./src/modules/farmlands-store-selector/farmlands-store-selector.view.tsx?9dec","webpack:///src/modules/tab-item/tab-item.tsx?d2c1","webpack:///src/modules/invoice-details/components/invoice-details-header.tsx?d1cb","webpack:///src/modules/invoice-details/components/invoice-details-payment-summary.tsx?a7ab","webpack:///src/modules/invoice-details/components/invoice-details-products.tsx?d808","webpack:///src/modules/invoice-details/helpers/invoice-data.ts?1fa7","webpack:///src/modules/invoice-details/invoice-details.tsx?b5c9","webpack:///src/modules/fabrikam/views/header.view.tsx?1cde","webpack:///src/modules/invoices-list/components/invoices-table/components/invoices-table-header-component.tsx?6874","webpack:///./src/modules/farmlands-pdp-store-selector/farmlands-pdp-store-selector.view.tsx?72f6","webpack:///src/modules/tab/tab.view.tsx?701e","webpack:///src/modules/invoices-list/components/invoices-table/components/invoices-table-row-component.tsx?ba14","webpack:///src/modules/invoices-list/helpers/invoice-data.ts?6271","webpack:///src/modules/invoices-list/helpers/invoice-status.ts?442a","webpack:///src/modules/tile-list-item/tile-list-item.view.tsx?0144","webpack:///./src/modules/farmlands-store-selector/components/store-selector-location-line-item/date-time-helpers.ts?e9ab","webpack:///./src/modules/farmlands-store-selector/components/store-selector-location-line-item/farmlands-store-selector-location-line-item.components.tsx?31dd","webpack:///./src/modules/farmlands-store-selector/components/farmlands-store-selector-location-lines.tsx?80fe","webpack:///./src/modules/farmlands-store-selector/components/farmlands-store-selector-search-form.tsx?30bb","webpack:///./src/modules/farmlands-store-selector/components/farmlands-store-selector-small-components.tsx?8b57","webpack:///./src/modules/farmlands-store-selector/farmlands-store-selector.tsx?16be","webpack:///src/modules/invoices-list/helpers/index.ts?7d24","webpack:///src/modules/invoices-list/components/invoices-filter-component.tsx?759c","webpack:///src/modules/tile-list-item/components/links.tsx?e54f","webpack:///src/modules/tile-list-item/tile-list-item.tsx?99bb","webpack:///src/modules/invoices-list/components/request-invoice-modal.tsx?f430","webpack:///src/modules/invoices-list/invoices-list.tsx?ba10"],"names":["_renderTabItemContent","items","React","length","map","item","index","key","TabItemView","props","tabItemType","tabSlots","TabContentContainer","TabHeaderContainer","TabItemContent","tabHeader","TabItemType","TabContent","Module","Object","assign","Node","tabItemContent","TabHeader","RequestInvoiceButton","_ref","className","onClicked","requestInvoiceButtonLabel","innerReference","Button","onClick","innerRef","secondsToTime","seconds","undefined","hours","Math","floor","ampm","divisorForMinutes","getShortTimeString","day","resources","days","monday","tuesday","wednesday","thursday","friday","saturday","sunday","getFullTimeString","mondayFull","tuesdayFull","wednesdayFull","thursdayFull","fridayFull","saturdayFull","sundayFull","buildHoursDisplayInfo","startDay","endDay","hoursInfo","startDayShort","startDayFull","endDayShort","endDayFull","timeRange","shouldMergeLines","firstLine","secondLine","isClosed","openTime","closeTime","getStoreHoursData","storeHours","dateForLookup","get","buildStoreHoursString","closedText","renderStoreHours","location","RegularStoreHours","storeHoursList","buildStoreHours","mondayHours","tuesdayHours","wednesdayHours","thursdayHours","fridayHours","saturdayHours","sundayHours","periodStart","periodEnd","push","displayTime","title","storeOpenFrom","OpenFrom","storeOpenTo","OpenTo","InventoryStatus","inventoryResult","Code","Level","inventoryClassName","icon","Tick","ExclamationMark","Cross","xmlns","width","height","fill","viewBox","d","StoreSelectorLocationLineItemComponent","storeName","OrgUnitName","storeAddress","Address","phoneNumber","contacts","allPhoneContacts","filter","contact","ContactTypeValue","IsPrivate","primaryPhoneContact","find","IsPrimary","Locator","extractPhoneNumber","Contacts","htmlFor","StoreSelectorLocationLines","constructor","super","_scrollIntoView","selectedLocationDiv","this","selectedLocationRef","current","parent","parentElement","scrollTop","offsetTop","clientHeight","_isCurrentLocation","alreadySelectedLocation","OrgUnitNumber","_isProductInStock","ItemAvailabilities","enableOutOfStockCheck","AvailableQuantity","_stockInventoryLabel","availabilityWithHours","ProductInventoryInformation","i","_availabilityWithHour","_availabilityWithHour2","OrgUnitAvailability","OrgUnitLocation","InventoryLocationId","InventLocationId","StockLevelLabel","_mapResources","contactInfoHeader","contactText","storeHoursHeader","timeText","availabilityInfoHeader","availabilityText","storeHoursClosedText","outOfStock","outOfStockText","inStock","inStockText","currentLocation","selectedStoreLocationText","selectLocation","selectStoreText","selectLocationAriaLabelFormat","selectStoreAriaFormatText","setAsPreferredStoreText","setAsPreferredStoreTextAriaLabel","preferredStoreText","preferredStoreAriaLabel","storeHoursMondayText","storeHoursTuesdayText","storeHoursWednesdayText","storeHoursThursdayText","storeHoursFridayText","storeHoursSaturdayText","storeHoursSundayText","storeHoursMondayFullText","storeHoursTuesdayFullText","storeHoursWednesdayFullText","storeHoursThursdayFullText","storeHoursFridayFullText","storeHoursSaturdayFullText","storeHoursSundayFullText","storeCounter","componentDidUpdate","prevProps","selectedStoreLocationId","componentDidMount","locations","_stores","_sortStores","render","classnames","show","displayList","role","store","_renderStoreLocation","estimatedAvailabilityResult","x","_store$OrgUnitAvailab","_store$OrgUnitAvailab2","orgUnitLocation","deliveryOptions","OrgUnitPickUpDeliveryModes","storeInventoryResult","selected","StoreHours","preferredDistanceUnit","isCurrentLocation","isInStock","handlers","onSelected","onLocationSelected","onSetAsPreferredStore","onRemovePreferredStore","stockStatusLabel","storeLocatorView","toString","preferredStoreLocationId","isPreferredStoreEnabled","telemetryContent","isLocationDisabled","storePickUpOptionList","DeliveryOptions","productPickUpOptionList","productPickUpDeliveryOptions","PhysicalAvailableInventoryLevelCode","PhysicalAvailableInventoryLevelLabel","stores","isPreferredStore","value","_value$OrgUnitAvailab","_value$OrgUnitAvailab2","__decorate","observable","observer","StoreSelectorSearchForm","_searchTextChanged","async","inputValue","e","target","searchTermChanged","_onSubmit","preventDefault","performSearch","state","searchButtonAriaLabel","name","autoComplete","onSubmit","type","placeholder","searchPlaceholderText","onChange","isBingMapsDisabled","disabled","StoreSelectorEmptyMessage","emptyLocationsText","StoreSelectorWaiting","StoreSelectorTermsOfService","_ref2","link","requestContext","onTextChange","editableLink","ariaLabel","linkText","linkUrl","destinationUrl","openInNewTab","Msdyn365","editProps","StoreSelectorFoundLocationsMessage","_ref3","searchRadius","isSeeAllStore","storeCountMessage","milesShortText","storeCountMessageInKm","storeAllCountMessage","replace","mode","searchRadiusUnit","style","StoreSelector","handleLinkTextChange","event","config","termsOfServiceLink","handleHeadingChange","heading","_attachMapAutoSuggest","autoSuggestOptions","context","telemetry","actionContext","channel","data","storeSelectorStateManager","result","isMapApiLoaded","autoSuggestManager","Microsoft","Maps","loadModule","callback","options","_objectSpread","countryCode","ChannelCountryRegionISOCode","AutosuggestManager","attachAutosuggest","id","_onSuggestionSelected","errorCallback","debug","credentials","BingMapsApiKey","_this$props$data$stor","_searchTermChanged","formattedSuggestion","_performSearch","_setPreferredStore","_preferedStore$OrgUni","_preferedStore$OrgUni2","_preferedStore$OrgUni3","_preferedStore$OrgUni4","_preferedStore$OrgUni5","_preferedStore$OrgUni6","storeId","cookies","storeLocations","availabilitiesWithHours","modeEnum","pickupInStore","findStores","preferedStore","setPreferredStoreLocation","isConsentGiven","Latitude","Longitude","_removePreferredStore","clearPreferredStore","_setSelectedStore","setSelectedStoreLocationId","searchTerm","setState","hasSearched","isSearchInProgress","isSeeAllStoreValue","geoLocate","trim","_updateLocations","latitude","longitude","_getAndUpdateStoreLocation","showAllStores","styleEnum","dialog","inline","isDialogOpen","navigator","geolocation","getCurrentPosition","position","coords","error","PERMISSION_DENIED","timeout","_closeDialog","closeDialog","_setOrgUnitStoreInformation","styleDefault","setOrgUnitStoreInformation","showMapViewLink","isDialog","orgUnitStoreInformation","Promise","resolve","catch","message","radius","lookupRadius","calRadius","distanceUnitValue","kilometers","modeDefault","preferredStore","lat","long","lastInlineStoreLocation","lastInlineShownStoreInfo","setLastInlineStoreInfo","orgUnitLocationsInput","GetOrgUnitLocationsByAreaInput","orgUnitLocations","getOrgUnitLocationsByArea","product","input","GetFullAvailableInventoryNearbyInput","RecordId","searchCriteria","DefaultWarehouseOnly","FilterByChannelFulfillmentGroup","ProductIds","getEstimatedAvailabilityAsync","callerContext","then","resp","ProductWarehouseInventoryAvailabilities","warning","getFullAvailableInventoryNearby","_onOrgUnitLocationSelected","deliveryMode","getTelemetryObject","request","telemetryPageName","friendlyName","_this$props$data$stor4","autoSuggestionEnabled","setTimeout","reaction","_this$props$data$stor2","_this$props$data$stor3","BingMapsEnabled","_this$props$data$stor5","_this$props$context","_this$props$context$a","_this$props$context$a2","_this$props$context$a3","_this$props$context2","_this$props$context2$","_this$props$context2$2","_this$props$context2$3","loadMapApi","lang","DefaultLanguageId","market","_this$props$data$stor6","_this$props$data$stor7","_this$props$context3","_this$props$context3$","_this$props$context3$2","_this$props$context3$3","_this$props$context4","_this$props$context4$","_this$props$context4$2","_this$props$context4$3","when","_this$props$data$stor8","_this$props$data$stor9","_this$props$data$stor10","_this$props$data$stor11","isSameContext","shouldComponentUpdate","nextProps","_storeSelectorStateMa","_storeSelectorStateMa2","_storeSelectorStateMa3","setAsPreferredStore","app","appConfig","inlineView","locatorView","hideInventory","listMapViewState","configHeading","storeLocatorHeaderText","storeSelectorHeaderText","kilometersShortText","viewProps","ModuleProps","tag","Modal","moduleProps","classname","autoFocus","fade","isOpen","onClosed","horizontalPosition","verticalPosition","toggle","HeaderContainerProps","ModalHeader","HeaderProps","text","onEdit","FooterContainerProps","ModalFooter","BodyContainerProps","ModalBody","locationsMessage","search","spinner","locationsList","outOfStockThreshold","enableStockCheck","StoreId","noLocationsMessage","terms","headerText","callbacks","selectedLocation","getAndUpdateUserLocation","renderView","OrderHistoryOrderInfomation","orderInformationProps","salesId","receiptId","channelName","createdDate","count","amount","channelReferenceId","OrderHistoryGroupDelivery","deliveryProps","processing","address","trackingInfo","OrderHistoryGroup","groupProps","delivery","salesLinesProps","salesLines","salesLine","LineId","OrderHistoryGroups","_ref4","groupsProps","groups","group","OrderHistoryHeader","_ref5","headerProps","orderCountLabel","extraActions","OrderHistorySalesOrder","_ref6","salesOrderProps","orderInfomation","orderDetailsLink","OrderHistoryList","_ref7","listProps","salesOrders","salesOrder","OrderHistoryView","_ref8","orderHistoryProps","header","alert","loading","emptyMessage","backToShoppingLink","list","moreButton","InvoiceDetailsView","products","paymentDetails","payInvoiceError","PayInvoiceComponentActions","_event","setDisabled","payInvoices","invoice","errorState","onError","reference","onClickHandler","PayInvoiceComponent","msdyn365Commerce","createComponent","component","useState","createElement","payInvoiceButtonAriaLabel","canBePaid","payInvoiceButtonText","isMobileView","viewport","_window","device","Type","window","innerWidth","gridSettings","xs","w","sm","md","lg","getViewport","onSelectAllHandler","isSelected","invoices","forEach","InvoicesTableComponent","isMobile","setIsMobile","updateViewport","addEventListener","rowClassName","headerClassName","InvoicesTableHeaderComponent","typeName","isSelectedAll","ArrayExtensions","all","isAdmin","customer","IsB2bAdmin","onSelectAll","InvoicesTableRowComponent","invoiceReferences","invoiceButtonReferences","Number","payInvoiceReferences","payInvoiceButtonReferences","onRequestInvoice","NavigationMenuView","currentLevel","_positionInSetOffset","escapeKey","_updateCategoryImage","categoryImageSrc","option","promotionalImage","src","altText","hasElements","promotionalContent","image","imageSrc","promotionalItemImageSettings","imageSettings","additionalProperties","categoryImage","categoryImageAltText","_handleDropdownToggle","parentId","activeMenu","parentMenu","showCategoryImage","imageSource","_resetFocus","menuNode","focus","_handleClickOutside","contains","_handleFocusOutside","relatedTarget","_closeSubmenu","_escFunction","keyCode","navDrawerList","Array","from","childNodes","navDrawerButton","firstChild","getAttribute","_getCategoryImage","categoryImageUrl","generateImageUrl","apiSettings","defaultImageSettings","viewports","q","h","lazyload","_categoryImage$imageS","ImageData","Image","categoryImageSettings","loadFailureBehavior","_onDrawerChange","drawerState","drawerKeyValue","newPair","buttonText","bind","payLoad","getPayloadObject","MsDyn365","isBrowser","document","body","componentWillUnmount","removeEventListener","_renderMobileMenu","_renderDesktopMenu","menuItemData","Navigation","menuItem","posinset","_renderDrawerMenu","MenuList","ref","tabIndex","_renderDisplay","setSize","subMenu","_renderDrawer","_renderLinkMenuItem","toggleButtonText","keyValue","keys","isDrawerOpen","colProps","Drawer","toggleButtonProps","openGlyph","onToggle","collapseProps","closeGlyph","glyphPlacement","_renderLinkText","menuSubItem","currentPos","_menuItem$subMenu2","_menuItem$subMenu","_renderDrawerLink","linkURL","_renderSpanMenuItem","ListItem","menuItemList","menuItemDatum","_getFromSubMenu","_createMenuItemList","subMenus","found","_renderSubMenu","_renderButtonMenuItem","IsSubMenu","enableMultiSupportMenu","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","levelClassName","menuOptions","idx","hasOptions","haveSubmenu","round","_renderMenu","onFocus","hoverEffect","arguments","isParent","Link","imagesource","contentAction","etext","attributes","getTelemetryAttributes","shouldOpenNewTab","onMouseOver","href","onTelemetryClick","_renderPromotionalLink","Span","level","currentItem","submenu","DivContainer","ImageDivContainer","showPromotionalContent","categoryImageDisplay","promotionalContentDisplay","DivContainerClass","_item$additionalPrope","createSearchResultModal","modalProps","refineMenu","sortByDropDown","isRecoSearchPage","modal","modalHeader","createModalBody","modalFooter","modalBody","renderSort","renderRefiner","refiners","RefineMenuContainer","RefinerSectionContainer","SortingContainer","renderCategoryHierarchy","CategoryHierarchyContainer","categoryHierarchyList","categoryHierarchySeparator","category","renderTitle","TitleContainer","titlePrefix","titleText","titleCount","SearchResultContainerView","_props$context$action","SearchResultContainer","pagination","ProductsContainer","ProductSectionContainer","choiceSummary","modalToggle","searchResultModal","TitleViewProps","categoryHierarchy","sortByOptions","CategoryNavContainer","RefineAndProductSectionContainer","errorMessage","FeatureSearchContainer","similarLookProduct","query","recommendation","InvoiceListView","content","invoiceRequestModal","Tab","tabIndexQuery","_refHandler","activeLink","_onClick","activeTabState","activeContentIndex","tabId","update","createTabStateInput","currentTabIndex","newUrl","_setGetParameter","String","history","pushState","path","_onKeyDown","slots","slotLength","tabItems","defaultTabIndex","initialIndex","queryString","activeTab","queryTabIndex","indexOf","arr","split","parseInt","_getTabHeader","_getTabContent","nextState","headingComponent","tabViewProps","TabContainer","headerSection","tabsSection","tabItemContainer","tabContents","tabHeaders","dataActionTabId","contentID","getContentID","onKeyDown","itemIndex","paramName","paramValue","url","URL","requestUrl","params","URLSearchParams","set","decodeURIComponent","MakePaymentComponentActions","buttonReferences","MakePaymentComponent","hasInvoices","makePaymentButtonAriaLabel","makePaymentButtonText","InvoiceErrorComponent","messageHeader","otherError","showError","payInvoiceErrorModalOpen","errorDialogHeader","errorDialogBodyErrorTitle","errorDialogBodyErrorDescription","errorDialogFooterGoToCartButtonText","errorDialogFooterCancelButtonText","cartUrl","setPayInvoiceErrorModalClose","errorMessages","Fragment","Alert","color","assertive","invoicesToAdd","errorReason","failureReason","cartState","getCartState","addInvoicesToCart","invoiceIds","_result$errorDetails","_result$errorDetails2","status","errorDetails","LocalizedMessage","errorCode","ErrorResourceId","getUrlSync","StoreSelectorView","StoreSelectorContainerProps","cancelButton","submitButton","TabItem","moduleContentClassName","moduleHeaderClassName","_renderTabHeader","activeContentIDResult","shown","tabItemTitle","InvoiceDetailsHeaderComponent","invoiceDetails","invoiceNumberText","invoiceIdLabel","invoiceOrderItemsText","lines","invoiceOrderItem","invoiceOrderItems","invoiceInfoContainerClassName","orderInfoContainerClassName","orderInfoClassName","orderMainInfoClassName","orderDetailsClassName","actionsClassName","amountSummaryClassName","orderDate","formatShortDate","date","cultureFormatter","formatDate","year","month","invoiceDate","dueDate","formatLongDate","dueDateText","invoicePaymentDueDateText","invoicePlacedByLabel","customerName","invoiceAmountDueText","amountDue","currencyCode","formatCurrency","formatAmount","InvoiceDetailsPaymentDetailsComponent","invoicePaymentDetails","lineClassName","ObjectExtensions","isNullOrUndefined","totalDiscount","label","invoicePaymentDiscounts","subtotal","invoicePaymentSubtotal","totalCharges","invoicePaymentCharges","totalTax","invoicePaymentTax","totalAmount","invoicePaymentInvoiceTotal","line","InvoiceDetailsProductsComponent","productLineClass","productLineInfoContainerClass","productLineDetailsClass","productLineSmallDetailsClass","quantity","Quantity","productUrl","ProductName","getProductPageUrlSync","_renderProductImage","cropFocalRegion","fallbackImage","getFallbackImageUrl","ItemId","primaryImageUrl","fallBackSrc","xl","_renderProductDimensions","StringExtensions","isNullOrWhitespace","ColorName","invoiceProductColor","SizeName","invoiceProductSize","StyleName","invoiceProductStyle","Price","invoiceQuantity","NetAmount","InvoiceDetailsModel","Id","InvoiceDate","Date","CustomerName","InvoiceDueDate","AmountBalance","InvoicePaidStatusValue","SalesInvoiceLine","_products$find","PrimaryImageUrl","TotalDiscount","InvoiceSubtotal","TotalCharges","TotalTaxAmount","TotalAmount","CurrencyCode","InvoicePaidStatus","Paid","InvoiceDetails","_onAddToCartFailed","_setPayInvoiceErrorModalClose","_getProducts","ChannelId","invoiceDetailsModel","_renderHeader","_renderProducts","_renderPaymentDetails","_renderInvoiceErrors","_className","channelId","productInputs","ProductInput","getSimpleProductsAction","payInvoiceErrorDialogHeader","payInvoiceErrorDialogBodyErrorTitle","payInvoiceErrorDialogBodyErrorDescription","payInvoiceErrorDialogFooterGoToCartButtonText","payInvoiceErrorDialogFooterCancelButtonText","errorClassName","renderCustomerName","accountInformation","FirstName","Name","_renderReactFragment","slot","headerView","HeaderTag","HeaderContainer","HeaderTopBarContainer","Divider","navIcon","logo","renderForMobile","AccountInfoDropdownParentContainer","AccountInfoDropdownPopoverConentContainer","accountInfoDropdownButton","signOutLink","signInLink","accountLinks","accountClassName","_renderAccountBlock","wishListIconDesktop","cartIcon","siteOptions","MobileMenuLinksContainer","mobileMenuCollapsed","Collapse","_renderMobileAccountBlock","wishListIconMobile","menuBar","_renderCollapseMenu","switchCheckedState","headerCells","getMobileHeaderCells","invoiceListSelectAllRadioAriaLabelText","checked","invoicesText","invoiceDateMobileText","getDesktopHeaderCells","invoiceDateText","invoiceUsersText","invoiceAmountText","invoiceDueDateText","invoiceStatusText","invoiceActionsText","tabView","onRequestSpecificInvoice","requestInvoiceButtonReference","setShowPreviousActions","onClickViewDetails","linkToInvoiceDetails","isShowActions","setShowActions","shouldShowActions","getMobileRowCells","onSelectLine","getInvoiceDetailsPageUrlSync","invoiceRowArialabel","format","invoiceListSelectRadioAriaLabelText","getInvoiceStatusText","invoiceViewDetailsButtonAriaLabel","invoiceViewDetailsButtonText","invoiceActionsButtonTextAriaLabel","showActions","actionsContainerClassName","payInvoiceClassName","invoiceRequestButtonLabel","extraActionsPopup","rowCells","getDesktopRowCells","isCurrentUser","AccountNumber","customerAccountNumber","createRef","payInvoiceButtonReference","invoiceCurrentUser","InvoiceModel","CustomerAccountNumber","invoiceStatus","None","invoiceStatusNone","Unpaid","invoiceStatusUnpaid","PartiallyPaid","invoiceStatusPartiallyPaid","invoiceStatusPaid","TileListItemViewComponent","tileListItem","paragraph","backgroundImage","links","thumbnailImage","tileListContainer","tileListImageContainer","tileListThumbnailImageContainer","tileListHeadingContainer","renderTileListItemContent","StoreSelectorLocationLineItemComponentActions","defaultChecked","distanceUnit","unitText","selectedStore","_getAndUpdateUserLocation","_onLocationItemSelected","_onLocationSubmit","hasSubmitted","moduleConfig","InvoicesFilterState","getInvoicesFilterStateResources","filterState","ShowAll","invoicesFilterShowAll","Error","onStateClick","InvoicesFilterComponent","popoverRef","popoverState","setPopoverState","togglePopover","useCallback","setFilterState","currentState","onFilterStateClick","clickedState","onFilterStateChanged","Popover","placement","EnumExtensions","getEnumValues","renderFilterStateItem","stateStringRepresentation","TileListLinks","_mapEditableLinks","linkdata","editableLinks","TileListItem","_telemetryContent","handleParagraphChange","linkIndex","_this$props$config$li","redirectionUrl","tileListLinks","tileListLinkContainer","_createHeading","_createParagraph","_renderBackgroundImage","_renderThumbnailImage","_heading$tag","isAriaHiddenAttribute","_item$imageSettings","_this$props$config$ba","verifiedImageSettings","moduleType","imagePropertyName","itemImageSettings","_this$props$config$th","layout","msdyn365__moduleLayout","onSubmitRequestClick","onClosing","filteredInvoices","onSubmitRequest","checkboxRef","closingFlag","_inputInvoice$current","searchInputChangedHandler","setSearchInput","onCancelHandler","renderInvoiceOptions","setSelectedInvoiceIndex","_invoice","_checkboxRef$current$","onInvoiceSelect","onInvoiceSelectHandler","checkboxId","checkboxName","RequestInvoiceModal","email","isModalOpen","modalHeaderLabel","sendToEmailLabel","submitRequestLabel","cancelLabel","searchPlaceholderLabel","invoicesFoundString","singleInvoiceFoundString","searchButtonAltText","selectedInvoiceIndex","setFilteredInvoices","searchInput","shouldShowSearchResults","setShouldShowSearchResults","invoiceOptionsData","invoiceOptions","setInvoiceOptions","focusElement","_focusElement$current","searchEntered","searchEnteredHandler","updatedInvoices","isNullOrEmpty","toLocaleUpperCase","includes","searchResultString","invoicesFoundReplaceIndex","onOpened","setFilteredInvoicesToSelectedInvoices","selectedInvoices","requestInvoiceDialogAriaLabel","substring","InvoicesList","buttonChildReference","buttonChildPayButtonReference","_onToggleInvoiceRequestParentModal","selectedButtonElement","payInvoiceRequestReference","_onToggleInvoiceRequestModal","_queryResultSettings","QueryResultSettingsProxy","fromModuleData","QueryResultSettings","makePaymentReference","_updateInvoicesState","_handleFilterStateChange","_loadMoreInvoices","_requestInvoice","_requestSpecificInvoice","invoicesFilterState","isLoading","isPageLoaded","isInvoiceRequestModalOpen","_customerBalance$resu","_customerBalance$resu2","_heading$text","customerBalance","invoicesListTitle","invoicesListDescTitle","invoicesListDescCount","amountText","OpenInvoiceBalance","toFixed","Currency","totalCount","OpenInvoiceCount","countText","invoicesListTitleHeading","Heading","_renderInvoiceRequestModal","_renderInvoicesFilter","_renderPagination","_renderListContainer","_renderEmptyInvoiceLinesPageContent","invoicesData","_initializeWithInvoices","_addInvoices","newInvoices","concat","containerClass","actionsContainerClass","invoiceEmptyInvoiceLinesTitle","invoiceEmptyInvoiceLinesDescription","invoiceEmptyInvoiceLinesContinueShoppingButtonAriaLabel","invoiceEmptyInvoiceLinesContinueShoppingButtonText","containerHeaderClass","containerContentClass","_renderMakePayment","_renderInvoiceRequestButton","_renderInvoicesList","businessPartner","getCurrentAsync","BusinessPartnerId","getCustomer","GetCustomerInput","CustomerId","InvoicePaidStatusValues","_getInvoicesSearchCriteria","Paging","Skip","getInvoices","GetInvoicesInput","filterClassName","tableClassName","newErrorState","_newErrorState$errorR","errorHost","invoiceErrorInvoiceIdNotExist","invoiceErrorFailedAddInvoiceToCart","shouldShowAdditionalInfoInPopup","makePaymentResources","_getSelectedInvoices","moduleId","moduleTypeName","navigationUrl","_this$state$selectedB","invoiceErrorMessageHeader","_data$invoices","Top","invoicesLoadMore","invoiceRequestModalCancelLabel","invoiceRequestModalSubmitLabel","invoiceRequestModalHeaderLabel","invoiceRequestModalSendToEmailLabel","invoiceRequestModalSearch","invoiceRequestModalInvoiceSearchDisplay","invoiceRequestModalSingleInvoiceSearchDisplay","invoiceRequestModalSearchButton","Email","_this$state$selectedB2","invoiceId","_this$props$data$b2bU","_this$props$data$b2bU2","b2bUserId","b2bUserInformation","B2BUserId","BusinessPartnerUsersDataActions","requestInvoiceCopyAsync","BusinessPartnerOperationDeliveryType","specificInvoice"],"mappings":"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","file":"static/js/12.3b838232d7b16406ce95.chunk.js","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './components';\nexport * from './helpers';\nexport * from './invoices-list';\nexport * from './invoices-list.data';\nexport * from './invoices-list.props.autogenerated';\nexport * from './invoices-list.view';\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ITabItemViewProps, TabItemType } from './tab-item';\n\nconst TabItemView: React.FC = props => {\n const { tabItemType, tabSlots, TabContentContainer, TabHeaderContainer, TabItemContent, tabHeader } = props;\n\n switch (tabItemType) {\n case TabItemType.TabContent:\n return (\n \n \n {tabSlots &&\n tabSlots.tabItemContent &&\n tabSlots.tabItemContent.length &&\n _renderTabItemContent(tabSlots.tabItemContent)}\n \n \n );\n case TabItemType.TabHeader:\n return {tabHeader};\n default:\n return null;\n }\n};\n\nconst _renderTabItemContent = (items: React.ReactNode[]): JSX.Element | null => {\n return (\n <>\n {items && items.length > 0\n ? items.map((item: React.ReactNode, index: number) => {\n return {item};\n })\n : null}\n \n );\n};\nexport default TabItemView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface IRequestInvoiceButtonProps {\n innerReference?: React.RefObject;\n className: string;\n requestInvoiceButtonLabel: string;\n onClicked(): void;\n}\n\nexport const RequestInvoiceButton: React.FC = ({\n className,\n onClicked,\n requestInvoiceButtonLabel,\n innerReference\n}) => {\n return (\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 { RegularStoreHours } from '@msdyn365-commerce/retail-proxy';\r\nimport get from 'lodash/get';\r\n\r\nimport { IStoreSelectorLocationLineItemResources } from '.';\r\n\r\nexport interface IHoursDisplayInfo {\r\n startDayShort: string;\r\n startDayFull: string;\r\n endDayShort?: string;\r\n endDayFull?: string;\r\n timeRange: string;\r\n}\r\n\r\ninterface IHoursInfo {\r\n isClosed: boolean;\r\n openTime?: number;\r\n closeTime?: number;\r\n}\r\n\r\ntype DayType = 'MON' | 'TUE' | 'WED' | 'THU' | 'FRI' | 'SAT' | 'SUN';\r\n\r\nexport const secondsToTime = (seconds: number | undefined): string | undefined => {\r\n if (seconds === undefined) {\r\n return undefined;\r\n }\r\n let hours = Math.floor(seconds / (60 * 60));\r\n const ampm = hours >= 12 ? 'pm' : 'am';\r\n hours %= 12;\r\n hours = hours ? hours : 12;\r\n const divisorForMinutes = seconds % (60 * 60);\r\n const minutes =\r\n Math.floor(divisorForMinutes / 60) < 10 ? `0${Math.floor(divisorForMinutes / 60)}` : Math.floor(divisorForMinutes / 60);\r\n return `${hours}:${minutes} ${ampm}`;\r\n\r\n};\r\n\r\nconst getShortTimeString = (day: DayType, resources: IStoreSelectorLocationLineItemResources): string => {\r\n switch (day) {\r\n case 'MON':\r\n return resources.days.monday;\r\n case 'TUE':\r\n return resources.days.tuesday;\r\n case 'WED':\r\n return resources.days.wednesday;\r\n case 'THU':\r\n return resources.days.thursday;\r\n case 'FRI':\r\n return resources.days.friday;\r\n case 'SAT':\r\n return resources.days.saturday;\r\n default: // Case 'SUN':\r\n return resources.days.sunday;\r\n }\r\n};\r\n\r\nconst getFullTimeString = (day: DayType, resources: IStoreSelectorLocationLineItemResources): string => {\r\n switch (day) {\r\n case 'MON':\r\n return resources.days.mondayFull;\r\n case 'TUE':\r\n return resources.days.tuesdayFull;\r\n case 'WED':\r\n return resources.days.wednesdayFull;\r\n case 'THU':\r\n return resources.days.thursdayFull;\r\n case 'FRI':\r\n return resources.days.fridayFull;\r\n case 'SAT':\r\n return resources.days.saturdayFull;\r\n default: // Case 'SUN':\r\n return resources.days.sundayFull;\r\n }\r\n};\r\n\r\nconst buildHoursDisplayInfo = (startDay: DayType, endDay: DayType, hoursInfo: string, resources: IStoreSelectorLocationLineItemResources): IHoursDisplayInfo => {\r\n return {\r\n startDayShort: getShortTimeString(startDay, resources),\r\n startDayFull: getFullTimeString(startDay, resources),\r\n endDayShort: startDay !== endDay ? getShortTimeString(endDay, resources) : undefined,\r\n endDayFull: startDay !== endDay ? getFullTimeString(endDay, resources) : undefined,\r\n timeRange: hoursInfo\r\n };\r\n};\r\n\r\nconst shouldMergeLines = (firstLine: IHoursInfo, secondLine: IHoursInfo): boolean => {\r\n if (firstLine.isClosed && secondLine.isClosed) {\r\n return true;\r\n }\r\n\r\n if (!firstLine.isClosed && !secondLine.isClosed) {\r\n return firstLine.openTime === secondLine.openTime && firstLine.closeTime === secondLine.closeTime;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst getStoreHoursData = (storeHours: RegularStoreHours, dateForLookup: string): IHoursInfo => {\r\n return {\r\n isClosed: get(storeHours, `IsClosedOn${dateForLookup}`, false),\r\n openTime: get(storeHours, `${dateForLookup}OpenTime`, undefined),\r\n closeTime: get(storeHours, `${dateForLookup}CloseTime`, undefined)\r\n };\r\n};\r\n\r\nconst buildStoreHoursString = (hoursInfo: IHoursInfo, resources: IStoreSelectorLocationLineItemResources): string => {\r\n if (hoursInfo.isClosed) {\r\n return resources.closedText;\r\n }\r\n const openFrom: string | undefined = secondsToTime(hoursInfo.openTime);\r\n const openTo: string | undefined = secondsToTime(hoursInfo.closeTime);\r\n\r\n return `${openFrom}–${openTo}`;\r\n\r\n};\r\n\r\nexport const buildStoreHours = (storeHours: RegularStoreHours, resources: IStoreSelectorLocationLineItemResources): IHoursDisplayInfo[] => {\r\n const storeHoursList: IHoursDisplayInfo[] = [];\r\n\r\n const mondayHours = getStoreHoursData(storeHours, 'Monday');\r\n const tuesdayHours = getStoreHoursData(storeHours, 'Tuesday');\r\n const wednesdayHours = getStoreHoursData(storeHours, 'Wednesday');\r\n const thursdayHours = getStoreHoursData(storeHours, 'Thursday');\r\n const fridayHours = getStoreHoursData(storeHours, 'Friday');\r\n const saturdayHours = getStoreHoursData(storeHours, 'Saturday');\r\n const sundayHours = getStoreHoursData(storeHours, 'Sunday');\r\n\r\n let periodStart: DayType = 'MON';\r\n let periodEnd: DayType = 'MON';\r\n\r\n if (!shouldMergeLines(mondayHours, tuesdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(mondayHours, resources), resources));\r\n\r\n periodStart = 'TUE';\r\n }\r\n periodEnd = 'TUE';\r\n\r\n if (!shouldMergeLines(tuesdayHours, wednesdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(tuesdayHours, resources), resources));\r\n\r\n periodStart = 'WED';\r\n }\r\n periodEnd = 'WED';\r\n\r\n if (!shouldMergeLines(wednesdayHours, thursdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(wednesdayHours, resources), resources));\r\n\r\n periodStart = 'THU';\r\n }\r\n periodEnd = 'THU';\r\n\r\n if (!shouldMergeLines(thursdayHours, fridayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(thursdayHours, resources), resources));\r\n\r\n periodStart = 'FRI';\r\n }\r\n periodEnd = 'FRI';\r\n\r\n if (!shouldMergeLines(fridayHours, saturdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(fridayHours, resources), resources));\r\n\r\n periodStart = 'SAT';\r\n }\r\n periodEnd = 'SAT';\r\n\r\n if (!shouldMergeLines(saturdayHours, sundayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(saturdayHours, resources), resources));\r\n\r\n periodStart = 'SUN';\r\n }\r\n periodEnd = 'SUN';\r\n\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(sundayHours, resources), resources));\r\n\r\n return storeHoursList;\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 {\r\n DeliveryOption,\r\n OrgUnitContact,\r\n OrgUnitLocation,\r\n StoreHours\r\n} from '@msdyn365-commerce/retail-proxy';\r\nimport { ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { buildStoreHours, IHoursDisplayInfo, secondsToTime } from './date-time-helpers';\r\n\r\nexport interface IStoreSelectorLocationLineItemResources {\r\n contactInfoHeader: string;\r\n storeHoursHeader: string;\r\n availabilityInfoHeader: string;\r\n\r\n closedText: string;\r\n\r\n outOfStock: string;\r\n inStock: string;\r\n\r\n currentLocation: string;\r\n selectLocation: string;\r\n selectLocationAriaLabelFormat: string;\r\n setAsPreferredStoreText: string;\r\n setAsPreferredStoreTextAriaLabel: string;\r\n preferredStoreText: string;\r\n preferredStoreAriaLabel: string;\r\n\r\n days: {\r\n monday: string;\r\n tuesday: string;\r\n wednesday: string;\r\n thursday: string;\r\n friday: string;\r\n saturday: string;\r\n sunday: string;\r\n mondayFull: string;\r\n tuesdayFull: string;\r\n wednesdayFull: string;\r\n thursdayFull: string;\r\n fridayFull: string;\r\n saturdayFull: string;\r\n sundayFull: string;\r\n };\r\n}\r\n\r\nexport interface IStoreSelectorLocationLineItemProps {\r\n location: OrgUnitLocation;\r\n storeHours?: StoreHours;\r\n\r\n hideStockStatus?: boolean;\r\n isInStock?: boolean;\r\n isCurrentLocation?: boolean;\r\n\r\n resources: IStoreSelectorLocationLineItemResources;\r\n stockStatusLabel?: string;\r\n storeLocatorView?: boolean;\r\n isPreferredStoreEnabled?: boolean;\r\n index: string;\r\n inventoryResult: any;\r\n preferredStoreLocationId: string | null;\r\n storePickUpOptionList?: DeliveryOption[];\r\n productPickUpOptionList?: DeliveryOption[];\r\n\r\n /** The telemetry content */\r\n telemetryContent?: ITelemetryContent;\r\n preferredDistanceUnit: string;\r\n isLocationDisabled?: boolean;\r\n handlers: {\r\n onSelected(location: OrgUnitLocation, deliveryMode?: string): void;\r\n onSetAsPreferredStore(locationId: string | undefined): void;\r\n onRemovePreferredStore(): void;\r\n };\r\n}\r\n\r\nconst renderStoreHours = (storeHours: StoreHours | undefined, location: OrgUnitLocation, resources: IStoreSelectorLocationLineItemResources): JSX.Element | null => {\r\n // First, use the store hours. This will allow listing day by day houts\r\n if (storeHours && storeHours.RegularStoreHours) {\r\n const storeHoursList: IHoursDisplayInfo[] = buildStoreHours(storeHours.RegularStoreHours, resources);\r\n\r\n return (\r\n
\r\n {storeHoursList.map(displayTime => (\r\n
\r\n {displayTime.endDayShort ? (\r\n
\r\n \r\n {displayTime.startDayShort}\r\n \r\n –\r\n \r\n {displayTime.endDayShort}\r\n \r\n
\r\n ) : (\r\n
\r\n \r\n {displayTime.startDayShort}\r\n \r\n
\r\n )}\r\n
\r\n {displayTime.timeRange}\r\n
\r\n
\r\n ))}\r\n
\r\n );\r\n }\r\n\r\n // If that fails, fall back to using the OpenFrom and OpenTo properties on the location\r\n const storeOpenFrom: string | undefined = secondsToTime(location.OpenFrom);\r\n const storeOpenTo: string | undefined = secondsToTime(location.OpenTo);\r\n\r\n return (\r\n
\r\n {storeOpenFrom}\r\n -\r\n {storeOpenTo}\r\n
\r\n );\r\n\r\n};\r\n\r\nconst extractPhoneNumber = (contacts: OrgUnitContact[] | undefined): string | undefined => {\r\n if (!contacts) {\r\n return undefined;\r\n }\r\n\r\n const allPhoneContacts = contacts.filter(contact => contact.ContactTypeValue === 1 && !contact.IsPrivate);\r\n\r\n if (allPhoneContacts && allPhoneContacts.length > 0) {\r\n const primaryPhoneContact = allPhoneContacts.find(contact => contact.IsPrimary);\r\n\r\n if (primaryPhoneContact) {\r\n return primaryPhoneContact.Locator;\r\n }\r\n\r\n return allPhoneContacts[0].Locator;\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nconst StoreSelectorLocationLineItem: React.FC = (props: IStoreSelectorLocationLineItemProps) => {\r\n const {\r\n location,\r\n resources,\r\n storeHours,\r\n inventoryResult\r\n } = props;\r\n\r\n const storeName: string | undefined = location.OrgUnitName;\r\n const storeAddress: string | undefined = location.Address;\r\n const phoneNumber: string | undefined = extractPhoneNumber(location.Contacts);\r\n\r\n return (\r\n \r\n )\r\n};\r\n\r\nconst InventoryStatus = ({ inventoryResult }: any): JSX.Element | null => {\r\n const {\r\n Code,\r\n Level\r\n } = inventoryResult;\r\n\r\n let inventoryClassName: string = '';\r\n let icon: JSX.Element | undefined = undefined;\r\n\r\n switch(Code) {\r\n case 'AVAIL':\r\n inventoryClassName = 'hasStock';\r\n icon = ;\r\n break;\r\n case 'LOW':\r\n inventoryClassName = 'lowStock';\r\n icon = ;\r\n break;\r\n case 'OOS':\r\n inventoryClassName = 'OoS';\r\n icon = ;\r\n break;\r\n default:\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n \r\n {icon}\r\n \r\n {Level}\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nconst Tick = (): JSX.Element => (\r\n \r\n \r\n \r\n)\r\n\r\nconst Cross = (): JSX.Element => (\r\n \r\n \r\n \r\n)\r\n\r\nconst ExclamationMark = (): JSX.Element => (\r\n \r\n \r\n \r\n)\r\n\r\nexport const StoreSelectorLocationLineItemComponent = StoreSelectorLocationLineItem as (props: IStoreSelectorLocationLineItemProps) => JSX.Element;\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 { DeliveryOption, ItemAvailability, OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\r\nimport { IFullOrgUnitAvailability } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport { observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { IFarmlandsPdpStoreSelectorResources } from '../farmlands-pdp-store-selector.props.autogenerated';\r\nimport { IStoreSelectorLocationLineItemResources, StoreSelectorLocationLineItemComponent } from './store-selector-location-line-item';\r\n\r\nexport interface IStoreSelectorLocationLinesProps {\r\n locations?: IFullOrgUnitAvailability[];\r\n resources: IFarmlandsPdpStoreSelectorResources;\r\n preferredDistanceUnit?: string;\r\n\r\n alreadySelectedLocation?: OrgUnitLocation;\r\n outOfStockThreshold: number;\r\n enableOutOfStockCheck: boolean;\r\n storeLocatorView?: boolean;\r\n selectedStoreLocationId?: string;\r\n isPreferredStoreEnabled?: boolean;\r\n displayList?: boolean;\r\n isLocationDisabled?: boolean;\r\n productPickUpDeliveryOptions?: DeliveryOption[];\r\n estimatedAvailabilityResult: any;\r\n preferredStoreLocationId: string | null;\r\n onSetAsPreferredStore: ((locationId: string | undefined) => void);\r\n onRemovePreferredStore: (() => void);\r\n\r\n /** The telemetry content */\r\n telemetryContent?: ITelemetryContent;\r\n onLocationSelected(location: OrgUnitLocation | undefined): void;\r\n}\r\n\r\n/**\r\n * Displays all the location line items, or null if none exists.\r\n */\r\n@observer\r\nexport class StoreSelectorLocationLines extends React.PureComponent {\r\n private readonly selectedLocationRef: React.RefObject;\r\n\r\n @observable private _stores: IFullOrgUnitAvailability[] | undefined;\r\n\r\n private storeCounter: number;\r\n\r\n public constructor(props: IStoreSelectorLocationLinesProps) {\r\n super(props);\r\n this.selectedLocationRef = React.createRef();\r\n this.storeCounter = 0;\r\n }\r\n\r\n public componentDidUpdate(prevProps: IStoreSelectorLocationLinesProps): void {\r\n if (this.props.selectedStoreLocationId !== prevProps.selectedStoreLocationId) {\r\n this._scrollIntoView();\r\n }\r\n }\r\n\r\n public componentDidMount(): void {\r\n if (this.props.locations) {\r\n this._stores = this._sortStores(this.props.locations);\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n if (!this._stores || this._stores.length === 0) {\r\n return null;\r\n }\r\n\r\n this.storeCounter = 0;\r\n\r\n return (\r\n
\r\n {\r\n this._stores.map((store, index) => {\r\n return this._renderStoreLocation(store, index, this.props.estimatedAvailabilityResult);\r\n })\r\n }\r\n
\r\n );\r\n }\r\n\r\n private _renderStoreLocation(store: IFullOrgUnitAvailability, index: number, x: any): JSX.Element | undefined {\r\n const orgUnitLocation = store?.OrgUnitAvailability?.OrgUnitLocation;\r\n const selectedStoreLocationId = this.props.selectedStoreLocationId;\r\n const deliveryOptions = store?.OrgUnitPickUpDeliveryModes;\r\n // @ts-ignore\r\n const storeInventoryResult = x.find( ({InventLocationId}) => InventLocationId === orgUnitLocation!.InventoryLocationId )\r\n\r\n return orgUnitLocation && (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private _sortStores(stores: IFullOrgUnitAvailability[]): IFullOrgUnitAvailability[] {\r\n const isPreferredStore = (value: IFullOrgUnitAvailability) => this.props.isPreferredStoreEnabled && this.props.preferredStoreLocationId &&\r\n value?.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitNumber === this.props.preferredStoreLocationId;\r\n\r\n return [\r\n ...stores.filter(isPreferredStore),\r\n ...stores.filter(store => !isPreferredStore(store))\r\n ];\r\n }\r\n\r\n private readonly _scrollIntoView = () => {\r\n const selectedLocationDiv = this.selectedLocationRef.current;\r\n const parent = selectedLocationDiv?.parentElement;\r\n if (selectedLocationDiv && parent) {\r\n if (parent.scrollTop > selectedLocationDiv.offsetTop) {\r\n parent.scrollTop = selectedLocationDiv.offsetTop;\r\n } else if (selectedLocationDiv.offsetTop + selectedLocationDiv.clientHeight > parent.scrollTop + parent.clientHeight) {\r\n parent.scrollTop = selectedLocationDiv.offsetTop + selectedLocationDiv.clientHeight - parent.clientHeight;\r\n }\r\n }\r\n };\r\n\r\n private readonly _isCurrentLocation = (location: OrgUnitLocation | undefined): boolean => (this.props.alreadySelectedLocation && location && this.props.alreadySelectedLocation.OrgUnitNumber === location.OrgUnitNumber) || false;\r\n\r\n private readonly _isProductInStock = (ItemAvailabilities: ItemAvailability[] | undefined): boolean => {\r\n if (!this.props.enableOutOfStockCheck) {\r\n return true;\r\n }\r\n\r\n if (ItemAvailabilities && ItemAvailabilities.length > 0) {\r\n return ItemAvailabilities[0].AvailableQuantity ? ItemAvailabilities[0].AvailableQuantity > 0 : false;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n private readonly _stockInventoryLabel = (availabilityWithHours: IFullOrgUnitAvailability | undefined): string | undefined => {\r\n if (availabilityWithHours?.ProductInventoryInformation &&\r\n availabilityWithHours?.ProductInventoryInformation.length > 0) {\r\n for (let i = 0; i < availabilityWithHours.ProductInventoryInformation.length; i++) {\r\n if (availabilityWithHours.OrgUnitAvailability?.OrgUnitLocation?.InventoryLocationId === availabilityWithHours.ProductInventoryInformation[i].InventLocationId) {\r\n return availabilityWithHours.ProductInventoryInformation[i].StockLevelLabel;\r\n }\r\n\r\n }\r\n }\r\n\r\n return undefined;\r\n };\r\n\r\n private readonly _mapResources = (resources: IFarmlandsPdpStoreSelectorResources): IStoreSelectorLocationLineItemResources => {\r\n return {\r\n contactInfoHeader: resources.contactText,\r\n storeHoursHeader: resources.timeText,\r\n availabilityInfoHeader: resources.availabilityText,\r\n\r\n closedText: resources.storeHoursClosedText,\r\n outOfStock: resources.outOfStockText,\r\n inStock: resources.inStockText,\r\n\r\n currentLocation: resources.selectedStoreLocationText,\r\n selectLocation: resources.selectStoreText,\r\n selectLocationAriaLabelFormat: resources.selectStoreAriaFormatText,\r\n setAsPreferredStoreText: resources.setAsPreferredStoreText,\r\n setAsPreferredStoreTextAriaLabel: resources.setAsPreferredStoreTextAriaLabel,\r\n preferredStoreText: resources.preferredStoreText,\r\n preferredStoreAriaLabel: resources.preferredStoreAriaLabel,\r\n\r\n days: {\r\n monday: resources.storeHoursMondayText,\r\n tuesday: resources.storeHoursTuesdayText,\r\n wednesday: resources.storeHoursWednesdayText,\r\n thursday: resources.storeHoursThursdayText,\r\n friday: resources.storeHoursFridayText,\r\n saturday: resources.storeHoursSaturdayText,\r\n sunday: resources.storeHoursSundayText,\r\n mondayFull: resources.storeHoursMondayFullText,\r\n tuesdayFull: resources.storeHoursTuesdayFullText,\r\n wednesdayFull: resources.storeHoursWednesdayFullText,\r\n thursdayFull: resources.storeHoursThursdayFullText,\r\n fridayFull: resources.storeHoursFridayFullText,\r\n saturdayFull: resources.storeHoursSaturdayFullText,\r\n sundayFull: resources.storeHoursSundayFullText\r\n }\r\n };\r\n };\r\n}\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport * as React from 'react';\r\n\r\nexport interface IStoreSelectorSearchFormProps {\r\n resources: {\r\n searchButtonAriaLabel: string;\r\n searchPlaceholderText: string;\r\n };\r\n\r\n value: string;\r\n isBingMapsDisabled?: boolean;\r\n\r\n performSearch(searchTerm: string): Promise;\r\n searchTermChanged(searchTerm: string): Promise;\r\n}\r\n\r\n/**\r\n * Simple search form consisting of search text and a search button\r\n */\r\nexport class StoreSelectorSearchForm extends React.PureComponent {\r\n constructor(props: IStoreSelectorSearchFormProps) {\r\n super(props);\r\n this.state = { value: '' };\r\n }\r\n\r\n public render(): JSX.Element {\r\n return (\r\n \r\n
\r\n location_on\r\n \r\n \r\n search\r\n \r\n
\r\n \r\n \r\n );\r\n }\r\n\r\n private _searchTextChanged = async (e: React.ChangeEvent): Promise => {\r\n const inputValue: string = e.target.value;\r\n await this.props.searchTermChanged(inputValue);\r\n };\r\n\r\n private _onSubmit = async (e: React.SyntheticEvent): Promise => {\r\n e.preventDefault(); // Prevents form submission\r\n\r\n await this.props.performSearch(this.props.value);\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 * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { IFullOrgUnitAvailability } from '@msdyn365-commerce-modules/retail-actions';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { IFarmlandsPdpStoreSelectorResources, ITermsOfServiceLinkData } from '../farmlands-pdp-store-selector.props.autogenerated';\r\n\r\nexport interface IStoreSelectorEmptyMessageProps {\r\n resources: IFarmlandsPdpStoreSelectorResources;\r\n}\r\nexport const StoreSelectorEmptyMessage: React.FC = ({ resources }) => (\r\n
\r\n

\r\n {resources.emptyLocationsText}\r\n

\r\n
\r\n);\r\n\r\nexport const StoreSelectorWaiting: React.FC = () => (\r\n
\r\n);\r\n\r\nexport interface IStoreSelectorTermsOfServiceProps {\r\n link?: ITermsOfServiceLinkData;\r\n requestContext: Msdyn365.IRequestContext;\r\n onTextChange?(event: Msdyn365.ContentEditableEvent): void;\r\n}\r\n\r\nexport const StoreSelectorTermsOfService: React.FC = ({ link, requestContext, onTextChange }) => {\r\n if (link) {\r\n const editableLink: Msdyn365.ILinksData = {\r\n ariaLabel: link.ariaLabel,\r\n className: 'ms-store-select__terms-link',\r\n linkText: link.linkText,\r\n linkUrl: link.linkUrl.destinationUrl,\r\n openInNewTab: link.openInNewTab,\r\n role: 'link'\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n\r\n }\r\n return null;\r\n};\r\n\r\nexport interface IStoreSelectorFoundLocationsMessage {\r\n resources: IFarmlandsPdpStoreSelectorResources;\r\n locations?: IFullOrgUnitAvailability[];\r\n searchRadius: number;\r\n preferredDistanceUnit: string;\r\n isSeeAllStore: boolean;\r\n}\r\nexport const StoreSelectorFoundLocationsMessage: React.FC = ({ locations, searchRadius, resources, isSeeAllStore, preferredDistanceUnit }) => {\r\n if (locations) {\r\n const storeCountMessage = preferredDistanceUnit === resources.milesShortText ? resources.storeCountMessage : resources.storeCountMessageInKm;\r\n return (\r\n
\r\n { isSeeAllStore ? resources.storeAllCountMessage\r\n .replace('{count}', locations.length.toString()) : storeCountMessage\r\n .replace('{count}', locations.length.toString())\r\n .replace('{radius}', searchRadius.toString())}\r\n
\r\n );\r\n }\r\n\r\n return null;\r\n};\r\n","/**\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. See License.txt in the project root for license information.\r\n * IFarmlandsPdpStoreSelector contentModule Interface Properties\r\n * THIS FILE IS AUTO-GENERATED - MANUAL MODIFICATIONS WILL BE LOST\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport const enum mode {\r\n findStores = 'findStores',\r\n pickupInStore = 'pickupInStore'\r\n}\r\n\r\nexport const enum searchRadiusUnit {\r\n miles = 'miles',\r\n kilometers = 'kilometers'\r\n}\r\n\r\nexport const enum style {\r\n inline = 'inline',\r\n dialog = 'dialog'\r\n}\r\n\r\nexport interface IFarmlandsPdpStoreSelectorConfig extends Msdyn365.IModuleConfig {\r\n heading?: string;\r\n termsOfServiceLink?: ITermsOfServiceLinkData;\r\n mode?: mode;\r\n searchRadiusUnit?: searchRadiusUnit;\r\n lookupRadius: number;\r\n style?: style;\r\n setAsPreferredStore?: boolean;\r\n showAllStores?: boolean;\r\n autoSuggestionEnabled?: boolean;\r\n autoSuggestOptions?: IAutoSuggestOptionsData;\r\n className?: string;\r\n}\r\n\r\nexport interface IFarmlandsPdpStoreSelectorResources {\r\n searchPlaceholderText: string;\r\n searchButtonAriaLabel: string;\r\n searchInputAriaLabel: string;\r\n outOfStockText: string;\r\n inStockText: string;\r\n selectedStoreLocationText: string;\r\n emptyLocationsText: string;\r\n selectStoreText: string;\r\n selectStoreAriaFormatText: string;\r\n setAsPreferredStoreText: string;\r\n setAsPreferredStoreTextAriaLabel: string;\r\n preferredStoreText: string;\r\n preferredStoreAriaLabel: string;\r\n timeText: string;\r\n captionText: string;\r\n milesShortText: string;\r\n kilometersShortText: string;\r\n contactText: string;\r\n availabilityText: string;\r\n productDimensionTypeColor: string;\r\n productDimensionTypeConfiguration: string;\r\n productDimensionTypeSize: string;\r\n productDimensionTypeStyle: string;\r\n storeHoursClosedText: string;\r\n storeHoursMondayText: string;\r\n storeHoursTuesdayText: string;\r\n storeHoursWednesdayText: string;\r\n storeHoursThursdayText: string;\r\n storeHoursFridayText: string;\r\n storeHoursSaturdayText: string;\r\n storeHoursSundayText: string;\r\n storeHoursMondayFullText: string;\r\n storeHoursTuesdayFullText: string;\r\n storeHoursWednesdayFullText: string;\r\n storeHoursThursdayFullText: string;\r\n storeHoursFridayFullText: string;\r\n storeHoursSaturdayFullText: string;\r\n storeHoursSundayFullText: string;\r\n storePhoneAriaLabel: string;\r\n storeAddressAriaLabel: string;\r\n storeCountMessage: string;\r\n storeAllCountMessage: string;\r\n storeCountMessageInKm: string;\r\n storeSelectorHeaderText: string;\r\n storeLocatorHeaderText: string;\r\n seeAllStoresText: string;\r\n viewMapText: string;\r\n viewListText: string;\r\n}\r\n\r\nexport interface ITermsOfServiceLinkData {\r\n linkText?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n openInNewTab?: boolean;\r\n}\r\n\r\nexport interface IAutoSuggestOptionsData {\r\n maxResults?: number;\r\n}\r\n\r\nexport interface IFarmlandsPdpStoreSelectorProps extends Msdyn365.IModule {\r\n resources: IFarmlandsPdpStoreSelectorResources;\r\n config: IFarmlandsPdpStoreSelectorConfig;\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\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\r\nimport { IStoreInfo } from '@msdyn365-commerce-modules/bopis-utilities';\r\nimport {\r\n getFullAvailableInventoryNearby,\r\n GetFullAvailableInventoryNearbyInput,\r\n getOrgUnitLocationsByArea, GetOrgUnitLocationsByAreaInput,\r\n IFullOrgUnitAvailability\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\nimport {\r\n getEstimatedAvailabilityAsync\r\n} from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\nimport {\r\n getTelemetryObject,\r\n IModuleProps,\r\n INodeProps,\r\n ITelemetryContent,\r\n Modal,\r\n ModalBody,\r\n ModalFooter,\r\n ModalHeader,\r\n NodeTag\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport classname from 'classnames';\r\nimport { reaction, when } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n StoreSelectorEmptyMessage,\r\n StoreSelectorFoundLocationsMessage,\r\n StoreSelectorLocationLines,\r\n StoreSelectorSearchForm,\r\n StoreSelectorTermsOfService,\r\n StoreSelectorWaiting\r\n} from './components';\r\nimport { IStoreSelectorData } from './farmlands-pdp-store-selector.data';\r\nimport { IFarmlandsPdpStoreSelectorProps, mode as modeEnum, searchRadiusUnit, style as styleEnum } from './farmlands-pdp-store-selector.props.autogenerated';\r\n\r\nexport interface IStoreSelectorState {\r\n hasSearched?: boolean;\r\n isSearchInProgress: boolean;\r\n searchTerm?: string;\r\n isSeeAllStoreValue: boolean;\r\n isLocationDisabled?: boolean;\r\n estimatedAvailabilityResult: any;\r\n}\r\n\r\nexport interface IStoreSelectorViewProps extends IFarmlandsPdpStoreSelectorProps {\r\n state: IStoreSelectorState;\r\n\r\n // Containers:\r\n ModuleProps: IModuleProps;\r\n BodyContainerProps: INodeProps;\r\n FooterContainerProps: INodeProps;\r\n HeaderContainerProps: INodeProps;\r\n HeaderProps?: React.ReactNode;\r\n\r\n // Components\r\n locationsMessage?: React.ReactNode;\r\n search?: React.ReactNode;\r\n spinner?: React.ReactNode;\r\n locationsList?: React.ReactNode;\r\n noLocationsMessage?: React.ReactNode;\r\n terms?: React.ReactNode;\r\n headerText?: React.ReactNode;\r\n\r\n callbacks: {\r\n closeDialog(): Promise;\r\n searchTermChanged(searchTerm: string): Promise;\r\n performSearch(searchTerm: string): Promise;\r\n selectedLocation(location: OrgUnitLocation | undefined): Promise;\r\n getAndUpdateUserLocation(): Promise;\r\n };\r\n}\r\n\r\n/**\r\n *\r\n * Pick Up In Store module.\r\n * @extends React.Component>}\r\n */\r\n@observer\r\nclass StoreSelector extends React.Component, IStoreSelectorState> {\r\n private autoSuggestManager: Microsoft.Maps.AutosuggestManager | undefined;\r\n\r\n private readonly telemetryContent: ITelemetryContent;\r\n\r\n constructor(props: IFarmlandsPdpStoreSelectorProps) {\r\n super(props);\r\n this.state = {\r\n hasSearched: false,\r\n isSearchInProgress: false,\r\n searchTerm: '',\r\n isSeeAllStoreValue: false,\r\n estimatedAvailabilityResult: []\r\n };\r\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\r\n }\r\n\r\n public componentDidMount(): void {\r\n const {\r\n context: {\r\n telemetry,\r\n actionContext: {\r\n requestContext: {\r\n channel\r\n }\r\n }\r\n },\r\n config: {\r\n autoSuggestionEnabled\r\n }\r\n } = this.props;\r\n\r\n // Adding Timeout to make sure it loads the data based upon the preferred store.\r\n setTimeout(() => {\r\n this._getAndUpdateStoreLocation();\r\n }, 0);\r\n\r\n reaction(\r\n () => this.props.data.storeSelectorStateManager.result && this.props.data.storeSelectorStateManager.result.isDialogOpen,\r\n async () => {\r\n const context = this.props.data.storeSelectorStateManager.result?.context;\r\n if (context?.id === this.props.id) {\r\n this._getAndUpdateStoreLocation();\r\n }\r\n }\r\n );\r\n\r\n reaction(\r\n () => this.props.data.storeSelectorStateManager.result && this.props.data.storeSelectorStateManager.result.context && this.props.data.storeSelectorStateManager.result.context.id,\r\n async () => {\r\n const context = this.props.data.storeSelectorStateManager.result?.context;\r\n if (!context || (context?.id === this.props.id)) {\r\n await this._searchTermChanged('');\r\n this._getAndUpdateStoreLocation();\r\n }\r\n }\r\n );\r\n\r\n if (channel && !channel.BingMapsApiKey) {\r\n telemetry.error('BingMapsApiKey is missing.');\r\n return;\r\n }\r\n\r\n if (channel && !channel.BingMapsEnabled) {\r\n telemetry.error('Map is disabled from HQ.');\r\n return;\r\n }\r\n\r\n if (this.props.data.storeSelectorStateManager.result?.loadMapApi) {\r\n this.props.data.storeSelectorStateManager.result?.loadMapApi({\r\n key: channel?.BingMapsApiKey,\r\n lang: this.props.context?.actionContext?.requestContext?.channel?.DefaultLanguageId,\r\n market: this.props.context?.actionContext?.requestContext?.channel?.ChannelCountryRegionISOCode\r\n }).then().catch();\r\n }\r\n\r\n reaction(\r\n () => this.props.data.storeSelectorStateManager.result?.loadMapApi,\r\n () => {\r\n this.props.data.storeSelectorStateManager.result?.loadMapApi({\r\n key: channel?.BingMapsApiKey,\r\n lang: this.props.context?.actionContext?.requestContext?.channel?.DefaultLanguageId,\r\n market: this.props.context?.actionContext?.requestContext?.channel?.ChannelCountryRegionISOCode\r\n });\r\n }\r\n );\r\n\r\n if (autoSuggestionEnabled) {\r\n when(\r\n () => {\r\n const isMapApiLoaded = !!this.props.data.storeSelectorStateManager.result?.isMapApiLoaded;\r\n const isDialogOpen = !!this.props.data.storeSelectorStateManager.result?.isDialogOpen;\r\n const isSameContext = this.props.data.storeSelectorStateManager.result?.context?.id === this.props.id;\r\n return isMapApiLoaded && isDialogOpen && isSameContext;\r\n },\r\n async () => {\r\n setTimeout(async () => {\r\n await this._attachMapAutoSuggest();\r\n }, 0);\r\n }\r\n );\r\n }\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: IFarmlandsPdpStoreSelectorProps): boolean {\r\n const {\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n }\r\n } = this.props;\r\n const context = storeSelectorStateManager ? storeSelectorStateManager.context : undefined;\r\n if (context && context.id === this.props.id) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public render(): JSX.Element {\r\n const {\r\n config: {\r\n termsOfServiceLink,\r\n className,\r\n heading,\r\n mode,\r\n style,\r\n setAsPreferredStore,\r\n lookupRadius\r\n },\r\n context: {\r\n telemetry,\r\n app: {\r\n config: appConfig\r\n },\r\n actionContext: {\r\n requestContext: {\r\n channel,\r\n cookies\r\n }\r\n }\r\n },\r\n resources,\r\n data: {\r\n availabilitiesWithHours: { result: availabilitiesWithHours },\r\n storeSelectorStateManager: { result: storeSelectorStateManager },\r\n storeLocations: { result: storeLocations }\r\n }\r\n } = this.props;\r\n\r\n const isBingMapsDisabled = channel && channel.BingMapsApiKey && channel.BingMapsEnabled ? false : true;\r\n const context = storeSelectorStateManager ? storeSelectorStateManager.context : undefined;\r\n const isDialogOpen: boolean = storeSelectorStateManager ? storeSelectorStateManager.isDialogOpen && (context?.id === this.props.id) : false;\r\n const styleDefault = style !== undefined ? style : styleEnum.dialog;\r\n const modeDefault = mode !== undefined ? mode : modeEnum.pickupInStore;\r\n const inlineView = styleDefault === styleEnum.inline;\r\n const locatorView = modeDefault === modeEnum.findStores;\r\n const hideInventory = locatorView;\r\n const selectedStoreLocationId = storeSelectorStateManager?.selectedStoreLocationId;\r\n const preferredStore: IStoreInfo | undefined = storeSelectorStateManager?.preferredStore;\r\n const displayList = storeSelectorStateManager?.listMapViewState?.displayList;\r\n const isPreferredStoreEnabled = setAsPreferredStore && cookies?.isConsentGiven();\r\n\r\n if (!(channel && channel.BingMapsApiKey)) {\r\n telemetry.error('BingMapsApiKey is missing.');\r\n }\r\n\r\n const configHeading = heading ? heading : (locatorView ? resources.storeLocatorHeaderText : resources.storeSelectorHeaderText);\r\n const preferredDistanceUnit = this.props.config.searchRadiusUnit === searchRadiusUnit.kilometers ? resources.kilometersShortText : resources.milesShortText;\r\n\r\n const viewProps = {\r\n ...(this.props as IFarmlandsPdpStoreSelectorProps),\r\n state: this.state,\r\n\r\n ModuleProps: {\r\n tag: inlineView ? 'div' as NodeTag : Modal,\r\n moduleProps: this.props,\r\n className: classname(`ms-store-${inlineView ? 'locate' : 'select'}`, className, inlineView ? '' : 'msc-modal-input-required'),\r\n autoFocus: true,\r\n fade: true,\r\n isOpen: isDialogOpen,\r\n onClosed: this._closeDialog,\r\n horizontalPosition: 'center',\r\n verticalPosition: 'center',\r\n toggle: this._closeDialog\r\n },\r\n HeaderContainerProps: {\r\n tag: inlineView ? 'div' as NodeTag : ModalHeader,\r\n className: `ms-store-select__${inlineView ? 'header' : 'modal-header'}`,\r\n toggle: this._closeDialog\r\n },\r\n HeaderProps: configHeading && (\r\n \r\n ),\r\n FooterContainerProps: {\r\n tag: inlineView ? 'div' as NodeTag : ModalFooter,\r\n className: `ms-store-select__${inlineView ? 'footer' : 'modal-footer'} ${!displayList ? 'map-only-view' : ''}`\r\n },\r\n BodyContainerProps: {\r\n tag: inlineView ? 'div' as NodeTag : ModalBody,\r\n className: `ms-store-select__${inlineView ? 'body' : 'modal-body'}`\r\n },\r\n locationsMessage: !this.state.isLocationDisabled && (\r\n \r\n ),\r\n search: (\r\n \r\n ),\r\n spinner: ,\r\n locationsList: ((availabilitiesWithHours && availabilitiesWithHours.length) || (storeLocations && storeLocations.length)) && (\r\n \r\n ),\r\n noLocationsMessage: ,\r\n terms: ,\r\n\r\n // Not being used in current context, we can use it here to pass more props.\r\n headerText: \r\n {heading ? heading : (locatorView ? resources.storeLocatorHeaderText : resources.storeSelectorHeaderText)}\r\n ,\r\n\r\n callbacks: {\r\n searchTermChanged: this._searchTermChanged,\r\n performSearch: this._performSearch,\r\n closeDialog: this._closeDialog,\r\n selectedLocation: this._onOrgUnitLocationSelected,\r\n getAndUpdateUserLocation: () => {\r\n this._getAndUpdateStoreLocation();\r\n return Promise.resolve();\r\n }\r\n }\r\n } as IStoreSelectorViewProps;\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n public handleLinkTextChange = (event: Msdyn365.ContentEditableEvent) => {\r\n if (this.props.config.termsOfServiceLink) {\r\n this.props.config.termsOfServiceLink.linkText = event.target.value;\r\n }\r\n };\r\n\r\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.heading = event.target.value;\r\n\r\n private readonly _attachMapAutoSuggest = async (): Promise => {\r\n const {\r\n config: {\r\n autoSuggestOptions\r\n },\r\n context: {\r\n telemetry,\r\n actionContext: {\r\n requestContext: {\r\n channel\r\n }\r\n }\r\n },\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n }\r\n } = this.props;\r\n\r\n if (storeSelectorStateManager?.isMapApiLoaded && !this.autoSuggestManager) {\r\n Microsoft.Maps.loadModule('Microsoft.Maps.AutoSuggest', {\r\n callback: () => {\r\n const options = { ...autoSuggestOptions, countryCode: channel?.ChannelCountryRegionISOCode };\r\n this.autoSuggestManager = new Microsoft.Maps.AutosuggestManager(options);\r\n this.autoSuggestManager.attachAutosuggest(`#ms-store-select__search-box_${this.props.id}`, `#ms-store-select__search-box-container_${this.props.id}`, this._onSuggestionSelected);\r\n },\r\n errorCallback: () => {\r\n if (telemetry) {\r\n telemetry.debug('Unable to attach map auto suggest.');\r\n }\r\n },\r\n credentials: channel?.BingMapsApiKey\r\n });\r\n }\r\n };\r\n\r\n private readonly _onSuggestionSelected = async (result: Microsoft.Maps.ISuggestionResult): Promise => {\r\n const context = this.props.data.storeSelectorStateManager && this.props.data.storeSelectorStateManager.result &&\r\n this.props.data.storeSelectorStateManager.result?.context;\r\n if (context && (context?.id === this.props.id)) {\r\n await this._searchTermChanged(result.formattedSuggestion);\r\n await this._performSearch(result.formattedSuggestion);\r\n }\r\n };\r\n\r\n private readonly _setPreferredStore = async (storeId: string | undefined): Promise => {\r\n if (!storeId) {\r\n return;\r\n }\r\n\r\n const {\r\n context: {\r\n actionContext: {\r\n requestContext: {\r\n cookies\r\n }\r\n }\r\n },\r\n config: {\r\n mode\r\n },\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager },\r\n storeLocations: { result: storeLocations },\r\n availabilitiesWithHours: { result: availabilitiesWithHours }\r\n }\r\n } = this.props;\r\n\r\n if (!storeSelectorStateManager) {\r\n return;\r\n }\r\n const modeDefault = mode !== undefined ? mode : modeEnum.pickupInStore;\r\n\r\n let stores: IFullOrgUnitAvailability[];\r\n if (modeDefault === modeEnum.findStores && storeLocations) {\r\n stores = storeLocations;\r\n } else {\r\n stores = availabilitiesWithHours!;\r\n }\r\n\r\n const preferedStore = stores.find(store => store.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitNumber === storeId);\r\n\r\n await storeSelectorStateManager.setPreferredStoreLocation(storeId, preferedStore?.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitName, cookies?.isConsentGiven(),\r\n preferedStore?.OrgUnitAvailability?.OrgUnitLocation?.Latitude, preferedStore?.OrgUnitAvailability?.OrgUnitLocation?.Longitude);\r\n };\r\n\r\n private readonly _removePreferredStore = async (): Promise => {\r\n const {\r\n context: {\r\n actionContext: {\r\n requestContext: {\r\n cookies\r\n }\r\n }\r\n },\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n }\r\n } = this.props;\r\n\r\n if (!storeSelectorStateManager) {\r\n return;\r\n }\r\n\r\n await storeSelectorStateManager.clearPreferredStore(cookies?.isConsentGiven());\r\n };\r\n\r\n private readonly _setSelectedStore = async (storeId: string | undefined): Promise => {\r\n const {\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n }\r\n } = this.props;\r\n\r\n if (!storeSelectorStateManager) {\r\n return;\r\n }\r\n\r\n await storeSelectorStateManager.setSelectedStoreLocationId(storeId);\r\n };\r\n\r\n private readonly _performSearch = async (searchTerm: string): Promise => {\r\n const {\r\n context: {\r\n actionContext\r\n },\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n }\r\n } = this.props;\r\n\r\n if (!searchTerm || !storeSelectorStateManager) {\r\n return;\r\n }\r\n\r\n this.setState({\r\n hasSearched: true,\r\n isSearchInProgress: true,\r\n isSeeAllStoreValue: false\r\n });\r\n\r\n searchTerm = `${searchTerm} `;\r\n const location = await storeSelectorStateManager.geoLocate(searchTerm.trim() !== '' ? searchTerm : '0', actionContext);\r\n\r\n if (location) {\r\n await this._updateLocations(location.latitude, location.longitude);\r\n }\r\n\r\n this.setState({ isSearchInProgress: false });\r\n };\r\n\r\n private readonly _searchTermChanged = async (searchTerm: string): Promise => {\r\n this.setState({ searchTerm });\r\n };\r\n\r\n private readonly _getAndUpdateStoreLocation = (showAllStores?: boolean): void => {\r\n const {\r\n config: {\r\n style\r\n },\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n }\r\n } = this.props;\r\n\r\n const styleDefault = style !== undefined ? style : styleEnum.dialog;\r\n\r\n if (styleDefault !== styleEnum.inline && (!storeSelectorStateManager || !storeSelectorStateManager.isDialogOpen)) {\r\n // Store selector dialog isn't open yet, so don't try and update anything\r\n return;\r\n }\r\n\r\n this.setState({ isSearchInProgress: true, isSeeAllStoreValue: false });\r\n\r\n if (navigator && navigator.geolocation) {\r\n navigator.geolocation.getCurrentPosition(\r\n async position => {\r\n if (showAllStores) {\r\n this.setState({ isSeeAllStoreValue: true });\r\n await this._searchTermChanged('');\r\n await this._updateLocations(position.coords.latitude, position.coords.longitude, 0);\r\n } else {\r\n await this._updateLocations(position.coords.latitude, position.coords.longitude);\r\n }\r\n\r\n this.setState({ isSearchInProgress: false });\r\n },\r\n async error => {\r\n // If the location setting is turned off\r\n if (error.PERMISSION_DENIED) {\r\n this.setState({ isLocationDisabled: true });\r\n if (showAllStores) {\r\n this.setState({ isSeeAllStoreValue: true });\r\n await this._searchTermChanged('');\r\n await this._updateLocations(void 0, void 0, 0);\r\n } else {\r\n await this._updateLocations();\r\n }\r\n }\r\n\r\n this.setState({ isSearchInProgress: false });\r\n },\r\n { timeout: 2000 }\r\n );\r\n } else {\r\n this.setState({ isSearchInProgress: false });\r\n }\r\n };\r\n\r\n private readonly _closeDialog = async (): Promise => {\r\n const {\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n }\r\n } = this.props;\r\n\r\n this.setState({\r\n hasSearched: false,\r\n searchTerm: ''\r\n });\r\n\r\n if (storeSelectorStateManager) {\r\n return storeSelectorStateManager.closeDialog();\r\n }\r\n };\r\n\r\n private readonly _setOrgUnitStoreInformation = async (orgUnitStoreInformation: IFullOrgUnitAvailability[]): Promise => {\r\n const {\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n },\r\n config: {\r\n style\r\n },\r\n telemetry\r\n } = this.props;\r\n\r\n if (!storeSelectorStateManager) {\r\n return;\r\n }\r\n\r\n const context = storeSelectorStateManager.context;\r\n const id: string = context && context.id ? context.id : this.props.id;\r\n const styleDefault = style !== undefined ? style : styleEnum.dialog;\r\n await storeSelectorStateManager.setOrgUnitStoreInformation({\r\n id,\r\n showMapViewLink: context && context.showMapViewLink,\r\n isDialog: styleDefault === styleEnum.dialog,\r\n orgUnitStoreInformation,\r\n onLocationSelected: orgUnitLocation => {\r\n // TO-DO handle event for when location in selected\r\n return Promise.resolve();\r\n }\r\n })\r\n .catch((error: Error) => {\r\n if (telemetry) {\r\n telemetry.error(error.message);\r\n telemetry.debug('Unable to Update store location state');\r\n }\r\n return;\r\n });\r\n return;\r\n };\r\n\r\n private readonly _updateLocations = async (latitude?: number, longitude?: number, radius?: number): Promise => {\r\n const {\r\n telemetry,\r\n config: {\r\n mode,\r\n lookupRadius,\r\n style\r\n },\r\n context: {\r\n actionContext\r\n },\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n }\r\n } = this.props;\r\n\r\n const styleDefault = style !== undefined ? style : styleEnum.dialog;\r\n const calRadius = (radius || radius === 0) ? radius : (lookupRadius || 50);\r\n const distanceUnitValue = this.props.config.searchRadiusUnit === searchRadiusUnit.kilometers ? 1 : 0;\r\n const modeDefault = mode !== undefined ? mode : modeEnum.pickupInStore;\r\n const preferredStore: IStoreInfo | undefined = storeSelectorStateManager?.preferredStore;\r\n let lat = this.state.searchTerm || !(preferredStore?.Latitude) ? latitude : preferredStore.Latitude;\r\n let long = this.state.searchTerm || !(preferredStore?.Longitude) ? longitude : preferredStore.Longitude;\r\n if (styleDefault === styleEnum.inline) {\r\n const lastInlineStoreLocation = storeSelectorStateManager?.lastInlineShownStoreInfo;\r\n if (lastInlineStoreLocation && !this.state.searchTerm) {\r\n lat = lastInlineStoreLocation.Latitude ? lastInlineStoreLocation.Latitude : lat;\r\n long = lastInlineStoreLocation.Longitude ? lastInlineStoreLocation.Longitude : long;\r\n }\r\n await storeSelectorStateManager?.setLastInlineStoreInfo(lat, long);\r\n }\r\n\r\n if (modeDefault === modeEnum.findStores) {\r\n const orgUnitLocationsInput = new GetOrgUnitLocationsByAreaInput(\r\n lat,\r\n long,\r\n calRadius,\r\n distanceUnitValue,\r\n this.state.isLocationDisabled\r\n );\r\n\r\n const orgUnitLocations = await getOrgUnitLocationsByArea(orgUnitLocationsInput, actionContext);\r\n if (orgUnitLocations) {\r\n await this._setOrgUnitStoreInformation(orgUnitLocations);\r\n await this._setSelectedStore(undefined);\r\n }\r\n return;\r\n }\r\n\r\n if (!storeSelectorStateManager || !storeSelectorStateManager.context) {\r\n // Store selector dialog isn't open yet, so don't try and update anything\r\n return;\r\n }\r\n\r\n if (!storeSelectorStateManager.context.product) {\r\n // TODO: Use alternative search method here to not make inventory check\r\n return;\r\n }\r\n\r\n const input = new GetFullAvailableInventoryNearbyInput(\r\n storeSelectorStateManager.context.product.RecordId,\r\n latitude || 0,\r\n longitude || 0,\r\n lookupRadius || 50\r\n );\r\n\r\n const searchCriteria = {\r\n DefaultWarehouseOnly: false,\r\n FilterByChannelFulfillmentGroup: true,\r\n ProductIds: [storeSelectorStateManager.context.product.RecordId]\r\n }\r\n\r\n await getEstimatedAvailabilityAsync({ callerContext: actionContext }, searchCriteria)\r\n .then((resp) =>\r\n this.setState({ estimatedAvailabilityResult: resp.ProductWarehouseInventoryAvailabilities })\r\n ).catch((error) => {\r\n telemetry.warning(error);\r\n telemetry.error(error.message);\r\n telemetry.debug('Unable to get estimated availability');\r\n })\r\n\r\n await getFullAvailableInventoryNearby(input, actionContext).catch((error) => {\r\n telemetry.warning(error);\r\n telemetry.error(error.message);\r\n telemetry.debug('Unable to get full available inventory near by');\r\n });\r\n };\r\n\r\n private readonly _onOrgUnitLocationSelected = async (location: OrgUnitLocation | undefined, deliveryMode?: string): Promise => {\r\n const {\r\n telemetry,\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n }\r\n } = this.props;\r\n\r\n if (storeSelectorStateManager) {\r\n if (location && storeSelectorStateManager.context) {\r\n // Want to eat exceptions here so that the dialog still closes even if the onLocationSelected call goes wrong\r\n await storeSelectorStateManager.context.onLocationSelected(location, deliveryMode).catch(error => {\r\n telemetry.warning(error);\r\n telemetry.error(error.message);\r\n telemetry.debug('Unable to get on org unit location selected');\r\n });\r\n }\r\n\r\n await storeSelectorStateManager.closeDialog();\r\n }\r\n };\r\n}\r\n\r\nexport default StoreSelector;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport {\r\n IHeader,\r\n IList,\r\n IOrderHistoryViewProps\r\n} from '@msdyn365-commerce-modules/order-management/src/modules/order-history/./order-history';\r\nimport { IGroup, IGroupDelivery, IGroups, IOrderInformation } from '@msdyn365-commerce-modules/order-management/src/common/index';\r\nimport { ISalesOrder } from '@msdyn365-commerce-modules/order-management/src/modules/order-history/components/get-sales-order';\r\n\r\nexport const OrderHistoryOrderInfomation: React.FC = ({\r\n orderInformationProps,\r\n salesId,\r\n receiptId,\r\n channelName,\r\n createdDate,\r\n count,\r\n amount,\r\n channelReferenceId\r\n}) => (\r\n \r\n {channelName}\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 OrderHistoryGroupDelivery: React.FC = ({\r\n deliveryProps,\r\n heading,\r\n count,\r\n processing,\r\n address,\r\n trackingInfo\r\n}) => (\r\n \r\n {heading}\r\n {count}\r\n {processing}\r\n {address}\r\n {trackingInfo}\r\n \r\n);\r\n\r\nexport const OrderHistoryGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\r\n \r\n {delivery && }\r\n {salesLines && (\r\n \r\n {salesLines.map((salesLine: any) => (\r\n {salesLine.salesLine}\r\n ))}\r\n \r\n )}\r\n \r\n);\r\n\r\nexport const OrderHistoryGroups: React.FC = ({ groupsProps, groups }) => (\r\n \r\n {groups.map((group: any, index: any) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport const OrderHistoryHeader: React.FC = ({ headerProps, heading, orderCountLabel, extraActions }) => (\r\n \r\n {heading}\r\n {orderCountLabel}\r\n {extraActions}\r\n \r\n);\r\n\r\nexport const OrderHistorySalesOrder: React.FC = ({ salesOrderProps, orderInfomation, groups, orderDetailsLink }) => (\r\n \r\n {orderInfomation && }\r\n {groups && }\r\n {orderDetailsLink}\r\n \r\n);\r\n\r\nexport const OrderHistoryList: React.FC = ({ listProps, salesOrders }) => (\r\n \r\n {salesOrders && salesOrders.map((salesOrder, index) => )}\r\n \r\n);\r\n\r\nconst OrderHistoryView: React.FC = ({\r\n orderHistoryProps,\r\n header,\r\n alert,\r\n loading,\r\n emptyMessage,\r\n backToShoppingLink,\r\n list,\r\n moreButton\r\n}) => (\r\n \r\n {header && }\r\n {loading}\r\n {alert && (\r\n <>\r\n \r\n Whoops something went wrong. Please email ask@farmlands.co.nz or contact us on 0800 200 600.\r\n \r\n {backToShoppingLink}\r\n \r\n )}\r\n {emptyMessage && (\r\n <>\r\n {emptyMessage}\r\n {backToShoppingLink}\r\n \r\n )}\r\n {list && }\r\n {moreButton && moreButton}\r\n \r\n);\r\n\r\nexport default OrderHistoryView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IInvoiceDetailsViewProps } from './invoice-details';\n\nexport const InvoiceDetailsView: React.FC = props => {\n const { header, products, paymentDetails, payInvoiceError } = props;\n\n return (\n \n {header}\n {products}\n {paymentDetails}\n {payInvoiceError}\n \n );\n};\n\nexport default InvoiceDetailsView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport React, { useState } from 'react';\n\nimport { IPayableInvoice } from '../helpers/invoice-data';\nimport { payInvoices } from '../helpers/pay-invoices';\nimport { IInvoiceErrorState } from '../invoices-list';\n\nexport interface IPayInvoiceData {\n invoice: IPayableInvoice;\n}\n\nexport interface IPayInvoiceResources {\n payInvoiceButtonText: string;\n payInvoiceButtonAriaLabel: string;\n}\n\nexport interface IPayInvoiceProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n reference?: React.RefObject;\n resources: IPayInvoiceResources;\n\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n}\n\ninterface IPayInvoiceComponent extends IComponent {}\n\nconst onClick = async (\n _event: React.MouseEvent,\n props: IPayInvoiceProps,\n setDisabled: (disabled: boolean) => void\n): Promise => {\n setDisabled(true);\n\n const propagateError = (errorState: IInvoiceErrorState): void => {\n if (props.onError) {\n props.onError(errorState, props.reference);\n }\n setDisabled(false);\n };\n\n await payInvoices([props.data.invoice], props.context.actionContext, propagateError);\n};\n\nconst PayInvoiceComponentActions = {\n onClick\n};\n\n/**\n * On click handler function.\n * @param props -Invoice props.\n * @param setDisabled -Set disabled.\n * @returns Pay invoice component action.\n */\nconst onClickHandler = (props: IPayInvoiceProps, setDisabled: React.Dispatch>) => async (\n event: React.MouseEvent\n) => {\n await PayInvoiceComponentActions.onClick(event, props, setDisabled);\n};\n\nconst PayInvoice: React.FC = (props: IPayInvoiceProps): JSX.Element => {\n const [disabled, setDisabled] = useState(false);\n\n return (\n \n {props.resources.payInvoiceButtonText}\n \n );\n};\n\n// @ts-expect-error\nexport const PayInvoiceComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'PayInvoiceComponent',\n { component: PayInvoice, ...PayInvoiceComponentActions }\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActiveTabState } from './data-actions/tab-state';\nimport { createTabStateInput } from './data-actions/tab-state-data-action';\nimport tab from './modules/tab/tab';\nimport tabView from './modules/tab/tab.view';\nimport { getContentID, TabItemType } from './modules/tab-item/tab-item';\n\nexport * from './modules/tab/tab';\nexport * from './modules/tab/tab.view';\nexport { createTabStateInput, getContentID, IActiveTabState, tab, TabItemType, tabView };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport React, { useState } from 'react';\n\nimport { InvoiceModel } from '../../helpers/invoice-data';\nimport { IInvoiceErrorState } from '../../invoices-list';\nimport { IInvoicesTableHeaderResources, InvoicesTableHeaderComponent } from './components/invoices-table-header-component';\nimport { IInvoicesTableRowResources, InvoicesTableRowComponent } from './components/invoices-table-row-component';\n\ninterface IInvoicesTableData {\n invoices: InvoiceModel[];\n customer: Customer;\n}\n\nexport interface IInvoicesTableResources extends IInvoicesTableHeaderResources, IInvoicesTableRowResources {}\n\nexport interface IInvoicesTableProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n invoiceButtonReferences?: React.RefObject[];\n payInvoiceButtonReferences?: React.RefObject[];\n resources: IInvoicesTableResources;\n\n onChange(): void;\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n onRequestInvoice(invoice: InvoiceModel, requestInvoiceButtonReference: React.RefObject): void;\n}\n\nexport interface IInvoicesTableComponent extends IComponent {}\n\ntype GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nconst getViewport = (context: ICoreContext): GridSize => {\n // Always render in mobile viewport on a mobile device\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (window?.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n\n return 'xs';\n};\n\nconst isMobileView = (context: ICoreContext) => {\n const viewport = getViewport(context);\n return viewport === 'xs' || viewport === 'sm';\n};\n\n/**\n * On select all function.\n * @param props -Invoice table props.\n * @returns On change.\n */\nconst onSelectAllHandler = (props: IInvoicesTableProps) => (isSelected: boolean) => {\n props.data.invoices.forEach(invoice => {\n invoice.isSelected = isSelected;\n });\n props.onChange();\n};\n\nconst InvoicesTable: React.FC = (props: IInvoicesTableProps): JSX.Element => {\n const [isMobile, setIsMobile] = useState(isMobileView(props.context));\n\n const updateViewport = () => {\n setIsMobile(isMobileView(props.context));\n };\n\n if (typeof window !== undefined && window.addEventListener) {\n window.addEventListener('resize', updateViewport);\n }\n const rowClassName = `${props.className}__row`;\n const headerClassName = `${props.className}__header`;\n\n return (\n \n invoice.isSelected)}\n isMobile={isMobile}\n isAdmin={props.data.customer.IsB2bAdmin || false}\n onSelectAll={onSelectAllHandler(props)}\n resources={props.resources}\n data={{}}\n />\n {props.data.invoices.map((invoice, index: number) => {\n return (\n \n );\n })}\n
\n );\n};\n\nexport const InvoicesTableComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoicesTableComponent\n>('InvoicesTableComponent', { component: InvoicesTable });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IDictionary, IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { IMenuItemData, INavigationMenuViewProps } from '@msdyn365-commerce-modules/navigation-menu';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Drawer,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n ICollapseProps,\n IDrawerState,\n IPayLoad,\n ITelemetryContent,\n Module,\n Node,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\ninterface INavigationState {\n parentMenu?: number;\n activeMenu?: number;\n categoryImage?: IImageData[] | null;\n categoryImageAltText: string;\n drawerKeyValue: IDictionary;\n}\n\n/**\n *\n * NavigationMenuView component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuView extends React.PureComponent {\n private currentLevel: number = 0;\n\n private readonly _positionInSetOffset: number = 1;\n\n private readonly escapeKey: number = 27;\n\n private readonly menuNode: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: INavigationMenuViewProps) {\n super(props);\n this.menuNode = React.createRef();\n this.state = { activeMenu: undefined, parentMenu: undefined, categoryImageAltText: '', drawerKeyValue: {} };\n this._closeSubmenu = this._closeSubmenu.bind(this);\n this._escFunction = this._escFunction.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document.body.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document.body.addEventListener('mousedown', this._handleClickOutside);\n document.body.addEventListener('focusout', this._handleFocusOutside);\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document.body.removeEventListener('mousedown', this._handleClickOutside, false);\n document.body.removeEventListener('focusout', this._handleFocusOutside, false);\n }\n }\n\n public render(): JSX.Element | null {\n const { isMobileView } = this.props;\n\n this.currentLevel = 1;\n return <>{isMobileView ? this._renderMobileMenu() : this._renderDesktopMenu()};\n }\n\n /**\n * Method to render mobile menu.\n * @returns Jsx element.\n */\n private _renderMobileMenu(): JSX.Element {\n const { isMobileView, menuItemData, Navigation } = this.props;\n return (\n \n {menuItemData.map((menuItem: IMenuItemData, posinset: number) => {\n return this._renderDrawerMenu(menuItem, menuItemData.length, posinset + this._positionInSetOffset);\n })}\n \n );\n }\n\n /**\n * Method to render desktop menu.\n * @returns Jsx element.\n */\n private _renderDesktopMenu(): JSX.Element {\n const { MenuList, Navigation } = this.props;\n return (\n \n \n {this._renderDisplay()}\n \n \n );\n }\n\n /**\n * Method to render drawer menu.\n * @param menuItem -Menuitem data.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawerMenu(menuItem: IMenuItemData, setSize: number, posinset: number): JSX.Element | null {\n if (menuItem && menuItem.subMenu && ArrayExtensions.hasElements(menuItem.subMenu)) {\n return this._renderDrawer(menuItem, setSize, posinset);\n }\n return this._renderLinkMenuItem(menuItem, undefined, true, false, setSize, posinset);\n }\n\n /**\n * Method to render drawer component.\n * @param menuItem -Menuitem data.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawer(menuItem: IMenuItemData, setSize?: number, posinset?: number): JSX.Element | null {\n const toggleButtonText = menuItem.linkText;\n const keyValue = this.state.drawerKeyValue;\n const buttonText = toggleButtonText !== undefined ? toggleButtonText : '';\n const keys = keyValue !== undefined ? keyValue : {};\n const { isMobileView } = this.props;\n\n let isDrawerOpen = false;\n if (keys[buttonText]) {\n isDrawerOpen = true;\n }\n const colProps: ICollapseProps = { isOpen: isDrawerOpen };\n return (\n \n
\n {menuItem.subMenu!.map((menuSubItem: IMenuItemData, currentPos: number) => {\n if (ArrayExtensions.hasElements(menuSubItem.subMenu)) {\n return this._renderDrawer(menuSubItem, menuItem.subMenu?.length, currentPos + this._positionInSetOffset);\n }\n return this._renderDrawerLink(menuSubItem, menuItem.subMenu?.length, currentPos + this._positionInSetOffset);\n })}\n
\n \n );\n }\n\n /**\n * Method to render link.\n * @param linkText -Text on Menu link.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderLinkText(linkText: string | undefined, setSize: number | undefined, posinset: number | undefined): JSX.Element {\n return (\n \n {linkText}\n \n );\n }\n\n /**\n * Method to render drawer link.\n * @param item -Single Menuitem.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawerLink(item: IMenuItemData, setSize: number | undefined, posinset: number): JSX.Element | null {\n if (item && item.linkText && item.linkURL && item.linkURL.length > 0) {\n return this._renderLinkMenuItem(item, undefined, true, false, setSize, posinset);\n } else if (item && item.linkText && !item.linkURL) {\n return this._renderSpanMenuItem(item);\n }\n return null;\n }\n\n /**\n * Method to generate menu.\n * @returns Jsx element.\n */\n private _renderDisplay(): JSX.Element[] {\n const { ListItem, menuItemData, isMobileView } = this.props;\n const { activeMenu } = this.state;\n const menuItemList: JSX.Element[] = [];\n\n if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\n let menuItem: IMenuItemData = {};\n for (const menuItemDatum of menuItemData) {\n if (menuItemDatum && menuItemDatum.id === activeMenu) {\n menuItem = menuItemDatum;\n this.setState({ parentMenu: undefined });\n break;\n }\n menuItem = this._getFromSubMenu(menuItemDatum) as IMenuItemData;\n if (menuItem && menuItem.id === activeMenu) {\n break;\n }\n }\n\n menuItem &&\n menuItemList.push(\n \n {` `}\n {this._createMenuItemList(menuItem)}\n {` `}\n \n );\n } else {\n menuItemData.forEach((item: IMenuItemData, index: number) => {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n \n );\n });\n }\n\n return menuItemList;\n }\n\n /**\n * Method to get data for submenu.\n * @param item -Single Menuitem.\n * @returns IMenuItemData.\n */\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\n const subMenus = item && item.subMenu;\n if (subMenus && subMenus.length > 0) {\n for (let i = 0; i <= subMenus.length - 1; i++) {\n if (subMenus[i].id === this.state.activeMenu) {\n this.setState({ parentMenu: item?.id });\n return subMenus[i];\n }\n const found = this._getFromSubMenu(subMenus[i]);\n if (found) {\n return found;\n }\n }\n }\n return null;\n }\n\n /**\n * Method to create item list.\n * @param menuItemData -Single Menuitem.\n * @returns Jsx element.\n */\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id);\n }\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id)}\n \n );\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\n return this._renderLinkMenuItem(menuItemData, menuItemData.id, false, true);\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\n return this._renderSpanMenuItem(menuItemData, menuItemData.id, true);\n }\n\n return null;\n }\n\n private _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number, IsSubMenu?: boolean): JSX.Element | null {\n const { isMobileView, ListItem } = this.props;\n const enableMultiSupportMenu = this.props.config.enableMultilevelMenu || false;\n const subMenuLevel = 3;\n const multiLevelSupportedMenu = this.props.config.menuLevelSupport || subMenuLevel;\n\n // Const isParentMenu:boolean= false;\n if (activeMenu && this.state.activeMenu !== activeMenu) {\n this.props.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\n return null;\n }\n\n if (!subMenus || subMenus.length === 0) {\n this.props.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\n return null;\n }\n\n let levelClassName: string = '';\n const menuOptions =\n subMenus &&\n subMenus.map((option: IMenuItemData, idx: number) => {\n const hasOptions = option.subMenu && option.subMenu.length > 0;\n let menuItem: JSX.Element | null;\n if (hasOptions && isMobileView) {\n menuItem = this._renderButtonMenuItem(option, activeMenu, idx);\n } else {\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, idx) : this._renderSpanMenuItem(option);\n }\n let subMenu;\n const haveSubmenu = hasOptions && enableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - 1;\n if (haveSubmenu) {\n this.currentLevel++;\n levelClassName = enableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined, true);\n }\n return (\n \n {menuItem}\n {subMenu}\n \n );\n });\n return this._renderMenu(levelClassName, menuOptions, activeMenu, IsSubMenu);\n }\n\n /**\n * Method to render button menu item.\n * @param option -Single Menuitem.\n * @param activeMenu -Active menu number.\n * @param index -Active menu index.\n * @returns Jsx element.\n */\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\n const { Button } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n /**\n * Method to render link menu item.\n * @param option -Single Menuitem.\n * @param index -Active menu index.\n * @param hoverEffect -Active menu effect.\n * @param isParent -Is parent menu.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderLinkMenuItem(\n option: IMenuItemData,\n index?: number,\n hoverEffect: boolean = true,\n isParent: boolean = false,\n setSize?: number,\n posinset?: number\n ): JSX.Element | null {\n const { Link, isMobileView } = this.props;\n const linkText = option.linkText ? option.linkText : '';\n const imagesource = option.imageSource ? option.imageSource : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n /**\n * Method to render promotional link.\n * @param linkText -Link text.\n * @param linkUrl -Link url.\n * @returns Jsx element.\n */\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\n const { Link } = this.props;\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n if (linkText && linkUrl) {\n return (\n \n {linkText}\n \n );\n }\n return null;\n }\n\n /**\n * Method to render span menu item.\n * @param option -Single Menu Item.\n * @param index -Index.\n * @param isParent -Is parent menu.\n * @returns Jsx element.\n */\n private _renderSpanMenuItem(option: IMenuItemData, index?: number, isParent: boolean = false): JSX.Element | null {\n const { Span } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n /**\n * Method to render menu.\n * @param level -Menu level.\n * @param menuOptions -Menu lists.\n * @param currentItem -Menu current.\n * @param submenu -Mneu has submenu or not.\n * @returns Jsx element.\n */\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean): JSX.Element | null {\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, isMobileView, showPromotionalContent } = this.props;\n const categoryImageDisplay =\n !isMobileView && showCategoryImage && this.state.categoryImage !== null && this.state.categoryImage !== undefined && !submenu;\n const promotionalContentDisplay =\n !isMobileView && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !submenu;\n const DivContainerClass = this.currentLevel > 2 || categoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\n this.currentLevel = 1;\n return (\n \n 2 &&\n 'navmenu-multi-level'\n )}\n >\n {menuOptions}\n \n
\n {categoryImageDisplay &&\n this.state.categoryImage &&\n this.state.categoryImage.map(item => (\n \n {this.state.categoryImage && this._getCategoryImage(item)}\n {promotionalContentDisplay && this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n \n ))}\n
\n \n );\n }\n\n private readonly _updateCategoryImage = (categoryImageSrc: string, option: IMenuItemData) => () => {\n const linkText = option && option.linkText ? option.linkText : '';\n const promotionalImage: IImageData[] = [{ src: categoryImageSrc, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\n option.promotionalContent.map(item => {\n if (item && item.image) {\n const imageSrc = item.image.src;\n const promotionalItemImageSettings = item.image.imageSettings;\n promotionalImage.push({\n src: imageSrc,\n altText: item.text,\n imageSettings: promotionalItemImageSettings,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n }\n });\n }\n this.setState({\n categoryImage: promotionalImage.length > 0 ? promotionalImage : [{ src: 'empty' }],\n categoryImageAltText: linkText\n });\n };\n\n /**\n * Method to handle dropdwon change.\n * @param data -Menuitem data.\n * @param parentId -Menu parent.\n * @returns Jsx element.\n */\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\n if (!this.props.isMobileView) {\n this.setState({\n activeMenu: this.state.activeMenu && this.state.activeMenu === data.id! ? undefined : data.id!,\n parentMenu: parentId\n });\n if (this.props.showCategoryImage) {\n this._updateCategoryImage(data.imageSource!, data)();\n }\n } else {\n this.setState({\n activeMenu: data.id,\n parentMenu: parentId\n });\n }\n\n this._resetFocus();\n };\n\n /**\n * Method to call when focus lost from menu.\n */\n private readonly _resetFocus = () => {\n if (this.props.isMobileView) {\n setTimeout(() => {\n this.menuNode && this.menuNode.current && this.menuNode.current.focus();\n }, 0);\n }\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleClickOutside = (event: MouseEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\n this.setState({\n activeMenu: undefined,\n categoryImage: null\n });\n }\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleFocusOutside = (event: FocusEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.relatedTarget as Node)) {\n this._closeSubmenu();\n }\n };\n\n /**\n * Method to handle close submenu event.\n */\n private _closeSubmenu(): void {\n if (!this.props.isMobileView) {\n this.setState({ activeMenu: undefined });\n }\n }\n\n /**\n * Method to handle escape key event.\n * @param event -HTML event.\n */\n private readonly _escFunction = (event: React.KeyboardEvent) => {\n if (event.keyCode === this.escapeKey) {\n if (!this.props.isMobileView) {\n const navDrawerList = Array.from(this.menuNode.current!.childNodes);\n for (const item of navDrawerList) {\n const navDrawerButton = item.firstChild as HTMLButtonElement;\n if (navDrawerButton.getAttribute('aria-expanded') === 'true') {\n navDrawerButton.focus();\n }\n }\n }\n this._closeSubmenu();\n }\n };\n\n private readonly _getCategoryImage = (categoryImage?: IImageData): React.ReactNode | null => {\n if (!categoryImage || !categoryImage.src) {\n return null;\n }\n\n const categoryImageUrl = generateImageUrl(categoryImage.src, this.props.context.actionContext.requestContext.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n sm: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n md: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n lg: { q: 'w=300&h=250&m=8', w: 0, h: 0 }\n },\n lazyload: true\n };\n if (categoryImageUrl !== undefined) {\n const ImageData: IImageData = { src: categoryImageUrl };\n return (\n \n );\n }\n return null;\n };\n\n /**\n * Method to handle escape key event.\n * @param drawerState -HTML event.\n */\n private readonly _onDrawerChange = (drawerState: IDrawerState) => {\n const { drawerKeyValue } = this.state;\n const drawerText: string = drawerState.buttonText !== undefined ? drawerState.buttonText : '';\n const newPair = { [drawerText]: drawerState.isOpen };\n this.setState({ drawerKeyValue: { ...drawerKeyValue, ...newPair } });\n };\n}\n\nexport default NavigationMenuView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n ICategoryHierarchyViewProps,\n IRefineMenuViewProps,\n ISearchResultContainerViewProps,\n ISearchResultModalViewProps,\n ISortByViewProps,\n ITitleViewProps\n} from '@msdyn365-commerce-modules/search-result-container';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst SearchResultContainerView: React.FC = props => {\n const {\n SearchResultContainer,\n products,\n pagination,\n ProductsContainer,\n ProductSectionContainer,\n choiceSummary,\n isMobile,\n modalToggle,\n searchResultModal,\n TitleViewProps,\n refineMenu,\n categoryHierarchy,\n sortByOptions,\n CategoryNavContainer,\n RefineAndProductSectionContainer,\n errorMessage,\n FeatureSearchContainer,\n similarLookProduct\n } = props;\n const isRecoSearchPage = props.context.actionContext.requestContext.query?.recommendation;\n if (isMobile) {\n return (\n \n {categoryHierarchy && renderCategoryHierarchy(categoryHierarchy)}\n {renderTitle(TitleViewProps)}\n {choiceSummary}\n {modalToggle}\n {createSearchResultModal(searchResultModal, refineMenu, sortByOptions, isRecoSearchPage)}\n {similarLookProduct}\n \n {errorMessage}\n {products}\n \n {pagination}\n \n );\n }\n return (\n \n {categoryHierarchy && {renderCategoryHierarchy(categoryHierarchy)}}\n \n {refineMenu && renderRefiner(refineMenu)}\n \n {similarLookProduct}\n
\n {TitleViewProps && renderTitle(TitleViewProps)}\n {choiceSummary}\n
\n
\n {sortByOptions && !isRecoSearchPage && renderSort(sortByOptions)}\n
\n \n {errorMessage}\n {products}\n \n {pagination}\n
\n
\n
\n );\n};\n\nconst createSearchResultModal = (\n modalProps: ISearchResultModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element => {\n return React.cloneElement(\n modalProps.modal,\n {},\n modalProps.modalHeader,\n createModalBody(modalProps, refineMenu, sortByDropDown, isRecoSearchPage),\n modalProps.modalFooter\n );\n};\n\nconst createModalBody = (\n props: ISearchResultModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element | null => {\n if (sortByDropDown) {\n return React.cloneElement(props.modalBody, {}, renderSort(sortByDropDown, isRecoSearchPage), renderRefiner(refineMenu));\n }\n return null;\n};\n\nconst renderRefiner = (props: IRefineMenuViewProps): JSX.Element | null => {\n const { refiners, RefineMenuContainer, RefinerSectionContainer } = props;\n if (refiners) {\n return (\n \n \n {refiners.map((submenu, index) => (\n {submenu}\n ))}\n \n \n );\n }\n return null;\n};\n\nconst renderSort = (props: ISortByViewProps, isRecoSearchPage?: string): JSX.Element | null => {\n const { SortingContainer, sortByDropDown } = props;\n if (sortByDropDown && !isRecoSearchPage) {\n return {sortByDropDown};\n }\n return null;\n};\n\nconst renderCategoryHierarchy = (props: ICategoryHierarchyViewProps): JSX.Element | null => {\n const { CategoryHierarchyContainer, categoryHierarchyList, categoryHierarchySeparator } = props;\n if (categoryHierarchyList) {\n return (\n \n {categoryHierarchyList.map((category, index) => (\n \n {category}\n {categoryHierarchyList && categoryHierarchyList[index + 1] && categoryHierarchySeparator}\n \n ))}\n \n );\n }\n\n return null;\n};\n\nconst renderTitle = (props: ITitleViewProps): JSX.Element | null => {\n const { title, TitleContainer } = props;\n if (title) {\n return (\n \n

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

\n
\n );\n }\n return null;\n};\n\nexport default SearchResultContainerView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IInvoicesListViewProps } from './invoices-list';\n\nexport const InvoiceListView: React.FC = props => {\n const { header, filter, content, invoiceRequestModal, pagination } = props;\n\n return (\n \n {header}\n {invoiceRequestModal}\n {filter}\n {content}\n {pagination}\n \n );\n};\n\nexport default InvoiceListView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps, INodeProps, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createTabStateInput, getContentID, TabItemType } from '../..';\nimport { ITabData } from './tab.data';\nimport { ITabProps } from './tab.props.autogenerated';\n\n/**\n *\n * Tab component.\n * @extends {React.PureComponent>}\n */\n\nexport interface ICallToActionProps {\n link: INodeProps[];\n}\n\nexport interface ITabViewProps extends ITabProps<{}> {\n heading?: React.ReactNode;\n TabContainer: IModuleProps;\n headerSection: INodeProps;\n tabHeaderSection: INodeProps;\n tabsSection: INodeProps;\n tabItemContainer: INodeProps;\n tabHeaders: React.ReactNode;\n tabContents: React.ReactNode;\n}\n\nexport interface ITabViewStates {\n currentTabIndex: number;\n}\n\n/**\n *\n * Tab component.\n * @extends {React.Component>}\n */\n@observer\nclass Tab extends React.Component, ITabViewStates> {\n public readonly tabIndexQuery: string = 'activeTab';\n\n private activeLink: HTMLLIElement | null;\n\n constructor(props: ITabProps) {\n super(props);\n const { defaultTabIndex } = this.props.config;\n const { slots } = this.props;\n const slotLength = (slots && slots.tabItems && slots.tabItems.length) || 0;\n let initialIndex = defaultTabIndex && defaultTabIndex <= slotLength && defaultTabIndex > 0 ? defaultTabIndex - 1 : 0;\n const queryString: string =\n (this.props.context &&\n this.props.context.request &&\n this.props.context.request.query &&\n this.props.context.request.query.activeTab) ||\n '';\n let queryTabIndex: number = 0;\n if (queryString.indexOf(':') > 0) {\n const arr = queryString.split(':');\n const moduleId = arr[0];\n if (moduleId === this.props.id) {\n queryTabIndex = Number.parseInt(arr[1], 10);\n }\n }\n initialIndex = queryTabIndex > 0 && queryTabIndex <= slotLength ? queryTabIndex - 1 : initialIndex;\n this.state = { currentTabIndex: initialIndex };\n\n this._getTabHeader = this._getTabHeader.bind(this);\n this._getTabContent = this._getTabContent.bind(this);\n this._onClick = this._onClick.bind(this);\n this._onKeyDown = this._onKeyDown.bind(this);\n this._setGetParameter = this._setGetParameter.bind(this);\n this.activeLink = null;\n }\n\n public shouldComponentUpdate(nextProps: ITabProps, nextState: ITabViewStates): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { slots } = this.props;\n const { heading, className } = this.props.config;\n\n const headingComponent = heading && (\n \n );\n const slotLength = (slots && slots.tabItems && slots.tabItems.length) || 0;\n\n // Const queryTabIndex = this.props.context && this.props.context.request && this.props.context.request.query && +this.props.context.request.query.activeTabIndex || 0;\n // let activeIndex = defaultTabIndex && defaultTabIndex <= slotLength && defaultTabIndex > 0 ? defaultTabIndex - 1 : 0;\n // activeIndex = queryTabIndex > 0 && queryTabIndex <= slotLength ? queryTabIndex - 1 : activeIndex;\n\n const tabViewProps = {\n ...this.props,\n TabContainer: {\n moduleProps: this.props,\n className: classnames('ms-tab', className)\n },\n headerSection: { className: 'ms-tab-header-section' },\n tabsSection: { className: 'ms-tab-tabs-section', tag: 'ul' as NodeTag, role: 'tablist' },\n heading: headingComponent,\n config: this.props && this.props.config,\n tabItemContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-tab-content-section'\n },\n tabContents: slotLength > 0 && slots.tabItems.map((item: React.ReactNode, index: number) => this._getTabContent(item, index)),\n tabHeaders: slotLength > 0 && slots.tabItems.map((item: React.ReactNode, index: number) => this._getTabHeader(item, index))\n };\n return this.props.renderView(tabViewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: MsDyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public componentDidUpdate(): void {\n const { data } = this.props;\n const dataActionTabId = data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.tabId;\n if (dataActionTabId) {\n if (this.props.id === dataActionTabId) {\n this.activeLink && this.activeLink.focus();\n }\n } else {\n const queryString: string =\n (this.props.context &&\n this.props.context.request &&\n this.props.context.request.query &&\n this.props.context.request.query.activeTab) ||\n '';\n if (queryString.indexOf(':') > 0) {\n const arr = queryString.split(':');\n const moduleId = arr[0];\n if (moduleId === this.props.id) {\n this.activeLink && this.activeLink.focus();\n }\n }\n }\n }\n\n /**\n *Set the activate link value on tab click.\n * @param link -Ref link value.\n */\n private readonly _refHandler = (link: HTMLLIElement | null) => {\n this.activeLink = link;\n };\n\n private _getTabHeader(item: React.ReactNode, index: number): React.ReactNode {\n const { data } = this.props;\n const activeContentIndex =\n data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.activeContentIndex;\n const dataActionTabId = data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.tabId;\n const selected =\n activeContentIndex !== undefined && dataActionTabId === this.props.id\n ? activeContentIndex === index\n : this.state.currentTabIndex === index;\n const contentID = getContentID(index, this.props.id);\n\n return (\n \n \n {React.cloneElement(item as React.ReactElement, {\n tabItemType: TabItemType.TabHeader,\n isSelected: index === this.state.currentTabIndex,\n itemIndex: index,\n tabId: this.props.id\n })}\n \n \n );\n }\n\n private readonly _onClick = (index: number, id: string) => (e: React.MouseEvent) => {\n const activeTabState = { activeContentIndex: index, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 1)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n };\n\n private readonly _onKeyDown = (index: number, id: string) => (e: React.KeyboardEvent) => {\n if (e.keyCode === 13) {\n const activeTabState = { activeContentIndex: index, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 1)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n }\n\n if (e.keyCode === 39 || e.keyCode === 37) {\n const { slots } = this.props;\n const slotLength = (slots && slots.tabItems && slots.tabItems.length) || 0;\n\n if (e.keyCode === 39) {\n // If we're at the end, go to the start\n if (index + 1 === slotLength) {\n index = -1;\n }\n const activeTabState = { activeContentIndex: index + 1, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index + 1 });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 2)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n\n // Move left\n } else if (e.keyCode === 37) {\n // If we're at the start, move to the end\n if (index === 0) {\n index = slotLength;\n }\n const activeTabState = { activeContentIndex: index - 1, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index - 1 });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n }\n }\n };\n\n private _getTabContent(item: React.ReactNode, index: number): React.ReactNode {\n return (\n \n {React.cloneElement(item as React.ReactElement, {\n tabItemType: TabItemType.TabContent,\n isSelected: index === this.state.currentTabIndex,\n itemIndex: index,\n tabId: this.props.id\n })}\n \n );\n }\n\n private _setGetParameter(requestContext: MsDyn365.IRequestContext, paramName: string, paramValue: string): string {\n let url;\n\n if (MsDyn365.msdyn365Commerce.isBrowser) {\n url = new URL(window.location.href);\n } else {\n url = new URL(requestContext.url.requestUrl.href);\n }\n\n const params = new window.URLSearchParams(url.search);\n params.set(paramName, paramValue);\n url.search = decodeURIComponent(params.toString());\n return url.toString();\n }\n}\n\nexport default Tab;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, ITelemetry, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport React, { useState } from 'react';\n\nimport { InvoiceModel } from '../helpers/invoice-data';\nimport { payInvoices } from '../helpers/pay-invoices';\nimport { IInvoiceErrorState } from '../invoices-list';\n\ninterface IMakePaymentData {\n invoices: InvoiceModel[];\n}\n\nexport interface IMakePaymentResources {\n makePaymentButtonText: string;\n makePaymentButtonAriaLabel: string;\n}\n\nexport interface IMakePaymentProps extends IComponentProps {\n context: ICoreContext;\n itemKey?: string;\n telemetry: ITelemetry;\n moduleId: string;\n moduleTypeName: string;\n telemetryContent?: ITelemetryContent;\n navigationUrl?: string;\n buttonReferences?: React.RefObject;\n resources: IMakePaymentResources;\n\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n}\n\nexport interface IMakePaymentComponent extends IComponent {}\n\nconst onClick = async (\n _event: React.MouseEvent,\n props: IMakePaymentProps,\n setDisabled: (disabled: boolean) => void\n): Promise => {\n setDisabled(true);\n\n const propagateError = (errorState: IInvoiceErrorState): void => {\n if (props.onError) {\n props.onError(errorState, props.buttonReferences);\n }\n setDisabled(false);\n };\n\n await payInvoices(props.data.invoices, props.context.actionContext, propagateError);\n};\n\nconst MakePaymentComponentActions = {\n onClick\n};\n\n/**\n * On Click function.\n * @param input -Make payment props.\n * @param setDisabled -Set Disabled.\n * @returns Make payment component on click.\n */\nconst onClickHandler = (input: IMakePaymentProps, setDisabled: React.Dispatch>) => async (\n event: React.MouseEvent\n) => {\n await MakePaymentComponentActions.onClick(event, input, setDisabled);\n};\n\nconst MakePayment: React.FC = (input: IMakePaymentProps): JSX.Element => {\n const {\n data: { invoices }\n } = input;\n const hasInvoices = ArrayExtensions.hasElements(invoices.filter(invoice => invoice.canBePaid));\n const [disabled, setDisabled] = useState(false);\n\n return (\n \n {input.resources.makePaymentButtonText}\n \n );\n};\n\n// @ts-expect-error\nexport const MakePaymentComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'MakePayment',\n { component: MakePayment }\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Alert, Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nexport interface IInvoiceErrorProps extends IComponentProps {\n messageHeader?: string;\n errorMessage?: string;\n otherError?: string;\n showError: boolean;\n payInvoiceErrorModalOpen: boolean;\n\n errorDialogHeader: string;\n errorDialogBodyErrorTitle: string;\n errorDialogBodyErrorDescription: string;\n errorDialogFooterGoToCartButtonText: string;\n errorDialogFooterCancelButtonText: string;\n cartUrl: string;\n\n setPayInvoiceErrorModalClose(): void;\n}\n\nexport interface IInvoiceErrorComponent extends IComponent {}\n\nexport const InvoiceError: React.FC = ({\n messageHeader,\n errorMessage,\n otherError,\n showError,\n payInvoiceErrorModalOpen,\n errorDialogHeader,\n errorDialogBodyErrorTitle,\n errorDialogBodyErrorDescription,\n errorDialogFooterGoToCartButtonText,\n errorDialogFooterCancelButtonText,\n cartUrl,\n setPayInvoiceErrorModalClose\n}) => {\n const errorMessages: (string | undefined)[] = [];\n\n if (otherError) {\n errorMessages.push(otherError);\n } else {\n errorMessages.push(errorMessage);\n }\n\n const className = 'msc-pay-invoice-error-dialog';\n\n return (\n <>\n 0} color='danger' assertive aria-label={messageHeader}>\n \n {errorMessages.map((message, index) => {\n return (\n
\n {message}\n
\n );\n })}\n
\n \n \n {errorDialogHeader}\n \n \n
\n
{errorDialogBodyErrorTitle}
\n
{errorDialogBodyErrorDescription}
\n
\n
\n \n \n {errorDialogFooterGoToCartButtonText}\n \n \n {errorDialogFooterCancelButtonText}\n \n \n
\n \n );\n};\n\n// @ts-expect-error\nexport const InvoiceErrorComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'InvoiceError',\n { component: InvoiceError }\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync, IActionContext } from '@msdyn365-commerce/core';\nimport { getCartState } from '@msdyn365-commerce/global-state';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { IInvoiceErrorState } from '../invoices-list';\nimport { IPayableInvoice } from './invoice-data';\n\nexport type ICartActionFailureReason = 'EMPTYINPUT' | 'CARTACTIONFAILED';\nexport interface IAddInvoicesToCartFailureResult {\n failureReason: ICartActionFailureReason;\n}\n\nexport const payInvoices = async (\n invoices: IPayableInvoice[],\n actionContext: IActionContext,\n onError: (errorState: IInvoiceErrorState) => void\n) => {\n const invoicesToAdd: string[] = invoices.filter(invoice => invoice.canBePaid).map(invoice => invoice.id);\n\n if (!ArrayExtensions.hasElements(invoicesToAdd)) {\n onError({ errorMessage: '', errorReason: { failureReason: 'EMPTYINPUT' } });\n return;\n }\n\n const cartState = await getCartState(actionContext);\n const result = await cartState.addInvoicesToCart({ invoiceIds: invoicesToAdd });\n\n if (result.status !== 'SUCCESS') {\n onError({\n errorMessage: '',\n errorReason: { failureReason: 'CARTACTIONFAILED' },\n otherError: result.errorDetails?.LocalizedMessage,\n errorCode: result.errorDetails?.ErrorResourceId\n });\n return;\n }\n\n const cartUrl = getUrlSync('cart', actionContext);\n if (cartUrl) {\n window?.location.assign(cartUrl);\n }\n};\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport { IStoreSelectorViewProps } from './farmlands-store-selector';\r\n\r\nconst StoreSelectorView: React.FC = (props) => {\r\n const {\r\n BodyContainerProps,\r\n FooterContainerProps,\r\n HeaderContainerProps,\r\n StoreSelectorContainerProps,\r\n ModuleProps,\r\n headerText,\r\n search,\r\n state,\r\n spinner,\r\n locationsList,\r\n noLocationsMessage,\r\n cancelButton,\r\n submitButton\r\n } = props;\r\n\r\n return (\r\n \r\n \r\n {headerText}\r\n \r\n {search}\r\n {state.isSearchInProgress ? (\r\n {spinner}\r\n ) : (\r\n state.hasSearched && (\r\n <>\r\n
\r\n

Stores near you

\r\n {locationsList ? locationsList : noLocationsMessage}\r\n \r\n )\r\n )}\r\n \r\n \r\n {cancelButton}\r\n {submitButton}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default StoreSelectorView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IModuleProps, INodeProps, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { ITabItemData } from './tab-item.data';\nimport { ITabItemProps } from './tab-item.props.autogenerated';\n\nexport interface ITabItemViewProps {\n TabContentContainer: IModuleProps;\n TabHeaderContainer: IModuleProps;\n tabSlots: INodeProps;\n TabItemContent: INodeProps;\n tabItemType?: TabItemType;\n tabHeader: React.ReactNode;\n}\n\nexport interface ITabItemExtentedProps extends ITabItemProps {\n tabItemType?: TabItemType;\n isSelected?: boolean;\n itemIndex?: number;\n tabId?: string;\n}\n\nexport enum TabItemType {\n TabHeader,\n TabContent\n}\n\n/**\n *\n * TabItem component.\n * @extends {React.Component}\n */\n@observer\nclass TabItem extends React.PureComponent {\n private readonly moduleContentClassName: string = 'ms-tab-item-content';\n\n private readonly moduleHeaderClassName: string = 'ms-tab-item-header';\n\n constructor(props: ITabItemProps) {\n super(props);\n this._renderTabHeader = this._renderTabHeader.bind(this);\n }\n\n public render(): JSX.Element {\n const { slots, renderView, config, data, isSelected, itemIndex } = this.props;\n const index = itemIndex || 0;\n const contentID = getContentID(index, this.props.tabId || '');\n const activeContentIDResult = data && data.activeTabState && data.activeTabState.result;\n const shown =\n activeContentIDResult &&\n activeContentIDResult.tabId === this.props.tabId &&\n activeContentIDResult.activeContentIndex !== undefined\n ? activeContentIDResult.activeContentIndex === index\n : isSelected || false;\n const viewProps = {\n ...this.props,\n TabContentContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleContentClassName, config.className)\n },\n TabHeaderContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleHeaderClassName, config.className)\n },\n TabItemContent: {\n className: 'ms-tab-item-content__content',\n tag: 'section' as NodeTag,\n 'aria-hidden': !shown,\n role: 'tabpanel',\n tabIndex: shown ? 0 : -1,\n id: contentID\n },\n tabHeader: this._renderTabHeader(),\n tabSlots: slots\n };\n return renderView(viewProps) as React.ReactElement;\n }\n\n private _renderTabHeader(): React.ReactNode {\n return <>{this.props.config.tabItemTitle};\n }\n}\n\nexport const getContentID = (index: number, id: string) => {\n return `tab-item-content-${id}-${index}`;\n};\n\nexport default TabItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, IDateFormatOptions, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { IPayInvoiceResources, PayInvoiceComponent } from '@msdyn365-commerce-modules/invoice';\nimport React from 'react';\n\nimport { InvoiceDetailsModel } from '../helpers/invoice-data';\n\nexport interface IInvoiceDetailsHeaderData {\n invoiceDetails: InvoiceDetailsModel;\n}\n\nexport interface IInvoiceDetailsHeaderResources extends IPayInvoiceResources {\n invoiceOrderItem: string;\n invoiceOrderItems: string;\n invoiceIdLabel: string;\n invoicePlacedByLabel: string;\n invoiceAmountDueText: string;\n invoicePaymentDueDateText: string;\n}\n\nexport interface IInvoiceDetailsHeaderProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n resources: IInvoiceDetailsHeaderResources;\n onError?(): void;\n}\n\nexport interface IInvoiceDetailsHeaderComponent extends IComponent {}\n\nconst formatShortDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'numeric', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\nconst formatLongDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\nconst formatAmount = (context: ICoreContext, amount: number | undefined, currencyCode: string | undefined) => {\n if (amount === undefined) {\n return '';\n }\n return context.cultureFormatter.formatCurrency(amount, currencyCode);\n};\n\nconst InvoiceDetailsHeader: React.FC = (props: IInvoiceDetailsHeaderProps): JSX.Element => {\n const {\n className,\n data: { invoiceDetails },\n resources,\n onError\n } = props;\n\n const invoiceNumberText = resources.invoiceIdLabel.replace('{0}', invoiceDetails.id);\n\n const invoiceOrderItemsText =\n invoiceDetails.lines.length === 1\n ? resources.invoiceOrderItem\n : resources.invoiceOrderItems.replace('{0}', invoiceDetails.lines.length.toString());\n\n const invoiceInfoContainerClassName = `${className}__invoice-info-container`;\n const orderInfoContainerClassName = `${invoiceInfoContainerClassName}__order-info-container`;\n const orderInfoClassName = `${orderInfoContainerClassName}__order-info`;\n const orderMainInfoClassName = `${orderInfoClassName}__main-info`;\n const orderDetailsClassName = `${orderInfoClassName}__details`;\n `${className}__actions`;\n const actionsClassName = `${className}__actions`;\n const amountSummaryClassName = `${invoiceInfoContainerClassName}__amount-summary`;\n const orderDate = formatShortDate(props.context, invoiceDetails.invoiceDate);\n\n const dueDate = formatLongDate(props.context, invoiceDetails.dueDate);\n const dueDateText = resources.invoicePaymentDueDateText.replace('{0}', dueDate);\n\n return (\n
\n
{invoiceNumberText}
\n
\n
\n
\n
\n
\n {resources.invoicePlacedByLabel}\n {invoiceDetails.customerName}\n
\n
\n
\n
{orderDate}
\n
{invoiceOrderItemsText}
\n
\n
\n
\n
\n
{resources.invoiceAmountDueText}
\n
\n {formatAmount(props.context, invoiceDetails.amountDue, invoiceDetails.currencyCode)}\n
\n
{dueDateText}
\n
\n
\n
\n \n
\n
\n );\n};\n\nexport const InvoiceDetailsHeaderComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoiceDetailsHeaderComponent\n>('InvoiceDetailsHeaderComponent', { component: InvoiceDetailsHeader });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { IInvoicePaymentDetails } from '../helpers/invoice-data';\n\nexport interface IInvoiceDetailsPaymentDetailsData {\n invoicePaymentDetails: IInvoicePaymentDetails;\n}\n\nexport interface IInvoiceDetailsPaymentDetailsResources {\n invoicePaymentDiscounts: string;\n invoicePaymentSubtotal: string;\n invoicePaymentCharges: string;\n invoicePaymentTax: string;\n invoicePaymentInvoiceTotal: string;\n}\n\nexport interface IInvoiceDetailsPaymentDetailsProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n resources: IInvoiceDetailsPaymentDetailsResources;\n}\n\nexport interface IInvoiceDetailsPaymentDetailsComponent extends IComponent {}\n\ninterface IInvoicePaymentLineProps {\n label: string;\n value: number;\n className: string;\n}\n\nconst InvoiceDetailsPaymentDetails: React.FC = (\n props: IInvoiceDetailsPaymentDetailsProps\n): JSX.Element | null => {\n const {\n className,\n data: { invoicePaymentDetails },\n resources\n } = props;\n\n const lineClassName = `${className}__line`;\n\n const lines: IInvoicePaymentLineProps[] = [];\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalDiscount)) {\n lines.push({\n label: resources.invoicePaymentDiscounts,\n value: invoicePaymentDetails.totalDiscount,\n className: `${lineClassName}-total-discount`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.subtotal)) {\n lines.push({\n label: resources.invoicePaymentSubtotal,\n value: invoicePaymentDetails.subtotal,\n className: `${lineClassName}-subtotal`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalCharges)) {\n lines.push({\n label: resources.invoicePaymentCharges,\n value: invoicePaymentDetails.totalCharges,\n className: `${lineClassName}-total-charges`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalTax)) {\n lines.push({\n label: resources.invoicePaymentTax,\n value: invoicePaymentDetails.totalTax,\n className: `${lineClassName}-total-tax`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalAmount)) {\n lines.push({\n label: resources.invoicePaymentInvoiceTotal,\n value: invoicePaymentDetails.totalAmount,\n className: `${lineClassName}-total-amount`\n });\n }\n\n if (!ArrayExtensions.hasElements(lines)) {\n return null;\n }\n\n return (\n
\n {lines.map(line => {\n return (\n
\n
{line.label}
\n
\n {props.context.cultureFormatter.formatCurrency(line.value, invoicePaymentDetails.currencyCode)}\n
\n
\n );\n })}\n
\n );\n};\n\nexport const InvoiceDetailsPaymentDetailsComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoiceDetailsPaymentDetailsComponent\n>('InvoiceDetailsPaymentDetailsComponent', { component: InvoiceDetailsPaymentDetails });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, IImageSettings, Image, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { SalesInvoiceLine } from '@msdyn365-commerce/retail-proxy';\nimport { getFallbackImageUrl, getProductPageUrlSync, ObjectExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport React from 'react';\n\nimport { IInvoiceProductLine, InvoiceDetailsModel } from '../helpers/invoice-data';\n\nexport interface IInvoiceDetailsProductsData {\n invoiceDetails: InvoiceDetailsModel;\n}\n\nexport interface IInvoiceDetailsProductsResources {\n invoiceProductColor: string;\n invoiceProductSize: string;\n invoiceProductStyle: string;\n invoiceQuantity: string;\n}\n\nexport interface IInvoiceDetailsProductsProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n imageSettings?: IImageSettings;\n resources: IInvoiceDetailsProductsResources;\n}\n\nexport interface IInvoiceDetailsProductsComponent extends IComponent {}\n\nconst _renderProductDimensions = (\n className: string,\n resources: IInvoiceDetailsProductsResources,\n product: SalesInvoiceLine\n): JSX.Element => {\n return (\n
\n {StringExtensions.isNullOrWhitespace(product.ColorName) ? null : (\n
{resources.invoiceProductColor.replace('{0}', product.ColorName!)}
\n )}\n {StringExtensions.isNullOrWhitespace(product.SizeName) ? null : (\n
{resources.invoiceProductSize.replace('{0}', product.SizeName!)}
\n )}\n {StringExtensions.isNullOrWhitespace(product.StyleName) ? null : (\n
{resources.invoiceProductStyle.replace('{0}', product.StyleName!)}
\n )}\n
\n );\n};\n\nconst _renderProductImage = (\n className: string,\n context: ICoreContext,\n product: IInvoiceProductLine,\n imageSettings?: IImageSettings\n): JSX.Element | null => {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=315&h=315&m=6', w: 0, h: 0 },\n lg: { q: 'w=315&h=315&m=6', w: 0, h: 0 },\n xl: { q: 'w=315&h=315&m=6', w: 0, h: 0 }\n },\n lazyload: true,\n cropFocalRegion: true\n };\n\n if (imageSettings) {\n imageSettings.cropFocalRegion = true;\n }\n\n const fallbackImage = getFallbackImageUrl(product.ItemId, context.actionContext.requestContext.apiSettings);\n return (\n \n );\n};\n\nconst formatAmount = (context: ICoreContext, amount: number | undefined, currencyCode: string | undefined) => {\n if (amount === undefined) {\n return '';\n }\n return context.cultureFormatter.formatCurrency(amount, currencyCode);\n};\n\nconst InvoiceDetailsProducts: React.FC = (props: IInvoiceDetailsProductsProps): JSX.Element => {\n const {\n className,\n data: { invoiceDetails },\n resources\n } = props;\n\n const productLineClass = `${className}__product-line`;\n const productLineInfoContainerClass = `${productLineClass}__product-info-container`;\n const productLineDetailsClass = `${productLineInfoContainerClass}__product-details`;\n const productLineSmallDetailsClass = `${productLineDetailsClass}__small-details`;\n\n return (\n
\n {invoiceDetails.lines.map(product => {\n const quantity = product.Quantity || 1;\n\n let productUrl = '';\n if (!ObjectExtensions.isNullOrUndefined(product.ProductName) && !ObjectExtensions.isNullOrUndefined(product.RecordId)) {\n productUrl = getProductPageUrlSync(product.ProductName, product.RecordId, props.context.actionContext);\n }\n\n return (\n
\n
\n {_renderProductImage(`${productLineInfoContainerClass}__product-image`, props.context, product)}\n
\n \n {product.ProductName}\n \n
\n {_renderProductDimensions(`${productLineSmallDetailsClass}__dimensions`, resources, product)}\n
\n {formatAmount(props.context, product.Price, invoiceDetails.currencyCode)}\n
\n
\n {resources.invoiceQuantity.replace('{0}', quantity.toString())}\n
\n
\n
\n
\n
\n {formatAmount(props.context, product.NetAmount, invoiceDetails.currencyCode)}\n
\n
\n );\n })}\n
\n );\n};\n\nexport const InvoiceDetailsProductsComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoiceDetailsProductsComponent\n>('InvoiceDetailsProductsComponent', { component: InvoiceDetailsProducts });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { InvoicePaidStatus, OrderInvoice, SalesInvoice, SalesInvoiceLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { IPayableInvoice } from '@msdyn365-commerce-modules/invoice';\n\nexport interface IInvoicePaymentDetails {\n totalDiscount?: number;\n subtotal?: number;\n totalCharges?: number;\n totalTax?: number;\n totalAmount?: number;\n currencyCode?: string;\n}\n\nexport interface IInvoiceProductLine extends SalesInvoiceLine {\n primaryImageUrl?: string;\n}\n\n/**\n * Represents invoice details data model.\n */\nexport class InvoiceDetailsModel implements IPayableInvoice, IInvoicePaymentDetails {\n public id: string;\n\n public invoiceDate?: Date;\n\n public customerAccountNumber?: string;\n\n public customerName?: string;\n\n public dueDate?: Date;\n\n public amountDue?: number;\n\n public status?: InvoicePaidStatus;\n\n public lines: IInvoiceProductLine[];\n\n public totalDiscount?: number;\n\n public subtotal?: number;\n\n public totalCharges?: number;\n\n public totalTax?: number;\n\n public totalAmount?: number;\n\n public currencyCode?: string;\n\n public constructor(invoice: OrderInvoice, invoiceDetails: SalesInvoice, products: SimpleProduct[]) {\n this.id = invoice.Id || '';\n this.invoiceDate = invoice.InvoiceDate ? new Date(invoice.InvoiceDate) : undefined;\n this.customerName = invoice.CustomerName;\n this.dueDate = invoice.InvoiceDueDate ? new Date(invoice.InvoiceDueDate) : undefined;\n this.amountDue = invoice.AmountBalance;\n this.status = invoice.InvoicePaidStatusValue;\n this.lines = (invoiceDetails.SalesInvoiceLine || []).map(line => {\n const productLine: IInvoiceProductLine = {\n ...line,\n primaryImageUrl: products.find(product => product.RecordId === line.RecordId)?.PrimaryImageUrl\n };\n return productLine;\n });\n\n this.totalDiscount = invoiceDetails.TotalDiscount;\n this.subtotal = invoiceDetails.InvoiceSubtotal;\n this.totalCharges = invoiceDetails.TotalCharges;\n this.totalTax = invoiceDetails.TotalTaxAmount;\n this.totalAmount = invoice.TotalAmount;\n this.currencyCode = invoice.CurrencyCode;\n }\n\n public get canBePaid(): boolean {\n return this.status !== InvoicePaidStatus.Paid;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync } from '@msdyn365-commerce/core';\nimport { SalesInvoiceLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { InvoiceErrorComponent } from '@msdyn365-commerce-modules/invoice';\nimport { getSimpleProductsAction, ProductInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { InvoiceDetailsHeaderComponent } from './components/invoice-details-header';\nimport { InvoiceDetailsPaymentDetailsComponent } from './components/invoice-details-payment-summary';\nimport { InvoiceDetailsProductsComponent } from './components/invoice-details-products';\nimport { InvoiceDetailsModel } from './helpers/invoice-data';\nimport { IInvoiceDetailsData } from './invoice-details.data';\nimport { IInvoiceDetailsProps } from './invoice-details.props.autogenerated';\n\nexport interface IInvoiceDetailsViewState {\n invoiceDetails?: InvoiceDetailsModel;\n payInvoiceErrorModalOpen?: boolean;\n}\n\nexport interface IInvoiceDetailsViewProps extends IInvoiceDetailsProps {\n moduleProps: IModuleProps;\n header: JSX.Element;\n products: JSX.Element;\n paymentDetails: JSX.Element;\n payInvoiceError?: JSX.Element;\n}\n\n/**\n * InvoiceDetails component.\n * @extends {React.PureComponent>}\n */\nclass InvoiceDetails extends React.PureComponent, IInvoiceDetailsViewState> {\n private static readonly _className: string = 'msc-invoice-details';\n\n public constructor(props: IInvoiceDetailsProps) {\n super(props);\n\n this.state = {};\n this._onAddToCartFailed = this._onAddToCartFailed.bind(this);\n this._setPayInvoiceErrorModalClose = this._setPayInvoiceErrorModalClose.bind(this);\n }\n\n public async componentDidMount(): Promise {\n const invoice = await this.props.data.invoice;\n const invoiceDetails = await this.props.data.invoiceDetails;\n\n const products = await this._getProducts(invoiceDetails.SalesInvoiceLine, invoiceDetails.ChannelId);\n\n const invoiceDetailsModel = new InvoiceDetailsModel(invoice, invoiceDetails, products);\n\n this.setState({\n invoiceDetails: invoiceDetailsModel,\n payInvoiceErrorModalOpen: false\n });\n }\n\n public render(): JSX.Element | null {\n if (!this.state.invoiceDetails) {\n return null;\n }\n\n const header = this._renderHeader();\n const products = this._renderProducts();\n const paymentDetails = this._renderPaymentDetails();\n const payInvoiceError = this._renderInvoiceErrors();\n\n const props: IInvoiceDetailsViewProps = {\n ...(this.props as IInvoiceDetailsProps),\n moduleProps: {\n moduleProps: this.props,\n className: InvoiceDetails._className\n },\n header,\n products,\n paymentDetails,\n payInvoiceError\n };\n\n return this.props.renderView(props);\n }\n\n private async _getProducts(invoiceLines: SalesInvoiceLine[] = [], channelId?: number): Promise {\n const productInputs = invoiceLines\n .filter(product => product.RecordId)\n .map(\n product =>\n new ProductInput(\n product.RecordId!,\n this.props.context.request.apiSettings,\n channelId,\n undefined,\n this.props.context.actionContext.requestContext\n )\n );\n return getSimpleProductsAction(productInputs, this.props.context.actionContext);\n }\n\n private _renderHeader(): JSX.Element {\n const invoiceDetails = this.state.invoiceDetails!;\n return (\n \n );\n }\n\n private _renderProducts(): JSX.Element {\n const invoiceDetails = this.state.invoiceDetails!;\n const { imageSettings } = this.props.config;\n return (\n \n );\n }\n\n private _renderPaymentDetails(): JSX.Element {\n const invoiceDetails = this.state.invoiceDetails!;\n return (\n \n );\n }\n\n private _onAddToCartFailed(): void {\n this.setState({ payInvoiceErrorModalOpen: true });\n }\n\n private _setPayInvoiceErrorModalClose(): void {\n this.setState({ payInvoiceErrorModalOpen: false });\n }\n\n private _renderInvoiceErrors(): JSX.Element {\n const {\n resources: {\n payInvoiceErrorDialogHeader,\n payInvoiceErrorDialogBodyErrorTitle,\n payInvoiceErrorDialogBodyErrorDescription,\n payInvoiceErrorDialogFooterGoToCartButtonText,\n payInvoiceErrorDialogFooterCancelButtonText\n }\n } = this.props;\n\n const cartUrl = getUrlSync('cart', this.props.context.actionContext) || '';\n\n const errorClassName = `${InvoiceDetails._className}__errors`;\n\n return (\n \n );\n }\n}\n\nexport default InvoiceDetails;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AsyncResult } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header';\nimport { Collapse, Drawer, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nconst headerView: React.FC = props => {\n const { HeaderTag, HeaderContainer, HeaderTopBarContainer, Divider } = props;\n return (\n \n \n \n {props.navIcon}\n {props.logo}\n {_renderReactFragment(props.search)}\n {props.preferredStore}\n {_renderAccountBlock(props, false)}\n {props.wishListIconDesktop}\n \n {props.cartIcon}\n {_renderReactFragment(props.siteOptions)}\n \n {_renderCollapseMenu(props)}\n {_renderReactFragment(props.menuBar)}\n \n \n );\n};\n\nfunction _renderCollapseMenu(props: IHeaderViewProps): JSX.Element | null {\n const { Divider, MobileMenuLinksContainer, mobileMenuCollapsed } = props;\n return (\n \n \n {_renderReactFragment(props.search)}\n {_renderMobileAccountBlock(props, true)}\n {props.wishListIconMobile}\n {props.siteOptions}\n \n \n {_renderReactFragment(props.menuBar)}\n \n );\n}\n\nconst renderCustomerName = (accountInformation: AsyncResult): React.ReactChild => {\n const customer = accountInformation && accountInformation.result;\n return <>{customer ? customer.FirstName || customer.Name : ''};\n};\n\nfunction _renderMobileAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\n const { AccountInfoDropdownParentContainer, signOutLink, signInLink, data, accountLinks } = props;\n\n if (AccountInfoDropdownParentContainer) {\n const accountClassName = classnames(\n 'ms-header__drawer',\n AccountInfoDropdownParentContainer.className,\n renderForMobile ? 'account-mobile' : 'account-desktop'\n );\n\n if (accountLinks) {\n return (\n \n
\n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\n {signOutLink}\n
\n \n );\n } else if (signInLink) {\n return (\n \n {signInLink}\n \n );\n }\n }\n return null;\n}\n\nfunction _renderAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\n const {\n AccountInfoDropdownParentContainer,\n AccountInfoDropdownPopoverConentContainer,\n accountInfoDropdownButton,\n signOutLink,\n signInLink,\n accountLinks\n } = props;\n\n if (AccountInfoDropdownParentContainer) {\n const accountClassName = classnames(\n AccountInfoDropdownParentContainer.className,\n renderForMobile ? 'account-mobile' : 'account-desktop'\n );\n if (AccountInfoDropdownPopoverConentContainer) {\n return (\n \n {accountInfoDropdownButton}\n \n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\n {signOutLink}\n \n \n );\n } else if (signInLink) {\n return (\n \n {signInLink}\n \n );\n }\n }\n\n return null;\n}\n\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\n return (\n <>\n {items && items.length > 0\n ? items.map((slot: React.ReactNode, index: number) => {\n return {slot};\n })\n : null}\n \n );\n}\n\nexport default headerView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport classnames from 'classnames';\nimport React from 'react';\n\nexport interface IInvoicesTableHeaderResources {\n invoicesText: string;\n invoiceNumberText: string;\n invoiceDateMobileText: string;\n invoiceDateText: string;\n invoiceUsersText: string;\n invoiceAmountText: string;\n invoiceDueDateText: string;\n invoiceAmountDueText: string;\n invoiceStatusText: string;\n invoiceActionsText: string;\n invoiceListSelectAllRadioAriaLabelText: string;\n}\n\nexport interface IInvoicesTableHeaderProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n\n isSelectedAll: boolean;\n isMobile: boolean;\n isAdmin: boolean;\n\n resources: IInvoicesTableHeaderResources;\n\n onSelectAll(isSelected: boolean): void;\n}\n\nexport interface IInvoicesTableHeaderComponent extends IComponent {}\n\nconst getDesktopHeaderCells = (props: IInvoicesTableHeaderProps, rowClassName: string, switchCheckedState: () => void) => {\n const { resources } = props;\n return (\n <>\n \n \n \n {resources.invoiceNumberText}\n {resources.invoiceDateText}\n {props.isAdmin ? {resources.invoiceUsersText} : null}\n {resources.invoiceAmountText}\n {resources.invoiceDueDateText}\n {resources.invoiceAmountDueText}\n {resources.invoiceStatusText}\n {resources.invoiceActionsText}\n \n );\n};\n\nconst getMobileHeaderCells = (props: IInvoicesTableHeaderProps, rowClassName: string, switchCheckedState: () => void) => {\n const { resources } = props;\n return (\n <>\n \n \n \n {resources.invoicesText}\n {resources.invoiceDateMobileText}\n \n {` `}\n {/* Actions */}\n \n );\n};\n\nconst InvoicesTableHeader: React.FC = (props: IInvoicesTableHeaderProps): JSX.Element => {\n const rowClassName = `${props.className}__row`;\n\n const switchCheckedState = () => {\n props.onSelectAll(!props.isSelectedAll);\n };\n\n let headerCells: JSX.Element;\n if (props.isMobile) {\n headerCells = getMobileHeaderCells(props, rowClassName, switchCheckedState);\n } else {\n headerCells = getDesktopHeaderCells(props, rowClassName, switchCheckedState);\n }\n\n return (\n \n {headerCells}\n \n );\n};\n\nexport const InvoicesTableHeaderComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoicesTableHeaderComponent\n>('InvoicesTableHeaderComponent', { component: InvoicesTableHeader });\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 { IStoreSelectorViewProps } from './farmlands-pdp-store-selector';\r\n\r\nconst StoreSelectorView: React.FC = props => {\r\n const {\r\n BodyContainerProps,\r\n HeaderContainerProps,\r\n HeaderProps,\r\n ModuleProps,\r\n search,\r\n state,\r\n spinner,\r\n locationsList,\r\n noLocationsMessage,\r\n } = props;\r\n\r\n return (\r\n \r\n \r\n {HeaderProps}\r\n \r\n \r\n {search}\r\n {state.isSearchInProgress ? (\r\n {spinner}\r\n ) : (\r\n state.hasSearched && (\r\n <>\r\n
\r\n

Stores near you

\r\n {locationsList ? locationsList : noLocationsMessage}\r\n \r\n )\r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default StoreSelectorView;\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 { ITabViewProps } from './tab';\n\nconst tabView: React.FC = props => {\n const { heading, TabContainer, tabHeaders, tabContents } = props;\n if (!props.heading && !props.tabHeaders && !props.tabContents) {\n props.context.telemetry.error('Tab content is empty, module wont render');\n return null;\n }\n return (\n \n {heading}\n {tabHeaders}\n {tabContents}\n \n );\n};\n\nexport default tabView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IComponent, IComponentProps, ICoreContext, IDateFormatOptions, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { getInvoiceDetailsPageUrlSync, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, format } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React, { useState } from 'react';\n\nimport { InvoiceModel } from '../../../helpers/invoice-data';\nimport { getInvoiceStatusText, IInvoiceStatusResources } from '../../../helpers/invoice-status';\nimport { IInvoiceErrorState } from '../../../invoices-list';\nimport { IPayInvoiceResources, PayInvoiceComponent } from '../../pay-invoice-component';\nimport { RequestInvoiceButton } from '../../request-invoice-button';\n\ninterface IInvoicesTableRowData {\n invoice: InvoiceModel;\n index: number;\n customer: Customer;\n}\n\nexport interface IInvoicesTableRowResources extends IInvoiceStatusResources, IPayInvoiceResources {\n invoiceCurrentUser: string;\n invoiceViewDetailsButtonText: string;\n invoiceViewDetailsButtonAriaLabel: string;\n invoiceActionsButtonTextAriaLabel?: string;\n invoiceRequestButtonLabel: string;\n invoiceListSelectRadioAriaLabelText: string;\n}\n\nexport interface IInvoicesTableRowProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n isMobile: boolean;\n invoiceReferences?: React.RefObject;\n payInvoiceReferences?: React.RefObject;\n resources: IInvoicesTableRowResources;\n\n onChange(): void;\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n onRequestInvoice?(invoice: InvoiceModel, requestInvoiceButtonReference: React.RefObject): void;\n}\n\nexport interface IInvoicesTableRowComponent extends IComponent {}\n\nconst formatAmount = (context: ICoreContext, amount: number | undefined, currencyCode: string | undefined) => {\n if (amount === undefined) {\n return '';\n }\n return context.cultureFormatter.formatCurrency(amount, currencyCode);\n};\n\nconst formatDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\n/**\n * Request specific invoice function.\n * @param props -Invoice table row props.\n * @param requestInvoiceButtonReference -Reference button.\n * @returns Call Request Invoice.\n */\nconst onRequestSpecificInvoice = (\n props: IInvoicesTableRowProps,\n requestInvoiceButtonReference: React.RefObject\n) => () => {\n props.onRequestInvoice!(props.data.invoice, requestInvoiceButtonReference);\n};\n\nconst getDesktopRowCells = (props: IInvoicesTableRowProps, onSelectLine: () => void) => {\n const {\n data: { invoice, index, customer }\n } = props;\n\n const isCurrentUser =\n !StringExtensions.isNullOrWhitespace(customer.AccountNumber) && customer.AccountNumber === invoice.customerAccountNumber;\n const payInvoiceClassName = `${props.className}__pay-invoice`;\n\n const linkToInvoiceDetails = getInvoiceDetailsPageUrlSync(props.data.invoice.id, props.context.actionContext);\n const invoiceRowArialabel = format(props.resources.invoiceListSelectRadioAriaLabelText, invoice.id);\n const requestInvoiceButtonReference: React.RefObject = React.createRef();\n const payInvoiceButtonReference: React.RefObject = React.createRef();\n return (\n <>\n \n \n \n \n \n {invoice.id}\n \n \n \n {formatDate(props.context, invoice.invoiceDate)}\n \n {customer.IsB2bAdmin ? (\n \n {invoice.customerName}\n {isCurrentUser ? {props.resources.invoiceCurrentUser} : null}\n \n ) : null}\n {formatAmount(props.context, invoice.amount, invoice.currencyCode)}\n \n {formatDate(props.context, invoice.dueDate)}\n \n {formatAmount(props.context, invoice.amountDue, invoice.currencyCode)}\n \n {getInvoiceStatusText(props.resources, invoice.status)}\n \n \n \n \n \n \n );\n};\n\nlet setShowPreviousActions: React.Dispatch> | undefined;\n\n/**\n * On Click view details function.\n * @param linkToInvoiceDetails -Link to invoice details.\n * @returns Go to invoice details.\n */\nconst onClickViewDetails = (linkToInvoiceDetails: string) => () => {\n if (MsDyn365.isBrowser) {\n window.location.href = linkToInvoiceDetails;\n }\n return;\n};\n\n/**\n * Toggle function.\n * @param isShowActions -Link to invoice details.\n * @param setShowActions -Link to invoice details.\n * @returns Go to invoice details.\n */\nconst toggle = (isShowActions: boolean, setShowActions: React.Dispatch>) => () => {\n const shouldShowActions = !isShowActions;\n if (shouldShowActions) {\n if (setShowPreviousActions) {\n setShowPreviousActions(false);\n }\n setShowActions(shouldShowActions);\n setShowPreviousActions = setShowActions;\n } else {\n setShowPreviousActions = undefined;\n setShowActions(shouldShowActions);\n }\n};\n\nconst extraActionsPopup = (props: IInvoicesTableRowProps): JSX.Element | null => {\n const {\n resources: { invoiceViewDetailsButtonAriaLabel, invoiceViewDetailsButtonText, invoiceActionsButtonTextAriaLabel },\n data: { index }\n } = props;\n\n const [showActions, setShowActions] = useState(false);\n\n const linkToInvoiceDetails = getInvoiceDetailsPageUrlSync(props.data.invoice.id, props.context.actionContext);\n\n const className = `${props.className}__extra-actions-cell`;\n const actionsContainerClassName = `${className}__actions-container`;\n const payInvoiceClassName = `${actionsContainerClassName}__pay-invoice`;\n return (\n
\n \n {showActions && (\n
\n \n {invoiceViewDetailsButtonText}\n \n \n \n
\n )}\n
\n );\n};\n\nconst getMobileRowCells = (props: IInvoicesTableRowProps, onSelectLine: () => void) => {\n const {\n data: { invoice }\n } = props;\n\n const linkToInvoiceDetails = getInvoiceDetailsPageUrlSync(props.data.invoice.id, props.context.actionContext);\n const invoiceRowArialabel = format(props.resources.invoiceListSelectRadioAriaLabelText, invoice.id);\n\n return (\n <>\n \n \n \n \n \n {invoice.id}\n \n
\n {invoice.customerName}\n \n \n {formatDate(props.context, invoice.dueDate)}\n
\n {getInvoiceStatusText(props.resources, invoice.status)}\n \n {extraActionsPopup(props)}\n \n );\n};\n\nconst InvoicesTableRow: React.FC = (props: IInvoicesTableRowProps): JSX.Element => {\n const {\n data: { invoice }\n } = props;\n\n const onSelectLine = () => {\n invoice.isSelected = !invoice.isSelected;\n props.onChange();\n };\n\n let rowCells: JSX.Element;\n if (props.isMobile) {\n rowCells = getMobileRowCells(props, onSelectLine);\n } else {\n rowCells = getDesktopRowCells(props, onSelectLine);\n }\n\n return {rowCells};\n};\n\nexport const InvoicesTableRowComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoicesTableRowComponent\n>('InvoicesTableRowComponent', { component: InvoicesTableRow });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { InvoicePaidStatus, OrderInvoice } from '@msdyn365-commerce/retail-proxy';\n\nexport interface IPayableInvoice {\n readonly id: string;\n readonly canBePaid: boolean;\n}\n\n/**\n * Represents invoice data model.\n */\nexport class InvoiceModel implements IPayableInvoice {\n public id: string;\n\n public invoiceDate?: Date;\n\n public customerAccountNumber?: string;\n\n public customerName?: string;\n\n public amount?: number;\n\n public dueDate?: Date;\n\n public amountDue?: number;\n\n public status?: InvoicePaidStatus;\n\n public currencyCode?: string;\n\n public isSelected: boolean;\n\n public constructor(invoice: OrderInvoice) {\n this.id = invoice.Id || '';\n this.invoiceDate = invoice.InvoiceDate ? new Date(invoice.InvoiceDate) : undefined;\n this.customerAccountNumber = invoice.CustomerAccountNumber;\n this.customerName = invoice.CustomerName;\n this.amount = invoice.TotalAmount;\n this.dueDate = invoice.InvoiceDueDate ? new Date(invoice.InvoiceDueDate) : undefined;\n this.amountDue = invoice.AmountBalance;\n this.status = invoice.InvoicePaidStatusValue;\n this.currencyCode = invoice.CurrencyCode;\n\n this.isSelected = false;\n }\n\n public get canBePaid(): boolean {\n return this.status !== InvoicePaidStatus.Paid;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { InvoicePaidStatus } from '@msdyn365-commerce/retail-proxy';\n\nexport interface IInvoiceStatusResources {\n invoiceStatusNone: string;\n invoiceStatusUnpaid: string;\n invoiceStatusPartiallyPaid: string;\n invoiceStatusPaid: string;\n}\n\nexport const getInvoiceStatusText = (resources: IInvoiceStatusResources, invoiceStatus: InvoicePaidStatus | undefined) => {\n switch (invoiceStatus) {\n case InvoicePaidStatus.None:\n return resources.invoiceStatusNone;\n\n case InvoicePaidStatus.Unpaid:\n return resources.invoiceStatusUnpaid;\n\n case InvoicePaidStatus.PartiallyPaid:\n return resources.invoiceStatusPartiallyPaid;\n\n case InvoicePaidStatus.Paid:\n return resources.invoiceStatusPaid;\n default:\n return '';\n }\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ITileListItemViewProps } from './tile-list-item';\n\n/**\n *\n * ITileListItemViewProps component.\n * @param props - Component props.\n * @returns TileListView.\n */\nconst renderTileListItemContent = (props: ITileListItemViewProps): JSX.Element => {\n const {\n heading,\n paragraph,\n backgroundImage,\n links,\n thumbnailImage,\n tileListContainer,\n tileListImageContainer,\n tileListThumbnailImageContainer,\n tileListHeadingContainer\n } = props;\n\n return (\n \n {backgroundImage}\n \n {heading}\n {paragraph}\n {links}\n \n {thumbnailImage}\n \n );\n};\n\n/**\n *\n * TileListItemViewProps component.\n * @param props - Component props.\n * @returns TileListView.\n */\nexport const TileListItemViewComponent: React.FC = props => {\n const { tileListItem } = props;\n return {renderTileListItemContent(props)};\n};\n\nexport default TileListItemViewComponent;\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { RegularStoreHours } from '@msdyn365-commerce/retail-proxy';\r\nimport get from 'lodash/get';\r\nimport { IStoreSelectorLocationLineItemResources } from '.';\r\n\r\nexport interface IHoursDisplayInfo {\r\n startDayShort: string;\r\n startDayFull: string;\r\n endDayShort?: string;\r\n endDayFull?: string;\r\n timeRange: string;\r\n}\r\n\r\ninterface IHoursInfo {\r\n isClosed: boolean;\r\n openTime?: number;\r\n closeTime?: number;\r\n}\r\n\r\ntype DayType = 'MON' | 'TUE' | 'WED' | 'THU' | 'FRI' | 'SAT' | 'SUN';\r\n\r\nexport const secondsToTime = (seconds: number | undefined): string | undefined => {\r\n if (seconds === undefined) {\r\n return undefined;\r\n } else {\r\n let hours = Math.floor(seconds / (60 * 60));\r\n const ampm = hours >= 12 ? 'pm' : 'am';\r\n hours = hours % 12;\r\n hours = hours ? hours : 12;\r\n const divisorForMinutes = seconds % (60 * 60);\r\n const minutes =\r\n Math.floor(divisorForMinutes / 60) < 10 ? `0${Math.floor(divisorForMinutes / 60)}` : Math.floor(divisorForMinutes / 60);\r\n return `${hours}:${minutes} ${ampm}`;\r\n }\r\n};\r\n\r\nconst getShortTimeString = (day: DayType, resources: IStoreSelectorLocationLineItemResources): string => {\r\n switch (day) {\r\n case 'MON':\r\n return resources.days.monday;\r\n case 'TUE':\r\n return resources.days.tuesday;\r\n case 'WED':\r\n return resources.days.wednesday;\r\n case 'THU':\r\n return resources.days.thursday;\r\n case 'FRI':\r\n return resources.days.friday;\r\n case 'SAT':\r\n return resources.days.saturday;\r\n default: // case 'SUN':\r\n return resources.days.sunday;\r\n }\r\n};\r\n\r\nconst getFullTimeString = (day: DayType, resources: IStoreSelectorLocationLineItemResources): string => {\r\n switch (day) {\r\n case 'MON':\r\n return resources.days.mondayFull;\r\n case 'TUE':\r\n return resources.days.tuesdayFull;\r\n case 'WED':\r\n return resources.days.wednesdayFull;\r\n case 'THU':\r\n return resources.days.thursdayFull;\r\n case 'FRI':\r\n return resources.days.fridayFull;\r\n case 'SAT':\r\n return resources.days.saturdayFull;\r\n default: // case 'SUN':\r\n return resources.days.sundayFull;\r\n }\r\n};\r\n\r\nconst buildHoursDisplayInfo = (startDay: DayType, endDay: DayType, hoursInfo: string, resources: IStoreSelectorLocationLineItemResources): IHoursDisplayInfo => {\r\n return {\r\n startDayShort: getShortTimeString(startDay, resources),\r\n startDayFull: getFullTimeString(startDay, resources),\r\n endDayShort: startDay !== endDay ? getShortTimeString(endDay, resources) : undefined,\r\n endDayFull: startDay !== endDay ? getFullTimeString(endDay, resources) : undefined,\r\n timeRange: hoursInfo\r\n };\r\n};\r\n\r\nconst shouldMergeLines = (firstLine: IHoursInfo, secondLine: IHoursInfo): boolean => {\r\n if (firstLine.isClosed && secondLine.isClosed) {\r\n return true;\r\n }\r\n\r\n if (!firstLine.isClosed && !secondLine.isClosed) {\r\n return firstLine.openTime === secondLine.openTime && firstLine.closeTime === secondLine.closeTime;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst getStoreHoursData = (storeHours: RegularStoreHours, dateForLookup: string): IHoursInfo => {\r\n return {\r\n isClosed: get(storeHours, `IsClosedOn${dateForLookup}`, false),\r\n openTime: get(storeHours, `${dateForLookup}OpenTime`, undefined),\r\n closeTime: get(storeHours, `${dateForLookup}CloseTime`, undefined)\r\n };\r\n};\r\n\r\nconst buildStoreHoursString = (hoursInfo: IHoursInfo, resources: IStoreSelectorLocationLineItemResources): string => {\r\n if (hoursInfo.isClosed) {\r\n return resources.closedText;\r\n } else {\r\n const openFrom: string | undefined = secondsToTime(hoursInfo.openTime);\r\n const openTo: string | undefined = secondsToTime(hoursInfo.closeTime);\r\n\r\n return `${openFrom}–${openTo}`;\r\n }\r\n};\r\n\r\nexport const buildStoreHours = (storeHours: RegularStoreHours, resources: IStoreSelectorLocationLineItemResources): IHoursDisplayInfo[] => {\r\n const storeHoursList: IHoursDisplayInfo[] = [];\r\n\r\n const mondayHours = getStoreHoursData(storeHours, 'Monday');\r\n const tuesdayHours = getStoreHoursData(storeHours, 'Tuesday');\r\n const wednesdayHours = getStoreHoursData(storeHours, 'Wednesday');\r\n const thursdayHours = getStoreHoursData(storeHours, 'Thursday');\r\n const fridayHours = getStoreHoursData(storeHours, 'Friday');\r\n const saturdayHours = getStoreHoursData(storeHours, 'Saturday');\r\n const sundayHours = getStoreHoursData(storeHours, 'Sunday');\r\n\r\n let periodStart: DayType = 'MON';\r\n let periodEnd: DayType = 'MON';\r\n\r\n if (!shouldMergeLines(mondayHours, tuesdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(mondayHours, resources), resources));\r\n\r\n periodStart = 'TUE';\r\n }\r\n periodEnd = 'TUE';\r\n\r\n if (!shouldMergeLines(tuesdayHours, wednesdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(tuesdayHours, resources), resources));\r\n\r\n periodStart = 'WED';\r\n }\r\n periodEnd = 'WED';\r\n\r\n if (!shouldMergeLines(wednesdayHours, thursdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(wednesdayHours, resources), resources));\r\n\r\n periodStart = 'THU';\r\n }\r\n periodEnd = 'THU';\r\n\r\n if (!shouldMergeLines(thursdayHours, fridayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(thursdayHours, resources), resources));\r\n\r\n periodStart = 'FRI';\r\n }\r\n periodEnd = 'FRI';\r\n\r\n if (!shouldMergeLines(fridayHours, saturdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(fridayHours, resources), resources));\r\n\r\n periodStart = 'SAT';\r\n }\r\n periodEnd = 'SAT';\r\n\r\n if (!shouldMergeLines(saturdayHours, sundayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(saturdayHours, resources), resources));\r\n\r\n periodStart = 'SUN';\r\n }\r\n periodEnd = 'SUN';\r\n\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(sundayHours, resources), resources));\r\n\r\n return storeHoursList;\r\n};\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport * as React from 'react';\r\n\r\nimport {\r\n OrgUnitContact,\r\n OrgUnitLocation,\r\n StoreHours\r\n} from '@msdyn365-commerce/retail-proxy';\r\nimport { buildStoreHours, IHoursDisplayInfo, secondsToTime } from './date-time-helpers';\r\n\r\nexport interface IStoreSelectorLocationLineItemResources {\r\n distanceUnit: string;\r\n\r\n contactInfoHeader: string;\r\n storeHoursHeader: string;\r\n availabilityInfoHeader: string;\r\n\r\n closedText: string;\r\n\r\n outOfStock: string;\r\n inStock: string;\r\n\r\n currentLocation: string;\r\n selectLocation: string;\r\n selectLocationAriaLabelFormat: string;\r\n\r\n days: {\r\n monday: string;\r\n tuesday: string;\r\n wednesday: string;\r\n thursday: string;\r\n friday: string;\r\n saturday: string;\r\n sunday: string;\r\n mondayFull: string;\r\n tuesdayFull: string;\r\n wednesdayFull: string;\r\n thursdayFull: string;\r\n fridayFull: string;\r\n saturdayFull: string;\r\n sundayFull: string;\r\n };\r\n}\r\n\r\nexport interface IStoreSelectorLocationLineItemProps {\r\n location: OrgUnitLocation;\r\n storeHours?: StoreHours;\r\n\r\n hideStockStatus?: boolean;\r\n isInStock?: boolean;\r\n isCurrentLocation?: boolean;\r\n\r\n resources: IStoreSelectorLocationLineItemResources;\r\n stockStatusLabel?: string;\r\n\r\n handlers: {\r\n onSelected(location: OrgUnitLocation): void;\r\n };\r\n}\r\n\r\nconst StoreSelectorLocationLineItemComponentActions = {\r\n onLocationSelected(props: IStoreSelectorLocationLineItemProps): void {\r\n props.handlers.onSelected(props.location);\r\n }\r\n};\r\n\r\nconst renderStoreHours = (storeHours: StoreHours | undefined, location: OrgUnitLocation, resources: IStoreSelectorLocationLineItemResources): JSX.Element | null => {\r\n // First, use the store hours. This will allow listing day by day houts\r\n if (storeHours && storeHours.RegularStoreHours) {\r\n const storeHoursList: IHoursDisplayInfo[] = buildStoreHours(storeHours.RegularStoreHours, resources);\r\n\r\n return (\r\n
\r\n {storeHoursList.map(displayTime => (\r\n
\r\n {displayTime.endDayShort ? (\r\n
\r\n {displayTime.startDayShort}–\r\n {displayTime.endDayShort}\r\n
\r\n ) : (\r\n
\r\n {displayTime.startDayShort}\r\n
\r\n )}\r\n
{displayTime.timeRange}
\r\n
\r\n ))}\r\n
\r\n );\r\n } else {\r\n // If that fails, fall back to using the OpenFrom and OpenTo properties on the location\r\n const storeOpenFrom: string | undefined = secondsToTime(location.OpenFrom);\r\n const storeOpenTo: string | undefined = secondsToTime(location.OpenTo);\r\n\r\n return (\r\n
\r\n Open {storeOpenFrom} - {storeOpenTo}\r\n
\r\n );\r\n }\r\n};\r\n\r\nconst extractPhoneNumber = (contacts: OrgUnitContact[] | undefined): string | undefined => {\r\n if (!contacts) {\r\n return undefined;\r\n }\r\n\r\n const allPhoneContacts = contacts.filter(contact => contact.ContactTypeValue === 1 && !contact.IsPrivate);\r\n\r\n if (allPhoneContacts && allPhoneContacts.length > 0) {\r\n const primaryPhoneContact = allPhoneContacts.find(contact => contact.IsPrimary);\r\n\r\n if (primaryPhoneContact) {\r\n return primaryPhoneContact.Locator;\r\n }\r\n\r\n return allPhoneContacts[0].Locator;\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nconst StoreSelectorLocationLineItem: React.FC = (props: IStoreSelectorLocationLineItemProps) => {\r\n const onChange = () => {\r\n StoreSelectorLocationLineItemComponentActions.onLocationSelected(props);\r\n };\r\n\r\n const {\r\n isCurrentLocation,\r\n location,\r\n resources,\r\n storeHours,\r\n } = props;\r\n\r\n const storeName: string | undefined = location.OrgUnitName;\r\n const storeAddress: string | undefined = location.Address;\r\n const phoneNumber: string | undefined = extractPhoneNumber(location.Contacts);\r\n\r\n return (\r\n