1"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[69815],{815:(t,e,r)=>{r.r(e),r.d(e,{default:()=>o});let s=window.PluginBaseClass;class o extends s{init(){this.currentSort={column:0,direction:"asc"},this.setupSortableHeaders()}setupSortableHeaders(){document.querySelectorAll(".table-sortable").forEach(t=>{t.querySelectorAll("thead th").forEach((e,r)=>{let s=document.createElement("span");s.className="sort-icon",s.innerHTML=this.getSortIcon(r),e.prepend(s),e.style.cursor="pointer",e.addEventListener("click",()=>{this.sortTable(t,r)})}),this.updateSortIcons(t)})}sortTable(t,e){let r=t.querySelector("tbody"),s=Array.from(r.querySelectorAll("tr"));this.currentSort.column===e?this.currentSort.direction="asc"===this.currentSort.direction?"desc":"asc":(this.currentSort.column=e,this.currentSort.direction="asc"),s.sort((t,r)=>{let s=this.getCellValue(t,e),o=this.getCellValue(r,e),c=0;return c=this.isNumeric(s)&&this.isNumeric(o)?parseFloat(s)-parseFloat(o):s.localeCompare(o,void 0,{numeric:!0,sensitivity:"base"}),"asc"===this.currentSort.direction?c:-c}),s.forEach(t=>r.appendChild(t)),this.updateSortIcons(t)}getCellValue(t,e){let r=t.cells[e];return r?r.textContent.trim():""}isNumeric(t){return!isNaN(t)&&!isNaN(parseFloat(t))}getSortIcon(t){return this.currentSort.column===t?"asc"===this.currentSort.direction?'<span class="sort-arrow">â</span>':'<span class="sort-arrow">â</span>':'<span class="sort-arrow">â</span>'}updateSortIcons(t){t.querySelectorAll("thead th").forEach((t,e)=>{let r=t.querySelector(".sort-icon");r&&(r.innerHTML=this.getSortIcon(e),this.currentSort.column===e?t.classList.add("sort-active"):t.classList.remove("sort-active"))})}}}}]);
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.