{"version":3,"sources":["assets/svg/icons/solution-icon.svg","components/tile/tile.tsx","assets/svg/icons/home.svg","components/breadcrumb/breadcrumb.tsx","components/_common/page-loaded/page-loaded.tsx","components/_common/image/image.tsx","components/_common/accordion/accordion.tsx","components/tile/blueprint-tile/blueprint-tile.tsx","components/_common/form/select-input/select-input.tsx","components/tile/solution-tile/solution-tile.tsx","assets/svg/icons/lock.svg","assets/svg/icons/bookmark.svg","components/tile/dataset-tile/dataset-tile.tsx","assets/svg/icons/arrow-right.svg","assets/svg/icons/arrow-left.svg","components/_common/carousel/carousel.tsx","components/search-empty-results/search-empty-results.tsx","components/_common/tile-carousel/tile-carousel.tsx","assets/svg/icons/bookmark-querytile.svg","components/query/query.tsx","assets/svg/icons/kensho.svg","assets/svg/icons/search-grey.svg","assets/svg/icons/filter.svg","components/_common/form/select-input/index.tsx","utilities/safe-parse.tsx","assets/svg/icons/solutions-filter.svg","assets/svg/icons/blueprint-filter.svg","utilities/filter-solutions.tsx","assets/svg/icons/search-all-filter.svg","components/search-empty-results/index.tsx","components/data-filter/data-filter-options/data-filter-option/data-filter-option.tsx","components/data-filter/data-filter-options/data-filter-options.tsx","components/data-filter/data-filter.tsx","components/data-sort-options/data-sort-options.tsx","assets/svg/icons/sort.svg","components/data-sort/data-sort.tsx","assets/svg/icons/close-icon.svg","components/data-controls-panel/lozenge-filter-options/lozenge-filter-options.tsx","components/data-controls-panel/data-filters-dropdown/data-filters-dropdown.tsx","components/_common/filter/filter.tsx","components/dataset-search/dataset-search.tsx","components/_providers/search-provider/search-provider.tsx","components/product-finder-promo/product-finder-promo.tsx","components/data-controls-panel/data-controls-panel.tsx","routes/query-library-page/query-library-page.tsx","routes/query-library-page/query-library-page.container.tsx","utilities/build-image-url.tsx"],"names":["_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","_ref2","createElement","fillRule","clipRule","d","fill","_ref","svgRef","props","width","height","viewBox","ref","ForwardRef","forwardRef","langCode","getText","Tile","provider","name","description","_props$imgUrl","imgUrl","url","buttonText","className","addedDate","enhancementDate","icon","tileType","id","isExternalLink","match","_React$useState","React","x","y","_React$useState2","_slicedToArray","pos","setPos","_useSelector","useSelector","state","get","isLoggedIn","bookmarkPreference","bookmark","datasets","solutions","queries","blueprints","bookMarks","isBookmarked","some","keyId","toString","fileName","fileNameSmall","replace","srcset","getLinkContent","DataFlag","datasetAddedDate","datasetEnhancementDate","isSmall","BookmarkIcon","SolutionIcon","data-testid","superScriptSanitizer","text","concat","substring","truncateText","Image","src","sources","sizes","alt","href","rel","cn","onMouseDown","event","preventDefault","clientX","clientY","onClick","Math","abs","Link","to","homeText","pathData","noMargin","sanitizeSuperScript","showTruncated","aria-label","itemScope","itemType","itemProp","title","Event","document","dispatchEvent","HomeIcon","map","pathItem","index","aria-current","current","total","undefined","value","truncatedValue","lastSpaceIndex","lastIndexOf","getUpdatedPath","content","spgVariables","SPGVariables","keyPage","startDate","IS_CRAWLER_REQUEST","metrics","pageStartTime","pageEndTime","Date","Browser","ScreenWidth","screen","ScreenHeight","Width","window","innerWidth","Height","innerHeight","logUsage","round","dateDiff","then","AppInsights","appInsights","console","log","trackPageView","uri","location","properties","duration","routePath","pathname","REGEXP_DECIMAL_NUMBER","REGEXP_DESCRIPTOR_WIDTH","RegExp","REGEXP_DESCRIPTOR_PIXEL","matchWidthDescriptor","str","test","matchPixelDescriptor","onLoaded","rest","srcSet","matcher","every","descriptor","filter","join","buildSrcSet","data-src","buildImageUrl","onLoad","useStyles","makeStyles","root","border","expansionPanels","borderBottom","paddingRight","alignItems","color","expandIcon","padding","position","SimpleExpansionPanel","children","_props$borderBottomTi","borderBottomTitle","closeIcon","_props$isInitiallyExp","isInitiallyExpanded","onChange","_props$disabled","disabled","_props$expandable","expandable","classes","linkListClass","headingClass","ExpandIcon","ExpandMoreIcon","CloseIcon","useState","expanded","setExpanded","ExpansionPanel","ExpansionPanelSummary","ExpansionPanelDetails","BlueprintTile","dataProfile","newTab","AbsoluteBlueprintName","MktplaceBlueprintUrlName","MarketplaceBlueprintName","MarketplaceBlueprintShortDesc","ThumbnailImageFilePath","MarketplaceDataProviders","MarketplaceBlueprintDateAdded","MarketplaceBlueprintEnhancementDate","KeyMarketplaceBlueprint","blueprintPathSegment","buildUrl","origin","arrDataProviders","values","dataProviders","dataProviderForDisplay","split","dataProviderDisplayObject","MarketplaceDataProvider","pathOverride","theme","createStyles","errorMessage","palette","error","main","display","textAlign","fontSize","typography","pxToRem","defaultValue","controlledValue","errorObject","isDisabled","_ref$isFullWidth","isFullWidth","isRequired","label","options","autocomplete","defaultSelection","setValue","labelIdValue","FormControl","fullWidth","required","variant","InputLabel","Select","labelId","IconComponent","CaretDownIcon","input","FilledInput","inputProps","autoComplete","SelectDisplayProps","role","update","item","MenuItem","message","SolutionTile","solution","MarketSolutionProvider","MktplaceSolutionName","AbsoluteSolutionName","MktplaceSolutionDesc","PlatformService","MktplaceDateAdded","MktplaceSolutionCurrentVerDate","KeyPlatformService","MktplaceSolutionUrlName","MktplaceSolutionProvider","solutionPathSegment","thumbnailImageFilePath","_ref3","mask","SvgLock","_typeof","obj","Symbol","iterator","constructor","_defineProperty","arg","hint","prim","toPrimitive","res","TypeError","String","Number","_toPrimitive","_toPropertyKey","defineProperty","enumerable","configurable","writable","SvgBookmark","style","DatasetTile","dataProvider","urlName","absoluteName","shortDescription","isBundle","datasetPathSegment","carouselSettings","carouselCompKey","isScrollIntoView","_props$arrowsWithPage","arrowsWithPageNumberAtTheBottom","_props$isQueryLibrary","isQueryLibraryPage","showMoreQueries","records","controlsPanelRef","showTrendingQueries","sliderRef","leftArrow","rightArrow","currentSld","setCurrentSld","_React$useState3","_React$useState4","twoRows","setTwoRows","_React$useState5","_React$useState6","oneRow","setOneRow","_React$useState7","_React$useState8","isRotated","setIsRotated","_React$useState9","_React$useState10","isLandscapeMode","setIsLandscapeMode","totalSlideCount","slidesToShow","rows","Array","isArray","isMobileDevice","matchMedia","matches","slickTrack","getElementsByClassName","slickList","clientHeight","slickGoTo","showQueriesSection","calculateTilesTabIndex","setTimeout","tracks","applyTabIndex","element","tabIndex","from","forEach","child","tagName","includes","setAttribute","el","isImagedTile","classList","contains","dotButtons","querySelectorAll","dotButtons1","button","progressBottomArrowsClick","dir","sld","slickPrev","slickNext","scrollIntoView","block","behavior","arrowPress","e","rightArr","focus","NextArrow","propsarrow","currentSlide","slideCount","AddedArrowRightIcon","opacity","onKeyDown","PrevArrow","AddedArrowLeftIcon","_React$useState11","_React$useState12","arrowEnabled","setArrow","handleMouseOver","_objectSpread","arrows","dots","draggable","focusOnSelect","infinite","speed","nextArrow","prevArrow","responsive","beforeChange","cur","next","numOfPages","floor","handleBeforeChange","afterChange","onMouseEnter","onMouseLeave","onFocus","ReactSlick","noResultsFound","isModified","otherPages","isLLMSearch","enabledBlueprintFlag","htmlString","tempDiv","innerHTML","listItems","ulElement","li","appendChild","insertBefore","firstChild","modifiedHtmlString","HtmlContent","html","CustomLink","linkTheme","TileCarousel","dataIds","slickOptions","showMoreLink","fullBleed","queryString","showMoreBlueprints","qlProfileId","queryLibraryRelatedQueries","associatedDatasets","trendingQueriesList","allDatasets","setAllDatasets","openSearchDatasets","setOpenSearchDatasets","allSolutions","setAllSolutions","allBlueprints","setAllBlueprints","setRelatedQueries","_React$useState13","_React$useState14","isMobile","setIsMobile","_React$useState15","_React$useState16","isDesktop","setIsDesktop","hasMoreThan18Queries","HasMoreThan18Queries","query1","queryId","titleClassName","opensearchdatasets","allsolutions","alldatsets","allblueprints","relatedqueries","handleResize","mobile","desktop","addEventListener","removeEventListener","reformat","array","result","push","filteredData","dataTiles","finalArray","ids","slice","reformatIds","_toConsumableArray","dataId","tile","find","blueprintTile","querytile","RelatedQueries","KeyMarketplaceQueryRelated","query","QueryNameRelated","AssociatedDatasets","dataset","DatasetName","versiondate","QueryCurrentVerDate","QueryTile","bookmarks","page","trendingQueryTile","KeyMarketplaceQuery","MarketplaceQueryTitle","MarketplaceDatasetName","MarketplaceQueryCurrentVerDate","DataTile","getSequenceDatasets","Carousel","hasIcon","isUpperCase","tooltip","backgroundColor","maxWidth","fontFamily","signInUrl","getConfig","Window","_ref$className","isTruncated","setIsTruncated","textRef","useLocation","datasetFilters","getUrl","path","pop","filters","dataset1","dtsFilt","DatasetKey","encodedFilters","encodeURIComponent","JSON","stringify","onLoginClick","stopPropagation","returnUrl","handleClick","open","dataLayer","buttonTitle","queryName","Tooltip","placement","arrow","disableFocusListener","disableTouchListener","scrollHeight","querySrc","QueryBookmarkIcon","LockIcon","SvgKensho","SvgSearchGrey","stroke","strokeWidth","SvgFilter","output","parse","SvgSolutionsFilter","SvgBlueprintFilter","filterSolutions","list","onlySolutions","filterDatasetsSolutionsBlueprints","onlyBlueprints","SvgSearchAllFilter","mainContainer","minWidth","containerNew","maxHeight","overflowY","borderRadius","container","row","colors","lightGray","endAdornment","marginRight","marginBottom","justifyContent","formField","margin","checkbox","radio","DataFilterOption","filterKey","filterItems","filterTitle","onUpdate","isRadio","showSearch","dataItems","setState","filterList","setFilterList","filterValue","setFilterValue","handleChange","isSearch","itemId","checked","itemIndex","findIndex","useEffect","toLowerCase","numberOfFilters","Accordion","Fragment","TextField","newValue","currentTarget","newList","InputProps","InputAdornment","SearchIcon","InputLabelProps","shrink","FormGroup","FormControlLabel","control","Radio","checkedState","handleRadioChange","Checkbox","labelPlacement","clearAllText","applyText","filterText","filterOptions","DataFilterOptions","applyFilters","handleClearAll","onCloseContext","ModalContext","localFilters","cloneDeep","history","items","Divider","Button","type","DataFilter","modalIsOpen","setModalOpen","filterCount","FilterIcon","Modal","onClose","isFullScreen","sortBy","sortOptions","updateQueryString","data","sort","SortIcon","DataSortOptions","enableBackground","xmlSpace","myStyles","flexWrap","spacing","LozengeFilterOptions","filterItem","filterIndex","updateItems","newUpdatedItems","$set","newState","onDelete","filterTitles","DataFiltersDropDown","isFiltersActive","Filter","grey80","textfieldContainer","dropdown","zIndex","isGenAiDeliveryPlatformSelect","anchorRef","useRef","dropdownRef","useClickAway","onValueChange","dataInputProps","aria-owns","aria-haspopup","prevState","Popper","anchorEl","disablePortal","transition","TransitionProps","Grow","transformOrigin","Paper","updatedItems","searchAllFilter","datasetsFilter","solutionsFilter","bluePrintFilter","queriesFilter","kenshoIconTooltip","textField","HtmlTooltip","withStyles","white","black","searchValue","updateSearchValue","isSearching","placeholder","searchResults","lists","activeTab","onFilterChanged","urlPath","handleSearchSubmit","hideFilter","onFocusEvent","showInput","setShowInput","searchValueLocal","setSearchValueLocal","searchFilterState","setSearchFilterState","currPlaceholderIndex","setCurrPlaceholderIndex","searchCompRef","textFieldRef","selectBarRef","user","currLogoutPlaceholderIndex","setCurrLogoutPlaceholderIndex","setMaxChars","maxCharErrMsg","setMaxCharErrMsg","isTextArea","setIsTextArea","_React$useState17","_React$useState18","isTabbed","setisTabbed","cursorPositionRef","_React$useState19","_React$useState20","isInitial","setIsInitial","localeCode","genAIPlaceholder","genAILogoutPlaceholder","globalSearchPage","toggleInput","inp","click","interval","setInterval","getElementById","remove","add","prev","clearInterval","handleBlur","resetSearchValue","keyPressHandler","HTMLElement","getAttribute","Element","shiftKey","d5","d1","d2","d3","blpBtn","setSelectionRange","tm","filterBtnIconFill","isActive","handleFilterChanged","filterState","clearTimeout","selTab","scrollableWrapper","scrollLeft","getCount","timer","handleKeyEvent","keyCode","activeElement","estimatedMaxChars","offsetWidth","updateMaxChars","interactive","enterTouchDelay","leaveTouchDelay","KenshoIcon","Waypoint","onLeave","w","viewportTop","waypointTop","handleScroll","autoFocus","selectionStart","regex","multiline","isContentWidthExceeded","context","getContext","inputElement","font","getComputedStyle","measureText","checkContentWidth","focusElement","l","activateTextAreaOrInput","onBlur","inputRef","Spinner","disable","ClearIcon","onKeyUp","SearchAllFilterIcon","DatasetsFilterIcon","SolutionsFilterIcon","BlueprintFilterIcon","aria-hidden","QueryLibraryFilterImage","defaultSort","defaultSortQueryLibrary","defaultSortAllPages","debounceDuration","env","ENV","initialState","search","filterString","listLength","status","initialResponse","selectComponent","searchComponent","filterComponent","lozengeFilterComponent","mobileSelectComponent","mobileFilterComponent","hasGenAISearchError","sortedList","sortDescByDate","sortQLAsc","sortQLDesc","sortDesc","sortAsc","sortByEnhanced","a","b","sortIndex","parseFilters","filterArray","entries","filterKeyColumn","option","header","keyColumn","hydrateStateFromUrl","deepLinkedSearch","QST","getSearch","filterQuery","parsedFilterQuery","safeParse","getActiveTab","updateSearchUrl","debounce","dispatch","getSearchItem","setSearchItem","updateSortUrl","updateFiltersURL","updatedFilters","optionArray","filtersAsString","removeSearchItem","addIndex","arr","reducer","action","payload","parsedFilters","Error","logGAevent","resultsCount","searchContext","searchTerm","searchFilters","searchResultsCount","render","queryFilter","bookmarksLoaded","filterType","updateSearchType","_React$useReducer","_React$useReducer2","rootState","stateRS","userEmail","userInfo","Email","response","setIsLLMSearch","genAISubmit","setGenAISubmit","genAIResponse","setGenAIResponse","setHasGenAISearchError","feedback","setFeedback","clearFeedbackFlag","setClearFeedbackFlag","isValidUser","validInternalUser","tileNameList","tileNamesGt25CharsList","TileNames","getSearchStrategy","createSearchStrategyFactory","getSearchType","isDefault","searchText","trim","searchtype","SearchType","openSearch","searchStrategy","decide","llmSearch","handleSuccess","handleEmailError","sendEmail","errorBody","errorSubject","includeKensho","APIManager","KENSHOLLMEmailList","LLMEmailList","isSuccess","successCallback","sendSearchFailedEmail","reason","errorData","errorText","toUpperCase","handleGenAIError","isRequestManuallyCanceled","onGenAISearchClick","userType","user_type","getQueryData","searchQuestion","getLLMAccessToken","token","getChatiqSearchById","AccessToken","response_uuid","isCanceled","axios","isCancel","er","isReqCanceled","sendFeedbackFailedEmail","handleFeedback","flag","feedback_flag","sendChatiqSearchFeedbackById","clearFeedbackDoneNotify","onTabPressed","Store","flags","hideFooterFlag","SET_FLAGS","hydratedState","hasBookmarkFilter","f","dataProfileCards","mapSearchResultToDataProfileCard","_source","dataSetIds","warn","solutionCards","mapSearchResultToSolution","solutionIds","hit","isType","mapSearchResultToBluePrint","searchResult","mapSearchResultsToQuery","queryIds","qry","bluePrintCards","bluePrintIds","blueprint","historyListener","HistoryInstance","listen","newSearch","newFilters","isReset","isNewSearch","resetFilters","defaultSortOptions","SelectInput","isLLMSubmitted","authLists","authdata","hideFilterFlag","DatasetSearch","searchType","val","tab","isSubmit","clearAll","updateFilter","DataFiltersDropdown","oldFilters","parsedOldFilters","updateFilterURL","DataSort","linkText","linkUrl","gaLabel","DataControlsPanel","_React$PureComponent","_classCallCheck","_possibleConstructorReturn","_getPrototypeOf","_inherits","_createClass","_this$props","Media","metaDataText","pageText","carouselOptions","trendingQueriesHeaderText","queryIdsString","QueryLibraryPage","_this","fetchTrendingQueries","getTrendingQueries","trendingQueryIds","getQueryLibraryTrendingQueriesById","queriesResponse","trendingQueriesData","KeyMarketplaceDataset","trendingQueries","pageTextsData","_this$state","headerSection","getPageTextsSection","noResultsSection","noResultSection","noresults","productFinderPromo","renderChunkedData","chunkedData","group","random","it","chunkedResult","dummyElement","_divideArrayIntoGroup","divisibleByThreeLength","divideArrayIntoGroups","_divideArrayIntoGroup2","group1","group2","HelmetManager","metaData","Breadcrumb","SearchProvider","SearchControlsPanel","Loader","minHeight","SearchEmptyResults","slidesToScroll","lazyLoad","adaptiveHeight","PageLoaded","ProductFinderPromo","connect","categories","_bookmarkPreference$b","_bookmarkPreference$b2","bookmarkFilter","querytype","KeyOnlinePage","keyPageIds","queryLibraryPage","urlString","substr","CloudFrontURL"],"mappings":"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","file":"static/js/query-library-page.d07d79c3.chunk.js","sourcesContent":["function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.87247 3.68151C0.38438 5.19326 0.74056 6.9183 1.94102 8.1188C3.14109 9.3188 4.86537 9.6752 6.3768 9.1878L12.8504 15.6614L15.6617 12.8501L9.1898 6.3781C9.6795 4.86553 9.3237 3.13883 8.1223 1.93747C6.9214 0.736519 5.19541 0.38054 3.68322 0.86952L6.0942 3.28049L3.28282 6.0919L0.87247 3.68151Z\",\n fill: \"white\"\n});\nvar SvgSolutionIcon = function SvgSolutionIcon(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"-5 -5 24 24\",\n fill: \"none\",\n ref: svgRef\n }, props), _ref2);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgSolutionIcon, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/solution-icon.94ac54df.svg\";\nexport { ForwardRef as ReactComponent };","import * as React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Link } from 'react-router-dom';\r\nimport Truncate from 'react-truncate';\r\n\r\nimport DataFlag from '../data-flag';\r\nimport { cn, superScriptSanitizer, get, getText } from '../../helpers';\r\n\r\nimport Image from '../_common/image';\r\nimport { ReactComponent as SolutionIcon } from '../../assets/svg/icons/solution-icon.svg';\r\nimport { ReactComponent as BookmarkIcon } from '../../assets/svg/icons/bookmark.svg';\r\n\r\nconst moveThreshold = 10;\r\n\r\nconst langCode = getText('langCode');\r\n\r\nexport default function Tile(props: TileProps) {\r\n const { provider, name, description, imgUrl = '', url, buttonText, className, addedDate, enhancementDate, icon, tileType, id } = props;\r\n const isExternalLink = url.match(/^(ftp|http|https):\\/\\/[^ \"]+$/g);\r\n const [pos, setPos] = React.useState<{ x: number; y: number }>({ x: 0, y: 0 });\r\n const { isLoggedIn, bookmarkPreference } = useSelector((state: RootStoreState) => get(state, 'user'));\r\n let bookmark: Bookmarks = { datasets: [], solutions: [], queries: [], blueprints: [] };\r\n if (bookmarkPreference) bookmark = bookmarkPreference.bookMarks || { datasets: [], solutions: [], queries: [], blueprints: [] };\r\n let isBookmarked = false;\r\n if (tileType === 'Solutions') {\r\n isBookmarked = bookmark.solutions && bookmark.solutions.some(x => x.keyId === id);\r\n } else if (tileType === 'Blueprint') {\r\n isBookmarked = bookmark.blueprints && bookmark.blueprints.some(x => x.keyId === id);\r\n } else {\r\n isBookmarked = bookmark.datasets && bookmark.datasets.some(x => x.keyId.toString() === id.toString());\r\n }\r\n const fileName = imgUrl.match(/[^/]+$/g) || '';\r\n const fileNameSmall = (fileName[0] && fileName[0].toString().replace('.', '_small.')) || '';\r\n const srcset = {\r\n '345w': fileNameSmall ? imgUrl.replace(fileName[0].toString(), fileNameSmall).toString() : '',\r\n '720w': imgUrl ? imgUrl.toString() : ''\r\n };\r\n\r\n // custom logic for text truncate and ellipsis as react-truncate does not work with spaceless langs like chinese, japanese and korean.\r\n const truncateText = (text: string) => {\r\n if (langCode === 'en') {\r\n return { text.length > 175 ? `${text.substring(0, 175)}...` : `${text}`};\r\n }\r\n if (text.length > 100) {\r\n return {`${text.substring(0, 100)}...`};\r\n }\r\n return {text};\r\n };\r\n\r\n const truncateTitle = (text: string) => {\r\n if (text.length > 56) {\r\n return `${text.substring(0, 53)}...`;\r\n }\r\n return text;\r\n };\r\n\r\n const getLinkContent = () => {\r\n return (\r\n
\r\n {icon &&
{icon}
}\r\n
\r\n \r\n \r\n {isLoggedIn && isBookmarked && }\r\n {(tileType === 'Solutions' && )}\r\n \r\n

\r\n {superScriptSanitizer(truncateTitle(name))}\r\n

\r\n {(tileType === 'DatasetBundles') ?

{getText('generic.datasetBundles')}

: ''}\r\n
\r\n

\r\n \r\n {provider}\r\n {/* {provider} */}\r\n \r\n

\r\n

{truncateText(description)}

\r\n
\r\n
\r\n {buttonText}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n if (isExternalLink) {\r\n return (\r\n ) => {\r\n event.preventDefault();\r\n setPos({ x: event.clientX, y: event.clientY });\r\n }}\r\n onClick={(event: React.MouseEvent) => {\r\n if (Math.abs(event.clientX - pos.x) > moveThreshold || Math.abs(event.clientY - pos.y) > moveThreshold) {\r\n event.preventDefault();\r\n }\r\n }}\r\n data-testid=\"tile-link\"\r\n >\r\n {getLinkContent()}\r\n \r\n );\r\n }\r\n\r\n return (\r\n ) => {\r\n event.preventDefault();\r\n setPos({ x: event.clientX, y: event.clientY });\r\n }}\r\n onClick={(event: React.MouseEvent) => {\r\n if (Math.abs(event.clientX - pos.x) > moveThreshold || Math.abs(event.clientY - pos.y) > moveThreshold) {\r\n event.preventDefault();\r\n }\r\n }}\r\n data-testid=\"tile-link\"\r\n >\r\n {getLinkContent()}\r\n \r\n );\r\n}\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5 12L12 6L19 12L17 12V15V18H13V15H11V18H7V15V12L5 12Z\",\n fill: \"currentColor\"\n});\nvar SvgHome = function SvgHome(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n ref: svgRef\n }, props), _ref2);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgHome, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/home.702186aa.svg\";\nexport { ForwardRef as ReactComponent };","import * as React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { cn, getText, superScriptSanitizer } from '../../helpers';\r\nimport { ReactComponent as HomeIcon } from '../../assets/svg/icons/home.svg';\r\n\r\nfunction isLast(current: number, total: number): boolean {\r\n return current === total - 1;\r\n}\r\n\r\nconst homeText = getText('generic.home');\r\nconst langCode = getText('langCode');\r\n\r\nconst BreadCrumb = function PureComponent(props: BreadcrumbItemArray) {\r\n const { pathData, noMargin, sanitizeSuperScript, showTruncated } = props;\r\n\r\n const onHomeBtnClick = () => {\r\n const event = new Event('HomeButtonClick');\r\n document.dispatchEvent(event);\r\n };\r\n\r\n const getUpdatedPath = (value: string) => {\r\n if (value.length > 75 && showTruncated) {\r\n const truncatedValue = value.substring(0, 75);\r\n const lastSpaceIndex = truncatedValue.lastIndexOf(' ');\r\n return `${truncatedValue.substring(0, lastSpaceIndex)}...`;\r\n }\r\n return value;\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default React.memo(BreadCrumb);\r\n","/* eslint-disable */\r\nimport * as React from 'react';\r\nimport { dateDiff } from '../../../helpers';\r\nimport logUsage from '../../../utilities/log-usage';\r\nimport SPGVariables from '../../../utilities/spg-variables';\r\n\r\nconst spgVariables = SPGVariables();\r\n\r\nconst PageLoaded = function PageLoaded({ keyPage, startDate }: PageProps) {\r\n if (spgVariables.IS_CRAWLER_REQUEST) return null;\r\n const metrics = {\r\n pageStartTime: startDate,\r\n pageEndTime: new Date(),\r\n Browser: {\r\n ScreenWidth: screen.width,\r\n ScreenHeight: screen.height,\r\n Width: window.innerWidth,\r\n Height: window.innerHeight\r\n } as AnonymousObject\r\n };\r\n if (startDate) logUsage(keyPage, Math.round(dateDiff(metrics.pageEndTime, startDate) / 1000));\r\n import('../../../utilities/application-insights').then(AppInsights => {\r\n if (AppInsights && startDate) {\r\n const appInsights = AppInsights.default;\r\n if (appInsights) {\r\n // please do not remove this console log. it is intentionally added for QA team. Thanks!\r\n console.log('MILoggingStats.duration', dateDiff(startDate));\r\n appInsights.trackPageView({\r\n name: keyPage.toString(),\r\n uri: window.location.href,\r\n properties: { duration: dateDiff(startDate), routePath: window.location.pathname, metrics }\r\n });\r\n }\r\n }\r\n });\r\n return null;\r\n};\r\n\r\nexport default React.memo(PageLoaded);\r\n","/* eslint-disable spaced-comment */\r\nimport 'lazysizes';\r\nimport * as React from 'react';\r\nimport { cn } from '../../../helpers';\r\nimport buildImageUrl from '../../../utilities/build-image-url';\r\nimport SPGVariables from '../../../utilities/spg-variables';\r\n\r\nconst REGEXP_DECIMAL_NUMBER = /\\d+(?:\\.\\d+)?/;\r\nconst REGEXP_DESCRIPTOR_WIDTH = new RegExp(`^${REGEXP_DECIMAL_NUMBER.source}w$`);\r\nconst REGEXP_DESCRIPTOR_PIXEL = new RegExp(`^${REGEXP_DECIMAL_NUMBER.source}x$`);\r\n\r\nconst spgVariables = SPGVariables();\r\n\r\nfunction matchWidthDescriptor(str: string) {\r\n return REGEXP_DESCRIPTOR_WIDTH.test(str);\r\n}\r\n\r\nfunction matchPixelDescriptor(str: string) {\r\n return REGEXP_DESCRIPTOR_PIXEL.test(str);\r\n}\r\n\r\nfunction buildSrcSet(sources: ImageSourceObject) {\r\n const isWidthDescriptior = Object.keys(sources).every(descriptor => matchWidthDescriptor(descriptor));\r\n const matcher = isWidthDescriptior ? matchWidthDescriptor : matchPixelDescriptor;\r\n return (\r\n Object.keys(sources)\r\n .filter(matcher)\r\n .map(descriptor => `${sources[descriptor]} ${descriptor}`)\r\n .join(',') || undefined\r\n );\r\n}\r\n\r\nfunction ImageComponent(props: ImageProps) {\r\n if (spgVariables.IS_CRAWLER_REQUEST) return null;\r\n const { alt, className, src, sources, sizes, onLoaded, ...rest } = props;\r\n const srcSet = sources ? buildSrcSet(sources) : undefined;\r\n const onImageLoaded = () => {\r\n if (onLoaded) onLoaded();\r\n };\r\n if (!src) return null;\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default React.memo(ImageComponent);\r\n","import React from 'react';\r\nimport ExpansionPanel from '@material-ui/core/ExpansionPanel';\r\nimport ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary';\r\nimport ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport SPGVariables from '../../../utilities/spg-variables';\r\n\r\nimport { cn } from '../../../helpers';\r\n\r\nconst spgVariables = SPGVariables();\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {\r\n border: 'none'\r\n },\r\n expansionPanels: {\r\n borderBottom: '2px solid #000',\r\n paddingRight: '2px',\r\n alignItems: 'flex-start'\r\n },\r\n icon: {\r\n color: 'black'\r\n },\r\n expandIcon: {\r\n padding: '0',\r\n position: 'relative'\r\n }\r\n}));\r\n\r\nexport default function SimpleExpansionPanel(props: AccordionProps) {\r\n const {\r\n children,\r\n title,\r\n className,\r\n borderBottomTitle = false,\r\n expandIcon,\r\n closeIcon,\r\n isInitiallyExpanded = false,\r\n onChange,\r\n disabled = false,\r\n expandable = true\r\n } = props;\r\n const classes = useStyles();\r\n const linkListClass = borderBottomTitle ? 'accordion--link-list' : '';\r\n const headingClass = borderBottomTitle ? 'subheading' : '';\r\n const ExpandIcon = expandIcon || ExpandMoreIcon;\r\n const CloseIcon = closeIcon || ExpandMoreIcon;\r\n const [expanded, setExpanded] = React.useState(!!spgVariables.IS_CRAWLER_REQUEST || isInitiallyExpanded);\r\n\r\n const getChangedValue = () => {\r\n if (onChange) {\r\n onChange(!expanded);\r\n }\r\n setExpanded(expandable && !expanded);\r\n return !expanded;\r\n };\r\n\r\n return (\r\n \r\n \r\n ) : (\r\n \r\n ))\r\n }\r\n >\r\n
{title}
\r\n \r\n\r\n {children}\r\n \r\n );\r\n}\r\n","import * as React from 'react';\r\nimport Tile from '..';\r\nimport { getText } from '../../../helpers';\r\nimport buildUrl from '../../../utilities/build-url';\r\nimport buildImageUrl from '../../../utilities/build-image-url';\r\n\r\nexport default function BlueprintTile(props: BlueprintTileProps) {\r\n const { className, dataProfile, newTab } = props;\r\n const { AbsoluteBlueprintName, MktplaceBlueprintUrlName, MarketplaceBlueprintName, MarketplaceBlueprintShortDesc, ThumbnailImageFilePath, MarketplaceDataProviders, MarketplaceBlueprintDateAdded, MarketplaceBlueprintEnhancementDate, KeyMarketplaceBlueprint } = dataProfile;\r\n const langCode = getText('langCode');\r\n const blueprintPathSegment = buildUrl(AbsoluteBlueprintName || MktplaceBlueprintUrlName || MarketplaceBlueprintName, KeyMarketplaceBlueprint);\r\n let url = `/${langCode}/blueprints/${blueprintPathSegment}`;\r\n if (newTab) url = window.location.origin.concat(url);\r\n const arrDataProviders = Object.values(MarketplaceDataProviders);\r\n const dataProviders = arrDataProviders && arrDataProviders.length > 0 && arrDataProviders[0] && arrDataProviders[0].toString();\r\n const dataProviderForDisplay = dataProviders && dataProviders.split('|').length > 1 ? getText('generic.multipleVendor') : Object.values(MarketplaceDataProviders)[0];\r\n const dataProviderDisplayObject = dataProviderForDisplay && dataProviderForDisplay.MarketplaceDataProvider ? dataProviderForDisplay.MarketplaceDataProvider : dataProviderForDisplay;\r\n\r\n const pathOverride = buildImageUrl(ThumbnailImageFilePath);\r\n\r\n return (\r\n \r\n );\r\n}\r\n","/* eslint-disable react/display-name */\r\nimport * as React from 'react';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Select from '@material-ui/core/Select';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport FilledInput from '@material-ui/core/FilledInput';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport { createStyles, Theme, makeStyles } from '@material-ui/core/styles';\r\nimport { ReactComponent as CaretDownIcon } from '../../../../assets/svg/icons/caret-down.svg';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => {\r\n return createStyles({\r\n errorMessage: {\r\n color: theme.palette.error.main,\r\n display: 'block',\r\n textAlign: 'right',\r\n fontSize: theme.typography.pxToRem(12)\r\n }\r\n });\r\n});\r\n\r\nconst selectInput = function SelectInput({\r\n className,\r\n defaultValue,\r\n controlledValue,\r\n errorObject,\r\n isDisabled,\r\n isFullWidth = true,\r\n isRequired,\r\n label,\r\n name,\r\n onChange,\r\n options,\r\n autocomplete\r\n}: SelectInputProps) {\r\n const classes = useStyles(0);\r\n const defaultSelection = (defaultValue !== undefined ? defaultValue : '');\r\n const [value, setValue] = React.useState(defaultSelection);\r\n const labelIdValue = `combo-label-${name}`;\r\n\r\n function handleChange(event: React.ChangeEvent<{ name?: string | undefined; value: unknown }>) {\r\n const update: string = event.target.value as string;\r\n setValue(update);\r\n onChange(name, update);\r\n }\r\n\r\n return (\r\n \r\n {label}\r\n \r\n }\r\n SelectDisplayProps={{\r\n role: 'combobox',\r\n 'aria-required': isRequired,\r\n 'aria-expanded': false,\r\n }}\r\n onChange={handleChange}\r\n value={controlledValue || value}\r\n autoComplete={autocomplete}\r\n >\r\n {options.map((item: StringNumberIDObject) => (\r\n \r\n {item.text}\r\n \r\n ))}\r\n \r\n {errorObject && {errorObject.message}}\r\n \r\n );\r\n};\r\n\r\nexport default React.memo(selectInput);\r\n","import * as React from 'react';\r\n\r\nimport { getText } from '../../../helpers';\r\nimport buildUrl from '../../../utilities/build-url';\r\nimport Tile from '..';\r\nimport buildImageUrl from '../../../utilities/build-image-url';\r\n\r\nexport default function SolutionTile(props: SolutionTileProps) {\r\n const { className, solution, newTab, key } = props;\r\n const {\r\n MarketSolutionProvider,\r\n MktplaceSolutionName,\r\n AbsoluteSolutionName,\r\n MktplaceSolutionDesc,\r\n PlatformService,\r\n MktplaceDateAdded,\r\n MktplaceSolutionCurrentVerDate,\r\n KeyPlatformService,\r\n MktplaceSolutionUrlName\r\n } = solution;\r\n const { MktplaceSolutionProvider } = MarketSolutionProvider;\r\n const solutionPathSegment = buildUrl(AbsoluteSolutionName || MktplaceSolutionUrlName || MktplaceSolutionName, KeyPlatformService);\r\n const langCode = getText('langCode');\r\n let url = `/${langCode}/solutions/${solutionPathSegment}`;\r\n if (newTab) url = window.location.origin.concat(url);\r\n const thumbnailImageFilePath = (PlatformService && PlatformService.ThumbnailImageFilePath) || undefined;\r\n\r\n\r\n const pathOverride = buildImageUrl(thumbnailImageFilePath);\r\n\r\n return (\r\n \r\n );\r\n}\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"mask\", {\n id: \"path-1-inside-1\",\n fill: \"white\"\n}, React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5 5C5 3.34315 6.34315 2 8 2C9.65685 2 11 3.34315 11 5H5ZM3 5C3 2.23858 5.23858 0 8 0C10.7614 0 13 2.23858 13 5H14H16V7V16V18H14H2H0V16V7V5H2H3ZM2 16V7H14V16H2Z\"\n}));\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5 5H4V6H5V5ZM11 5V6H12V5H11ZM3 5V6H4V5H3ZM13 5H12V6H13V5ZM16 5H17V4H16V5ZM16 18V19H17V18H16ZM0 18H-1V19H0V18ZM0 5V4H-1V5H0ZM2 7V6H1V7H2ZM2 16H1V17H2V16ZM14 7H15V6H14V7ZM14 16V17H15V16H14ZM8 1C5.79086 1 4 2.79086 4 5H6C6 3.89543 6.89543 3 8 3V1ZM12 5C12 2.79086 10.2091 1 8 1V3C9.10457 3 10 3.89543 10 5H12ZM11 4H5V6H11V4ZM4 5C4 2.79086 5.79086 1 8 1V-1C4.68629 -1 2 1.68629 2 5H4ZM8 1C10.2091 1 12 2.79086 12 5H14C14 1.68629 11.3137 -1 8 -1V1ZM14 4H13V6H14V4ZM16 4H14V6H16V4ZM17 7V5H15V7H17ZM17 16V7H15V16H17ZM17 18V16H15V18H17ZM14 19H16V17H14V19ZM2 19H14V17H2V19ZM0 19H2V17H0V19ZM-1 16V18H1V16H-1ZM-1 7V16H1V7H-1ZM-1 5V7H1V5H-1ZM2 4H0V6H2V4ZM3 4H2V6H3V4ZM1 7V16H3V7H1ZM14 6H2V8H14V6ZM15 16V7H13V16H15ZM2 17H14V15H2V17Z\",\n fill: \"currentColor\",\n mask: \"url(#path-1-inside-1)\"\n});\nvar SvgLock = function SvgLock(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n width: 16,\n height: 18,\n viewBox: \"0 0 16 18\",\n fill: \"none\",\n ref: svgRef\n }, props), _ref2, _ref3);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgLock, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/lock.d092bb55.svg\";\nexport { ForwardRef as ReactComponent };","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18 24l-6-5.269-6 5.269v-24h12v24z\"\n});\nvar SvgBookmark = function SvgBookmark(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n width: \"56px\",\n height: \"56px\",\n viewBox: \"5 -1 12 26\",\n style: _defineProperty({\n fill: \"transparent\"\n }, \"fill\", \"re\"),\n ref: svgRef\n }, props), _ref3);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgBookmark, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/bookmark.d26d5eca.svg\";\nexport { ForwardRef as ReactComponent };","import * as React from 'react';\r\nimport Tile from '..';\r\nimport { getText } from '../../../helpers';\r\nimport buildUrl from '../../../utilities/build-url';\r\nimport buildImageUrl from '../../../utilities/build-image-url';\r\n\r\nexport default function DatasetTile(props: DatasetTileProps) {\r\n const { className, dataProfile, newTab } = props;\r\n const { dataProvider, name, urlName, absoluteName, shortDescription, thumbnailImageFilePath, addedDate, enhancementDate, id, isBundle } = dataProfile;\r\n const langCode = getText('langCode');\r\n const datasetPathSegment = buildUrl(absoluteName || urlName || name, id);\r\n let url = isBundle ? `/${langCode}/datasets/bundle/${datasetPathSegment}` : `/${langCode}/datasets/${datasetPathSegment}`;\r\n if (newTab) url = window.location.origin.concat(url);\r\n const dataProviderForDisplay = dataProvider && dataProvider.split(',').length > 1 ? getText('generic.multipleVendor') : dataProvider;\r\n\r\n // TEMPORARY HACK\r\n // const fileName = thumbnailImageFilePath && thumbnailImageFilePath.match(/[^/]+$/g);\r\n // const pathOverride = (fileName && `${process.env.PUBLIC_URL}/api/crownpeak/_assets/images/marketplace/${fileName}`) || undefined;\r\n //\r\n const pathOverride = buildImageUrl(thumbnailImageFilePath);\r\n\r\n return (\r\n \r\n );\r\n}\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z\"\n});\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h24v24H0V0z\",\n fill: \"none\"\n});\nvar SvgArrowRight = function SvgArrowRight(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n height: 50,\n viewBox: \"0 0 24 24\",\n width: 50,\n ref: svgRef\n }, props), _ref2, _ref3);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgArrowRight, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/arrow-right.20d3e451.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z\"\n});\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h24v24H0V0z\",\n fill: \"none\"\n});\nvar SvgArrowLeft = function SvgArrowLeft(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n height: 50,\n viewBox: \"0 0 24 24\",\n width: 50,\n ref: svgRef\n }, props), _ref2, _ref3);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgArrowLeft, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/arrow-left.5494543b.svg\";\nexport { ForwardRef as ReactComponent };","import * as React from 'react';\r\nimport ReactSlick, { Settings } from 'react-slick';\r\nimport { ReactComponent as AddedArrowRightIcon } from '../../../assets/svg/icons/arrow-right.svg';\r\nimport { ReactComponent as AddedArrowLeftIcon } from '../../../assets/svg/icons/arrow-left.svg';\r\nimport { CarouselProps, ArrowProps } from './carousel.types.d';\r\nimport { cn } from '../../../helpers';\r\n\r\nconst Carousel = function Carousel(props: CarouselProps) {\r\n const { children, carouselSettings, isScrollIntoView, carouselCompKey, arrowsWithPageNumberAtTheBottom = false, isQueryLibraryPage = false, showMoreQueries, records, controlsPanelRef, showTrendingQueries } = props;\r\n const sliderRef = React.useRef(null);\r\n const leftArrow = React.useRef(null);\r\n const rightArrow = React.useRef(null);\r\n const [currentSld, setCurrentSld] = React.useState(0);\r\n const [twoRows, setTwoRows] = React.useState(false);\r\n const [oneRow, setOneRow] = React.useState(false);\r\n const [isRotated, setIsRotated] = React.useState(false);\r\n const [isLandscapeMode, setIsLandscapeMode] = React.useState(false);\r\n\r\n const animationDelay = 800; // animation delay\r\n let totalSlideCount = 0;\r\n if (carouselSettings) {\r\n totalSlideCount = carouselSettings.slidesToShow ? carouselSettings.slidesToShow : 0;\r\n }\r\n if (carouselSettings && carouselSettings.rows && (showMoreQueries || showTrendingQueries)) {\r\n if (children && Array.isArray(children) && children.length < 4) {\r\n carouselSettings.rows = 1;\r\n } else {\r\n carouselSettings.rows = 2;\r\n }\r\n }\r\n\r\n const showQueriesSection = () => {\r\n const width = window.innerWidth;\r\n const height = window.innerHeight;\r\n const isMobileDevice = window.matchMedia('(pointer:coarse)').matches;\r\n if (width > height && isMobileDevice && carouselSettings && carouselSettings.rows === 2) {\r\n setIsLandscapeMode(true);\r\n const slickTrack = document.getElementsByClassName('slick-slide');\r\n const slickList = document.getElementsByClassName('slick-list');\r\n if ((showMoreQueries || showTrendingQueries) && slickTrack) {\r\n if (slickList && slickList[0] && slickList[0].clientHeight === 0) {\r\n (slickList[0] as HTMLElement).style.height = 'auto';\r\n setIsRotated(!isRotated);\r\n }\r\n }\r\n }\r\n if (width < height && isMobileDevice && isLandscapeMode) {\r\n setIsRotated(!isRotated);\r\n setIsLandscapeMode(false);\r\n if (sliderRef.current) sliderRef.current.slickGoTo(currentSld);\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n if (showMoreQueries || showTrendingQueries) showQueriesSection();\r\n });\r\n\r\n const calculateTilesTabIndex = () => {\r\n setTimeout(() => {\r\n const tracks = document.getElementsByClassName('slick-slide');\r\n\r\n const applyTabIndex = (element: any, tabIndex: string) => {\r\n if (element.children.length > 0) {\r\n Array.from(element.children).forEach(child => {\r\n applyTabIndex(child, tabIndex);\r\n });\r\n }\r\n\r\n // we expect user will iteract only with links inside carousel\r\n if (element.tagName === 'A' && !element.className.includes('dummy-block')) element.setAttribute('tabindex', tabIndex);\r\n };\r\n Array.from(tracks).forEach(el => {\r\n // imaged tile subelement is \r\n const isImagedTile = el.children.length && el.children[0].children.length && el.children[0].children[0].tagName === 'A';\r\n if (el.classList.contains('slick-active')) {\r\n // this condition is only for image-tiles carousel. We are 100% sure about children structure\r\n // if second child is not , we need to allof user focus slide-element by tab, to activate arrows\r\n if (!isImagedTile) el.setAttribute('tabindex', isQueryLibraryPage ? '-1' : '0');\r\n applyTabIndex(el, '0');\r\n } else {\r\n if (!isImagedTile) el.setAttribute('tabindex', '-1');\r\n applyTabIndex(el, '-1');\r\n }\r\n });\r\n }, animationDelay);\r\n };\r\n\r\n // scroll to the first slide if childrens changes\r\n // can be applyed only for QueryLibraryPage as its children changes only on search action\r\n React.useEffect(() => {\r\n if (isQueryLibraryPage) {\r\n if (currentSld !== 0) setCurrentSld(0);\r\n if (sliderRef.current) sliderRef.current.slickGoTo(0);\r\n }\r\n calculateTilesTabIndex();\r\n }, [children]);\r\n\r\n React.useEffect(() => {\r\n setTimeout(() => {\r\n const dotButtons = document.querySelectorAll('.slick-dots button');\r\n const dotButtons1 = document.querySelectorAll('.slick-dots li');\r\n dotButtons.forEach(button => {\r\n button.setAttribute('tabIndex', '-1');\r\n });\r\n dotButtons1.forEach(button => {\r\n button.setAttribute('tabIndex', '-1');\r\n });\r\n }, 500);\r\n }, []);\r\n\r\n // slides switching for bottom progress-navigation bar. As example it is on QuryLibraryCatalog page\r\n const progressBottomArrowsClick = (dir: 'prev' | 'next') => {\r\n const sld = sliderRef.current;\r\n if (sld) {\r\n if (dir === 'prev') {\r\n sld.slickPrev();\r\n } else {\r\n sld.slickNext();\r\n }\r\n }\r\n // scroll page to the top of the slider + 100px\r\n if (controlsPanelRef && controlsPanelRef.current) {\r\n controlsPanelRef.current.scrollIntoView({ block: 'start', behavior: 'instant' });\r\n }\r\n };\r\n\r\n // the function is used only for TABbing\r\n function arrowPress(e: React.KeyboardEvent, rightArr: boolean) {\r\n if (e.key === 'Enter' && sliderRef.current) {\r\n if (rightArr) {\r\n if (arrowsWithPageNumberAtTheBottom) return progressBottomArrowsClick('next');\r\n\r\n sliderRef.current.slickNext();\r\n setTimeout(() => {\r\n if (leftArrow.current) leftArrow.current.focus();\r\n }, animationDelay);\r\n } else {\r\n if (arrowsWithPageNumberAtTheBottom) return progressBottomArrowsClick('prev');\r\n\r\n sliderRef.current.slickPrev();\r\n setTimeout(() => {\r\n if (rightArrow.current) rightArrow.current.focus();\r\n }, animationDelay);\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function NextArrow(propsarrow: ArrowProps) {\r\n const { currentSlide, slideCount, onClick } = propsarrow;\r\n if (slideCount) {\r\n if (currentSlide && (currentSlide + totalSlideCount) >= slideCount) return ();\r\n }\r\n return ( arrowPress(e, true)} />);\r\n }\r\n\r\n function PrevArrow(propsarrow: ArrowProps) {\r\n const { currentSlide, onClick } = propsarrow;\r\n if (currentSlide === 0) return ();\r\n\r\n return ( arrowPress(e, false)} />);\r\n }\r\n\r\n const handleBeforeChange = (cur: number, next: number) => {\r\n setCurrentSld(next);\r\n if (carouselSettings && carouselSettings.rows && (showMoreQueries || showTrendingQueries)) {\r\n const numOfPages = records && Array.isArray(records) ? Math.floor(records.length / 6) : 1;\r\n if (records && Array.isArray(records) && next === numOfPages * 3 && records.length % 6 <= 3) {\r\n carouselSettings.rows = 1;\r\n setOneRow(true);\r\n setTwoRows(false);\r\n } else if (!twoRows) {\r\n carouselSettings.rows = 2;\r\n setTwoRows(true);\r\n setOneRow(false);\r\n }\r\n }\r\n };\r\n\r\n\r\n const [arrowEnabled, setArrow] = React.useState(false);\r\n const slickOptionsDefault = {\r\n arrows: !arrowsWithPageNumberAtTheBottom ? arrowEnabled : false,\r\n dots: true,\r\n draggable: true,\r\n focusOnSelect: !carouselCompKey,\r\n infinite: false,\r\n speed: !arrowsWithPageNumberAtTheBottom ? 500 : 0,\r\n nextArrow: !arrowsWithPageNumberAtTheBottom && ,\r\n prevArrow: !arrowsWithPageNumberAtTheBottom && ,\r\n responsive: [],\r\n beforeChange: (cur: number, next: number) => {\r\n handleBeforeChange(cur, next);\r\n },\r\n afterChange: () => {\r\n calculateTilesTabIndex();\r\n }\r\n };\r\n\r\n function handleMouseOver() {\r\n if (window.innerWidth > 1023) {\r\n setArrow(true);\r\n }\r\n }\r\n function handleMouseOut() {\r\n setArrow(false);\r\n }\r\n\r\n const options = { ...slickOptionsDefault, ...carouselSettings } as Settings;\r\n\r\n return children ? (\r\n \r\n \r\n {children}\r\n \r\n {/* Progress component */}\r\n {arrowsWithPageNumberAtTheBottom && Array.isArray(children) && children.length > 1 && (\r\n
\r\n progressBottomArrowsClick('prev')}\r\n />\r\n
\r\n {currentSld + 1} of {children.length} Pages\r\n
\r\n progressBottomArrowsClick('next')}\r\n />\r\n
\r\n )}\r\n \r\n ) : null;\r\n};\r\n\r\nexport default React.memo(Carousel);\r\n","import * as React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport CustomLink from '../_common/custom-link/custom-link';\r\nimport HtmlContent from '../_common/html-content';\r\nimport { get } from '../../helpers';\r\nimport './search-empty-results.style.scss';\r\n\r\nfunction SearchEmptyResults(props: SearchEmptyResultProps) {\r\n const { noResultsFound, message, isModified, otherPages, isLLMSearch } = props;\r\n const enabledBlueprintFlag = useSelector((state: RootStoreState) => get(state, 'shared.flags.enabledBlueprintFlag', false));\r\n\r\n const htmlString = message || '';\r\n const tempDiv = document.createElement('div');\r\n tempDiv.innerHTML = htmlString;\r\n const listItems = tempDiv.querySelectorAll('li');\r\n if (listItems.length > 0) {\r\n const ulElement = document.createElement('ul');\r\n listItems.forEach(li => ulElement.appendChild(li));\r\n tempDiv.insertBefore(ulElement, tempDiv.firstChild);\r\n }\r\n const modifiedHtmlString = tempDiv.innerHTML;\r\n return (\r\n
\r\n
\r\n

{noResultsFound}

\r\n \r\n {isModified &&\r\n
\r\n
Try browsing for
\r\n \r\n\r\n \r\n {enabledBlueprintFlag && (\r\n \r\n )}\r\n {/* \r\n */}\r\n
}\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default React.memo(SearchEmptyResults);\r\n","import * as React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport Carousel from '../carousel';\r\nimport CustomLink from '../custom-link';\r\nimport TileCarouselProps from './tile-carousel.types.d';\r\nimport { cn, get, getText } from '../../../helpers';\r\nimport DataTile from '../../tile/dataset-tile';\r\nimport SolutionTile from '../../tile/solution-tile';\r\nimport BlueprintTile from '../../tile/blueprint-tile/blueprint-tile';\r\nimport QueryTile from '../../query';\r\n\r\nexport default function TileCarousel(props: TileCarouselProps.TileCarouselProps) {\r\n const { dataIds, slickOptions, title, showMoreLink, className, fullBleed, queryString, showMoreBlueprints, newTab, source, carouselCompKey, qlProfileId, queryLibraryRelatedQueries, showMoreQueries, associatedDatasets, showTrendingQueries, trendingQueriesList } = props;\r\n\r\n const [allDatasets, setAllDatasets] = React.useState([]);\r\n const [openSearchDatasets, setOpenSearchDatasets] = React.useState([]);\r\n const [allSolutions, setAllSolutions] = React.useState([]);\r\n const [allBlueprints, setAllBlueprints] = React.useState([]);\r\n const [relatedQueries, setRelatedQueries] = React.useState([]);\r\n const [queryLibraryProfile, setQueryLibraryProfile] = React.useState(null);\r\n const [isMobile, setIsMobile] = React.useState(false);\r\n const [isDesktop, setIsDesktop] = React.useState(false);\r\n\r\n // const isUserLoggedIn = useSelector((state: RootStoreState) => get(state, 'user.isLoggedIn', false));\r\n const isUserLoggedIn = true;\r\n const { isLoggedIn, bookmarkPreference } = useSelector((state: RootStoreState) => get(state, 'user'));\r\n let bookmark: Bookmarks = { datasets: [], solutions: [], queries: [], blueprints: [] };\r\n if (bookmarkPreference) bookmark = bookmarkPreference.bookMarks || { datasets: [], solutions: [], queries: [], blueprints: [] };\r\n const hasMoreThan18Queries = queryLibraryRelatedQueries && queryLibraryRelatedQueries.HasMoreThan18Queries;\r\n const viewAllQueriesText = getText('generic.viewAllQueries');\r\n const query1: Query = {\r\n name: viewAllQueriesText,\r\n queryId: 0,\r\n datasets: [],\r\n associatedDatasets,\r\n };\r\n\r\n let titleClassName = 'tile-carousel__title';\r\n if (showTrendingQueries) {\r\n titleClassName = 'tile-carousel__trendingtitle_ql';\r\n } else if (showMoreQueries) {\r\n titleClassName = 'tile-carousel__title_ql';\r\n }\r\n\r\n const opensearchdatasets = useSelector((state: RootStoreState) => {\r\n if (dataIds.some(x => typeof x === 'number')) {\r\n return get(state, 'datasets.openSearch.response', []);\r\n }\r\n return [];\r\n });\r\n\r\n const allsolutions = useSelector((state: RootStoreState) => {\r\n if (dataIds.some(x => typeof x !== 'number')) {\r\n return get(state, 'solutions.all.response', []);\r\n }\r\n return [];\r\n });\r\n\r\n const alldatsets = useSelector((state: RootStoreState) => {\r\n if (dataIds.some(x => typeof x === 'number')) {\r\n return get(state, 'datasets.all.response', []);\r\n }\r\n return [];\r\n });\r\n\r\n const allblueprints = useSelector((state: RootStoreState) => {\r\n if (dataIds.some(x => typeof x !== 'number')) {\r\n return get(state, 'blueprints.all.response', []);\r\n }\r\n return [];\r\n });\r\n\r\n const relatedqueries = useSelector((state: RootStoreState) => {\r\n if (dataIds.some(x => typeof x === 'number')) {\r\n return get(state, `querylibrary.relatedQueries.${qlProfileId}.response`, []);\r\n }\r\n return [];\r\n });\r\n\r\n React.useEffect(() => {\r\n const handleResize = () => {\r\n const mobile = window.matchMedia('(min-width: 728px)').matches;\r\n const desktop = window.matchMedia('(min-width: 1130px)').matches;\r\n\r\n setIsMobile(mobile);\r\n setIsDesktop(desktop);\r\n };\r\n\r\n handleResize();\r\n window.addEventListener('resize', handleResize);\r\n\r\n return () => {\r\n window.removeEventListener('resize', handleResize);\r\n };\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (opensearchdatasets.length > 0) setOpenSearchDatasets(opensearchdatasets);\r\n if (allsolutions.length > 0) setAllSolutions(allsolutions);\r\n if (alldatsets.length > 0) setAllDatasets(alldatsets);\r\n if (allblueprints.length > 0) setAllBlueprints(allblueprints);\r\n if (relatedqueries.length > 0) setRelatedQueries(relatedqueries);\r\n }, [opensearchdatasets, alldatsets, allsolutions, allblueprints, relatedqueries]);\r\n\r\n const url = `/datasets${queryString || ''}`;\r\n const blueprintsUrl = '/blueprints';\r\n\r\n const reformat = (array: number[]) => {\r\n const result: number[] = [];\r\n const halfLength = 3;\r\n\r\n for (let i = 0; i < halfLength; i++) {\r\n result.push(array[i]);\r\n result.push(array[i + halfLength]);\r\n }\r\n return result;\r\n };\r\n\r\n const getSequenceDatasets = () => {\r\n const dataTiles: JSX.Element[] = [];\r\n let finalArray: (string | number| undefined) [] = [];\r\n if (showMoreQueries || showTrendingQueries) {\r\n if (dataIds) {\r\n if (isDesktop) {\r\n for (let i = 0; i < dataIds.length; i += 6) {\r\n const ids = dataIds.slice(i, i + 6);\r\n if (i !== 0 && ids.length !== 6 && hasMoreThan18Queries) {\r\n ids.push(0);\r\n }\r\n const reformatIds = reformat(ids as number[]);\r\n finalArray = [...finalArray, ...reformatIds];\r\n }\r\n } else {\r\n finalArray = [...dataIds];\r\n if (hasMoreThan18Queries) {\r\n finalArray.push(0);\r\n } else if (finalArray.length % 2 !== 0) {\r\n finalArray.push(undefined);\r\n }\r\n }\r\n }\r\n }\r\n\r\n const updatedDataIds = showMoreQueries || showTrendingQueries ? finalArray : dataIds;\r\n updatedDataIds.forEach(dataId => {\r\n if (typeof dataId === 'string') {\r\n if (showMoreBlueprints) {\r\n const tile = allBlueprints.find((item: any) => item.KeyMarketplaceBlueprint === dataId);\r\n if (tile) {\r\n dataTiles.push();\r\n }\r\n } else {\r\n const tile = allSolutions.find((item: APISolution) => item.KeyPlatformService === dataId);\r\n if (tile) dataTiles.push();\r\n const blueprintTile = allBlueprints.find((item: any) => item.KeyMarketplaceBlueprint === dataId);\r\n if (blueprintTile) dataTiles.push();\r\n }\r\n } else if (showMoreQueries === true) {\r\n const querytile = queryLibraryRelatedQueries && queryLibraryRelatedQueries.RelatedQueries && queryLibraryRelatedQueries.RelatedQueries.length > 0 && queryLibraryRelatedQueries.RelatedQueries.find((item: RelatedQueries) => item.KeyMarketplaceQueryRelated === dataId);\r\n if (querytile) {\r\n const query = {\r\n ...querytile,\r\n queryId: querytile.KeyMarketplaceQueryRelated,\r\n name: querytile.QueryNameRelated,\r\n datasets: querytile.AssociatedDatasets.map((dataset: AssociatedDataset) => dataset.DatasetName),\r\n versiondate: querytile.QueryCurrentVerDate\r\n };\r\n dataTiles.push();\r\n } else if (dataId === 0) {\r\n dataTiles.push();\r\n } else if (dataId === undefined && isMobile) {\r\n dataTiles.push(<> );\r\n }\r\n } else if (showTrendingQueries === true) {\r\n const trendingQueryTile = trendingQueriesList && trendingQueriesList.length > 0 && trendingQueriesList.find((item: QueryLibraryTrendingQueries) => item.KeyMarketplaceQuery === dataId);\r\n if (trendingQueryTile) {\r\n const query = {\r\n ...trendingQueryTile,\r\n queryId: trendingQueryTile.KeyMarketplaceQuery,\r\n name: trendingQueryTile.MarketplaceQueryTitle,\r\n datasets: [trendingQueryTile.MarketplaceDatasetName],\r\n versiondate: trendingQueryTile.MarketplaceQueryCurrentVerDate\r\n };\r\n dataTiles.push();\r\n }\r\n } else {\r\n const tile =\r\n openSearchDatasets.length > 0\r\n ? openSearchDatasets.find((item: DataProfileCard) => Number(item.id) === dataId)\r\n : allDatasets.find((item: DataProfileCard) => item.id === dataId);\r\n if (tile) dataTiles.push();\r\n }\r\n });\r\n return dataTiles;\r\n };\r\n\r\n const filteredData = getSequenceDatasets();\r\n\r\n return filteredData.length ? (\r\n
\r\n
\r\n {title &&

{title}

}\r\n {filteredData}\r\n {showMoreLink && !showMoreBlueprints && (\r\n slickOptions.slidesToShow ? 'slick-slider-links' : ''\r\n }\r\n url={url}\r\n text={getText('generic.seeAllDatasets')}\r\n linkTheme=\"alternative\"\r\n hasIcon\r\n isUpperCase\r\n />\r\n )}\r\n {!showMoreLink && showMoreBlueprints && (\r\n slickOptions.slidesToShow ? 'slick-slider-links' : ''\r\n }\r\n url={blueprintsUrl}\r\n text={getText('generic.seeAllBlueprints')}\r\n linkTheme=\"alternative\"\r\n hasIcon\r\n isUpperCase\r\n />\r\n )}\r\n
\r\n
\r\n ) : null;\r\n}\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0H26V34L13 24L0 34V0Z\",\n fill: \"#D6002A\"\n});\nvar SvgBookmarkQuerytile = function SvgBookmarkQuerytile(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n width: 26,\n height: 34,\n viewBox: \"0 0 26 34\",\n fill: \"none\",\n ref: svgRef\n }, props), _ref2);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgBookmarkQuerytile, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/bookmark-querytile.b3b12adb.svg\";\nexport { ForwardRef as ReactComponent };","import * as React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Link, useLocation } from 'react-router-dom';\r\nimport { createStyles, makeStyles, Theme, Tooltip } from '@material-ui/core';\r\nimport { ReactComponent as LockIcon } from '../../assets/svg/icons/lock.svg';\r\nimport { ReactComponent as QueryBookmarkIcon } from '../../assets/svg/icons/bookmark-querytile.svg';\r\nimport { get, getConfig, getText } from '../../helpers';\r\nimport DataFlag from '../data-flag';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => {\r\n return createStyles({\r\n tooltip: {\r\n backgroundColor: '#fff',\r\n color: 'black',\r\n maxWidth: theme.typography.pxToRem(450),\r\n fontSize: theme.typography.pxToRem(14),\r\n border: '1px solid #ccc',\r\n fontFamily: 'Akk Pro, Arial, sans-serif'\r\n }\r\n });\r\n});\r\n\r\nconst signInUrl = getConfig('urls.mi.ssacs.oktaSignIn');\r\nconst Window = window as AnonymousObject;\r\nWindow.dataLayer = Window.dataLayer || [];\r\n\r\nexport default function QueryTile({ query, isLoggedIn, bookmarks, className = '', page }: {query: Query; isLoggedIn: boolean; bookmarks: Bookmarks; className?: string; page?: string}) {\r\n const [isTruncated, setIsTruncated] = React.useState(false);\r\n const textRef = React.useRef(null);\r\n const location = useLocation();\r\n const langCode = getText('langCode');\r\n const datasetFilters = useSelector((state: RootStoreState) => get(state, 'filters.datasets', []));\r\n // const toValue = query.queryId === 0 ? `${location.pathname}` : `${location.pathname}/query-(${query.queryId})`;\r\n\r\n const getUrl = () => {\r\n let url = window.location.pathname;\r\n const path = url.split('/');\r\n path.pop();\r\n url = path.join('/');\r\n if (query.queryId === 0) {\r\n const filters = {\r\n dataset: query.associatedDatasets && query.associatedDatasets.map((dataset1: AssociatedDataset) => {\r\n // we are searching associated folter by id, and take en language name of filter\r\n // it helps as to fix filters breaking for native languages (filters list is always in EN)\r\n const dtsFilt = datasetFilters.find((el: {id: string}) => `dataset-${dataset1.DatasetKey}` === el.id);\r\n if (dtsFilt) {\r\n return dtsFilt.name;\r\n }\r\n return dataset1.DatasetName;\r\n })\r\n };\r\n const encodedFilters = encodeURIComponent(JSON.stringify(filters));\r\n return `${url}?filters=${encodedFilters}`;\r\n } if (location.pathname.indexOf('query-(') > 0) {\r\n return `${url}/query-(${query.queryId})`;\r\n }\r\n return `${location.pathname}/query-(${query.queryId})`;\r\n };\r\n\r\n let isBookmarked = false;\r\n if (isLoggedIn) {\r\n isBookmarked = bookmarks.queries && bookmarks.queries.some(x => x.keyId.toString() === query.queryId.toString());\r\n }\r\n\r\n const handleMouseEnter = () => {\r\n const el: HTMLElement = (textRef.current || {}) as HTMLElement;\r\n if (el && el.scrollHeight > el.clientHeight) {\r\n setIsTruncated(true);\r\n }\r\n };\r\n\r\n const onLoginClick = (event: React.SyntheticEvent) => {\r\n event.stopPropagation();\r\n let returnUrl = '';\r\n if (process.env.NODE_ENV === 'production') {\r\n if (window.location.pathname.length > 1) {\r\n returnUrl = `&mpurl=${encodeURIComponent(window.location.pathname)}`;\r\n }\r\n event.preventDefault();\r\n window.location.href = `${signInUrl + returnUrl}`;\r\n }\r\n };\r\n\r\n const handleClick = (event: React.SyntheticEvent) => {\r\n if (query.name === 'View all Queries for this Dataset(s) >') {\r\n event.preventDefault();\r\n window.open(getUrl(), '_blank', 'noopener,noreferrer');\r\n Window.dataLayer.push({\r\n event: 'MoreQueriesButton',\r\n buttonTitle: query.name\r\n });\r\n } else {\r\n Window.dataLayer.push({\r\n event: 'QueryLibraryTileClick',\r\n queryId: typeof query.queryId === 'string' ? Number(query.queryId) : query.queryId,\r\n queryName: query.name\r\n });\r\n }\r\n };\r\n\r\n return (\r\n \r\n e.key === 'Enter' && handleClick(e)} to={getUrl}>\r\n
\r\n \r\n
\r\n {isLoggedIn && isBookmarked && }\r\n
\r\n
\r\n

{query.datasets.join(', ')}

\r\n

{query.name}

\r\n {!isLoggedIn && (\r\n
\r\n )}\r\n \r\n );\r\n}\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, React.createElement(\"style\", null, \"\\r\\n .cls-1 {\\r\\n fill: #00b3e2;\\r\\n stroke-width: 0px;\\r\\n }\\r\\n \"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-1\",\n d: \"M50,25.4c0,4.03-1.01,8.07-2.82,11.49,0,.2-.2.2-.2.4l-1.81-1.01c0-.2.2-.2.2-.4,1.61-3.23,2.42-6.65,2.42-10.49,0-5.44-1.81-10.49-5.04-14.52l-3.02,2.42c0-.2-.2-.2-.2-.4-3.23-3.83-7.86-6.45-13.31-6.65l-.4,4.84h-1.01c-7.86,0-14.11,6.45-14.11,14.11s6.45,14.11,14.11,14.11c4.64,0,8.87-2.22,11.49-5.85,0-.2.2-.2.2-.4l4.03,2.82,3.23,2.22,1.61,1.21c0,.2-.2.2-.2.4-4.64,6.25-11.9,10.28-20.16,10.28-13.71,0-25-11.29-25-25S11.29,0,25,0h1.81c7.06.4,13.1,3.83,17.34,8.87,0,.2.2.2.2.4,3.63,4.64,5.65,10.08,5.65,16.13Z\"\n});\nvar SvgKensho = function SvgKensho(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n width: 50,\n height: 50,\n fill: \"none\",\n \"data-name\": \"Layer 1\",\n viewBox: \"0 0 50 50\",\n ref: svgRef\n }, props), _ref2, _ref3);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgKensho, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/kensho.f94a8440.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n clipRule: \"evenodd\",\n d: \"m15.8645 14.3208h-.813l-.2882-.2779c1.0086-1.1733 1.6158-2.6964 1.6158-4.35336 0-3.69469-2.9949-6.68954-6.68956-6.68954-3.69469 0-6.68954 2.99485-6.68954 6.68954 0 3.69466 2.99485 6.68956 6.68954 6.68956 1.65696 0 3.18006-.6072 4.35336-1.6158l.2779.2882v.813l5.1458 5.1355 1.5334-1.5334zm-6.17496 0c-2.56261 0-4.63122-2.0687-4.63122-4.63126 0-2.56261 2.06861-4.63122 4.63122-4.63122 2.56256 0 4.63126 2.06861 4.63126 4.63122 0 2.56256-2.0687 4.63126-4.63126 4.63126z\",\n fill: \"#ccc\",\n fillRule: \"evenodd\"\n});\nvar SvgSearchGrey = function SvgSearchGrey(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n fill: \"none\",\n height: 24,\n viewBox: \"0 0 24 24\",\n width: 24,\n ref: svgRef\n }, props), _ref2);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgSearchGrey, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/search-grey.17d5b6b0.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14 19L10 19L10 13.5L4.20549 7L4.20622 5.74999L19.7947 5.74999L19.7954 7L14 13.5L14 19Z\",\n stroke: \"#767676\",\n strokeWidth: 2\n});\nvar SvgFilter = function SvgFilter(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n ref: svgRef\n }, props), _ref2);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgFilter, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/filter.b4689433.svg\";\nexport { ForwardRef as ReactComponent };","export { default } from './select-input';\r\n","export default (str: string) => {\r\n let output: undefined | AnonymousObject | AnonymousObject[];\r\n try {\r\n output = JSON.parse(str);\r\n } catch (error) {\r\n console.error('safe-parse', error);\r\n }\r\n return output;\r\n};\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.7491 6.40355e-08C9.85786 6.40355e-08 7.49911 2.35875 7.49911 5.25C7.49911 5.78625 7.66036 6.27225 7.80961 6.762L0.707857 13.863C0.254489 14.3189 0 14.9357 0 15.5786C0 16.2216 0.254489 16.8384 0.707857 17.2943C1.16387 17.7459 1.77976 17.9993 2.42161 17.9993C3.06345 17.9993 3.67934 17.7459 4.13536 17.2943L11.2379 10.1918C11.7239 10.3418 12.2129 10.5 12.7491 10.5C15.6404 10.5 17.9991 8.14125 17.9991 5.25C17.9991 4.47975 17.8289 3.75 17.5304 3.09375L17.0849 2.10375L16.3199 2.871L13.9394 5.25H12.7491V4.0605L15.8954 0.91425L14.9054 0.46875C14.2285 0.159746 13.4931 -0.000116808 12.7491 6.40355e-08ZM12.7491 1.5C12.8781 1.5 12.9861 1.5645 13.1121 1.5765L11.2491 3.4395V6.75H14.5596L16.4196 4.887C16.4346 5.013 16.4991 5.121 16.4991 5.25C16.4991 7.32975 14.8289 9 12.7491 9C12.2415 9.00027 11.7392 8.89771 11.2724 8.6985L10.8074 8.499L3.07411 16.2308C2.98861 16.3171 2.88686 16.3856 2.77474 16.4323C2.66262 16.4791 2.54234 16.5031 2.42086 16.5031C2.29938 16.5031 2.1791 16.4791 2.06697 16.4323C1.95485 16.3856 1.8531 16.3171 1.76761 16.2308C1.68121 16.145 1.61264 16.043 1.56584 15.9306C1.51905 15.8183 1.49496 15.6977 1.49496 15.576C1.49496 15.4543 1.51905 15.3337 1.56584 15.2214C1.61264 15.109 1.68121 15.007 1.76761 14.9213L9.50011 7.1925L9.30061 6.72375C9.1014 6.25797 8.99883 5.75659 8.99911 5.25C8.99911 3.17025 10.6694 1.5 12.7491 1.5Z\"\n});\nvar SvgSolutionsFilter = function SvgSolutionsFilter(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n width: 18,\n height: 18,\n viewBox: \"0 0 18 18\",\n fill: \"none\",\n ref: svgRef\n }, props), _ref2);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgSolutionsFilter, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/solutions-filter.3b5d2a73.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M9.8664 2.0452C9.8653 1.9917 9.8172 1.9412 9.7569 1.9412L8.2433 1.9416C8.1826 1.9416 8.1347 1.9921 8.1336 2.0458L8.1213 2.6564C8.116 2.9226 8.0151 3.1753 7.8789 3.375C7.7427 3.5747 7.5442 3.761 7.2981 3.863L6.571 4.1641C6.3255 4.2659 6.0534 4.2743 5.8162 4.2296C5.579 4.1849 5.3281 4.078 5.1357 3.8931L4.6953 3.47C4.6567 3.4329 4.5868 3.4311 4.544 3.4739L3.4734 4.5439C3.4306 4.5867 3.4323 4.6561 3.4696 4.6949L3.8927 5.1353C4.0772 5.3273 4.1845 5.5774 4.2294 5.815C4.2743 6.0525 4.2657 6.3246 4.1638 6.5708L3.8625 7.298C3.7608 7.5436 3.5744 7.7419 3.3751 7.8781C3.1757 8.0142 2.9227 8.116 2.6558 8.1213L2.0452 8.1336C1.9917 8.1347 1.9412 8.1828 1.9412 8.2431L1.9416 9.7567C1.9416 9.8174 1.9921 9.8653 2.0458 9.8664L2.6564 9.8787C2.9226 9.884 3.1753 9.9849 3.375 10.1211C3.5747 10.2573 3.761 10.4558 3.863 10.7019L4.1641 11.429C4.2659 11.6745 4.2743 11.9466 4.2296 12.1838C4.1849 12.421 4.078 12.6719 3.8931 12.8643L3.47 13.3047C3.4329 13.3433 3.4311 13.4132 3.4739 13.456L4.5439 14.5266C4.5867 14.5694 4.6561 14.5677 4.6949 14.5304L5.1353 14.1073C5.3273 13.9228 5.5774 13.8155 5.815 13.7706C6.0525 13.7257 6.3246 13.7343 6.5708 13.8362L7.298 14.1374C7.5436 14.2392 7.7419 14.4256 7.8781 14.6249C8.0142 14.8243 8.116 15.0773 8.1213 15.3442L8.1336 15.9548C8.1347 16.0083 8.1828 16.0588 8.2431 16.0588L9.7567 16.0584C9.8174 16.0584 9.8653 16.0079 9.8664 15.9542L9.8787 15.3436C9.884 15.0774 9.9849 14.8247 10.1211 14.625C10.2573 14.4253 10.4558 14.239 10.7019 14.137L11.429 13.8359C11.6745 13.7341 11.9466 13.7257 12.1838 13.7704C12.421 13.8151 12.6719 13.922 12.8643 14.1069L13.3047 14.53C13.3433 14.567 13.4132 14.5689 13.456 14.5261L14.5266 13.4561C14.5694 13.4133 14.5677 13.3439 14.5304 13.3051L14.1073 12.8647C13.9228 12.6727 13.8155 12.4226 13.7706 12.185C13.7257 11.9475 13.7343 11.6754 13.8362 11.4292L14.1374 10.702C14.2392 10.4564 14.4256 10.2581 14.6249 10.1219C14.8243 9.9858 15.0773 9.884 15.3442 9.8786L15.9548 9.8664C16.0083 9.8653 16.0588 9.8172 16.0588 9.7569L16.0584 8.2433C16.0584 8.1826 16.0079 8.1347 15.9542 8.1336L15.3436 8.1213C15.0774 8.116 14.8247 8.0151 14.625 7.8789C14.4253 7.7427 14.239 7.5442 14.137 7.2981L13.8359 6.571C13.7341 6.3255 13.7257 6.0534 13.7704 5.8162C13.8151 5.579 13.922 5.3281 14.1069 5.1357L14.53 4.6953C14.567 4.6567 14.5689 4.5868 14.5261 4.544L13.4561 3.4734C13.4133 3.4306 13.3439 3.4323 13.3051 3.4696L12.8647 3.8927C12.6727 4.0772 12.4226 4.1845 12.185 4.2294C11.9475 4.2743 11.6754 4.2657 11.4292 4.1638L10.702 3.8625C10.4564 3.7608 10.2581 3.5744 10.1219 3.3751C9.9858 3.1757 9.884 2.9227 9.8786 2.6558L9.8664 2.0452ZM9.7567 1C10.3246 0.9999 10.7959 1.4555 10.8074 2.0263L10.8196 2.6369C10.8205 2.6823 10.842 2.7606 10.8991 2.8442C10.9563 2.9279 11.0213 2.9761 11.0622 2.993L11.7894 3.2942C11.8313 3.3116 11.9113 3.3233 12.0102 3.3046C12.109 3.2859 12.1796 3.2458 12.2127 3.214L12.6531 2.7909C13.0647 2.3954 13.7199 2.406 14.1218 2.8081L15.1918 3.8787C15.5932 4.2803 15.6042 4.9357 15.2087 5.3473L14.7857 5.7877C14.7542 5.8204 14.714 5.891 14.6953 5.9904C14.6765 6.09 14.6885 6.1699 14.7054 6.2108L15.0066 6.9379C15.0239 6.9798 15.0721 7.0446 15.1553 7.1013C15.2384 7.158 15.3166 7.1794 15.3625 7.1804L15.973 7.1926C16.5437 7.204 16.9995 7.6747 16.9996 8.243L17 9.7567C17.0001 10.3246 16.5445 10.7959 15.9737 10.8074L15.3631 10.8196C15.3177 10.8205 15.2394 10.842 15.1558 10.8991C15.0721 10.9563 15.0239 11.0213 15.007 11.0622L14.7058 11.7894C14.6884 11.8313 14.6767 11.9113 14.6954 12.0102C14.7141 12.109 14.7542 12.1796 14.786 12.2127L15.2091 12.6531C15.6046 13.0647 15.594 13.7199 15.1919 14.1218L14.1213 15.1918C13.7197 15.5932 13.0643 15.6042 12.6527 15.2087L12.2123 14.7857C12.1796 14.7542 12.109 14.714 12.0096 14.6953C11.91 14.6765 11.8301 14.6885 11.7892 14.7054L11.0621 15.0066C11.0202 15.0239 10.9554 15.0721 10.8987 15.1553C10.842 15.2384 10.8206 15.3166 10.8196 15.3625L10.8074 15.973C10.796 16.5437 10.3253 16.9995 9.757 16.9996L8.2433 17C7.6754 17.0001 7.2041 16.5445 7.1926 15.9737L7.1804 15.3631C7.1795 15.3177 7.158 15.2394 7.1009 15.1558C7.0437 15.0721 6.9787 15.0239 6.9378 15.007L6.2106 14.7058C6.1687 14.6884 6.0887 14.6767 5.9898 14.6954C5.891 14.7141 5.8204 14.7542 5.7873 14.786L5.3469 15.2091C4.9353 15.6046 4.2801 15.594 3.8782 15.1919L2.8082 14.1213C2.4068 13.7197 2.3958 13.0643 2.7913 12.6527L3.2143 12.2123C3.2458 12.1796 3.286 12.109 3.3047 12.0096C3.3235 11.91 3.3115 11.8301 3.2946 11.7892L2.9934 11.0621C2.9761 11.0202 2.9279 10.9554 2.8447 10.8987C2.7616 10.842 2.6834 10.8206 2.6375 10.8196L2.027 10.8074C1.4563 10.796 1.0005 10.3253 1.0004 9.757L1 8.2433C0.9999 7.6754 1.4555 7.2041 2.0263 7.1926L2.6369 7.1804C2.6823 7.1795 2.7606 7.158 2.8442 7.1009C2.9279 7.0437 2.9761 6.9787 2.993 6.9378L3.2942 6.2106C3.3116 6.1687 3.3233 6.0887 3.3046 5.9898C3.2859 5.891 3.2458 5.8204 3.214 5.7873L2.7909 5.3469C2.3954 4.9353 2.406 4.2801 2.8081 3.8782L3.8787 2.8082C4.2803 2.4068 4.9357 2.3958 5.3473 2.7913L5.7877 3.2143C5.8204 3.2458 5.891 3.286 5.9904 3.3047C6.09 3.3235 6.1699 3.3115 6.2108 3.2946L6.9379 2.9934C6.9798 2.9761 7.0446 2.9279 7.1013 2.8447C7.158 2.7616 7.1794 2.6834 7.1804 2.6375L7.1926 2.027C7.204 1.4563 7.6747 1.0005 8.243 1.0004L9.7567 1ZM5.1651 7.4115C6.0424 5.2935 8.4705 4.2878 10.5885 5.1651C12.7065 6.0424 13.7122 8.4705 12.8349 10.5885C11.9576 12.7065 9.5295 13.7122 7.4115 12.8349C5.2935 11.9576 4.2878 9.5295 5.1651 7.4115ZM10.2283 6.0346C8.5906 5.3562 6.713 6.134 6.0346 7.7717C5.3562 9.4094 6.134 11.287 7.7717 11.9654C9.4094 12.6438 11.287 11.866 11.9654 10.2283C12.6438 8.5906 11.866 6.713 10.2283 6.0346Z\"\n});\nvar SvgBlueprintFilter = function SvgBlueprintFilter(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n width: 18,\n height: 18,\n viewBox: \"0 0 18 18\",\n fill: \"none\",\n ref: svgRef\n }, props), _ref2);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgBlueprintFilter, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/blueprint-filter.d8626663.svg\";\nexport { ForwardRef as ReactComponent };","export const filterSolutions = (list: (DataProfileCard | APISolution | APIBlueprint)[], onlySolutions = false) => {\r\n return list.filter((item: DataProfileCard | APISolution | APIBlueprint) => {\r\n return 'MktplaceSolutionName' in item === onlySolutions;\r\n });\r\n};\r\n\r\nexport const filterDatasetsSolutionsBlueprints = (list: (DataProfileCard | APISolution | APIBlueprint)[], onlySolutions = false, onlyBlueprints = false) => {\r\n return list.filter((item: DataProfileCard | APISolution | APIBlueprint) => {\r\n if (onlySolutions && !onlyBlueprints) {\r\n return 'MktplaceSolutionName' in item === onlySolutions;\r\n }\r\n if (!onlySolutions && onlyBlueprints) {\r\n return 'MarketplaceBlueprintName' in item === onlyBlueprints;\r\n }\r\n return 'MarketplaceBlueprintName' in item === onlyBlueprints && 'MktplaceSolutionName' in item === onlySolutions;\r\n });\r\n};\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.5 0.25V6.25H6.5V0.25H0.5ZM8 0.25V6.25H14V0.25H8ZM15.5 0.25V6.25H21.5V0.25H15.5ZM2 1.75H5V4.75H2V1.75ZM9.5 1.75H12.5V4.75H9.5V1.75ZM17 1.75H20V4.75H17V1.75ZM0.5 7.75V13.75H6.5V7.75H0.5ZM8 7.75V13.75H14V7.75H8ZM15.5 7.75V13.75H21.5V7.75H15.5ZM2 9.25H5V12.25H2V9.25ZM9.5 9.25H12.5V12.25H9.5V9.25ZM17 9.25H20V12.25H17V9.25Z\"\n});\nvar SvgSearchAllFilter = function SvgSearchAllFilter(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n width: 22,\n height: 14,\n viewBox: \"0 0 22 14\",\n fill: \"none\",\n ref: svgRef\n }, props), _ref2);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgSearchAllFilter, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/search-all-filter.3fe2c1c0.svg\";\nexport { ForwardRef as ReactComponent };","import './search-empty-results.style.scss';\r\n\r\nexport { default } from './search-empty-results';\r\n","/* eslint-disable react/jsx-wrap-multilines */\r\nimport React from 'react';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport { TextField, InputAdornment } from '@material-ui/core';\r\n\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport FormGroup from '@material-ui/core/FormGroup';\r\nimport { createStyles, makeStyles } from '@material-ui/core/styles';\r\nimport Accordion from '../../../_common/accordion';\r\nimport { colors } from '../../../../theme/theme';\r\nimport { cn } from '../../../../helpers';\r\nimport { ReactComponent as SearchIcon } from '../../../../assets/svg/icons/search-grey.svg';\r\n\r\nconst useStyles = makeStyles(\r\n createStyles({\r\n mainContainer: {\r\n minWidth: '250px',\r\n width: '100%'\r\n },\r\n containerNew: {\r\n width: '100%',\r\n maxHeight: '560px', // 600px\r\n paddingRight: '22px',\r\n overflowY: 'auto',\r\n '&::-webkit-scrollbar': {\r\n width: '0.4em'\r\n },\r\n '&::-webkit-scrollbar-thumb': {\r\n backgroundColor: '#4169e1',\r\n borderRadius: '10px'\r\n }\r\n },\r\n container: {\r\n minWidth: '250px',\r\n width: '100%'\r\n },\r\n row: {\r\n borderBottom: `1px solid ${colors.lightGray}`,\r\n padding: '15px 0',\r\n '&:last-child': {\r\n borderBottom: 0\r\n }\r\n },\r\n endAdornment: {\r\n marginRight: '8px',\r\n marginBottom: '15px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n height: '100%'\r\n },\r\n formField: {\r\n justifyContent: 'space-between',\r\n margin: '0',\r\n width: '100%'\r\n },\r\n checkbox: {\r\n padding: '0'\r\n },\r\n radio: {\r\n padding: '0'\r\n }\r\n })\r\n);\r\n\r\n\r\nconst DataFilterOption = ({ filterKey, filterItems, filterTitle, onUpdate, isRadio, showSearch }: FilterProps) => {\r\n const [state, setState] = React.useState({\r\n dataItems: filterItems,\r\n open: false\r\n });\r\n\r\n const [filterList, setFilterList] = React.useState([]);\r\n const [filterValue, setFilterValue] = React.useState('');\r\n\r\n const handleChange = (index: number, isSearch: boolean, itemId: string) => (event: React.ChangeEvent, checked: boolean) => {\r\n const { dataItems } = state;\r\n let itemIndex = index;\r\n if (isSearch && filterValue) {\r\n itemIndex = dataItems.findIndex(x => x.name === itemId);\r\n }\r\n dataItems[itemIndex].checked = checked;\r\n setState({ ...state, dataItems });\r\n onUpdate(dataItems, filterKey);\r\n };\r\n\r\n const handleRadioChange = (index: number) => {\r\n const { dataItems } = state;\r\n const checkedState = dataItems[index].checked;\r\n\r\n dataItems.forEach(item => {\r\n item.checked = false;\r\n });\r\n dataItems[index].checked = !checkedState;\r\n setState({ ...state, dataItems });\r\n onUpdate(dataItems, filterKey);\r\n };\r\n\r\n const onValueChange = (event: React.ChangeEvent) => {\r\n const { dataItems } = state;\r\n const { value } = event.currentTarget as HTMLInputElement;\r\n const regex = /^\\s+/g;\r\n const newValue = value.replace(regex, '');\r\n const newList = dataItems.filter((item => item.name.toLowerCase().includes(newValue.toLowerCase())));\r\n setFilterValue(newValue);\r\n setFilterList(newList);\r\n };\r\n\r\n React.useEffect(() => {\r\n const { dataItems } = state;\r\n if (filterValue) {\r\n setFilterList(dataItems.filter(item => item.name.toLowerCase().includes(filterValue.toLowerCase())));\r\n }\r\n setFilterList(dataItems);\r\n }, [filterItems]);\r\n\r\n const { dataItems } = state;\r\n const numberOfFilters = dataItems.filter(item => item.checked).length;\r\n const title = numberOfFilters > 0 ? `${filterTitle} (${numberOfFilters})` : filterTitle;\r\n const classes = useStyles(0);\r\n\r\n const dataInputProps = {\r\n 'data-testid': 'data-filter-option-dataset-search',\r\n 'aria-label': 'data filter option dataset search'\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n { showSearch && (\r\n <>\r\n ,\r\n ...dataInputProps\r\n }}\r\n InputLabelProps={{ shrink: true }}\r\n className=\"data-filter-option__textfield\"\r\n />\r\n \r\n )}\r\n
\r\n {filterList.map((item, index) => (\r\n \r\n handleRadioChange(index)}\r\n value={item.name}\r\n name={item.name}\r\n className={classes.radio}\r\n color=\"primary\"\r\n /> : }\r\n label={item.name}\r\n labelPlacement=\"start\"\r\n data-testid={`filter-item-${item.id}`}\r\n />\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\nexport default DataFilterOption;\r\n","import * as React from 'react';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport { getText, cloneDeep, getConfig } from '../../../helpers';\r\nimport DataFilterOption from './data-filter-option';\r\nimport Button from '../../_common/button';\r\nimport { ModalContext } from '../../_common/modal/modal';\r\n\r\nconst clearAllText = getText('generic.clearAll');\r\nconst applyText = getText('generic.apply');\r\nconst filterText = getText('generic.filter');\r\nconst filterOptions = getConfig('components.filterOptions');\r\n\r\nconst DataFilterOptions = ({ applyFilters, filters, handleClearAll }: DataFiltersProps) => {\r\n const onCloseContext = React.useContext(ModalContext);\r\n\r\n const localFilters = cloneDeep(filters);\r\n\r\n const onClearAll = (event: React.SyntheticEvent) => {\r\n event.preventDefault();\r\n handleClearAll();\r\n onCloseContext();\r\n };\r\n\r\n const onApply = (event: React.SyntheticEvent) => {\r\n event.preventDefault();\r\n applyFilters(localFilters);\r\n onCloseContext();\r\n };\r\n\r\n const onUpdate = () => {\r\n // const onUpdate = (filterItems: FilterCheckBoxItem[], filterTitle: string) => {\r\n // console.log(filterItems, filterTitle);\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
{filterText}
\r\n
\r\n
\r\n {localFilters.map((filter: FilterObjects) => {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n );\r\n })}\r\n
\r\n
\r\n \r\n \r\n {clearAllText}\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default DataFilterOptions;\r\n","import * as React from 'react';\r\n\r\nimport Modal from '../_common/modal';\r\nimport DataFilterOptions from './data-filter-options';\r\nimport { ReactComponent as FilterIcon } from '../../assets/svg/icons/filter.svg';\r\nimport { getText } from '../../helpers';\r\n\r\nconst filter = getText('generic.filter');\r\nexport default function DataFilter(props: DataFiltersProps) {\r\n const [modalIsOpen, setModalOpen] = React.useState(false);\r\n\r\n const { filterCount, filters } = props;\r\n\r\n return (filters && filters.length > 0) ? (\r\n\r\n <>\r\n setModalOpen(true)}\r\n >\r\n \r\n {filterCount > 0 ? `${filter} (${filterCount})` : filter}\r\n \r\n setModalOpen(false)}\r\n isFullScreen={window.innerWidth < 1024}\r\n >\r\n \r\n \r\n \r\n ) : <>;\r\n}\r\n","import * as React from 'react';\r\nimport { cn, getText } from '../../helpers';\r\n\r\nconst sortBy = getText('generic.sortBy');\r\nconst DataSortOptions = function DataSortOptions(props: DataSortOptionsProps) {\r\n const { queryString, sortOptions, updateQueryString } = props;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
{sortBy}
\r\n
\r\n
\r\n {sortOptions.map(data => (\r\n updateQueryString('sort', data.id)}\r\n >\r\n {data.text}\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default React.memo(DataSortOptions);\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11 9V11H9H5H3V9V5V3H5H9H11V5V9ZM9 5H5V9H9V5ZM11 19V21H9H5H3V19V15V13H5H9H11V15V19ZM9 15H5V19H9V15ZM16 3V16H13.5361L17.0002 21.25L20.4643 16H18V3H16Z\",\n fill: \"currentColor\"\n});\nvar SvgSort = function SvgSort(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n ref: svgRef\n }, props), _ref2);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgSort, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/sort.624a8cc7.svg\";\nexport { ForwardRef as ReactComponent };","import * as React from 'react';\r\nimport Modal from '../_common/modal';\r\nimport DataSortOptions from '../data-sort-options';\r\nimport { ReactComponent as SortIcon } from '../../assets/svg/icons/sort.svg';\r\nimport { getText } from '../../helpers';\r\n\r\nconst sort = getText('generic.sort');\r\n\r\nfunction DataSort(props: DataSortProps) {\r\n const [modalIsOpen, setModalOpen] = React.useState(false);\r\n const { queryString, updateQueryString, sortOptions, disabled } = props;\r\n\r\n return (\r\n <>\r\n \r\n setModalOpen(false)} isFullScreen={window.innerWidth < 1024}>\r\n {\r\n setModalOpen(false);\r\n updateQueryString(name, id);\r\n }}\r\n sortOptions={sortOptions}\r\n />\r\n \r\n \r\n );\r\n}\r\n\r\nexport default React.memo(DataSort);\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"info\"\n});\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icons\"\n}, React.createElement(\"path\", {\n d: \"M14.8,12l3.6-3.6c0.8-0.8,0.8-2,0-2.8c-0.8-0.8-2-0.8-2.8,0L12,9.2L8.4,5.6c-0.8-0.8-2-0.8-2.8,0 c-0.8,0.8-0.8,2,0,2.8L9.2,12l-3.6,3.6c-0.8,0.8-0.8,2,0,2.8C6,18.8,6.5,19,7,19s1-0.2,1.4-0.6l3.6-3.6l3.6,3.6 C16,18.8,16.5,19,17,19s1-0.2,1.4-0.6c0.8-0.8,0.8-2,0-2.8L14.8,12z\",\n id: \"exit\"\n}));\nvar SvgCloseIcon = function SvgCloseIcon(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n style: {\n width: 24,\n enableBackground: \"new 0 0 24 24\"\n },\n viewBox: \"0 0 24 24\",\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), _ref2, _ref3);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgCloseIcon, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/close-icon.a852bd91.svg\";\nexport { ForwardRef as ReactComponent };","/* eslint-disable implicit-arrow-linebreak */\r\nimport * as React from 'react';\r\nimport { createStyles, Theme, makeStyles } from '@material-ui/core/styles';\r\nimport update from 'immutability-helper';\r\nimport { ReactComponent as CloseIcon } from '../../../assets/svg/icons/close-icon.svg';\r\n\r\nconst myStyles = makeStyles((theme: Theme) => {\r\n return createStyles({\r\n root: {\r\n display: 'flex',\r\n border: 'none',\r\n flexWrap: 'wrap',\r\n padding: theme.spacing(0.5)\r\n }\r\n });\r\n});\r\n\r\nconst LozengeFilterOptions = ({ filters, onUpdate }: LozengeFilterOptionsProps) => {\r\n const classes = myStyles(0);\r\n\r\n const onDelete = (filterIndex: number, index: number) => {\r\n const updateItems = filters[filterIndex].items;\r\n const newUpdatedItems = update(updateItems, { [index]: { checked: { $set: false } } });\r\n const newState = update(filters, { [filterIndex]: { items: { $set: newUpdatedItems } } });\r\n onUpdate(newState);\r\n };\r\n\r\n return (\r\n <>\r\n {filters.filter((filterItem: FilterObjects) => filterItem.items.some(item => item.checked === true)).length > 0 && (\r\n
\r\n {filters.map((filterItem, filterIndex) => {\r\n return filterItem.items.map((item, index) => {\r\n return (\r\n item.checked && (\r\n
\r\n
{item.name}
\r\n
\r\n onDelete(filterIndex, index)} />\r\n
\r\n
\r\n )\r\n );\r\n });\r\n })}\r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default LozengeFilterOptions;\r\n","import * as React from 'react';\r\n\r\nimport Filter from '../../_common/filter';\r\nimport { getText, getConfig } from '../../../helpers';\r\n\r\nconst clearAllText = getText('generic.clearAll');\r\nconst filterTitles = getText('pages.dataSets.filterOptions');\r\nconst filterOptions = getConfig('components.filterOptions');\r\n\r\nconst DataFiltersDropDown = ({ filters, onUpdate, handleClearAll, isFiltersActive }: DataFiltersDropdownProps) => {\r\n const onClearAll = (event: React.SyntheticEvent) => {\r\n event.preventDefault();\r\n handleClearAll();\r\n };\r\n return (\r\n <>\r\n
\r\n {filters.map((filter: FilterObjects) => (\r\n \r\n ))}\r\n {isFiltersActive && (\r\n \r\n )}\r\n
\r\n \r\n );\r\n};\r\nexport default DataFiltersDropDown;\r\n","/* eslint-disable react/jsx-wrap-multilines */\r\nimport React from 'react';\r\nimport update from 'react-addons-update';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport { TextField, InputAdornment } from '@material-ui/core';\r\n\r\nimport { useClickAway } from 'react-use';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport FormGroup from '@material-ui/core/FormGroup';\r\nimport Grow from '@material-ui/core/Grow';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Popper from '@material-ui/core/Popper';\r\n\r\nimport { createStyles, makeStyles } from '@material-ui/core/styles';\r\nimport { colors } from '../../../theme/theme';\r\nimport { ReactComponent as SearchIcon } from '../../../assets/svg/icons/search-grey.svg';\r\nimport { ReactComponent as FilterIcon } from '../../../assets/svg/icons/filter.svg';\r\nimport { ReactComponent as CaretDownIcon } from '../../../assets/svg/icons/caret-down.svg';\r\nimport { ReactComponent as CloseIcon } from '../../../assets/svg/icons/close.svg';\r\n\r\nconst useStyles = makeStyles(\r\n createStyles({\r\n mainContainer: {\r\n padding: '18px 0px 5px 18px',\r\n },\r\n containerNew: {\r\n minWidth: '300px',\r\n maxHeight: '600px',\r\n paddingRight: '22px',\r\n overflowY: 'auto',\r\n '&::-webkit-scrollbar': {\r\n width: '0.3em'\r\n },\r\n '&::-webkit-scrollbar-thumb': {\r\n backgroundColor: '#4169e1',\r\n borderRadius: '10px'\r\n }\r\n },\r\n container: {\r\n padding: '5px 22px 5px 20px',\r\n minWidth: '250px'\r\n },\r\n row: {\r\n borderBottom: `1px solid ${colors.grey80}`,\r\n padding: '15px 0',\r\n '&:last-child': {\r\n borderBottom: 0\r\n }\r\n },\r\n textfieldContainer: {\r\n height: '66px',\r\n paddingRight: '22px',\r\n justifyContent: 'center'\r\n },\r\n endAdornment: {\r\n marginRight: '8px',\r\n marginBottom: '15px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n height: '100%'\r\n },\r\n dropdown: {\r\n zIndex: 99\r\n },\r\n formField: {\r\n justifyContent: 'space-between',\r\n alignItems: 'start',\r\n margin: '0',\r\n width: '100%'\r\n },\r\n checkbox: {\r\n padding: '0'\r\n },\r\n radio: {\r\n padding: '0'\r\n }\r\n })\r\n);\r\n\r\nconst Filter = ({ filterKey, filterItems, filterTitle, onUpdate, isRadio, showSearch, isGenAiDeliveryPlatformSelect }: FilterProps) => {\r\n const [state, setState] = React.useState({\r\n open: false\r\n });\r\n const [filterList, setFilterList] = React.useState([]);\r\n const [filterValue, setFilterValue] = React.useState('');\r\n\r\n const anchorRef = React.useRef(null);\r\n const dropdownRef = React.useRef(null);\r\n\r\n React.useEffect(() => {\r\n setFilterList(filterItems);\r\n }, [filterItems]);\r\n\r\n function handleToggle() {\r\n setState(prevState => ({ ...state, open: !prevState.open }));\r\n }\r\n\r\n useClickAway(dropdownRef, () => {\r\n setState({ ...state, open: false });\r\n setFilterValue('');\r\n setFilterList(filterItems);\r\n });\r\n\r\n const handleChange = (index: number, isSearch: boolean, itemId: string) => {\r\n let itemIndex = index;\r\n if (isSearch && filterValue) {\r\n itemIndex = filterItems.findIndex(x => x.name === itemId);\r\n }\r\n const checkedState = filterItems[itemIndex].checked;\r\n\r\n const updatedItems = update(filterItems, { [itemIndex]: { checked: { $set: !checkedState } } });\r\n\r\n onUpdate(updatedItems, filterKey);\r\n };\r\n\r\n const handleRadioChange = (index: number) => {\r\n const checkedState = filterItems[index].checked;\r\n\r\n filterItems.forEach(item => {\r\n item.checked = false;\r\n });\r\n\r\n const updatedItems = update(filterItems, { [index]: { checked: { $set: !checkedState } } });\r\n\r\n onUpdate(updatedItems, filterKey);\r\n };\r\n\r\n const { open } = state;\r\n const numberOfFilters = filterItems.filter(item => item.checked).length;\r\n const classes = useStyles(0);\r\n\r\n const onValueChange = (event: React.ChangeEvent) => {\r\n const { value } = event.currentTarget as HTMLInputElement;\r\n const regex = /^\\s+/g;\r\n const newValue = value.replace(regex, '');\r\n const newList = filterItems.filter((item => item.name.toLowerCase().includes(newValue.toLowerCase())));\r\n setFilterValue(newValue);\r\n setFilterList(newList);\r\n };\r\n\r\n React.useEffect(() => {\r\n if (filterValue) {\r\n setFilterList(filterItems.filter(item => item.name.toLowerCase().includes(filterValue.toLowerCase())));\r\n }\r\n }, [filterItems]);\r\n\r\n const dataInputProps = {\r\n 'data-testid': 'filter-dataset-search',\r\n 'aria-label': 'filter dataset search'\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n {isGenAiDeliveryPlatformSelect && (\r\n \r\n )}\r\n {numberOfFilters > 0 && (\r\n {`${filterTitle} (${numberOfFilters})`}\r\n )}\r\n {numberOfFilters === 0 && filterTitle}\r\n\r\n {isGenAiDeliveryPlatformSelect && (\r\n \r\n )}\r\n \r\n \r\n {({ TransitionProps, placement }) => (\r\n \r\n \r\n
\r\n {isGenAiDeliveryPlatformSelect && (\r\n setState({ open: false })} />\r\n )}\r\n { showSearch && (\r\n
\r\n ,\r\n ...dataInputProps\r\n }}\r\n InputLabelProps={{ shrink: true }}\r\n className=\"filter__textfield\"\r\n />\r\n
\r\n )}\r\n
\r\n {filterList.map((item, index) => (\r\n \r\n handleRadioChange(index)}\r\n value={item.name}\r\n name={item.name}\r\n className={classes.radio}\r\n color=\"primary\"\r\n />\r\n ) : (\r\n handleChange(index, showSearch || false, item.name)}\r\n value={item.name}\r\n name={item.name}\r\n className={classes.checkbox}\r\n color=\"primary\"\r\n />\r\n )\r\n }\r\n label={item.name}\r\n labelPlacement=\"start\"\r\n />\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n \r\n )}\r\n \r\n
\r\n \r\n );\r\n};\r\nexport default Filter;\r\n","/* eslint-disable no-nested-ternary */\r\nimport * as React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Waypoint } from 'react-waypoint';\r\nimport { makeStyles, withStyles, Theme } from '@material-ui/core/styles';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { useClickAway } from 'react-use';\r\nimport { colors } from '../../theme/theme';\r\nimport { cn, getConfig, getText, get } from '../../helpers';\r\nimport HtmlContent from '../_common/html-content';\r\nimport { ReactComponent as SearchIcon } from '../../assets/svg/icons/search.svg';\r\nimport Spinner from '../_common/spinner';\r\nimport { ReactComponent as ClearIcon } from '../../assets/svg/icons/close.svg';\r\nimport { ReactComponent as SearchAllFilterIcon } from '../../assets/svg/icons/search-all-filter.svg';\r\nimport { ReactComponent as DatasetsFilterIcon } from '../../assets/svg/icons/datasets-filter.svg';\r\nimport { ReactComponent as SolutionsFilterIcon } from '../../assets/svg/icons/solutions-filter.svg';\r\nimport { ReactComponent as BlueprintFilterIcon } from '../../assets/svg/icons/blueprint-filter.svg';\r\nimport { ReactComponent as KenshoIcon } from '../../assets/svg/icons/kensho.svg';\r\nimport { filterDatasetsSolutionsBlueprints } from '../../utilities/filter-solutions';\r\nimport { ReactComponent as CaretRightIcon } from '../../assets/svg/icons/caret-right.svg';\r\nimport { ReactComponent as QueryLibraryFilterImage } from '../../assets/svg/icons/query-library.svg';\r\n\r\nconst searchAllFilter = getText('globalSearchFilters.searchAllText');\r\nconst datasetsFilter = getText('globalSearchFilters.DatasetsText');\r\nconst solutionsFilter = getText('globalSearchFilters.SolutionsText');\r\nconst bluePrintFilter = getText('globalSearchFilters.BlueprintsText');\r\nconst queriesFilter = getText('globalSearchFilters.QueriesText');\r\nconst kenshoIconTooltip = getText('pages.llm.tooltip');\r\n\r\nconst useStyles = makeStyles(() => ({\r\n textField: {\r\n '& :before': {\r\n content: 'none'\r\n },\r\n '& :after': {\r\n content: 'none'\r\n }\r\n }\r\n}));\r\n\r\nconst HtmlTooltip = withStyles((theme: Theme) => ({\r\n tooltip: {\r\n backgroundColor: colors.white,\r\n color: colors.black,\r\n maxWidth: theme.typography.pxToRem(400),\r\n fontSize: theme.typography.pxToRem(14),\r\n border: `${theme.typography.pxToRem(1)} solid ${colors.grey80}`\r\n }\r\n}))(Tooltip);\r\n\r\nfunction DatasetSearch(props: DatasetSearchProps) {\r\n const { searchValue, updateSearchValue, isSearching, placeholder, searchResults, lists, activeTab, onFilterChanged, urlPath, isLLMSearch, handleSearchSubmit, hideFilter, onFocusEvent } = props;\r\n const [showInput, setShowInput] = React.useState(false);\r\n const [searchValueLocal, setSearchValueLocal] = React.useState(searchValue); // we need it to avoid useless event emittments, and performance improvement\r\n const [searchFilterState, setSearchFilterState] = React.useState('All Results');\r\n const [currPlaceholderIndex, setCurrPlaceholderIndex] = React.useState(0);\r\n const searchCompRef: React.RefObject = React.useRef(null);\r\n const textFieldRef: React.RefObject = React.useRef(null);\r\n const selectBarRef: React.RefObject = React.useRef(null);\r\n const enabledBlueprintFlag = useSelector((state: RootStoreState) => get(state, 'shared.flags.enabledBlueprintFlag', false));\r\n const user = useSelector((state: RootStoreState) => get(state, 'user', ''));\r\n const isLoggedIn = user && user.isLoggedIn ? user.isLoggedIn : false;\r\n const [currLogoutPlaceholderIndex, setCurrLogoutPlaceholderIndex] = React.useState(0);\r\n const [maxChars, setMaxChars] = React.useState(20);\r\n const [maxCharErrMsg, setMaxCharErrMsg] = React.useState('');\r\n const [isTextArea, setIsTextArea] = React.useState(false);\r\n const [isTabbed, setisTabbed] = React.useState(true);\r\n const cursorPositionRef = React.useRef(0);\r\n const [isInitial, setIsInitial] = React.useState(true);\r\n\r\n const localeCode = getText('langCode');\r\n const genAIPlaceholder = getText('pages.home.genAIprompt');\r\n const genAILogoutPlaceholder = getText('pages.home.genAILogoutprompt');\r\n const globalSearchPage = window.location.href.includes('search-results');\r\n\r\n const toggleInput = (value: boolean) => {\r\n // we need this timeout to handle another events in scope of search bar\r\n if (showInput) {\r\n setTimeout(() => {\r\n setShowInput(value);\r\n }, 100);\r\n } else {\r\n setShowInput(value);\r\n setTimeout(() => {\r\n const inp: any = textFieldRef.current;\r\n if (inp) inp.click();\r\n }, 100);\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n if (searchValue.length === 0) {\r\n setIsTextArea(false);\r\n }\r\n if (searchValue !== searchValueLocal) setSearchValueLocal(searchValue);\r\n }, [searchValue]);\r\n\r\n React.useEffect(() => {\r\n const interval = setInterval(() => {\r\n const element = document.getElementById('dataset-search__placeholder');\r\n if (element && !isLoggedIn && urlPath && urlPath.includes('search-results')) {\r\n element.classList.remove('text-show');\r\n element.classList.add('text-fade');\r\n if (genAILogoutPlaceholder) {\r\n setTimeout(() => {\r\n setCurrLogoutPlaceholderIndex((prev => (prev + 1) % genAILogoutPlaceholder.length));\r\n element.classList.remove('text-fade');\r\n element.classList.add('text-show');\r\n }, 1000);\r\n }\r\n } else {\r\n setCurrLogoutPlaceholderIndex(0);\r\n }\r\n }, 4000);\r\n return () => clearInterval(interval);\r\n }, []);\r\n\r\n const handleBlur = () => {\r\n setTimeout(() => {\r\n setIsTextArea(false);\r\n }, 100);\r\n };\r\n\r\n const getLogoutPlaceholder = () => {\r\n if (isLoggedIn) return placeholder;\r\n return genAILogoutPlaceholder && genAILogoutPlaceholder[currLogoutPlaceholderIndex];\r\n };\r\n\r\n const resetSearchValue = () => {\r\n updateSearchValue('');\r\n setMaxCharErrMsg('');\r\n setCurrLogoutPlaceholderIndex(0);\r\n toggleInput(false);\r\n handleBlur();\r\n };\r\n\r\n const keyPressHandler = (event: KeyboardEvent) => {\r\n let itemId = '';\r\n if (event.key === 'Enter') {\r\n setShowInput(false);\r\n if (event.target instanceof HTMLElement) {\r\n itemId = event.target.getAttribute('id') || '';\r\n }\r\n if (itemId && itemId === 'clearicon-btn') {\r\n resetSearchValue();\r\n }\r\n if (itemId && itemId === 'data-search-bar') {\r\n if (handleSearchSubmit && !(maxCharErrMsg.length > 0)) handleSearchSubmit(true);\r\n }\r\n }\r\n\r\n if (event.key === 'Escape') {\r\n const element = document.getElementById('clearicon-btn');\r\n if (element) element.click();\r\n }\r\n if (!isLLMSearch && event.key === 'Tab' && urlPath && urlPath.includes('search-results')) {\r\n if (event.target instanceof Element) {\r\n itemId = event.target.getAttribute('id') || '';\r\n }\r\n if (itemId && itemId === 'data-search-bar' && !event.shiftKey) {\r\n setTimeout(() => {\r\n const d5 = document.getElementById('clearicon-btn');\r\n if (d5) d5.focus();\r\n }, 100);\r\n event.preventDefault();\r\n if (searchFilterState === 'All Results') {\r\n const d = document.getElementById('all-result-btn');\r\n if (d) d.focus();\r\n }\r\n if (searchFilterState === 'Datasets') {\r\n const d1 = document.getElementById('dataset-btn');\r\n if (d1) d1.focus();\r\n }\r\n if (searchFilterState === 'Solutions') {\r\n const d2 = document.getElementById('solution-btn');\r\n if (d2) d2.focus();\r\n }\r\n if (searchFilterState === 'Blueprints') {\r\n const d3 = document.getElementById('clearicon-btn');\r\n if (d3) d3.focus();\r\n }\r\n }\r\n if (itemId && itemId === 'blueprint-btn' && !event.shiftKey) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n const d3 = document.getElementById('all-result-btn');\r\n if (d3) d3.focus();\r\n }\r\n if (itemId && itemId === 'all-result-btn' && event.shiftKey) {\r\n event.preventDefault();\r\n const blpBtn = document.getElementById('blueprint-btn');\r\n if (blpBtn) blpBtn.focus();\r\n }\r\n }\r\n if (event.target instanceof Element) {\r\n itemId = event.target.getAttribute('id') || '';\r\n }\r\n setisTabbed(true);\r\n if (itemId && itemId === 'data-search-bar' && event.key === 'Tab') {\r\n setisTabbed(false);\r\n }\r\n if (itemId && itemId === 'kenshoIcon' && !event.shiftKey) {\r\n toggleInput(true);\r\n setisTabbed(true);\r\n const element = document.getElementById('data-search-bar-btn');\r\n if (element) {\r\n element.focus();\r\n element.click();\r\n }\r\n setTimeout(() => {\r\n const d = document.getElementById('data-search-bar');\r\n if (d) d.focus();\r\n }, 100);\r\n }\r\n if (itemId && itemId === 'clearicon-btn' && event.shiftKey) {\r\n toggleInput(true);\r\n setisTabbed(true);\r\n const element = document.getElementById('data-search-bar-btn');\r\n if (element) {\r\n element.focus();\r\n element.click();\r\n }\r\n setTimeout(() => {\r\n const d = document.getElementById('data-search-bar');\r\n if (d) d.focus();\r\n }, 100);\r\n }\r\n\r\n if (itemId && itemId === 'clearicon-btn' && event.key === 'Tab') {\r\n toggleInput(false);\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n if (urlPath) { // && !urlPath.includes('search-results')\r\n if (activeTab === 1) setSearchFilterState('Datasets');\r\n else if (activeTab === 2) setSearchFilterState('Solutions');\r\n else if (activeTab === 3) setSearchFilterState('Blueprints');\r\n else if (activeTab === 4) setSearchFilterState('Queries');\r\n else setSearchFilterState('All Results');\r\n }\r\n }, [activeTab]);\r\n\r\n React.useEffect(() => {\r\n const container = searchCompRef ? searchCompRef.current : null;\r\n if (container) container.addEventListener('keydown', keyPressHandler);\r\n return () => {\r\n if (container) {\r\n container.removeEventListener('keydown', keyPressHandler);\r\n }\r\n };\r\n });\r\n\r\n React.useEffect(() => {\r\n if (textFieldRef.current) {\r\n textFieldRef.current.setSelectionRange(cursorPositionRef.current, cursorPositionRef.current);\r\n }\r\n }, [searchValue]);\r\n\r\n const filterBtnIconFill = (isActive: boolean) => {\r\n return isActive ? '#D6002A' : '#515151';\r\n };\r\n\r\n // we need this timeout to not trigger search, if user is clickeng several times\r\n let tm: any;\r\n const handleFilterChanged = (filterState: string) => {\r\n if (tm) clearTimeout(tm);\r\n setSearchFilterState(filterState);\r\n tm = setTimeout(() => {\r\n let selTab = 0;\r\n if (filterState === 'Datasets') selTab = 1;\r\n if (filterState === 'Solutions') selTab = 2;\r\n if (filterState === 'Blueprints') selTab = 3;\r\n const scrollableWrapper = document.getElementsByClassName('dataset-search__searchfilterbar')[0];\r\n if (filterState === 'All Results' && scrollableWrapper) {\r\n scrollableWrapper.scrollLeft -= 100;\r\n }\r\n if (filterState === 'Blueprints' && scrollableWrapper) {\r\n scrollableWrapper.scrollLeft += 100;\r\n }\r\n if (onFilterChanged && !isLLMSearch) onFilterChanged(selTab);\r\n }, 500);\r\n };\r\n\r\n const getCount = (value: string) => {\r\n if (value === 'Datasets') {\r\n const result = lists || [];\r\n const dataset = filterDatasetsSolutionsBlueprints(result);\r\n return dataset.length;\r\n }\r\n if (value === 'Solutions') {\r\n const res = lists || [];\r\n const solution = filterDatasetsSolutionsBlueprints(res, true);\r\n return solution.length;\r\n }\r\n if (value === 'Blueprints') {\r\n const res = lists || [];\r\n const bluePrint = filterDatasetsSolutionsBlueprints(res, false, true);\r\n return bluePrint.length;\r\n }\r\n return (lists || []).length;\r\n };\r\n\r\n const handleOnChange = (event: React.ChangeEvent) => {\r\n const { value, selectionStart } = event.currentTarget as HTMLInputElement;\r\n cursorPositionRef.current = selectionStart || 0;\r\n const regex = /^\\s+/g;\r\n setSearchValueLocal(value.replace(regex, ''));\r\n const newSearch = value.replace(regex, '');\r\n if (newSearch.length > 500) {\r\n setMaxCharErrMsg('The maximum 500 characters has been exceeded. Please shorten your query.');\r\n } else if (maxCharErrMsg.length > 0) setMaxCharErrMsg('');\r\n\r\n };\r\n\r\n React.useEffect(() => {\r\n const timeDuration = (globalSearchPage && !isInitial) ? 0 : 500;\r\n const timer = setTimeout(() => {\r\n const regex = /^\\s+/g;\r\n if (handleSearchSubmit) handleSearchSubmit(false);\r\n if (searchValueLocal !== undefined && !isInitial) {\r\n updateSearchValue(searchValueLocal);\r\n } else {\r\n setIsInitial(false);\r\n }\r\n }, timeDuration);\r\n return () => clearTimeout(timer);\r\n }, [searchValueLocal]);\r\n\r\n const checkContentWidth = (element: Element) => {\r\n const canvas = document.createElement('canvas');\r\n const context = canvas.getContext('2d');\r\n\r\n if (context && element) {\r\n const inputElement = element as HTMLElement;\r\n context.font = getComputedStyle(inputElement).font;\r\n const contentWidth = context.measureText(searchValue).width;\r\n return contentWidth > (inputElement.offsetWidth - 40);\r\n }\r\n return false;\r\n };\r\n\r\n const activateTextAreaOrInput = (isContentWidthExceeded: boolean) => {\r\n const focusElement = () => {\r\n setTimeout(() => {\r\n const inp: any = textFieldRef.current;\r\n if (inp) {\r\n const l: any = inp.value.length;\r\n inp.focus();\r\n inp.setSelectionRange(l, l);\r\n }\r\n }, 100);\r\n };\r\n if (isContentWidthExceeded) {\r\n setIsTextArea(true);\r\n focusElement();\r\n } else if (isTextArea) {\r\n setIsTextArea(false);\r\n focusElement();\r\n }\r\n };\r\n\r\n const handleScroll = (w: Waypoint.CallbackArgs) => {\r\n if (w.viewportTop > w.waypointTop) {\r\n if (showInput) toggleInput(false);\r\n }\r\n };\r\n\r\n const classes = useStyles();\r\n\r\n const clearSearchValue = (e: React.MouseEvent) => {\r\n e.stopPropagation();\r\n resetSearchValue();\r\n };\r\n\r\n\r\n const handleKeyEvent = (event: React.KeyboardEvent) => {\r\n if (event.keyCode === 8) {\r\n toggleInput(true);\r\n setisTabbed(true);\r\n const element = document.getElementById('data-search-bar-btn');\r\n if (element) element.focus();\r\n }\r\n };\r\n\r\n const handleOnFocus = (event: React.FocusEvent) => {\r\n setCurrPlaceholderIndex(0);\r\n let itemId = '';\r\n let isContentWidthExceeded = false;\r\n if (event.target instanceof HTMLElement) {\r\n itemId = event.target.getAttribute('id') || '';\r\n }\r\n if (itemId && itemId === 'data-search-bar') {\r\n isContentWidthExceeded = checkContentWidth(event.target);\r\n }\r\n activateTextAreaOrInput(isContentWidthExceeded);\r\n if (onFocusEvent) onFocusEvent(event);\r\n };\r\n\r\n function filterOptionAllresult() {\r\n return (\r\n <>\r\n
\r\n
handleFilterChanged('All Results')} onFocus={() => { handleFilterChanged('All Results'); }} onKeyUp={e => { handleKeyEvent(e); }} tabIndex={0} data-testid=\"search-all\">\r\n
\r\n \r\n
\r\n {searchAllFilter} {getCount('All Results')}\r\n
\r\n
\r\n
\r\n
handleFilterChanged('Datasets')} onFocus={() => { handleFilterChanged('Datasets'); }} onKeyUp={e => { handleKeyEvent(e); }} tabIndex={0} data-testid=\"search-dataset\">\r\n
\r\n \r\n
\r\n {datasetsFilter} {getCount('Datasets')}\r\n
\r\n
\r\n
\r\n
handleFilterChanged('Solutions')} onFocus={() => { handleFilterChanged('Solutions'); }} onKeyUp={e => { handleKeyEvent(e); }} tabIndex={0} data-testid=\"search-solution\">\r\n
\r\n \r\n
\r\n {solutionsFilter} {getCount('Solutions')}\r\n
\r\n
\r\n
\r\n {enabledBlueprintFlag && (\r\n
handleFilterChanged('Blueprints')} onFocus={() => { handleFilterChanged('Blueprints'); }} onKeyUp={e => { handleKeyEvent(e); }} tabIndex={0} data-testid=\"search-blueprint\">\r\n
\r\n \r\n
\r\n {bluePrintFilter} {getCount('Blueprints')}\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n \r\n );\r\n }\r\n function filterOptionDatasets() {\r\n return (\r\n
\r\n
{}} tabIndex={-1}>\r\n
\r\n \r\n
\r\n {datasetsFilter} {getCount('Datasets')}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n function filterOptionSolutions() {\r\n return (\r\n
\r\n
{}} tabIndex={-1}>\r\n
\r\n \r\n
{solutionsFilter} {getCount('Solutions')}
\r\n
\r\n
\r\n
\r\n );\r\n\r\n }\r\n\r\n function filterOptionBlueprints() {\r\n return (\r\n
\r\n
{}} tabIndex={-1} aria-hidden=\"true\">\r\n
\r\n \r\n
{bluePrintFilter} {getCount('Blueprints')}
\r\n
\r\n
\r\n
\r\n );\r\n\r\n }\r\n\r\n function filterOptionQueries() {\r\n return (\r\n
\r\n
{}} tabIndex={-1} aria-hidden=\"true\">\r\n
\r\n \r\n
{queriesFilter} {getCount('Queries')}
\r\n
\r\n
\r\n
\r\n );\r\n\r\n }\r\n\r\n React.useEffect(() => {\r\n const interval = setInterval(() => {\r\n const element = document.getElementById('dataset-search__placeholder');\r\n if (element && element !== document.activeElement && urlPath && urlPath.includes('search-results')) {\r\n element.classList.remove('text-show');\r\n element.classList.add('text-fade');\r\n if (genAIPlaceholder) {\r\n setTimeout(() => {\r\n setCurrPlaceholderIndex((prev => (prev + 1) % genAIPlaceholder.length));\r\n element.classList.remove('text-fade');\r\n element.classList.add('text-show');\r\n }, 1000);\r\n }\r\n } else {\r\n setCurrPlaceholderIndex(0);\r\n }\r\n }, 4000);\r\n return () => clearInterval(interval);\r\n }, []);\r\n\r\n const getPlaceholder = () => {\r\n return genAIPlaceholder && genAIPlaceholder[currPlaceholderIndex];\r\n };\r\n\r\n // max number of characters till input text overflow\r\n // 6.5 is estimated avarage char width for current font size\r\n const updateMaxChars = () => {\r\n if (searchCompRef.current) {\r\n const inp: any = searchCompRef.current;\r\n const estimatedMaxChars = Math.floor(inp.offsetWidth) / 6.5 - 10;\r\n setMaxChars(estimatedMaxChars);\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n updateMaxChars();\r\n });\r\n\r\n useClickAway(selectBarRef, () => toggleInput(false));\r\n\r\n const focusSearchBar = (event: React.KeyboardEvent) => {\r\n if (event.keyCode === 9) {\r\n toggleInput(true);\r\n const element = document.getElementById('data-search-bar-btn');\r\n if (element) {\r\n element.focus();\r\n element.click();\r\n }\r\n setTimeout(() => {\r\n const d = document.getElementById('data-search-bar');\r\n if (d) d.focus();\r\n }, 100);\r\n }\r\n };\r\n\r\n\r\n const showToolTipIcon = () => {\r\n return (\r\n { setShowInput(false); }}\r\n role=\"presentation\"\r\n className=\"dataset-search__logo-wrap\"\r\n >\r\n \r\n }\r\n >\r\n \r\n \r\n
\r\n );\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {urlPath && urlPath.includes('search-results') && showToolTipIcon()}\r\n {showInput ? (\r\n handleScroll(w)}>\r\n \r\n \r\n ) : (\r\n \r\n )}\r\n { !isLLMSearch && showInput && }\r\n {(!showInput || (showInput && !searchValue.length)) ? (\r\n \r\n \r\n
\r\n ) : (\r\n
\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n {maxCharErrMsg && maxCharErrMsg.length > 0 && ({maxCharErrMsg})}\r\n {!hideFilter && urlPath && urlPath.includes('search-results') &&\r\n (filterOptionAllresult())}\r\n {!hideFilter && urlPath && urlPath.includes('datasets') &&\r\n filterOptionDatasets()}\r\n {!hideFilter && urlPath && urlPath.includes('solutions') &&\r\n filterOptionSolutions()}\r\n {!hideFilter && enabledBlueprintFlag && urlPath && urlPath.includes('blueprints') &&\r\n filterOptionBlueprints()}\r\n {!hideFilter && urlPath && urlPath.includes('query-library') &&\r\n filterOptionQueries()}\r\n
\r\n {!hideFilter && (\r\n
\r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default React.memo(DatasetSearch);\r\n","/* eslint-disable no-underscore-dangle */\r\nimport * as React from 'react';\r\nimport axios from 'axios';\r\nimport update from 'immutability-helper';\r\nimport { useSelector } from 'react-redux';\r\nimport { useLocation } from 'react-router-dom';\r\nimport Store from '../../../redux/store';\r\nimport { SET_FLAGS } from '../../../redux/actionTypes';\r\nimport SelectInput from '../../_common/form/select-input';\r\nimport DatasetSearch from '../../dataset-search';\r\nimport DataFiltersDropdown from '../../data-controls-panel/data-filters-dropdown';\r\nimport DataSort from '../../data-sort';\r\nimport DataFilter from '../../data-filter';\r\nimport LozengeFilterOptions from '../../data-controls-panel/lozenge-filter-options';\r\n\r\nimport QST from '../../../utilities/query-string-manager';\r\nimport APIManager from '../../../utilities/api-manager';\r\nimport HistoryInstance from '../../../utilities/history';\r\nimport { get, getText, getConfig, sortDesc, sortAsc, sortDescByDate, sortByEnhanced, debounce, authdata, createSearchStrategyFactory, SearchType, validInternalUser } from '../../../helpers';\r\nimport { mapSearchResultToDataProfileCard, mapSearchResultsToQuery, mapSearchResultToSolution, mapSearchResultToBluePrint } from '../../../utilities/data-mappers';\r\nimport safeParse from '../../../utilities/safe-parse';\r\nimport SPGVariables from '../../../utilities/spg-variables';\r\nimport { sortQLAsc, sortQLDesc } from '../../../helpers/sort';\r\n\r\nconst filterOptions = getConfig('components.filterOptions');\r\nconst Window = window as AnonymousObject;\r\nWindow.dataLayer = Window.dataLayer || [];\r\nlet defaultSort = getConfig('components.tile-grid.defaultSort');\r\nconst defaultSortQueryLibrary = getConfig('components.tile-grid.defaultSort_querylibrary');\r\nconst defaultSortAllPages = getConfig('components.tile-grid.defaultSort');\r\nconst sortBy = getText('generic.sortBy');\r\nconst debounceDuration = getConfig('components.typeaheadThrottleDuration');\r\nconst spgVariables = SPGVariables();\r\nconst env = spgVariables.ENV;\r\n\r\nconst initialState: SearchProviderState = {\r\n sort: defaultSort,\r\n search: '',\r\n filters: [],\r\n filterString: [],\r\n filterCount: 0,\r\n list: [],\r\n listLength: 0,\r\n status: 'initial-load'\r\n};\r\n\r\nconst initialResponse = {\r\n selectComponent: null,\r\n searchComponent: null,\r\n filterComponent: null,\r\n lozengeFilterComponent: null,\r\n mobileSelectComponent: null,\r\n mobileFilterComponent: null,\r\n sort: '',\r\n search: '',\r\n isSearching: false,\r\n list: [],\r\n listLength: 0,\r\n filterCount: 0,\r\n status: '',\r\n hasGenAISearchError: false\r\n};\r\n\r\nconst sortedList = (sort: string, type: SearchProductType, list: (DataProfileCard | APISolution)[] | Query[]) => {\r\n if (!list.length) return list;\r\n if (sort === 'recently-added' && type === 'querylibrary') return sortDescByDate(list, 'versiondate');\r\n if (sort === 'dataset-asc' && type === 'querylibrary') return sortQLAsc(list, 'datasets');\r\n if (sort === 'dataset-desc' && type === 'querylibrary') return sortQLDesc(list, 'datasets');\r\n if (sort === 'recently-added' && (type === 'dataSets' || type === 'combinedProducts' || type === 'solutions')) return sortDescByDate(list, 'addedDate');\r\n if (sort === 'dataset-desc' || sort === 'name-desc' || sort === 'solution-desc' || sort === 'query-desc') return sortDesc(list, 'name');\r\n if (sort === 'dataset-asc' || sort === 'name-asc' || sort === 'solution-asc' || sort === 'query-asc') return sortAsc(list, 'name');\r\n if (sort === 'vendor-desc') return sortDesc(list, 'dataProvider', 'name');\r\n if (sort === 'vendor-asc') return sortAsc(list, 'dataProvider', 'name');\r\n if (sort === 'recently-enhanced') return sortByEnhanced(list);\r\n if (sort === 'relevance') {\r\n return list.sort((a: AnonymousObject, b: AnonymousObject) => {\r\n if (a.sortIndex < b.sortIndex) return -1;\r\n if (a.sortIndex > b.sortIndex) return 1;\r\n return 0;\r\n });\r\n }\r\n return list;\r\n};\r\n\r\nconst parseFilters = (filters: FilterObjects[]) => {\r\n let filterCount = 0;\r\n const filterArray: string[] = [];\r\n Object.entries(filters).forEach((filter: AnonymousObject) => {\r\n const filterKeyColumn = filter[1].filterKey as string;\r\n const options: FilterCheckBoxItem[] = filter[1].items;\r\n options.forEach(option => {\r\n if (option.checked) {\r\n if (option.value instanceof Array) {\r\n filterArray.push(...option.value);\r\n } else {\r\n const header = filterOptions[filterKeyColumn];\r\n filterArray.push(`${header.keyColumn}:${option.value}`);\r\n }\r\n ++filterCount;\r\n }\r\n });\r\n });\r\n return {\r\n filterArray,\r\n filterCount\r\n };\r\n};\r\n\r\nconst hydrateStateFromUrl = () => {\r\n const newState: AnonymousObject = {};\r\n\r\n const deepLinkedSearch = QST.getSearch();\r\n\r\n if (deepLinkedSearch.search) newState.search = deepLinkedSearch.search as string;\r\n\r\n if (deepLinkedSearch.sort) newState.sort = deepLinkedSearch.sort as string;\r\n\r\n if (deepLinkedSearch.filters) {\r\n const filterQuery = (deepLinkedSearch.filters as string) || '';\r\n const parsedFilterQuery = safeParse(filterQuery || '{}') || [];\r\n newState.filters = [...initialState.filters].map((filter: AnonymousObject) => {\r\n const hasMatch = !!parsedFilterQuery[filter.filterKey];\r\n if (hasMatch) {\r\n // if this filter is found in the filter query lets parse it\r\n return {\r\n ...filter,\r\n items: filter.items.map((item: FilterCheckBoxItem) => ({\r\n ...item,\r\n checked: parsedFilterQuery[filter.filterKey].includes(item.name)\r\n }))\r\n };\r\n }\r\n return { ...filter };\r\n });\r\n }\r\n\r\n return newState;\r\n};\r\n\r\nconst selectComponent = (type: SearchProductType, controlledValue: string, isDisabled: boolean, onChange: (name: string, value: string) => void) => {\r\n const defaultSortOptions = getText(`pages.${type}.sortOptions`);\r\n defaultSort = useLocation().pathname.includes('query-library') ? defaultSortQueryLibrary : defaultSortAllPages;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst getActiveTab = (type: SearchProductType, activeTab: number) => {\r\n if (type === 'combinedProducts' && activeTab !== 0) return activeTab;\r\n if (type === 'dataSets') return 1;\r\n if (type === 'solutions') return 2;\r\n if (type === 'blueprints') return 3;\r\n if (type === 'querylibrary') return 4;\r\n return 0;\r\n};\r\n\r\nconst searchComponent = (type: SearchProductType, activeTab: number, lists: (DataProfileCard | APISolution | APIBlueprint)[] | Query[], searchValue: string, isSearching: boolean, updateSearchValue: (value: string) => void, onFilterChanged: (selTab: number) => void, urlPath: string, isLLMSearch: boolean, handleSearchSubmit: (isSubmit: boolean) => void, isLLMSubmitted: boolean, genAIResponse: any) => {\r\n const placeholder = getText(`pages.${type}.searchPlaceholder`);\r\n const searchResults = getText(`pages.${type}.searchResultsSummary`);\r\n const user = useSelector((rootState: RootStoreState) => get(rootState, 'user', ''));\r\n const userEmail = user && user.userInfo && user.userInfo.Email ? user.userInfo.Email : '';\r\n const authLists = authdata(lists as (APISolution)[], userEmail);\r\n const hideFilterFlag = isLLMSubmitted || (isLLMSearch && genAIResponse);\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst filterComponent = (\r\n filters: FilterObjects[],\r\n clearAll: () => void,\r\n isFiltersActive: boolean,\r\n updateFilter: (filterItems: FilterCheckBoxItem[], filterKey: string) => void\r\n) => ;\r\n\r\nconst lozengeFilterComponent = (filters: FilterObjects[], updateFilter: (filterItems: FilterObjects[]) => void) => (\r\n \r\n);\r\n\r\nconst mobileSelectComponent = (type: SearchProductType, controlledValue: string, isDisabled: boolean, onChange: (name: string, value: string) => void) => {\r\n const defaultSortOptions = getText(`pages.${type}.sortOptions`);\r\n return ;\r\n};\r\n\r\nconst mobileFilterComponent = (\r\n filters: FilterObjects[],\r\n clearAll: () => void,\r\n filterCount: number,\r\n applyFilters: (filters: FilterObjects[]) => void\r\n) => ;\r\n\r\nconst updateSearchUrl = debounce((search, dispatch) => {\r\n const currentSearch = QST.getSearchItem('search');\r\n if (currentSearch !== search) QST.setSearchItem({ search });\r\n dispatch();\r\n}, debounceDuration);\r\n\r\nconst updateSortUrl = (sort: string) => {\r\n QST.setSearchItem({ sort }, true);\r\n};\r\n\r\nconst updateFilterURL = (filterItems: FilterCheckBoxItem[], filterKey: string) => {\r\n const oldFilters = (QST.getSearchItem('filters') as string) || '';\r\n const parsedOldFilters = safeParse(oldFilters || '{}') || [];\r\n // get array of options as names\r\n const optionArray = filterItems.filter(item => item.checked).map(item => item.name);\r\n // if array has length add to the filters / otherwise delete\r\n if (optionArray.length) parsedOldFilters[filterKey] = optionArray;\r\n else delete parsedOldFilters[filterKey];\r\n // convert to string - remove if string === {}\r\n const filtersAsString = JSON.stringify(parsedOldFilters);\r\n // finally update the state\r\n if (filtersAsString !== '{}') QST.setSearchItem({ filters: filtersAsString });\r\n else QST.removeSearchItem('filters');\r\n};\r\n\r\nconst updateFiltersURL = (filters: FilterObjects[]) => {\r\n const updatedFilters: AnonymousObject = {};\r\n filters.forEach((filter: FilterObjects) => {\r\n const optionArray = filter.items.filter((item: FilterCheckBoxItem) => item.checked).map((item: FilterCheckBoxItem) => item.name);\r\n if (optionArray.length) updatedFilters[filter.filterKey] = optionArray;\r\n });\r\n // convert to string - remove if string === {}\r\n const filtersAsString = JSON.stringify(updatedFilters);\r\n // finally update the state\r\n if (filtersAsString !== '{}') QST.setSearchItem({ filters: filtersAsString });\r\n else QST.removeSearchItem('filters');\r\n};\r\n\r\nconst addIndex = (arr: AnonymousObject) => {\r\n return arr.map((item: DataProfileCard | APISolution | Query, index: number) => {\r\n item.sortIndex = index;\r\n return item;\r\n });\r\n};\r\n\r\nconst reducer: React.Reducer = (state, action) => {\r\n switch (action.type) {\r\n case 'update-search': {\r\n const search = action.payload;\r\n return {\r\n ...state,\r\n search,\r\n status: 'updated-search'\r\n };\r\n }\r\n case 'update-search-debounced': {\r\n return {\r\n ...state,\r\n status: 'updated-search-debounced'\r\n };\r\n }\r\n case 'update-sort':\r\n return {\r\n ...state,\r\n sort: action.payload\r\n };\r\n case 'update-filter': {\r\n const index = state.filters.findIndex((filter: FilterObjects) => filter.filterKey === action.payload.filterKey);\r\n const newState = update(state, { filters: { [index]: { items: { $set: action.payload.filterItems } } } });\r\n const parsedFilters = parseFilters(newState.filters);\r\n newState.filterString = parsedFilters.filterArray;\r\n newState.filterCount = parsedFilters.filterCount;\r\n newState.status = 'updated-filters';\r\n return newState;\r\n }\r\n case 'update-filters': {\r\n const parsedFilters = parseFilters(action.payload);\r\n return update(state, {\r\n filters: { $set: action.payload },\r\n filterString: { $set: parsedFilters.filterArray },\r\n filterCount: { $set: parsedFilters.filterCount },\r\n status: { $set: 'updated-filters' }\r\n });\r\n }\r\n case 'update-lozenge-filters': {\r\n const newState = update(state, { filters: { $set: action.payload } });\r\n const parsedFilters = parseFilters(newState.filters);\r\n newState.filterString = parsedFilters.filterArray;\r\n newState.filterCount = parsedFilters.filterCount;\r\n newState.status = 'updated-filters';\r\n return newState;\r\n }\r\n case 'reset-filters':\r\n return update(state, {\r\n filters: { $set: initialState.filters },\r\n filterString: { $set: initialState.filterString },\r\n filterCount: { $set: initialState.filterCount },\r\n status: { $set: 'updated-filters' }\r\n });\r\n case 'search-starting':\r\n return {\r\n ...state,\r\n status: 'searching'\r\n };\r\n case 'bookmarks-loading':\r\n return {\r\n ...state,\r\n status: 'searching'\r\n };\r\n case 'search-complete': {\r\n if (state.status !== 'searching') return state;\r\n const sort = (QST.getSearchItem('sort') as string) || defaultSort;\r\n return update(state, {\r\n list: { $set: addIndex(action.payload) },\r\n listLength: { $set: action.payload.length },\r\n status: { $set: 'loaded-results' },\r\n sort: { $set: sort }\r\n });\r\n }\r\n case 'refined-search-complete': {\r\n if (state.status !== 'searching') return state;\r\n const sort = (QST.getSearchItem('sort') as string) || 'relevance';\r\n return update(state, {\r\n list: { $set: addIndex(action.payload) },\r\n listLength: { $set: action.payload.length },\r\n status: { $set: 'loaded-results' },\r\n sort: { $set: sort }\r\n });\r\n }\r\n case 'rehydrate-state': {\r\n const search = action.payload.search || '';\r\n const sort = action.payload.sort || defaultSort;\r\n const filters = action.payload.filters || initialState.filters;\r\n const parsedFilters = parseFilters(filters);\r\n return update(state, {\r\n search: { $set: search },\r\n sort: { $set: sort },\r\n filters: { $set: filters },\r\n filterString: { $set: parsedFilters.filterArray },\r\n filterCount: { $set: parsedFilters.filterCount },\r\n status: { $set: 'rehydrating' }\r\n });\r\n }\r\n default:\r\n throw new Error();\r\n }\r\n};\r\n\r\nconst logGAevent = (search: string, type: SearchProductType, resultsCount: number) => {\r\n const filters = (QST.getSearchItem('filters') as string) || '';\r\n let searchContext = '';\r\n if (type === 'combinedProducts') searchContext = '';\r\n if (type === 'querylibrary') searchContext = 'Query Library';\r\n if (search && filters) {\r\n Window.dataLayer.push({\r\n event: 'searchSubmit',\r\n searchTerm: search,\r\n searchContext,\r\n searchFilters: filters,\r\n searchResultsCount: resultsCount\r\n });\r\n } else if (search) {\r\n Window.dataLayer.push({\r\n event: 'searchSubmit',\r\n searchContext,\r\n searchTerm: search,\r\n searchFilters: undefined,\r\n searchResultsCount: resultsCount\r\n });\r\n } else {\r\n Window.dataLayer.push({\r\n event: 'searchSubmit',\r\n searchContext,\r\n searchFilters: filters,\r\n searchTerm: undefined,\r\n searchResultsCount: resultsCount\r\n });\r\n }\r\n};\r\n\r\nconst searchProvider = function SearchProvider(props: SearchProviderProps) {\r\n\r\n const { filters, render, bookmarks, type, urlPath, queryFilter, bookmarksLoaded, filterType, activeTab, updateSearchType } = props;\r\n const [state, dispatch] = React.useReducer(reducer, { ...initialState, filters });\r\n const user = useSelector((rootState: RootStoreState) => get(rootState, 'user', ''));\r\n const enabledBlueprintFlag = useSelector((stateRS: RootStoreState) => get(stateRS, 'shared.flags.enabledBlueprintFlag', false));\r\n\r\n const userEmail = user && user.userInfo && user.userInfo.Email ? user.userInfo.Email : '';\r\n const response: SearchProviderResponse = initialResponse;\r\n\r\n const [isLLMSearch, setIsLLMSearch] = React.useState(false);\r\n const [genAISubmit, setGenAISubmit] = React.useState(false);\r\n const [genAIResponse, setGenAIResponse] = React.useState();\r\n const [hasGenAISearchError, setHasGenAISearchError] = React.useState(false);\r\n const [feedback, setFeedback] = React.useState('');\r\n const [clearFeedbackFlag, setClearFeedbackFlag] = React.useState(false);\r\n const isLoggedIn = user && user.isLoggedIn ? user.isLoggedIn : false;\r\n const isValidUser = user ? validInternalUser(user) : false;\r\n const tileNameList = useSelector((stateRS: RootStoreState) => get(stateRS, 'shared.tileNamesGt25Chars', {}));\r\n const tileNamesGt25CharsList = tileNameList && tileNameList.data && tileNameList.data.TileNames ? tileNameList.data.TileNames : [];\r\n\r\n const { getSearchStrategy } = createSearchStrategyFactory();\r\n\r\n const decide = (searchText: string) => {\r\n if (type !== 'combinedProducts') return SearchType.openSearch;\r\n const searchStrategy = getSearchStrategy(searchText.trim(), tileNamesGt25CharsList);\r\n if (searchStrategy) return searchStrategy.apply();\r\n return SearchType.openSearch;\r\n };\r\n\r\n const getSearchType = (value: string, isDefault: boolean) => {\r\n setIsLLMSearch(false);\r\n const searchText = isDefault ? state.search : value;\r\n if (searchText && searchText.trim() && searchText.trim().length > 0) {\r\n const searchtype = decide(searchText);\r\n if (searchtype === SearchType.llmSearch) setIsLLMSearch(true);\r\n return searchtype;\r\n }\r\n return SearchType.openSearch;\r\n };\r\n\r\n // Example success callback function\r\n const handleSuccess = () => {\r\n console.log('Email request succeeded');\r\n };\r\n\r\n // Example error callback function\r\n const handleEmailError = (errorMessage: any) => {\r\n console.error(`Email request failed: ${errorMessage}`);\r\n };\r\n\r\n const emailStatusCallback = (hasRequestSuccess: boolean, successCallback: () => void, error: (error: string) => void) => {\r\n if (hasRequestSuccess) {\r\n successCallback();\r\n } else {\r\n error('Email request failed');\r\n }\r\n };\r\n\r\n const sendEmail = (errorBody: string, errorSubject: string, includeKensho: boolean) => {\r\n APIManager.sendEmail(\r\n errorBody,\r\n errorSubject,\r\n includeKensho ? spgVariables.KENSHOLLMEmailList : spgVariables.LLMEmailList,\r\n (isSuccess: boolean) => {\r\n emailStatusCallback(isSuccess, handleSuccess, handleEmailError);\r\n }\r\n );\r\n };\r\n\r\n const sendSearchFailedEmail = (value: string, reason: any, includeKensho: boolean) => {\r\n const errorData = '
SearchValue - '.concat(value);\r\n const errorText = '
Reason - '.concat(JSON.stringify(reason));\r\n const errorBody = 'Gen AI Search service error: '.concat(errorData).concat(errorText);\r\n const errorSubject = (env ? env.toUpperCase().concat(' - ') : '').concat('Marketplace Gen AI Search Service Error');\r\n sendEmail(errorBody, errorSubject, includeKensho);\r\n };\r\n\r\n const getQueryData = () => {\r\n let userType;\r\n if (!isLoggedIn) {\r\n userType = 'not_authenticated';\r\n } else if (isValidUser) {\r\n userType = 'internal';\r\n } else {\r\n userType = 'external';\r\n }\r\n const data = {\r\n query: state.search,\r\n /* eslint-disable @typescript-eslint/camelcase */\r\n user_type: userType\r\n };\r\n return data;\r\n };\r\n\r\n const handleGenAIError = (isRequestManuallyCanceled = false) => {\r\n setGenAISubmit(false);\r\n if (!isRequestManuallyCanceled) {\r\n setHasGenAISearchError(true);\r\n setGenAIResponse([]);\r\n }\r\n };\r\n\r\n const onGenAISearchClick = () => {\r\n if (state.search) {\r\n const data = getQueryData();\r\n Window.dataLayer.push({\r\n event: 'globalSearchSubmitLLM',\r\n searchQuestion: data.query,\r\n });\r\n APIManager.getLLMAccessToken().then(token => {\r\n APIManager.getChatiqSearchById(data, token && token.data && token.data.AccessToken ? token.data.AccessToken : '').then(res => {\r\n setGenAISubmit(false);\r\n if (res.data) {\r\n if (res.data.response_uuid && res.data.response) {\r\n setGenAIResponse(res.data);\r\n setHasGenAISearchError(false);\r\n } else {\r\n setHasGenAISearchError(true);\r\n setGenAIResponse([]);\r\n sendSearchFailedEmail(state.search, res.data, true);\r\n }\r\n }\r\n }).catch(error => {\r\n const isCanceled = axios.isCancel(error);\r\n handleGenAIError(isCanceled);\r\n if (!isCanceled) sendSearchFailedEmail(state.search, error && error.message ? error.message : 'Search Service Error', true);\r\n });\r\n }).catch(er => {\r\n const isReqCanceled = axios.isCancel(er);\r\n handleGenAIError(isReqCanceled);\r\n if (!isReqCanceled) sendSearchFailedEmail(state.search, 'LLM Access Token Service Error', false);\r\n });\r\n }\r\n };\r\n\r\n const sendFeedbackFailedEmail = (data: any, reason: any, includeKensho: boolean) => {\r\n console.log('Gen AI Feedback service error, data=', JSON.stringify(data));\r\n const errorData = '
Data - '.concat(JSON.stringify(data));\r\n const errorText = '
Reason - '.concat(JSON.stringify(reason));\r\n const errorBody = 'Gen AI Feedback service error:'.concat(errorData).concat(errorText);\r\n const errorSubject = (env ? env.toUpperCase().concat(' - ') : '').concat('Marketplace Gen AI Feedback Service Error');\r\n sendEmail(errorBody, errorSubject, includeKensho);\r\n };\r\n\r\n response.handleFeedback = (id: string, flag: string) => {\r\n setFeedback(flag);\r\n const data = {\r\n response_uuid: id,\r\n feedback_flag: flag\r\n };\r\n APIManager.getLLMAccessToken().then(token => {\r\n APIManager.sendChatiqSearchFeedbackById(data, token && token.data && token.data.AccessToken ? token.data.AccessToken : '').then(res => {\r\n if (!(res.status === 200 && res.data === '')) {\r\n sendFeedbackFailedEmail(data, res.data, true);\r\n }\r\n }).catch(error => {\r\n sendFeedbackFailedEmail(data, error && error.message ? error.message : 'Feedback Service Error', true);\r\n });\r\n }).catch(() => {\r\n sendFeedbackFailedEmail(data, 'LLM Access Token Service Error', false);\r\n console.log('Gen AI Feedback service access token error, data=', JSON.stringify(data));\r\n });\r\n };\r\n\r\n response.clearFeedbackDoneNotify = () => {\r\n setClearFeedbackFlag(false);\r\n };\r\n\r\n response.onTabPressed = (value: string) => {\r\n let d;\r\n if (value === 'gen-ai-result-end') {\r\n d = document.getElementById('kenshoIcon');\r\n }\r\n if (d && isLLMSearch) d.focus();\r\n };\r\n\r\n const resetGenAIAttribute = () => {\r\n setIsLLMSearch(false);\r\n setGenAISubmit(false);\r\n setGenAIResponse(null);\r\n setHasGenAISearchError(false);\r\n setClearFeedbackFlag(false);\r\n setFeedback('');\r\n };\r\n\r\n React.useEffect(() => {\r\n if (isLLMSearch) {\r\n dispatch({ type: 'search-complete', payload: [] });\r\n setGenAIResponse(null);\r\n }\r\n Store.dispatch({ flags: { hideFooterFlag: isLLMSearch }, type: SET_FLAGS });\r\n if (updateSearchType) updateSearchType(isLLMSearch);\r\n }, [isLLMSearch]);\r\n\r\n React.useEffect(() => {\r\n if (isLLMSearch && genAISubmit) {\r\n onGenAISearchClick();\r\n }\r\n }, [genAISubmit]);\r\n\r\n React.useEffect(() => {\r\n initialState.filters = filters;\r\n const hydratedState = hydrateStateFromUrl() as SearchProviderState;\r\n const hasBookmarkFilter =\r\n hydratedState.filters &&\r\n hydratedState.filters.some(f => f.filterKey === filterOptions.bookmark.filterKey && f.items.length > 0 && f.items[0].checked);\r\n if (hasBookmarkFilter && !bookmarksLoaded) {\r\n dispatch({ type: 'bookmarks-loading' });\r\n } else {\r\n dispatch({ type: 'rehydrate-state', payload: hydratedState });\r\n }\r\n }, [bookmarksLoaded, queryFilter, filterType]);\r\n\r\n React.useEffect(() => {\r\n if (state.status === 'rehydrating' || state.status === 'updated-search-debounced' || state.status === 'updated-filters') {\r\n dispatch({ type: 'search-starting' });\r\n\r\n const hasBookmarkFilter = state.filters.some(\r\n f => f.filterKey === filterOptions.bookmark.filterKey && f.items.length > 0 && f.items[0].checked\r\n );\r\n\r\n if (type === 'dataSets') {\r\n APIManager.search(state.search, state.filterString, ['isType:Dataset OR isType:Bundle']).then(res => {\r\n let dataProfileCards = get(res, 'data.hits.hits', []);\r\n dataProfileCards = dataProfileCards.map((item: Hit) => mapSearchResultToDataProfileCard(item._source));\r\n if (hasBookmarkFilter) {\r\n const dataSetIds = bookmarks.datasets.map(dataset => dataset.keyId.toString());\r\n dataProfileCards = (dataProfileCards as DataProfileCard[]).filter(dataset => dataSetIds.includes(dataset.id.toString()));\r\n }\r\n if (state.search.length > 0 || state.filterString.length > 0) {\r\n logGAevent(state.search, type, dataProfileCards.length);\r\n dispatch({ type: 'refined-search-complete', payload: dataProfileCards });\r\n } else {\r\n dispatch({ type: 'search-complete', payload: dataProfileCards });\r\n }\r\n }).catch(error => {\r\n if (!(error && error.message && error.message === 'Search canceled due to new request.')) {\r\n console.warn(error);\r\n }\r\n });\r\n } else if (type === 'solutions') {\r\n APIManager.search(state.search, state.filterString, ['isType:Solution']).then(res => {\r\n let solutionCards = get(res, 'data.hits.hits', []);\r\n solutionCards = solutionCards.map((item: Hit) => mapSearchResultToSolution(item._source));\r\n if (hasBookmarkFilter) {\r\n const solutionIds = bookmarks.solutions.map(solution => solution.keyId.toString());\r\n solutionCards = (solutionCards as APISolution[]).filter(solution => solutionIds.includes(solution.KeyPlatformService.toString()));\r\n }\r\n if (state.search.length > 0 || state.filterString.length > 0) {\r\n logGAevent(state.search, type, solutionCards.length);\r\n dispatch({ type: 'refined-search-complete', payload: solutionCards });\r\n } else {\r\n dispatch({ type: 'search-complete', payload: solutionCards });\r\n }\r\n }).catch(error => {\r\n if (!(error && error.message && error.message === 'Search canceled due to new request.')) {\r\n console.warn(error);\r\n }\r\n });\r\n } else if (type === 'combinedProducts') {\r\n const searchtype = getSearchType('', true);\r\n if (updateSearchType) updateSearchType(searchtype === SearchType.llmSearch);\r\n if (searchtype === SearchType.openSearch) {\r\n resetGenAIAttribute();\r\n APIManager.search(state.search, state.filterString, undefined, queryFilter).then(res => {\r\n let data = get(res, 'data.hits.hits', []).map((hit: Hit) => {\r\n if (hit._source.isType === 'Solution') {\r\n return mapSearchResultToSolution(hit._source);\r\n }\r\n if (hit._source.isType === 'Blueprint') {\r\n return mapSearchResultToBluePrint(hit._source);\r\n }\r\n return mapSearchResultToDataProfileCard(hit._source);\r\n });\r\n if (!enabledBlueprintFlag) {\r\n data = data.filter((x: any) => x.KeyMarketplaceBlueprint === undefined);\r\n }\r\n if (hasBookmarkFilter) {\r\n if (filterType === 'datasets') {\r\n const dataSetIds = bookmarks.datasets.map(dataset => dataset.keyId.toString());\r\n data = (data as DataProfileCard[]).filter(dataset => 'id' in dataset)\r\n .filter(dataset => dataSetIds.includes(dataset.id.toString()));\r\n } else {\r\n const solutionIds = bookmarks.solutions.map(solution => solution.keyId.toString());\r\n data = (data as APISolution[]).filter(solution => 'KeyPlatformService' in solution)\r\n .filter(solution => solutionIds.includes(solution.KeyPlatformService));\r\n }\r\n }\r\n if (state.search.length > 0 || state.filterString.length > 0) {\r\n logGAevent(state.search, type, data.length);\r\n dispatch({ type: 'refined-search-complete', payload: data });\r\n } else {\r\n dispatch({ type: 'search-complete', payload: data });\r\n }\r\n });\r\n } else if (searchtype === SearchType.llmSearch) {\r\n setIsLLMSearch(true);\r\n if (state.status === 'rehydrating') setGenAISubmit(true);\r\n }\r\n } else if (type === 'querylibrary') {\r\n APIManager.search(state.search, state.filterString, ['isType:Query']).then(res => {\r\n let searchResult = get(res, 'data.hits.hits', []);\r\n searchResult = searchResult.map((item: Hit) => mapSearchResultsToQuery(item._source));\r\n if (hasBookmarkFilter) {\r\n const queryIds = bookmarks.queries ? bookmarks.queries.map(queries => queries.keyId.toString()) : [];\r\n searchResult = (searchResult as Query[]).filter(qry => queryIds.includes(qry.queryId.toString()));\r\n }\r\n if (state.search.length > 0 || state.filterString.length > 0) {\r\n logGAevent(state.search, type, searchResult.length);\r\n dispatch({ type: 'refined-search-complete', payload: searchResult });\r\n } else {\r\n dispatch({ type: 'search-complete', payload: searchResult });\r\n }\r\n });\r\n } else if (type === 'blueprints') {\r\n APIManager.search(state.search, state.filterString, ['isType:Blueprint']).then(res => {\r\n let bluePrintCards = get(res, 'data.hits.hits', []);\r\n bluePrintCards = bluePrintCards.map((item: Hit) => mapSearchResultToBluePrint(item._source));\r\n if (hasBookmarkFilter) {\r\n const bluePrintIds = bookmarks.blueprints && bookmarks.blueprints.map(blueprint => blueprint.keyId.toString());\r\n bluePrintCards = (bluePrintCards as APIBlueprint[]).filter(blueprint => bluePrintIds && bluePrintIds.includes(blueprint.KeyMarketplaceBlueprint.toString()));\r\n }\r\n if (state.search.length > 0 || state.filterString.length > 0) {\r\n logGAevent(state.search, type, bluePrintCards.length);\r\n dispatch({ type: 'refined-search-complete', payload: bluePrintCards });\r\n } else {\r\n dispatch({ type: 'search-complete', payload: bluePrintCards });\r\n }\r\n }).catch(error => {\r\n if (!(error && error.message && error.message === 'Search canceled due to new request.')) {\r\n console.warn(error);\r\n }\r\n });\r\n }\r\n }\r\n const historyListener = HistoryInstance.listen((location, action) => {\r\n if (location.pathname === urlPath) {\r\n const newSearch = QST.getSearchItem('search') || '';\r\n const newFilters = QST.getSearchItem('filters') || '';\r\n // if action = POP (back) or is refresh (click top menu) then rehydrate!\r\n const isReset = action === 'PUSH' && newSearch === '' && newFilters === '';\r\n const isNewSearch = action === 'PUSH' && newSearch !== state.search;\r\n if (action === 'POP' || isReset || isNewSearch) {\r\n dispatch({ type: 'rehydrate-state', payload: hydrateStateFromUrl() });\r\n }\r\n }\r\n });\r\n return () => {\r\n historyListener();\r\n };\r\n }, [state.status, state.search]);\r\n\r\n const resetFilters = () => {\r\n if (state.filterCount === 0) return;\r\n dispatch({ type: 'reset-filters' });\r\n QST.removeSearchItem('filters');\r\n };\r\n\r\n response.selectComponent = selectComponent(type, state.sort, state.listLength < 1, (name: string, value: string) => {\r\n dispatch({ type: 'update-sort', payload: value });\r\n updateSortUrl(value);\r\n });\r\n\r\n response.searchComponent = searchComponent(type, activeTab || 0, isLLMSearch ? [] : state.list, state.search, state.status === 'searching', (value: string) => {\r\n const payload = value.replace(/ {2,}/g, ' ');\r\n const searchType = getSearchType(payload, false);\r\n if (updateSearchType) updateSearchType(searchType === SearchType.llmSearch);\r\n dispatch({ type: 'update-search', payload });\r\n if (hasGenAISearchError) setHasGenAISearchError(false);\r\n if (searchType === SearchType.llmSearch && genAIResponse && feedback !== '') {\r\n setClearFeedbackFlag(true);\r\n setFeedback('');\r\n }\r\n updateSearchUrl(payload, () => dispatch({ type: 'update-search-debounced' }));\r\n }, (val: number) => {\r\n if (resetFilters) resetFilters();\r\n QST.setSearchItem({ tab: val }, true);\r\n },\r\n urlPath, isLLMSearch,\r\n (isSubmit: boolean) => {\r\n const value = getSearchType('', true);\r\n if (value === SearchType.llmSearch && isSubmit) {\r\n setGenAISubmit(isSubmit);\r\n }\r\n }, genAISubmit, genAIResponse);\r\n\r\n response.filterComponent = filterComponent(\r\n state.filters,\r\n resetFilters,\r\n state.filterCount > 0,\r\n (filterItems: FilterCheckBoxItem[], filterKey: string) => {\r\n dispatch({ type: 'update-filter', payload: { filterItems, filterKey } });\r\n\r\n updateFilterURL(filterItems, filterKey);\r\n }\r\n );\r\n\r\n response.lozengeFilterComponent = lozengeFilterComponent(state.filters, (filterItems: FilterObjects[]) => {\r\n dispatch({ type: 'update-lozenge-filters', payload: filterItems });\r\n updateFiltersURL(filterItems);\r\n });\r\n\r\n response.mobileSelectComponent = mobileSelectComponent(type, state.sort, state.listLength < 1, (name: string, value: string) => {\r\n dispatch({ type: 'update-sort', payload: value });\r\n updateSortUrl(value);\r\n });\r\n\r\n response.mobileFilterComponent = mobileFilterComponent(state.filters, resetFilters, state.filterCount, (newFilters: FilterObjects[]) => {\r\n dispatch({ type: 'update-filters', payload: newFilters });\r\n updateFiltersURL(newFilters);\r\n });\r\n\r\n return (\r\n <>\r\n {render({\r\n ...response,\r\n sort: state.sort,\r\n search: state.search,\r\n isSearching: isLLMSearch ? isLLMSearch && genAISubmit : state.status === 'searching' || state.status === 'initial-load' || state.status === 'rehydrating',\r\n listLength: state.listLength,\r\n list: authdata(sortedList(state.sort, type, state.list), userEmail),\r\n filterCount: state.filterCount,\r\n status: state.status,\r\n resetFilters,\r\n isLLMSearch,\r\n genAIResponse,\r\n hasGenAISearchError,\r\n clearFeedbackFlag\r\n })}\r\n \r\n );\r\n};\r\n\r\nexport default React.memo(searchProvider);\r\n","import * as React from 'react';\r\nimport HtmlContent from '../_common/html-content';\r\nimport CustomLink from '../_common/custom-link';\r\n\r\nconst gaLabel = 'Product Finder Promo';\r\n\r\nfunction ProductFinderPromo(props: PageSectionData) {\r\n const { title, content, linkText, linkUrl } = props;\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default React.memo(ProductFinderPromo);\r\n","import * as React from 'react';\r\nimport Media from 'react-media';\r\n\r\nexport default class DataControlsPanel extends React.PureComponent {\r\n public render() {\r\n const {\r\n filterComponent,\r\n selectComponent,\r\n mobileFilterComponent,\r\n mobileSelectComponent,\r\n lozengeFilterComponent\r\n } = this.props;\r\n return (\r\n
\r\n \r\n
\r\n {mobileFilterComponent}\r\n {mobileSelectComponent}\r\n
\r\n
\r\n \r\n
\r\n
\r\n {filterComponent}\r\n
{selectComponent}
\r\n
\r\n
{lozengeFilterComponent}
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","/* eslint-disable no-useless-constructor */\r\n/* eslint-disable react/no-access-state-in-setstate */\r\nimport * as React from 'react';\r\nimport { Settings } from 'react-slick';\r\nimport HelmetManager from '../../components/_common/helmet-manager';\r\nimport Breadcrumb from '../../components/breadcrumb';\r\nimport SearchControlsPanel from '../../components/data-controls-panel';\r\nimport Loader from '../../components/_common/loader';\r\nimport PageLoaded from '../../components/_common/page-loaded';\r\nimport SearchEmptyResults from '../../components/search-empty-results';\r\nimport { getText, getPageTextsSection, getConfig } from '../../helpers';\r\nimport Carousel from '../../components/_common/carousel';\r\nimport QueryTile from '../../components/query';\r\nimport ProductFinderPromo from '../../components/product-finder-promo';\r\nimport SearchProvider from '../../components/_providers/search-provider/search-provider';\r\nimport APIManager from '../../utilities/api-manager';\r\nimport TileCarousel from '../../components/_common/tile-carousel';\r\n\r\nconst preLoadQueries = getConfig('components.preLoadQueries');\r\nconst metaDataText = getText('pages.querylibrary.metaData');\r\nconst pageText = getConfig('pagetext.queryLibrary');\r\nconst langCode = getText('langCode');\r\nconst carouselOptions = getConfig('routes.trendingQueries.carouselOptions');\r\nconst trendingQueriesHeaderText = getText('generic.trendingQueries');\r\nlet queryIdsString = '';\r\n\r\nexport default class QueryLibraryPage extends React.PureComponent {\r\n constructor(props: PageProps & QueryLibraryPageProps) {\r\n super(props);\r\n this.state = {\r\n trendingQueryIds: [],\r\n trendingQueries: []\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchTrendingQueries();\r\n }\r\n\r\n fetchTrendingQueries = () => {\r\n return APIManager.getTrendingQueries()\r\n .then(response => {\r\n if (response && response.data && Array.isArray(response.data)) {\r\n const queryIds = response.data.map((item: number) => item);\r\n queryIdsString = queryIds.join(', '); // Update the global variable\r\n this.setState({ trendingQueryIds: queryIds });\r\n return APIManager.getQueryLibraryTrendingQueriesById(queryIdsString).then(queriesResponse => {\r\n if (queriesResponse && queriesResponse.data && Array.isArray(queriesResponse.data)) {\r\n const trendingQueriesData = queriesResponse.data.map((item: any) => ({\r\n KeyMarketplaceQuery: item.KeyMarketplaceQuery,\r\n KeyMarketplaceDataset: item.KeyMarketplaceDataset,\r\n MarketplaceDatasetName: item.MarketplaceDatasetName,\r\n MarketplaceQueryTitle: item.MarketplaceQueryTitle,\r\n MarketplaceQueryCurrentVerDate: item.MarketplaceQueryCurrentVerDate\r\n }));\r\n this.setState({ trendingQueries: trendingQueriesData });\r\n return queryIds;\r\n }\r\n console.error('Invalid response structure:', queriesResponse);\r\n return '';\r\n });\r\n }\r\n console.error('Invalid response structure:', response);\r\n return [];\r\n });\r\n };\r\n\r\n public render() {\r\n const { keyPage, startDate, filters, bookmarks, pageTextsData, bookmarksLoaded, isLoggedIn } = this.props;\r\n const { trendingQueryIds, trendingQueries } = this.state;\r\n const headerSection = getPageTextsSection(pageText.headerSection.header, pageTextsData);\r\n const noResultsSection = getPageTextsSection(pageText.noResultSection.noresults, pageTextsData);\r\n const productFinderPromo = getPageTextsSection(pageText.productFinderPromo, pageTextsData) as PageSectionData;\r\n\r\n const renderChunkedData = (chunkedData: any[]): JSX.Element[] => {\r\n if (chunkedData.length % 3 === 0) {\r\n return chunkedData.map((group, index) => (\r\n
\r\n {group.map((it: any) => (\r\n \r\n ))}\r\n
\r\n ));\r\n }\r\n\r\n const divideArrayIntoGroups = (array: any) => {\r\n const divisibleByThreeLength = Math.floor(array.length / 3) * 3;\r\n const group1 = array.slice(0, divisibleByThreeLength);\r\n const group2 = array.slice(divisibleByThreeLength);\r\n return [group1, group2];\r\n };\r\n const chunkedResult = chunkedData;\r\n const lastGroup = chunkedData[chunkedData.length - 1];\r\n const dummyElement = { ...lastGroup[0], name: 'dummy' } as Query & (DataProfileCard | APISolution | APIBlueprint);\r\n\r\n\r\n return chunkedResult.map((group, index) => {\r\n const [group1, group2] = divideArrayIntoGroups(group);\r\n while (group2.length % 3 !== 0) {\r\n group2.push(dummyElement);\r\n }\r\n return (\r\n
\r\n {group1.map((it: any) => (\r\n \r\n ))}\r\n {group2.map((it: any) => (\r\n \r\n ))}\r\n
\r\n );\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n
\r\n

{headerSection.title}

\r\n

\r\n

{headerSection.content}

\r\n
\r\n
\r\n <>\r\n {filters.length ? ( {\r\n // we are breaking down queries list into chunks (18-tems per group)\r\n // queries slide should contain no more 18 items\r\n const chunkedData = () => {\r\n const result = [];\r\n\r\n if (response.list.length > 18) {\r\n for (let i = 0; i < response.list.length; i += 18) {\r\n result.push(response.list.slice(i, i + 18));\r\n }\r\n } else {\r\n result.push(response.list);\r\n }\r\n\r\n return result;\r\n };\r\n const chunkedResult = chunkedData();\r\n\r\n // catalog carousel settings\r\n const settings = {\r\n dots: false,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n lazyLoad: 'progressive',\r\n adaptiveHeight: true\r\n } as Settings;\r\n const controlsPanelRef = React.useRef(null);\r\n return (\r\n <>\r\n {response.searchComponent}\r\n
\r\n \r\n
\r\n
\r\n
\r\n {!response.list.length && response.isSearching && }\r\n\r\n {!response.list.length && !response.isSearching && (\r\n <>\r\n \r\n \r\n )}\r\n {!!response.list.length && chunkedResult && (\r\n <>\r\n \r\n {renderChunkedData(chunkedResult)}\r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n {response.search === '' && response.filterCount === 0 && trendingQueryIds.length > 0 && trendingQueries.length > 0 && (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )}\r\n \r\n \r\n );\r\n }}\r\n />) : }\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import { connect } from 'react-redux';\r\nimport { get, getConfig } from '../../helpers';\r\nimport keyPageIds from '../../utilities/key-pages';\r\nimport QueryLibraryPage from './query-library-page';\r\n\r\nconst mapStateToProps = (state: RootStoreState): QueryLibraryPageProps => {\r\n const filterOptions = getConfig('components.filterOptions');\r\n let filters: FilterObjects[] = [];\r\n const categories = get(state, 'filters.queryTypes', []);\r\n const datasets = get(state, 'filters.datasets', []);\r\n const pageTextsData = get(state, 'shared.pageSections.data', []) as PageSections[];\r\n const { isLoggedIn } = get(state, 'user', { isLoggedIn: false });\r\n const bookmarkPreference = get(state.user, 'bookmarkPreference', { bookMarks: { datasets: [], solutions: [], queries: [], blueprints: [] }, bookmarksLoaded: false });\r\n const { bookMarks = { datasets: [], solutions: [], queries: [], blueprints: [] }, bookmarksLoaded = false } = bookmarkPreference;\r\n\r\n\r\n const bookmarkFilter = {\r\n filterKey: filterOptions.bookmark.filterKey,\r\n items: get(state, 'filters.bookmark', [])\r\n };\r\n\r\n if (datasets.length) {\r\n filters = [...filters,\r\n {\r\n filterKey: filterOptions.dataset.filterKey,\r\n showSearch: filterOptions.dataset.showSearch,\r\n items: datasets\r\n }\r\n ];\r\n }\r\n\r\n if (categories.length) {\r\n filters = [...filters,\r\n {\r\n filterKey: filterOptions.querytype.filterKey,\r\n items: categories\r\n },\r\n ];\r\n if (isLoggedIn) filters.push(bookmarkFilter);\r\n }\r\n\r\n return {\r\n filters,\r\n bookmarks: bookMarks,\r\n bookmarksLoaded,\r\n pageTextsData: pageTextsData.filter(x => x.KeyOnlinePage === keyPageIds.queryLibraryPage),\r\n isLoggedIn\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps)(QueryLibraryPage);\r\n","import { getConfig } from '../helpers';\r\nimport SPGVariables from './spg-variables';\r\n\r\nconst spgVariables = SPGVariables();\r\nconst urls = getConfig('urls');\r\nconst buildImageUrl = (urlString?: string) => {\r\n if (urlString && urlString.length) {\r\n return urlString.indexOf('http') > -1 || urlString.substr(0, 1) === '/' || urlString.substr(0, 2) === '..'\r\n ? urlString\r\n : `${spgVariables.CloudFrontURL}/${urlString}`;\r\n }\r\n return undefined;\r\n};\r\n\r\nexport default buildImageUrl;\r\n"],"sourceRoot":""}