|
12 | 12 | const selectorIsNone = '.' + classNone; |
13 | 13 | const selectorNotNone = `:not(${selectorIsNone})`; |
14 | 14 | const selectorPathList = '.path-list'; |
15 | | - const selectorItemList = '.item-list'; |
16 | | - const selectorItem = `li:not(.${classHeader}):not(.parent)`; |
17 | | - const selectorItemIsNone = selectorItem + selectorIsNone; |
18 | | - const selectorItemNotNone = selectorItem + selectorNotNone; |
| 15 | + const selectorEntryList = '.entry-list'; |
| 16 | + const selectorEntry = `li:not(.${classHeader}):not(.parent)`; |
| 17 | + const selectorEntryIsNone = selectorEntry + selectorIsNone; |
| 18 | + const selectorEntryNotNone = selectorEntry + selectorNotNone; |
19 | 19 |
|
20 | 20 | const Enter = 'Enter'; |
21 | 21 | const Escape = 'Escape'; |
|
46 | 46 |
|
47 | 47 | const clear = filter.querySelector('button') || document.createElement('button'); |
48 | 48 |
|
49 | | - const itemList = document.querySelector(selectorItemList) |
| 49 | + const entryList = document.querySelector(selectorEntryList); |
50 | 50 |
|
51 | 51 | let timeoutId; |
52 | 52 | const doFilter = function () { |
53 | 53 | const filteringText = input.value.trim().toLowerCase(); |
54 | 54 | if (filteringText === filteredText) return; |
55 | 55 |
|
56 | | - let items |
| 56 | + let entries |
57 | 57 | if (filteringText) { |
58 | 58 | clear.style.display = 'block'; |
59 | 59 |
|
60 | 60 | let selector |
61 | | - if (filteringText.includes(filteredText)) { // increment search, find in visible items |
62 | | - selector = selectorItemNotNone; |
63 | | - } else if (filteredText.includes(filteringText)) { // decrement search, find in hidden items |
64 | | - selector = selectorItemIsNone; |
| 61 | + if (filteringText.includes(filteredText)) { // increment search, find in visible entries |
| 62 | + selector = selectorEntryNotNone; |
| 63 | + } else if (filteredText.includes(filteringText)) { // decrement search, find in hidden entries |
| 64 | + selector = selectorEntryIsNone; |
65 | 65 | } else { |
66 | | - selector = selectorItem; |
| 66 | + selector = selectorEntry; |
67 | 67 | } |
68 | 68 | filteredText = filteringText; |
69 | 69 |
|
70 | | - items = itemList.querySelectorAll(selector); |
71 | | - items.forEach(item => { |
72 | | - const name = item.querySelector('.name'); |
| 70 | + entries = entryList.querySelectorAll(selector); |
| 71 | + entries.forEach(entry => { |
| 72 | + const name = entry.querySelector('.name'); |
73 | 73 | if (matchFilter(name.textContent)) { |
74 | | - if (selector !== selectorItemNotNone) { |
75 | | - item.classList.remove(classNone); |
| 74 | + if (selector !== selectorEntryNotNone) { |
| 75 | + entry.classList.remove(classNone); |
76 | 76 | } |
77 | 77 | } else { |
78 | | - if (selector !== selectorItemIsNone) { |
79 | | - item.classList.add(classNone); |
| 78 | + if (selector !== selectorEntryIsNone) { |
| 79 | + entry.classList.add(classNone); |
80 | 80 | } |
81 | 81 | } |
82 | 82 | }); |
83 | | - } else { // filter cleared, show all items |
| 83 | + } else { // filter cleared, show all entries |
84 | 84 | clear.style.display = ''; |
85 | 85 | filteredText = ''; |
86 | 86 |
|
87 | | - items = itemList.querySelectorAll(selectorItemIsNone); |
88 | | - items.forEach(item => item.classList.remove(classNone)); |
| 87 | + entries = entryList.querySelectorAll(selectorEntryIsNone); |
| 88 | + entries.forEach(entry => entry.classList.remove(classNone)); |
89 | 89 | } |
90 | 90 | }; |
91 | 91 |
|
|
149 | 149 | if (link && link !== lastFocused) lastFocused = link; |
150 | 150 | } |
151 | 151 |
|
152 | | - const itemList = document.body.querySelector(selectorItemList); |
153 | | - itemList.addEventListener('focusin', onFocus); |
154 | | - itemList.addEventListener('click', onFocus); |
| 152 | + const entryList = document.body.querySelector(selectorEntryList); |
| 153 | + entryList.addEventListener('focusin', onFocus); |
| 154 | + entryList.addEventListener('click', onFocus); |
155 | 155 | window.addEventListener('pageshow', function () { |
156 | 156 | if (lastFocused && lastFocused !== document.activeElement) { |
157 | 157 | lastFocused.focus(); |
|
187 | 187 | prevChildName = decodeURIComponent(prevChildName); |
188 | 188 | if (!matchFilter(prevChildName)) return; |
189 | 189 |
|
190 | | - const items = Array.from(document.body.querySelectorAll(selectorItemList + '>' + selectorItemNotNone)); |
| 190 | + const entries = Array.from(document.body.querySelectorAll(selectorEntryList + '>' + selectorEntryNotNone)); |
191 | 191 | const selectorName = '.field.name'; |
192 | 192 | const selectorLink = 'a'; |
193 | | - for (let i = 0; i < items.length; i++) { |
194 | | - const item = items[i]; |
195 | | - const elName = item.querySelector(selectorName); |
| 193 | + for (let i = 0; i < entries.length; i++) { |
| 194 | + const entry = entries[i]; |
| 195 | + const elName = entry.querySelector(selectorName); |
196 | 196 | if (!elName) continue; |
197 | 197 |
|
198 | 198 | let text = elName.textContent; |
|
201 | 201 | } |
202 | 202 | if (text !== prevChildName) continue; |
203 | 203 |
|
204 | | - const elLink = item.querySelector(selectorLink); |
| 204 | + const elLink = entry.querySelector(selectorLink); |
205 | 205 | if (!elLink) break; |
206 | 206 |
|
207 | 207 | lastFocused = elLink; |
|
213 | 213 |
|
214 | 214 | function enableKeyboardNavigate() { |
215 | 215 | const pathList = document.body.querySelector(selectorPathList); |
216 | | - const itemList = document.body.querySelector(selectorItemList); |
217 | | - if (!pathList && !itemList) { |
| 216 | + const entryList = document.body.querySelector(selectorEntryList); |
| 217 | + if (!pathList && !entryList) { |
218 | 218 | return; |
219 | 219 | } |
220 | 220 |
|
|
369 | 369 | switch (e.key) { |
370 | 370 | case ARROW_DOWN: |
371 | 371 | if (isToEnd(e)) { |
372 | | - return getLastFocusableSibling(itemList); |
| 372 | + return getLastFocusableSibling(entryList); |
373 | 373 | } else { |
374 | | - return getFocusableSibling(itemList, false); |
| 374 | + return getFocusableSibling(entryList, false); |
375 | 375 | } |
376 | 376 | case ARROW_UP: |
377 | 377 | if (isToEnd(e)) { |
378 | | - return getFirstFocusableSibling(itemList); |
| 378 | + return getFirstFocusableSibling(entryList); |
379 | 379 | } else { |
380 | | - return getFocusableSibling(itemList, true); |
| 380 | + return getFocusableSibling(entryList, true); |
381 | 381 | } |
382 | 382 | case ARROW_RIGHT: |
383 | 383 | if (isToEnd(e)) { |
|
394 | 394 | } |
395 | 395 | } |
396 | 396 | if (!e.ctrlKey && (!e.altKey || IS_MAC_PLATFORM) && !e.metaKey && e.key.length === 1) { |
397 | | - return lookup(itemList, e.key, e.shiftKey); |
| 397 | + return lookup(entryList, e.key, e.shiftKey); |
398 | 398 | } |
399 | 399 | } |
400 | 400 |
|
|
955 | 955 | } |
956 | 956 |
|
957 | 957 | function enableNonRefreshDelete() { |
958 | | - const itemList = document.body.querySelector(selectorItemList); |
959 | | - if (!itemList) return; |
960 | | - if (!itemList.classList.contains('has-deletable')) return; |
| 958 | + const entryList = document.body.querySelector(selectorEntryList); |
| 959 | + if (!entryList) return; |
| 960 | + if (!entryList.classList.contains('has-deletable')) return; |
961 | 961 |
|
962 | | - itemList.addEventListener('submit', function (e) { |
| 962 | + entryList.addEventListener('submit', function (e) { |
963 | 963 | if (e.defaultPrevented) return; |
964 | 964 |
|
965 | 965 | const form = e.target; |
|
0 commit comments