| ... | ... | @@ -35,6 +35,7 @@ |
| 35 | 35 | var domSectSearchResults = document.getElementById("sectSearchResults"); |
| 36 | 36 | var domListSearchResults = document.getElementById("listSearchResults"); |
| 37 | 37 | var domSectSearchNoResults = document.getElementById("sectSearchNoResults"); |
| 38 | var domSectSearchAllResultsLink = document.getElementById("sectSearchAllResultsLink"); |
| 38 | 39 | var domSectInfo = document.getElementById("sectInfo"); |
| 39 | 40 | var domTdTarget = document.getElementById("tdTarget"); |
| 40 | 41 | var domTdZigVer = document.getElementById("tdZigVer"); |
| ... | ... | @@ -42,6 +43,7 @@ |
| 42 | 43 | var domHelpModal = document.getElementById("helpDialog"); |
| 43 | 44 | |
| 44 | 45 | var searchTimer = null; |
| 46 | var searchTrimResults = true; |
| 45 | 47 | var escapeHtmlReplacements = { "&": "&amp;", '"': "&quot;", "<": "&lt;", ">": "&gt;" }; |
| 46 | 48 | |
| 47 | 49 | var typeKinds = indexTypeKinds(); |
| ... | ... | @@ -82,6 +84,8 @@ |
| 82 | 84 | var nodesToCallsMap = indexNodesToCalls(); |
| 83 | 85 | |
| 84 | 86 | domSearch.addEventListener('keydown', onSearchKeyDown, false); |
| 87 | domSectSearchAllResultsLink.addEventListener('click', onClickSearchShowAllResults, false); |
| 88 | |
| 85 | 89 | window.addEventListener('hashchange', onHashChange, false); |
| 86 | 90 | window.addEventListener('keydown', onWindowKeyDown, false); |
| 87 | 91 | onHashChange(); |
| ... | ... | @@ -113,6 +117,7 @@ |
| 113 | 117 | domSectFields.classList.add("hidden"); |
| 114 | 118 | domSectSearchResults.classList.add("hidden"); |
| 115 | 119 | domSectSearchNoResults.classList.add("hidden"); |
| 120 | domSectSearchAllResultsLink.classList.add("hidden"); |
| 116 | 121 | domSectInfo.classList.add("hidden"); |
| 117 | 122 | domHdrName.classList.add("hidden"); |
| 118 | 123 | domSectNav.classList.add("hidden"); |
| ... | ... | @@ -1810,6 +1815,13 @@ |
| 1810 | 1815 | domHelpModal.focus(); |
| 1811 | 1816 | } |
| 1812 | 1817 | |
| 1818 | function onClickSearchShowAllResults(ev) { |
| 1819 | ev.preventDefault(); |
| 1820 | ev.stopPropagation(); |
| 1821 | searchTrimResults = false; |
| 1822 | onHashChange(); |
| 1823 | } |
| 1824 | |
| 1813 | 1825 | function clearAsyncSearch() { |
| 1814 | 1826 | if (searchTimer != null) { |
| 1815 | 1827 | clearTimeout(searchTimer); |
| ... | ... | @@ -1819,6 +1831,7 @@ |
| 1819 | 1831 | |
| 1820 | 1832 | function startAsyncSearch() { |
| 1821 | 1833 | clearAsyncSearch(); |
| 1834 | searchTrimResults = true; |
| 1822 | 1835 | searchTimer = setTimeout(startSearch, 10); |
| 1823 | 1836 | } |
| 1824 | 1837 | function startSearch() { |
| ... | ... | @@ -1897,6 +1910,13 @@ |
| 1897 | 1910 | return operatorCompare(a.decl.name, b.decl.name); |
| 1898 | 1911 | }); |
| 1899 | 1912 | |
| 1913 | var searchTrimmed = false |
| 1914 | var searchTrimResultsMaxItems = 200 |
| 1915 | if (searchTrimResults && matchedItems.length > searchTrimResultsMaxItems) { |
| 1916 | matchedItems = matchedItems.slice(0, searchTrimResultsMaxItems) |
| 1917 | searchTrimmed = true |
| 1918 | } |
| 1919 | |
| 1900 | 1920 | var domListSearchResultsFragment = createDomListFragment(matchedItems.length, '<li><a href="#"></a></li>'); |
| 1901 | 1921 | for (var i = 0; i < matchedItems.length; i += 1) { |
| 1902 | 1922 | var liDom = domListSearchResultsFragment.children[i]; |
| ... | ... | @@ -1911,6 +1931,10 @@ |
| 1911 | 1931 | domListSearchResults.appendChild(domListSearchResultsFragment); |
| 1912 | 1932 | domSectSearchResults.classList.remove("hidden"); |
| 1913 | 1933 | |
| 1934 | if (searchTrimmed) { |
| 1935 | domSectSearchAllResultsLink.classList.remove("hidden"); |
| 1936 | } |
| 1937 | |
| 1914 | 1938 | renderSearchCursor(); |
| 1915 | 1939 | } else { |
| 1916 | 1940 | domSectSearchNoResults.classList.remove("hidden"); |