1import{Controller}from"@hotwired/stimulus";export default class extends Controller{static get targets(){return["tab","border"]}connect(){this.activeTab=this.tabTargets.find(t=>t.classList.contains("active")),this.tabTargets.forEach(t=>{t.addEventListener("click",this.toggleActiveClass.bind(this))})}disconnect(){this.tabTargets.forEach(t=>{t.removeEventListener("click",this.toggleActiveClass.bind(this))})}toggleActiveClass(t){const e=t.target;this.isTabActive(e)||(this.deactivateActiveTab(),this.activateTab(e),this.animateBorder())}isTabActive(t){return t===this.activeTab}activateTab(t){this.activeTab=t,this.activeTab.classList.add("active")}deactivateActiveTab(){this.activeTab.classList.remove("active"),this.activeTab=null}animateBorder(){this.borderTarget.style.left="50%"===this.borderTarget.style.left?"0":"50%"}}
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.