PageSourceSearch

https://lruihao.cn/js/lib/table-sort.min.js

js lruihao.cn collected 2026-09-25 21:47:07 UTC 2,416 bytes, 1 lines download raw bytes

1"use strict";(()=>{var t=class{#e=document;on(e,t){this.#e.addEventListener(e,t)}off(e,t){this.#e.removeEventListener(e,t)}emit(e,...n){let t=n[0];this.#e.dispatchEvent(t!==0[0]?new CustomEvent(e,{detail:t}):new CustomEvent(e))}},n=new t;function s(e){let t=e.replace(/[\s,%$€£¥]/g,"");return t!==""&&!Number.isNaN(Number(t))?"number":/\d{4}[-/]\d{1,2}[-/]\d{1,2}/.test(e)&&!Number.isNaN(Date.parse(e))?"date":"string"}function o(e,t,n){if(!n)return 0;let i=s(e),o=0;switch(i){case"number":o=Number(e.replace(/[\s,%$€£¥]/g,""))-Number(t.replace(/[\s,%$€£¥]/g,""));break;case"date":o=new Date(e).getTime()-new Date(t).getTime();break;default:o=e.localeCompare(t)}return n==="asc"?o:-o}function i(e){return e===null?"asc":e==="asc"?"desc":null}function a(e,t,n){let s=e.querySelector("tbody");if(!s)return;let i=Array.from(s.querySelectorAll("tr"));n?i.sort((e,s)=>{let i=e.children[t]?.textContent?.trim()||"",a=s.children[t]?.textContent?.trim()||"";return o(i,a,n)}):i.sort((e,t)=>{let n=parseInt(e.dataset.order||"0",10),s=parseInt(t.dataset.order||"0",10);return n-s}),i.forEach(e=>s.appendChild(e))}function r(e,t,n){e.querySelectorAll("th").forEach((e,s)=>{e.classList.remove("sort-asc","sort-desc"),s===t&&n&&e.classList.add(n==="asc"?"sort-asc":"sort-desc")})}function c(e){if(e.dataset.sortInit)return;e.dataset.sortInit="true";let t=e.querySelector("tbody");t&&Array.from(t.querySelectorAll("tr")).forEach((e,t)=>{e.dataset.order=String(t)}),e.classList.add("is-sortable"),e.querySelectorAll("thead th").forEach((t,n)=>{t.classList.add("sort-header"),t.setAttribute("role","button"),t.setAttribute("tabindex","0"),t.setAttribute("aria-sort","none");let s=()=>{let o=e.dataset.sortDir==="asc"&&e.dataset.sortCol===String(n)?"asc":e.dataset.sortDir==="desc"&&e.dataset.sortCol===String(n)?"desc":null,s=i(o);s?(e.dataset.sortCol=String(n),e.dataset.sortDir=s,t.setAttribute("aria-sort",s==="asc"?"ascending":"descending")):(delete e.dataset.sortCol,delete e.dataset.sortDir,t.setAttribute("aria-sort","none")),a(e,n,s),r(e,n,s)};t.addEventListener("click",s,!1),t.addEventListener("keydown",e=>{(e.key==="Enter"||e.key===" ")&&(e.preventDefault(),s())},!1)})}function e(e=document){e.querySelectorAll("table[data-sortable]:not([data-sort-init])").forEach(c)}
1function l(){n.on("fixit:content-decrypted",({detail:t})=>{e(t.target)})}document.addEventListener("DOMContentLoaded",()=>{e(),l()},!1)})()

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.