1import {Controller} from '@hotwired/stimulus' 2 3export default class extends Controller { 4 static targets = ['searchFilter', 'listItem', 'ariaVisibilityCount'] 5 6 keyUp(e) { 7 for (const li of this.listItemTargets) { 8 this.setVisibilityForListItem(li) 9 } 10 } 11 12 listItemTargetConnected(element) { 13 this.setVisibilityForListItem(element) 14 } 15 16 setVisibilityForListItem(li) { 17 const hideClass = 'd-none' 18 li.classList.toggle(hideClass, this.searchFilterTarget.value !== '' && !li.dataset.value.toLowerCase().includes(this.searchFilterTarget.value.toLowerCase())) 19 this.ariaVisibilityCount(hideClass); 20 } 21 22 ariaVisibilityCount(hideClass) { 23 const count = this.listItemTargets.filter(li => !li.classList.contains(hideClass)).length 24 this.ariaVisibilityCountTarget.textContent = this.ariaVisibilityCountTarget.dataset.template.replace('%{count}', count) 25 } 26}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.